technische universit at ilmenau fakult at fu r elektrotechnik...

30
Technische Universit¨ at Ilmenau Fakult¨ at f¨ ur Elektrotechnik und Informationstechnik Hauptseminararbeit Verteilte Hash Tabelle (VHT) vorgelegt von: Mikhail Tarasov eingereicht am: 15. 01. 2008 geboren am: Studiengang: Ingenieurinformatik Studienrichtung: Multimediale Informations- und Kommunikationssysteme Anfertigung im Fachgebiet: Kommunikationsnetze Fakult¨ at f¨ ur Elektrotechnik und Informationstechnik Verantwortlicher Professor: Prof. Dr. rer. nat. habil. Jochen Seitz Wissenschaftlicher Betreuer: Dipl.-Ing. Mais Hasan

Upload: others

Post on 09-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

Technische Universitat Ilmenau

Fakultat fur Elektrotechnik und Informationstechnik

Hauptseminararbeit

Verteilte Hash Tabelle (VHT)

vorgelegt von: Mikhail Tarasov

eingereicht am: 15. 01. 2008

geboren am:

Studiengang: Ingenieurinformatik

Studienrichtung: Multimediale Informations- und

Kommunikationssysteme

Anfertigung im Fachgebiet: Kommunikationsnetze

Fakultat fur Elektrotechnik und Informationstechnik

Verantwortlicher Professor: Prof. Dr. rer. nat. habil. Jochen Seitz

Wissenschaftlicher Betreuer: Dipl.-Ing. Mais Hasan

Page 2: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

Inhaltsverzeichnis i

Inhaltsverzeichnis

1 Einleitung 1

1.1 Problembeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 P2P-Technologien 3

2.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Generationen von P2P-Netzen . . . . . . . . . . . . . . . . . . . . . . . 3

2.2.1 Erste Generation . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2.2 Zweite Generation . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.3 Dritte Generation . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 P2P-Netze in kooperativer Arbeit . . . . . . . . . . . . . . . . . . . . . 7

3 Strukturierte P2P-Netze 8

3.1 Hashtabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2 Verteilte Hashtabellen (VHT) . . . . . . . . . . . . . . . . . . . . . . . 10

4 Beispiele von VHT 12

4.1 CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2 Pastry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.3 Kademlia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5 Zusammenfassung und Ausblick 23

Literaturverzeichnis 24

Abbildungsverzeichnis 27

Abkurzungsverzeichnis 28

Hauptseminararbeit Mikhail Tarasov

Page 3: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

1 Einleitung 1

1 Einleitung

In der letzten Zeit werden Internettechnologien sehr popular. Taglich steigt die Zahl

der Internetnutzer. Das Internet nimmt mehr und mehr Platze in unserem Leben ein.

Man nutzt das globale Netz zur Entspannung und Geselligkeit, zum Einkauf und sogar

fur große Finanztransaktionen. Immer erhohen sich die Bandbreite und der Datenum-

fang. Heute ist ganz normal, wenn man einen abendfullenden Film oder noch großere

Datenmengen durch das Internet ubertragt.

Je mehr werden die ubertragenden Datenvolumen, desto mehr leistungsfahige Me-

chanismen werden gebraucht und entwickelt. Dazu gehort auch die Netztopologie, da-

durch eine effizientste Nutzung der physikalischen Ressourcen des Netzes moglich wird.

Um die Belastung der einzelnen Knoten eines Netzes zu reduzieren und die Datenmen-

gen relativ gleichmaßig zwischen mehrere Kanale zu verteilen, werden dezentralisierte

Netzstrukturen verwenden.

In Rahmen dieser Arbeit werden die folgenden Aspekten von P2P-Netzen dargestellt:

• grundlegendes Konzept der P2P-Kommunikationen,

• die Generationen der P2P-Netzen und Technologien,

• strukturierte P2P-Netze

• verteilte Hash Tabellen (VHT)

Als den Hauptanteil der Arbeit werden die verteilten Hash Tabellen auf Basis einer

Reihe von Beispielen untersucht.

1.1 Problembeschreibung

Es existiert im Prinzip zwei grundlegende Modelle der Organisation der logischen Netz-

struktur. Eine von diesen ist das Client-Server-Modell, bei der ein Knoten (Server) die

meisten Dienstleistung an sich nimmt und die anderen Knoten (Clients) nutzen die

Ressourcen des Servers. Bei diesem Modell zieht ein Ausfall des Servers ein unmittel-

bares Versagen des gesamten Systems nach sich.

Hauptseminararbeit Mikhail Tarasov

Page 4: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

1 Einleitung 2

Andere Modelle besteht darin, dass alle Knoten des Netzes gleichbedeutend sind. In

diesem Fall werden die Dienstleistungen zwischen mehrere Knoten relativ gleichmaßig

verteilt. Der Ausfall eines Knotens fuhrt nicht automatisch zum Versagen des gesamten

Systems, und seine Dienstleistungen konnen gleich zwischen anderen Knoten verteilt

werden. Diese Modell ist als Peer-to-peer (P2P) Kommunikationsmodell bekannt.

Es existiert auch ein gemischtes Modell, bei der das gesamte Netz auch die Knoten,

die eine besondere Bedeutung fur die Funktionalitat des Netzes haben, beinhaltet. Z.B.

so genannte Tracker - ein Server, der die Verwaltungsfunktionen des gesamten P2P-

Systems realisiert. Der Tracker besitzt in diesem Fall die Steuerinformationen uber die

verfugbaren Knoten des Netzes wie einen Bezeichner und moglicherweise die Liste der

Dienstleistungen und der Ressourcen, die jeder Knoten zur Verfugung stellt. Dieses

Modell wird Hybridmodell genannt.

Hauptseminararbeit Mikhail Tarasov

Page 5: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

2 P2P-Technologien 3

2 P2P-Technologien

In diesem Kapitel werden die grundlegenden Ideen und Konzeptionen von P2P-Kommu-

nikationen erlautert und die Hauptschritte der Technologieentwicklung gezeigt.

2.1 Definition

Peer-to-Peer (oder P2P) ist eine Kommunikationsmodell, bei der jeder Knoten des

Netzes die gleiche Funktionalitat hat und jeder von diesen selbst die Kommunikati-

onsprozesse initiieren kann. Im Unterschied zum Client-Server-Modell lasst eine solche

Organisation zu, die Arbeitsfahigkeit des Netzes bei einer beliebigen Zahl und einer be-

liebigen Kombination der zuganglichen Knoten zu unterstutzen. Auf die logische Ebene

kann jeder Knoten dieses Netzes mit jedem andern Knoten direkt kommunizieren. Die

logische Struktur einer solcher Netz wird auf die Abb. 2.1 dargestellt.

2.2 Generationen von P2P-Netzen

In der Entwicklung der P2P-Technologien konnen drei Generationen betrachtet wer-

den. [Peer]

2.2.1 Erste Generation

Die ersten P2P-Netzen hatten eine zentralisierte Struktur, dass bedeutet, dass es zwei

verschiedenen Typen der Knoten ins Netz gibt. Ein Netz solcher Struktur wird auf der

Abb. 2.2 gezeigt. Zum ersten Typ der Knoten gehoren die Server, welche die indexierten

Listen aller verfugbaren Ressourcen und die Steuerinformationen uber das gesamte

Netz beinhalten. Zum zweiten Typ gehoren Nutzerknoten.

Als ein Beispiel solches Netzes kann Napster genannt werden. Napster war eine

Musiktauschborse, die 1998 von Shawn Fanning programmiert wurde. Sie sollte dem

Zwecke dienen, leichter MP3-Musikdateien uber das Internet austauschen zu konnen.

[Wiki09b].

Hauptseminararbeit Mikhail Tarasov

Page 6: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

2 P2P-Technologien 4

Abbildung 2.1: Beispiel eines P2P-Netzes

Abbildung 2.2: P2P-Netz mit voll zentralisierter Struktur

Hauptseminararbeit Mikhail Tarasov

Page 7: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

2 P2P-Technologien 5

Am Anfang initiiert ein Nutzerknoten (Client) die Verbindung mit einem zentralen

Server wie bei Client-Server-Architektur. Der Client meldet sich mit der Liste eige-

ner verfugbarer Ressourcen beim Server an. Alle Suchverfahren werden auf dem Server

durchgefuhrt und als Ergebnis bekommt der Client die Liste der IP-Adressen der ande-

ren Client-Knoten, die die gesuchten Ressourcen zur Verfugung stellen. Weiter werden

die Clients direkt mit einander kommunizieren, um die Daten zu ubertragen. Die Funk-

tionalitat eines solchen Netzes ist vollig von dem Server abhangig: fallt der Server aus,

funktioniert das gesamte Netz nicht mehr.

2.2.2 Zweite Generation

Die P2P-Netze der 2. Generation sind die Netze mit vollstandig dezentraler Struktur,

wie es auf der Abb. 2.1 gezeigt. Bei dieser Struktur sind alle Knoten gleichwertig

und es gibt keine zentralen Server, welche die Suchanfragen bearbeiten. Damit das

gesamte System funktioniert, muss ein Knoten mindestens einen anderen finden. Dafur

existieren die verschiedenen Methoden:

• vordefinierte Serverlisten,

• Gwebcache-Seiten im Internet (z.B. bei Gnutella [link02]),

• der Austausch von Host-Listen uber IRC.

Nachdem die Verbindung mit einem Knoten aufgebaut wurde, bekommt der neue

Knoten eine Liste der anderen Knoten, mit denen er kommunizieren kann. Die Anzahl

der Verbindungen wird in den Knoteneinstellungen definiert.

Die Suchanfrage sendet der Knoten zunachst nur an benachbarte Knoten, die be-

nachbarten Knoten leiten dann ihrerseits die Anfrage an ihre Nachbarn weiter, bis die

angeforderte Information gefunden wird. Anschließend kann eine direkte Verbindung

zwischen suchendem und anbietendem Knoten hergestellt werden.

Als Vorteil vor den Netzen erster Generation haben die Netze zweiter Generation

hohe Ausfallsicherheit durch die selbst weitergeleiteten Suchanfragen. Sind einige Kno-

ten unerreichbar, ist es moglich, eine andere Datenquelle zu finden. Aber da es keine

zentralen Server gibt, konnen die Suchanfragen lange dauern, und eine hohe Netzwerk-

belastung verursachen.

2.2.3 Dritte Generation

Die P2P-Netze der 3. Generation vereinigen in sich die meisten Vorteile der vorherge-

henden Generationen. Solche Netze haben entweder vollstandig dezentrale (Abb. 2.1)

Hauptseminararbeit Mikhail Tarasov

Page 8: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

2 P2P-Technologien 6

oder gemischte Struktur. Bei gemischter Struktur existieren mehrere Gruppen von

Knoten: einige Knoten, die mehr Ressourcen zur Verfugung haben, konnen auch die

zusatzlichen Funktionen ausfuhren, z.B. die Indexierung von Daten, um Suchverfah-

ren zu optimieren. Solche Knoten werden aber nicht festgelegt, sondern dynamisch

organisiert. In dem Netz kann auch ein zentraler Server existieren, der aber nur be-

grenzte Funktionen hat, z.B. Benutzeridentifizierung. Ein Beispiel eines Netzes der 3.

Generation mit gemischter Struktur wird auf der Abb. 2.3 dargestellt.

Abbildung 2.3: Ein P2P-Netz mit einer gemischten Struktur

In den Netzen der 3. Generation werden auch Algorithmen, wie z.B. Verteilte Hash

Tabellen als eines Suchverfahren, verwendet, um die Hauptprobleme von P2P-Netzen

zu beseitigen. Zu solchen Problemen gehort folgendes:

• Suche nach den verfugbaren Daten;

• Selbstorganisation beim Ausfall, Ein- und Ausschalten den einzelnen Knoten;

• Sicherheit;

• Kommunikationsdienstgute (Quality of Service, QoS).

Die P2P-Netze der 3. Generation finden die breite Anwendung in folgenden Gebieten:

Hauptseminararbeit Mikhail Tarasov

Page 9: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

2 P2P-Technologien 7

• Dateiverteilung (z.B. Musikaustauschborsen);

• kooperativer Arbeit zwischen weltweiten Forschungsgruppen;

• sprach- und videobasierte Kommunikationen (z.B. Skype [Skyp]);

• Internet Radio und Fernsehen.

2.3 P2P-Netze in kooperativer Arbeit

Eine wichtige Rolle spielen die P2P-Technologien in kooperativer Arbeit oder CSCW

(computer supported cooperative work). Durch die Anwendung von P2P-Architekture

werden die allgemeinen Probleme von Client-Server-Architekturen gelost. Das verteil-

te System ermoglicht, die Belastung des Netzes relativ gleichmaßig zu verteilen, was

besonders aktuell beim Austausch von großen Mengen an Daten ist. [BQXFSX07]

Durch die Anwendung von P2P-Tchnologien ist es moglich, verteilte Rechnungen

durchzufuhren. Zum Beispiel nutzt ein amerikanisches Projekt von United Devices die

freie Prozessorszeit einzelner Rechner fur die biologische Forschung. [UNIV08]

Mochtet eine z.B. pharmazeutische Firma eine Forschung, die die verteilten Berech-

nungen braucht, durchfuhren, musste sie fruher ihre eigenen Protokolle und Methoden

entwickeln, aber heute gibt es Plattformen, die die notige Funktionalitat automatisch

realisieren.

Ein Beispiel solcher Plattform ist die JXTA-Technologie von SUN Microsystems. Die

JXTA-Plattform basiert auf einer Reihe von offentlichen Protokollen, durch die ver-

schiedene Gerate von Handys und PDA’s bis zu PC’s und Server uber P2P-Technologie

miteinander kommunizieren konnen. Durch die Benutzung von XML-basierten Proto-

kollen ist es moglich, die spezielle Software fur mehrere Plattformen zu entwickeln (z.B.

Java und .NET).

Es wird ein virtuelles Netz aus verschiedenen Geraten aufgebaut, wo jeder Kno-

ten mit jedem anderem kommunizieren kann, unabhangig davon, welche physikalische

Struktur das Netz hat, sogar auch uber Firewall und NAT. [Sun 08]

Hauptseminararbeit Mikhail Tarasov

Page 10: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

3 Strukturierte P2P-Netze 8

3 Strukturierte P2P-Netze

Ein P2P-Netz wird auf Basis von einem existierenden IP- oder anderen Netz aufgebaut

und oft als Overlay-Netz gezeigt (s. Abb. 3.1). Es gibt zwei prinzipielle Moglichkeiten

zum Aufbau eines solchen P2P-Netzes:

• unstrukturierte (ad hoc) - das Netz wird sich undeterministisch bei dem

Hinzufugen der neuen Knoten oder Daten andern;

• strukturierte - die Struktur von Netz wird sich laut einigen bestimmten Regeln

andern.

Abbildung 3.1: Ein Overlay-Netz auf Basis eines IP-Netzes

Hauptseminararbeit Mikhail Tarasov

Page 11: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

3 Strukturierte P2P-Netze 9

In unstrukturierten P2P-Netzen entstehen beliebige Overlay-Verbindungen zwischen

den teilnehmenden Knoten. Dies fuhrt zu einer vermaschten Overlay-Topologie, die

eine hohe Zahl an redundanten Pfaden und Schleifen aufweist. Um in einem unstruk-

turierten P2P-Netz Inhalte zu finden, muss eine Suchanfrage durch das Netz geflutet

werden, damit moglichst viele Knoten mit den gesuchten Inhalten gefunden werden.

Dieses Suchprinzip hat neben einem hohen Signalisierungsverkehr den Nachteil, dass

eine Suchanfrage nicht immer vollstandig aufgelost werden kann, d.h. nicht alle zur

Suchanfrage passenden Inhalte gefunden werden konnen.

Um dieses Problem zu losen, werden die strukturierten P2P-Netze verwendet. Durch

das Zuweisen von Hash-Werten zu den teilnehmenden Knoten und zu allen zur Verfu-

gung gestellten Inhalten, ist es moglich, Inhalte auf Zustandigkeitsbereiche von Knoten

so abzubilden, dass damit eine eindeutige Zuordnung von Inhalten zu Peers erreicht

wird. Dadurch mussen die Suchanfragen nicht mehr durch das Overlay-Netz geflutet

werden, sondern direkt an den zustandigen Knoten geroutet werden konnen.

In einem strukturierten P2P-Netz besitzt jeder Knoten Informationen uber seine

direkten Nachbarn in der Overlay-Topologie. Außerdem kennt er weitere Knoten in

anderen Overlay-Regionen, die verwendet werden, um Suchen moglichst schnell an

den zustandigen Knoten weiter zu leiten. [HHKS+08]

Als ein Suchverfahren in strukturierten P2P-Netzen wird die Methode von verteilten

Hash Tabellen genutzt.

3.1 Hashtabellen

In Informatik ist eine Hashtabelle eine Datenstruktur, die aus den Paaren Schlussel-

Wert besteht. Die Hauptaufgabe einer solchen Struktur ist ein moglichst schnelles

Suchverfahren, um bei einem gegebenen Schlusselwert die entsprechenden Daten zu

finden. Diese Struktur wird auf Grund der Transformation von Schlusselwert mit Hilfe

einer Hash-Funktion aufgebaut. Der entsprechende Hash-Wert von Schlussel wird als

ein Index in der Tabelle benutzt. Ein Beispiel von Hashtabelle wird auf der Abb. 3.2

gezeigt.

Hashtabellen unterstutzen das effiziente Einfugen eines neuen Elements in O(1)-

Zeit. Die Suchzeit kann aber mehr sein und hangt von der Hash-Funktion und der

Uberbelegung der Tabellengroße ab. In optimalem Fall wird die Suchzeit auch O(1)

entsprechen.

Typische Operationen auf den Hashtabellen sind Einfugen, Suchen und Loschen eines

Eintrags. Diese Operationen brauchen eine bestimmte relativ konstante Zeit, wodurch

Hauptseminararbeit Mikhail Tarasov

Page 12: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

3 Strukturierte P2P-Netze 10

Abbildung 3.2: Eine Hashtabelle. Nach [Wiki09a]

die Hashtabellen sehr effizient sind.

Ein Problem dabei ist die Moglichkeit der Kollisionen. Die Hash-Funktionen sind

nicht injektive Funktionen, das bedeutet, dass es fur mehrere Schlusselwerte ein gleicher

Hashwert existiert. Daraus folgt, dass mehrere Eintrage in der Tabelle an derselben

Stelle stehen konnen. Falls die Hash-Funktion einen existierenden Hashwert produziert,

muss eine alternative Stelle in der Tabelle fur den neuen Eintrag gefunden werden.

Als Hauptvorteil dieser Methode kann der sofortige Zugriff durch den Hash-Wert auf

die Inhalte in einer Tabelle im Vergleich zu der Suche nach dem Schlussel genannt wer-

den. Ein wesentlicher Nachteil ist die Notwendigkeit von Restrukturierung des Indexes,

falls die Tabelle einen gewissen Fullgrad uberschritten hat. [Wiki09a]

3.2 Verteilte Hashtabellen (VHT)

Eine Einsatzmoglichkeit fur die Hashtabellen ist die Verteilung der Tabelle uber die

mehreren Knoten. Mittels einer Hash-Funktion werden den Datenobjekten Schlussel

in einem linearen Wertebereich vergeben. Dieser Schlusselraum muss moglich gleich-

maßig zwischen den Knoten verteilt werden. Daraus folgt, dass jeder Knoten fur einen

(oder mehrere) Schlusselbereich zustandig ist. Die Verteilung der Hashtabelle erfordert

standige Anpassungen durch Ausfall, Beitritt und Austritt von Knoten.

Eigenschaften von VHT sind:

• Selbstorganisation: das gesamte Netz wird automatisch auf grund der be-

stimmten Regeln aufgebaut.

• Skalierbarkeit: das Netz sollte die Moglichkeit zu Erweiterungen auf große An-

zahl der Knoten erlauben.

Hauptseminararbeit Mikhail Tarasov

Page 13: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

3 Strukturierte P2P-Netze 11

• Lastenverteilung: Die Daten werden moglichst gleichmaßig auf alle Knoten

verteilt.

• Fehlertoleranz: Das System sollte zuverlassig sein, falls einige Knoten ausfallen

oder das System verlassen.

• Robustheit: Das Netz sollte richtig funktionieren konnen, falls ein Teil der Kno-

ten versuchen, das System zu storen.

Verteilte Hashtabellen finden breite Anwendung in modernen P2P-Netzen fur den

Datenaustausch (z.B. CAN, Pastry, Kademlia) und fur die Datenspeicherung (z.B.

OpenDHT [SRYu05]). [Wiki09c]

Hauptseminararbeit Mikhail Tarasov

Page 14: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 12

4 Beispiele von VHT

In diesem Kapitel werden die konkreten Realisierungen der verteilten Hashtabellen

anhand der folgenden Beispiele untersucht:

• CAN (Content-Addressable Network)

• Pastry

• Kademlia

Fur jeden Vertreter werden die Grundstruktur des Netzes, Selbstorganisation, Wege-

wahl und aktuelle Einsatzszenarien und Anwendungen beschrieben.

4.1 CAN

Content-Addressable Network (oder CAN) ist eine Realisierung des Konzepts von ver-

teilten Hashtabellen. Fur CAN werden die folgenden Anforderungen aufgestellt:

• Skalierbarkeit,

• Fehlertoleranz,

• volle Selbstorganisation.

Ein skalierbares P2P-System fordert als erstes einen skalierbaren Indexierungsme-

chanismus. Einer dieser Mechanismen wird im CAN realisiert. Trotzdem ist das CAN

nicht nur fur P2P-Systeme, sondern auch fur umfangreiche Datenbankmanagementsys-

teme (z.B. OceanStore [JKZh]) geeignet. Alle diese Systeme brauchen eine effiziente

Methode zum Datenspeichern und -Zugreifen in einer großen verteilten Datenbankin-

frastruktur und skalierbare Indexierung als einen der wichtigsten Mechanismen.

CAN stellt eine Hashtabelle mit bestimmten schnellen Operationen dar:

• Hinzufugen,

• Suchen,

Hauptseminararbeit Mikhail Tarasov

Page 15: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 13

• Loschen

eines Schlussel-Wert Paars. Das CAN wird aus mehreren einzelnen Knoten, die einer

Untermenge von Tabelleneintragen (eine Zone) entsprechen, gebaut. Zusatzlich be-

sitzt jeder Knoten die Informationen uber eine kleine Anzahl der benachbarten Zonen.

Die Anfrage eines bestimmten Schlussels wird vom Zwischenknoten zum Knoten einer

CAN-Zone, die den gesuchten Schlussel besitzt, weitergeleitet.

Dar Basis des CANs ist ein virtuelles d-dimensionales kartesisches Koordinatensys-

tem auf einem d-Torus. Dieser Koordinatenraum ist rein logisch und verbindet mit

keinem physikalischen Koordinatenraum. Zu jedem Zeitpunkt wird der Koordinaten-

raum dynamisch zwischen allen Knoten des CANs so verteilt, dass jeder Knoten eine

eigene Zone des vollen Raums, die nur zu diesem Knoten gehort, besitzt. Ein Beispiel

eines 2-dimensionalen CAN-Koordinatenraum wird auf der Abb. 4.1 gezeigt.

Abbildung 4.1: Beispiel des CANs mit 5 Knoten im 2-dimensionalen Raum.Nach [Sylv00]

Der virtuelle Koordinatenraum wird, um Paare (Schlussel, Wert) zu platzieren, auf

folgende Weise benutzt: um ein Paar (Si, Wi) zu platzieren, wird den Schlussel in

einen Punkt P des Koordinatenraums mittels einer uniformen Hash-Funktion abgebil-

det. Das Paar (Si, Wi) wird beim Knoten, der zur Zone, wo Punkt P liegt, gehort, in

der Hashtabelle gespeichert. Um einen Wert Wi, der dem Schlussel Si entspricht, anzu-

fordern, wird den Schlussel mittels derselbe Hash-Funktion in den Punkt P abgebildet

und der Wert Wi wird aus dem Punkt P zuruckgeliefert.

Die Knoten organisieren sich in einem Overlay-Netz selbst, das dem virtuellen Ko-

ordinatenraum entspricht. Die Knoten kennen und erneuern regelmaßig eine Liste der

IP-Adressen und der Koordinaten der Zone von Knoten, die die benachbarten Zonen

in diesem Koordinatenraum besitzen. Diese Liste dient als eine Routingtabelle, um das

Routing zwischen den Punkten des Koordinatenraums zu ermoglichen.

Hauptseminararbeit Mikhail Tarasov

Page 16: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 14

In einem d-dimensionalen Koordinatenraum sind zwei Knoten benachbart, wenn ihre

(d−1) Koordinaten gleich sind und eine Koordinate der beiden sich auf 1 unterscheidet.

Eine CAN-Nachricht beinhaltet die Zielkoordinaten. Durch die Liste der Koordi-

naten und der IP-Adressen der benachbarten Knoten leitet ein Knoten die Nachricht

einem der Knoten, der die naheren Koordinaten zum Ziel hat, weiter. Fur einen d-

dimensionalen auf n Zonen geteilten Raum hat ein durchschnittlicher Routingpfad die

Lange (d/4) · n1/d und jeder einzelne Knoten hat 2d Nachbarn. Falls ein oder mehrere

benachbarten Knoten ausfallen, wird ein neuer Pfad automatisch aufgebaut.

Um das Wachstum des CANs zu ermoglichen, muss ein Teil des Koordinatenraums

jedem neuen Knoten zugewiesen werden. Es wird durch die Teilung einer existierenden

Zone in zwei Halbzonen realisiert. Dieser Prozess besteht aus drei Schritten:

1. Zuerst muss der neue Knoten einen existierenden Knoten des CANs finden.

2. Weiter muss ein Knoten gefunden werden, deren Zone geteilt wird.

3. Abschließend mussen die Nachbarn der geteilten Zone informiert werden, um den

neuen Knoten zum Routing hinzuzufugen.

Ein neuer CAN-Knoten findet zuerst die IP-Adresse eines existierenden Knotens

im System. Das Funktionieren des CANs ist unabhangig davon, durch welche Boot-

straping-Methode dieser Knoten gefunden wird.

Um eine Zone zu finden, wahlt der neuen Knoten einen zufalliger Punkt P im Koor-

dinatenraum und sendet eine JOIN-Anfrage mit Zielkoordinaten des Punktes P . Der

aktueller Besitzer dieser Zone teilt die Zone und weist eine Halbzone dem neuen Kno-

ten zu. Danach werden die Schlussel-Wert Paaren dieser Halbzone dem neuen Knoten

ubergegeben.

Der neue Knoten weiß die Koordinaten der benachbarten Zonen vom vorherigen

Besitzer und alle benachbarten Knoten werden uber die neue Verteilung des Raums

informiert. Das Hinzufugen eines neuen Knotens fuhrt nur zu Anderungen in einem

kleinen lokalen Gebiet im Raum. Die Anzahl der benachbarten Knoten hangt nur von

der Dimension des Raums und nicht von der gesamten Anzahl der Knoten im CAN

ab.

Das CAN muss auch fehlertolerant bei einem Ausfall eines oder mehrerer Knoten

sein. Dazu wird ein Takeover -Algorithmus verwendet. Normalerweise sendet jeder Kno-

ten periodisch eine UPDATE-Nachricht mit den Koordinaten eigener Zone und der

Liste aller Nachbarn allen benachbarten Knoten. Falls ein Knoten entscheidet, dass

ein Nachbar ausfallt, initiiert er einen Takeover -Mechanismus und startet einen Ti-

mer. Jeder Nachbar des ausgefallenen Knotens muss diese Operation unabhangig von

Hauptseminararbeit Mikhail Tarasov

Page 17: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 15

Anderen machen und den Timer proportional der Große eigener Zone initiieren. Nach

dem Timeout sendet der Knoten den allen Nachbarn des ausgefallenen Knotens ei-

ne TAKEOVER-Nachricht mit Große eigener Zone. Dadurch wird ein benachbarter

Knoten, der noch verfugbar ist und die kleinste Zone besitzt, effizient ausgewahlt.

Trotzdem ist es moglich, dass das CAN zu einem inkonsistenten Zustand kommt.

In diesem Fall wird ein Reparaturmechanismus gestartet. Die Knoten initiieren eine

expansive Ringsuche nach den Knoten außer dem ausgefallenen Gebiet, danach werden

die Nachbarschaften rekonstruiert und das Takeover-Mechanismus wieder gestartet. Es

kann passieren, dass nach diesem Verfahren einige Knoten mehr als eine Zone besitzen.

Mogliche Erweiterungen

Die Effizienz eines CAN-Systems kann durch die folgenden Maßnahmen erhoht werden:

• die Erhohung der Anzahl der Dimensionen des CAN-Koordinatenraums;

• die Einfuhrung der Realitaten - mehrerer Koordinatenraume;

• die Verbesserung des CAN-Routings;

• die Uberbelastung der Koordinatenzonen;

• mehrere Hash-Funktionen;

• die topologieabhangige Bildung des CAN-Overlay-Netzes;

• die gleichmaßigere Verteilung der Zonen;

• Caching;

• Replikation.

Fur ein CAN-System mit n Knoten und d Dimensionen wird die Pfadlange als

O(dn1/d) skaliert. Also die Erhohung der Dimension des CAN-Koordinatenraums re-

duziert die Routingpfadlangen und die entsprechenden Verzogerungen durch das kleine

Wachstum der Routingtabelle.

Das CAN kann aus mehreren unabhangigen Koordinatenraumen, so genannten Rea-

litaten, bestehen. Jeder Knoten solches Systems besitzt eine Zone jeder Realitat. Fur

CAN mit r Realitaten halt jeder Knoten r Zonen (eine Zone je Realitat) und spei-

chert r unabhangigen Liste der Nachbarschaft. Der Inhalt der Hashtabelle wird in

jeder Realitat dupliziert, wodurch wird die Erreichbarkeit der Daten erhoht. Fur die 3

Hauptseminararbeit Mikhail Tarasov

Page 18: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 16

Realitaten zum Beispiel werden die Daten nur dann unverfugbar, wenn alle 3 Knoten

in den Realitaten unerreichbar sind.

Der CAN-Routing kann durch die Berucksichtigung der darunterliegenden IP-Topo-

logie verbessert werden. In diesem Fall werden die Verzogerungen fur jeden benachbar-

ten Knoten gemessen und die Nachrichten werden entsprechend der Zielkoordinate zu

dem Nachbarn mit kleinster Verzogerung weitergeleitet.

Bis jetzt wurde jede Zone mit einem einzigen Knoten assoziiert. Aber es ist moglich,

es so machen, dass zu jeder Zone mehrere Knoten gehoren. In diesem Fall speichert

jeder Knoten nicht nur die Listen der benachbarten Knoten, sondern auch der Knoten,

die auch zu dieser Zone gehoren. Die Uberbelastung der Zonen erhoht durch die Re-

plikation die Verfugbarkeit der Daten, aber die Datenmenge einzelnen Knoten steigt

proportional der maximalen Anzahl der Knoten in der Zone. Die Pfadlangen werden

reduziert und die Fehlertoleranz wird erhoht (Die Zone fallt aus, nur wenn alle Knoten

der Zone gleichzeitig ausfallen).

Um die Verfugbarkeit der Daten zu erhohen, konnen k verschiedene Hash-Funktionen

benutzt werden. Diese Funktionen bilden einen Schlusselwert auf k Punkten. Die Daten

werden unverfugbar, nur wenn alle k Knoten simultan ausgefallen sind.

Normalerweise werden die Knoten zu einer Zone zufallig eingeordnet, es ist aber

moglich die physikalische Netzwerktopologie zu berucksichtigen, um die geographisch

extrem langen Pfaden zwischen den benachbarten Knoten zu vermeiden.

Beim Hinzufugen eines neuen Knotens wird eine Zone zufallig gewahlt und geteilt.

Stattdessen kann der aktuelle Besitzer dieser Zone die Große dieser Zone mit den

Großen der benachbarten Zonen vergleichen und die großte Zone kann danach verteilt

werden. Dadurch entsteht die gleichmaßigere Verteilung von Zonen und Belastungen.

Beim Caching kann jeder Knoten zusatzlich zu eigenen Daten auch den Cache be-

sitzen, wo die zusatzlichen Daten, die oft gebraucht werden, gespeichert werden. Der

Knoten pruft zuerst, ob die angeforderten Daten im Cache sind, und leitet die Anfrage,

nur wenn die Daten im Cache nicht vorhanden sind, weiter.

Bei der Replikation konnen die Daten bei der Anfrage bei den benachbarten Knoten

dupliziert werden. Dadurch werden gesamte Regionen mit gebrauchlichen Daten ent-

stehen. Als Folge erhoht sich die Verfugbarkeit dieser Daten durch die Redundanz der

Datenquellen und Pfade.[Sylv00]

Hauptseminararbeit Mikhail Tarasov

Page 19: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 17

4.2 Pastry

Ein weiteres Beispiel von strukturierten Netzen, die Technologie der verteilten Hash-

tabellen benutzen, ist Pastry. Pastry ist ein Grundkonzept zur Bildung verschiedener

P2P-Internetanwendungen, wie die Dateivermittlung und -Speicherung, Gruppenkom-

munikationen und die Namensysteme.

Pastry hat die folgenden Eigenschaften: jeder Knoten im Pastry-Netz hat seinen

eigenen numerischen Bezeichner (NodeID). Eine Pastry-Nachricht mit einem numeri-

schen Schlussel wird effizient einem Knoten, deren NodeID numerisch nachst zu dem

Schlussel ist, weitergeleitet. Die gesamte maximale Anzahl der Hops wird auf O(logN)

abgeschatzt, wo N die Anzahl der Knoten im Pastry-Netz ist.

Jeder Pastry-Knoten beachtet die unmittelbar benachbarten im NodeID-Raum Kno-

ten und registriert alle Ereignisse wie Hinkommen, Ausfall und Wiederherstellen. Da

die NodeIDs zufallig verteilt werden, gibt es die hohe Wahrscheinlichkeit, dass die

Knoten mit benachbarten NodeIDs in geographisch verschiedenen Platzen liegen.

Die Anwendungen konnen diese Eigenschaften unterschiedlich nutzen. Z.B. PAST

[RoDr01] nutzt die FileID, die durch die Hash-Funktion des Dateinamens und des

Besitzers berechnet wird, als Pastry-Schlussel. Die Kopien dieser Datei werden in k

Knoten, deren NodeIDs nachst zu dem Schlussel sind, platziert. Die Datei kann uber

die FileID als Schlussel erreicht werden. In diesem Fall ist die Datei erreichbar, solange

mindestens einer der k Knoten verfugbar ist.

In SCRIBE [RKCD01], einem System zur Publikationen und Subskriptionen, wird

die Liste der Abonnenten im Knoten, deren NodeID nachst zu dem Hash von Namen

des Themas ist, gespeichert.

Ein Pastry-System ist ein selbst organisierendes Netz, in welchem jeder Knoten einen

128-Bit Bezeichner oder NodeID hat. Die NodeID wird zum Identifizieren des Knotens

im NodeID-Raum, dessen Grenzen von 0 bis (2128 − 1) liegen, benutzt. Die NodeID

wirddem Knoten zufallig gegeben, wenn der zum System hinzugefugt wird, wodurch

die NodeIDs werden relativ gleichmaßig im 128-Bit Raum verteilt sind. Um die NodeID

eines Knotens zu berechnen, kann eine Hash-Funktion von der IP-Adresse oder dem

offentlichen Schlussel benutzt werden.

Falls ein Pastry-Netz aus den N Knoten besteht, kann eine Nachricht in weniger

als log 2bN Schritten zum Zielknoten zugestellt werden. Die Zustellung ist garantiert,

solange weniger als |L|/2 Knoten mit benachbarten NodeIDs ausgefallen sind. Die b

und |L| sind die Konfigurationsparameter mit dementsprechenden typischen Werten 4

und 16 oder 32.

Hauptseminararbeit Mikhail Tarasov

Page 20: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 18

Jedem Pastry-Knoten entspricht einem Zustand, der uber eine Routingtabelle, eine

Nachbarschaftsmenge (neighborgood set) und eine Menge der Blatter (leaf set) be-

stimmbar ist. Die Routingtabelle besteht aus log 2bN Spalten und (2b − 1) Eintragen

je Spalte. (2b − 1) Eintrage der Spalte n zeigen auf die Knoten, deren NodeIDs mit

der eigenen NodeID in den n ersten Ziffern ubereinstimmen und deren (n + 1). Ziffer

beliebig von 0 bis (2b − 1) außer eigenen (n + 1). Ziffer ist. Jeder Eintrag beinhaltet

die IP-Adresse eines der Knoten, dessen NodeID ein dementsprechendes Prafix hat.

Falls kein Knoten des Gebiets bekannt ist, bleibt der Eintrag leer. Ein Beispiel einer

Pastry-Routingtabelle eines Knotens wird auf der Abb. 4.2 gezeigt.

Die Nachbarschaftsmenge beinhaltet die NodeIDs und die IP-Adressen der |M |Nachsten zu diesem Knoten. Die Nachbarschaftsmenge wird typischerweise beim Rou-

ting nicht benutzt. Das Ziel der Nachbarschaftsmenge ist die bessere Moglichkeit zur

Abschatzung von Lokalitatseigenschaften. Unter der Lokalitat versteht man die Ab-

stande zwischen den Knoten im Sinne von der Anzahl der IP Hops oder den geogra-

phischen Abstanden. Der Eintrag der Routingtabelle wird mit der Berucksichtigung

besseren Lokalitatseigenschaften auf Grund der Nachbarschaftsmengen der Knoten ge-

wahlt. Die Blattermenge besteht aus |L|/2 Knoten mit numerisch nachsten großeren

NodeIDs und |L|/2 Knoten mit numerisch nachsten kleineren NodeIDs relativ dem

eigenen NodeID. Die Blattermenge wird wahrend des Routings benutzt, um die Wege-

wahlverfahren zu optimieren. Die typischen Werte von |L| und |M | sind 2b oder 2 · 2b

(16 oder 32).

Routing

Nachdem ein Knoten eine Nachricht bekommt, pruft er zuerst, ob der Schlussel der

Nachricht von der Blattermenge abgedeckt wird. Falls es so ist, leitet der Knoten die

Nachricht direkt dem Zielknoten, genauer gesagt, dem Knoten von der Blattermenge,

dessen NodeId nachst zu dem Schlussel der Nachricht liegt, weiter.

Falls der Schlussel durch die Blattermenge nicht abgedeckt wird, wird die Routing-

tabelle so benutzt, dass die Nachricht an den Knoten, dessen Prafix mit dem Schlussel

auf mindest ein Ziffer mehr ubereinstimmt, weitergeleitet wird. Es ist moglich, dass der

Eintrag in der Routingtabelle leer oder der Knoten aus der Tabelle unverfugbar ist. In

diesem Fall wird die Nachricht einem Knoten aus Blattermenge mit geeignetem Prafix

weitergeleitet, solange ein Knoten mit nachstem zum Schlussel NodeID gefunden wird.

Ein Beispiel des Routingsverfahren wird auf der Abb. 4.3 dargestellt.

Hauptseminararbeit Mikhail Tarasov

Page 21: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 19

Abbildung 4.2: Routingtabelle ei-ner Pastry-Knoten mit dem Node-ID 65a1x, b=4. Die entsprechen-den IP-Adressen werden nicht ge-zeigt. Nach [CDHR02]

Abbildung 4.3: Routing einerNachricht mit dem Schlusseld46a1c von Knoten 65a1fc.Nach [CDHR02]

Selbstorganisation

Wenn ein neuer Knoten zum Pastry-System hinzugefugt werden will, muss er die ei-

genen Zustandstabellen initialisieren und die anderen Knoten uber sich informieren.

Zuerst ist die Information uber einen der existierenden im System Pastry-Knoten mit

NodeID A notig. Dieser Knoten A kann durch verschiedene Methoden gefunden, oder

direkt eingesetzt werden. Hat der neue Knoten die NodeID X, sendet er uber den

Knoten A eine JOIN-Nachricht mit dem Schlussel gleich X. Das Pastry-System lei-

tet die Nachricht zu einem Knoten Z, dessen NodeID nachst zu X ist, weiter. Als

eine Bestatigung senden die Knoten A, Z und alle dazwischen dem Knoten X ihre

Zustandstabellen zuruck. Auf Grund dieser und zusatzlich angeforderten Tabellen ei-

niger anderen Knoten bildet der neue Knoten X seine eigene Zustandstabellen und

informiert die Anderen, dass er jetzt verfugbar ist.

Beim Hinzufugen oder Verlassen eines Knoten des Systems mussen nur wenige Kno-

ten ihre Zustande (Routingtabelle und Blatter- und Nachbarschaftsmengen) andern.

Ein Problem, das wegen des fehlerhaften IP-Routing (z.B. ein Host kann von man-

chen Hosts unerreichbar und von Anderen erreichbar sein) entstanden werden kann, ist

die Segmentierung des Overlay-Netzes. Um das Problem zu beseitigen und das Netz

wieder zu rekonstruieren, wird eine expandierende Ringsuche nach anderen existieren-

den Pastry-Knoten in der Umgebung durch IP-Multicast verwendet.[RoDr]

Hauptseminararbeit Mikhail Tarasov

Page 22: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 20

4.3 Kademlia

Ein weiteres System von verteilten Hashtabellen ist Kademlia. Das System basiert auf

einer Topologie mit einer XOR-Metrik. Durch jede Nachricht dieses Systems werden die

Verbindungsinformationen standig aktualisiert. Das System nutzt diese Informationen,

um die parallelen asynchronen Anfragenachrichten ohne großen Verzogerungen, falls

einer Knoten ausgefallen ist, zu vermitteln.

Kademlia fasst in sich die Eigenschaften von P2P-Systemen vorheriger Generationen

zusammen, wodurch die Menge von Konfigurationsverkehr zwischen den benachbarten

Knoten reduziert wird. Die Konfigurationsinformation ensteht automatisch als Ne-

benprodukt der Anfragenabarbeitung. Die Knoten besitzen genug Erkenntnisse und

Flexibilitat, um die Anfragen einen optimalen Pfads entlang weiterzuleiten. Kadem-

lia nutzt auch die parallelen asynchronen Anfragen, um die Verzogerungen, die durch

ausgefallene Knoten entstanden werden, zu vermindern.

Jeder Knoten im System bekommt einen 160-Bit Bezeichner. Der Schlussel eines

Eintrags der Hashtabelle ist auch eine 160-Bit Zahl. Bei Suche und Platzieren ei-

nes Schlussel-Wert Paars nutzt Kademlia eine Distanznotation zwischen zwei Bezeich-

nern (Knotenbezeichner und Schlussel). Seien x und y zwei 160-Bit Bezeichner, be-

stimmt Kademlia eine Distanz als exklusive Oderverknupfung der beide Zahlen x und

y: d(x, y) = x⊕ y. Diese XOR-Metrik hat folgenden Eigenschaften:

1. d(x, x) = 0 - der Abstand von einem Knoten zu ihm selbst ist gleich Null;

2. d(x, y) > 0 unter der Bedingung x 6= y;

3. ∀x, y: d(x, y) = d(y, x) - die XOR-Metrik ist symmetrisch;

4. Fur die Knoten x, y und z: d(x, y) + d(y, z) > d(x, z).

Die XOR-Metrik ist unidirektional, das bedeutet, dass alle Anfragen mit einem glei-

chen Schlussel zum selben Pfad konvergiert werden. Durch Caching der Daten entlang

dieses Pfads kann die Verfugbarkeit dieser Daten wesentlich erhoht werden.

Kademlia-Knoten speichern Informationen ubereinander, um das Routing zu ermog-

lichen. Fur jedes beliebige 0 ≤ i < 160 speichert jeder Knoten eine Liste der Informatio-

nen (IP-Adresse, UDP-Port und Knotenbezeichner) der Knoten mit Distanz zwischen

2i und 2i+1 von sich selbst. Es wird k-Bucket genannt. Jeder k-Bucket wird so sortiert,

dass die zuletzt gemerkten Knoten am Ende der Listen stehen. Fur kleine Werte von

i sind generell die k-Buckets leer, fur die großen i konnen die Liste bis zu k Eintrage

Hauptseminararbeit Mikhail Tarasov

Page 23: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 21

wachsen, wo k ein systemweiter Replikationsparameter ist, der so gewahlt wird, dass

die k Knoten mit sehr niedrige Wahrscheinlichkeit in einer Stunde ausfallen.

Wenn ein Kademlia-Knoten eine Nachricht (eine Anfrage oder eine Antwort) von

einem anderen Knoten des Systems bekommt, aktualisiert dieser Knoten seinen k-

Bucket mit dem Bezeichner des Senders laut folgenden Regeln:

• Wenn der Senderknoten im k-Bucket bereits existiert ist, wird er zum Ende der

Liste verschoben.

• Wenn der Senderknoten im k-Bucket nicht existiert und die Liste noch nicht voll

ist (weniger als k Eintrager beinhaltet), wird er zum Ende der Liste hinzugefugt.

• Falls k-Bucket voll ist, wird ein Ping des altesten Knoten der Liste durchgefuhrt,

um eine Entscheidung zu treffen:

wenn der Knoten nicht antwortet, wird er geloscht und der Senderknoten

zum Ende der Liste hinzugefugt;

wenn der Knoten antwortet, wird er zum Ende der Liste verschoben und

Senderknoten”vergessen“.

Also wird ein neuer Knoten zum k-Bucket hinzugefugt nur dann, wenn ein alter

Knoten das System verlasst. Dadurch ist das System zum DoS-Attacke resistent.

Das Kademlia-Protokoll besteht aus vier Befehlen: PING, STORE, FIND NODE

und FIND VALUE. Der PING-Befehl dient dazu, die Verfugbarkeit des gegebenen

Knotens zu prufen. Der STORE-Befehl wird fur das Speichern eines Schlussel-Wert

Paars in einem Knoten benutzt.

Der FIND NODE-Befehl nimmt einen 160-Bit Bezeichner als Parameter an. Der

Empfanger dieses Befehls gibt das Triplett”IP-Adresse, UDP-Port und Knotenbezeich-

ner“ der k ihm bekannten Knoten, deren Bezeichner nachst zum Ziel liegen, zuruck.

Diese Knoten konnen von einem k-Bucket und auch von mehreren k-Buckets, falls der

nachste k-Bucket nicht voll ist, sein. Auf jedem Fall muss die Antwort genau k Eintra-

ger beinhalten (es kann nur dann weniger sein, wenn in allen k-Buckets eines Knoten

weniger als k Eintrager existieren).

Der FIND VALUE-Befehl funktioniert ahnlich wie FIND NODE mit nur einer Aus-

nahme: falls der Empfanger einen STORE-Befehl mit gleichem Schlussel bekommen

hat, gibt er nur den gespeicherten Wert zuruck.

Jeder Befehl muss ein Echo eines zufalligen 160-Bit Befehlsschlussels in der Ant-

wortnachricht zuruckgeben, wodurch ein bisschen Resistenz gegen Verfalschung der

IP-Adresse besteht.

Hauptseminararbeit Mikhail Tarasov

Page 24: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

4 Beispiele von VHT 22

Die Hauptprozedur, die jeder Kademlia-Teilnehmer realisieren muss, ist die Suche

einer Menge von k Knoten mit den Bezeichnern, die nachst zu einem Schlussel sind.

Dafur wird ein rekursiver Algorithmus verwendet. Ein Initiator fangt mit der Aus-

wahl der α Knoten aus dem nachsten nicht leeren k-Bucket an. Der Initiator sendet

den α gewahlten Knoten einen FIND NODE-Befehl parallel und asynchron. α ist ein

Konkurrenzparameter des Systems, z.B. 3.

In dem rekursiven Schritt sendet der Initiator dem Knoten aus den Antworten auf

den vorherigen Befehl wieder einen neuen FIND NODE-Befehl. Aus k Knoten aus jeder

Antwort wahlt der Initiator α den nachsten Knoten zum Ziel, der noch nicht abgefragt

wurden, aus. Die Knoten, die nicht geantwortet haben, werden aus der Behandlung

entnommen. Die Suche wird dann beendet, wenn der Initiator die Antworten von k

nachsten Knoten bekommen hat. Durch die Auswahl eines der k Knoten kann Kademlia

flexibel fur eine Nachricht einen optimalen Pfad finden.

Wegen der Unidirektionalitat der Topologie ist der Cache-Mechanismus effizient.

Um”over-caching“ zu vermindern, wird die Lebenszeit eines Schlussel-Wert Paars in

der Datenbank exponential umgekehrt proportional der Anzahl der Knoten zwischen

aktuellem und nachstem zum Ziel Knoten begrenzt.

Die k-Buckets werden durch die weitergeleiteten Nachrichten standig aktualisiert.

Um die fehlerhaften Situationen, wenn kein Verkehr existiert, zu verhindern, aktuali-

siert der Knoten die k-Buckets, in welchen Gebieten keine Suchprozedur stattgefunden

hat, ein Mal pro Stunde durch die Suche eines zufalligen Schlussels des entsprechenden

Bereichs.

Wenn ein neuer Knoten A zum System hinzugefugt werden will, muss er mit einem

bereits existierenden Knoten B kommunizieren. Der Knoten A fugt den Knoten B zum

entsprechenden k-Bucket hinzu und initiiert die Suchprozedur mit eigenem Bezeichner.

Zuletzt aktualisiert der neue Knoten alle eigenen k-Buckets.[MaMa02]

Hauptseminararbeit Mikhail Tarasov

Page 25: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

5 Zusammenfassung und Ausblick 23

5 Zusammenfassung und Ausblick

In Rahmen dieser Arbeit wurden die Grundprinzipien der P2P-Systemen untersucht.

Die P2P-Systeme konnen uber mehrere Wege klassifiziert werden. Einmal konnen die

P2P-Netze auf drei Typen der Topologie: zentralisierte, voll dezentralisierte und ge-

mischte oder hybride aufgeteilt werden. In der Entwicklung der P2P-Netze konnen die

3 Generationen unterschieden werden. Eine andere Klassifikationsmoglichkeit ist die

Unterscheidung von strukturierten und unstrukturierten Netzen.

Das Hauptziel dieser Arbeit war die Untersuchung der Technologie von verteilten

Hashtabellen (VHT). Diese Untersuchung wurde auf Basis der 3 verschiedenen Net-

zen: CAN, Pastry und Kademlia durchgefuhrt. Durch das Verwenden von verteilten

Hashtabellen konnen die Hauptprobleme der vorhergehenden P2P-Generationen gelost

werden. Die Netze, die diese Technologie benutzen, sind selbstorganisierenden, skalier-

baren und robusten Systemen, die eine breite Anwendung in verschiedenen Bereichen

von Vergnugen bis zu großen wissenschaftlichen Projekten finden konnen.

Hauptseminararbeit Mikhail Tarasov

Page 26: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

Literaturverzeichnis 24

Literaturverzeichnis

[BQXFSX07] Gao Bao-Qing, Fu Xiu-Fen und Xu Su-Xia. P2P Distributed Cooperative

Work Model Based on JXTA Platform. Lecture Notes in Computer

Science. Springer Berlin / Heidelberg. 2007.

[CDHR02] M. Castro, P. Druschel, Y. Hu und A. Rowstron. Topologyaware routing

in structured peer-to-peer overlay networks. 2002. Letzte Abfrage dem

05.01.2009.

[HHKS+08] Oliver Hanka, Quirin Hofstatter, Gerald Kunzmann, Christoph Spleiß

und Stefan Zols. TUM LKN Forschungsgruppe (P2PG). Technische Uni-

versitat Munchen, Lehrstuhl fur Kommunikationsnetze, http://www.

lkn.ei.tum.de/forschung/gruppen/p2pg/?lang=de, Mai 2008. Pro-

jektseite einer P2P-Forschungsgruppe an der TU Munchen, letzte Ab-

frage dem 05.01.2009.

[JKZh] Yan Chen Steven Czerwinski Patrick Eaton Dennis Geels Ramakrishna

Gummadi Sean Rhea Hakim Weatherspoon Westley Weimer Chris Wells

John Kubiatowicz, David Bindel und Ben Zhao.

[link02] Gnutella 0.6. http://rfc-gnutella.sourceforge.net/src/rfc-0_

6-draft.html, 2002. Request for Comments: NNNN (draft).

[MaMa02] Petar Maymounkov und David Mazieres. Kademlia: A Peer-to-

Peer Information System Based on the XOR Metric. 2002. http:

//www.cs.rice.edu/Conferences/IPTPS02/109.pdf, letzte Abfrage

dem 05.01.2009.

[Peer] Peer to Peer File Sharing Networks Arollo, http://www.peer-to-peer.

arollo.com/p2pgens.html. Three Generations of P2P. Die Internet

seite des Arollo Peer-to-Peer-Projekts. Drei Generationen von P2P, letz-

te Abfrage dem 05.01.2009.

Hauptseminararbeit Mikhail Tarasov

Page 27: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

Literaturverzeichnis 25

[RKCD01] Antony Rowstron, Anne marie Kermarrec, Miguel Castro und Peter

Druschel. Scribe: The design of a large-scale event notification infra-

structure. In In Networked Group Communication, 2001, S. 30–43.

[RoDr] Antony Rowstron und Peter Druschel. Pastry: Scalable, decentralized ob-

ject location and routing for large-scale peer-to-peer systems. Microsoft

Research Ltd, http://research.microsoft.com/en-us/um/people/

antr/past/pastry.pdf. Letzte Abfrage dem 05.01.2009.

[RoDr01] Antony Rowstron und Peter Druschel. Storage management and caching

in PAST, a large-scale, persistent peer-to-peer storage utility. SIGOPS

Oper. Syst. Rev. 35(5), 2001, S. 188–201.

[Skyp] Skype Technologies, http://www.skype.com. Skype. Internetseite von

Skype Technologies.

[SRYu05] Brad Karp John Kubiatowicz Sylvia Ratnasamy Scott Shenker Ion Stoi-

ca Sean Rhea, Brighten Godfrey und Harlan Yu. OpenDHT: A Public

DHT Service and Its Uses. http://www.opendht.org/f230-rhea.pdf,

2005. Proceedings of ACM SIGCOMM 2005, letzte Abfrage dem

05.01.2009.

[Sun 08] Sun Microsystems, https://jxta.dev.java.net/. jxta: JXTA(TM)

Community Projects, Dezember 2008. Projektseite des JXTA(TM) Com-

munity Projekts.

[Sylv00] Mark Handley Richard Karp Scott Shenker Sylvia Ratnasamy,

Paul Francis. A Scalable Content Addressable Network. Interna-

tional Computer Science Institute, http://www.icsi.berkeley.edu/

cgi-bin/pubs/publication.pl?ID=001185, Oktober 2000. Letzte Ab-

frage dem 05.01.2009.

[UNIV08] UNIVA United Devices, http://www.univaud.com/. Project: Univa

UD: The Leaders in High Performance Computing (HPC) and Data

Center Automation and Virtualization Software, Dezember 2008. Pro-

jektseite der UNIVA United Devices.

[Wiki09a] Wikipedia, the free encyclopedia, http://en.wikipedia.org/wiki/

Hash_table. Hash table, Januar 2009. Wikipedia-Artikel, letzte Ab-

frage dem 05.01.2009.

Hauptseminararbeit Mikhail Tarasov

Page 28: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

Literaturverzeichnis 26

[Wiki09b] Wikipedia, the free encyclopedia, http://en.wikipedia.org/wiki/

Napster. Napster, Januar 2009. Wikipedia-Artikel, letzte Abfrage dem

05.01.2009.

[Wiki09c] Wikipedia, the free encyclopedia, http://de.wikipedia.org/wiki/

Verteilte_Hashtabelle. Verteilte Hashtabelle, Januar 2009.

Wikipedia-Artikel, letzte Abfrage dem 05.01.2009.

Hauptseminararbeit Mikhail Tarasov

Page 29: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

Abbildungsverzeichnis 27

Abbildungsverzeichnis

2.1 Beispiel eines P2P-Netzes . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 P2P-Netz mit voll zentralisierter Struktur . . . . . . . . . . . . . . . . 4

2.3 Ein P2P-Netz mit einer gemischten Struktur . . . . . . . . . . . . . . . 6

3.1 Ein Overlay-Netz auf Basis eines IP-Netzes . . . . . . . . . . . . . . . . 8

3.2 Eine Hashtabelle. Nach [Wiki09a] . . . . . . . . . . . . . . . . . . . . . 10

4.1 Beispiel des CANs mit 5 Knoten im 2-dimensionalen Raum. Nach [Sylv00] 13

4.2 Routingtabelle einer Pastry-Knoten mit dem NodeID 65a1x, b=4. Die

entsprechenden IP-Adressen werden nicht gezeigt. Nach [CDHR02] . . . 19

4.3 Routing einer Nachricht mit dem Schlussel d46a1c von Knoten 65a1fc.

Nach [CDHR02] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Hauptseminararbeit Mikhail Tarasov

Page 30: Technische Universit at Ilmenau Fakult at fu r Elektrotechnik ...midas1.e-technik.tu-ilmenau.de/.../hs_tarasov.pdfTechnische Universit at Ilmenau Fakult at fu r Elektrotechnik und

Abkurzungsverzeichnis 28

Abkurzungsverzeichnis

CAN . . . . . . . . . . . . . . . Content-Addressable Network

CSCW . . . . . . . . . . . . . Computer Supported Cooperativer Work

DoS . . . . . . . . . . . . . . . . Denial-of-Service

IRC . . . . . . . . . . . . . . . . Internet Relay Chat

P2P . . . . . . . . . . . . . . . . Peer-to-Peer

PDA . . . . . . . . . . . . . . . Personal Digital Asistant

QoS . . . . . . . . . . . . . . . . Quality of Service

UDP . . . . . . . . . . . . . . . User Datagram Protocol

VHT . . . . . . . . . . . . . . . Verteilte Hash Tabelle

XML . . . . . . . . . . . . . . . Extensible Markup Language

Hauptseminararbeit Mikhail Tarasov