Chord und Varianten

Werbung
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Chord und Varianten
Vortrag Seminar P2P Systeme
Werner Gaulke
17.07.2007
Werner Gaulke — Chord und Varianten
1/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Outline
1 Das Chord Projekt
2 Grundlagen
Distributed Hash Tables
3 Aufbau
Ringförmiger Aufbau
Operationen
Bewertung der Suche
4 Varianten
Chord Modifikationen
5 Fazit
Werner Gaulke — Chord und Varianten
2/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Die Entstehung von Chord
Ein kurzer Überblick
2001 auf der SIGCOMM vorgestellt. (Special Interest
Group on Data Communications)
Ist ein Projekt der Parallel and Distributed Operating
”
Systems Group“ des Massachusetts Institute of
”
Technology“.
Wurde vorgestellt von Ion Stoica, Robert Morris, David
Karger, M. Frans Kaashoek, Hari Balakrishnan.
Neben einer Referenzimplementierung existieren
zahlreiche Varianten geschrieben u.a. in C++, Java,
Python.
Zahlreiche öffentliche Artikel diskutieren über
Verbesserungen des Chord Systems.
Werner Gaulke — Chord und Varianten
3/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Ziele
Ziele des Chord Systems
Eigenschaften
Ausgeglichen - gleichmäßige Verteilung
Dezentral - alle Knoten gleichwertig
Skalierbar - performant in großen Netzen
Verfügbar - erreichen von allen Knoten
Flexible Namensgebung - keine Abhängigkeiten
Werner Gaulke — Chord und Varianten
4/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Peer 2 Peer der dritten Generation
Chord
verwendet verteilte Hash Tabellen (DHT) als Grundlage.
bildet die eigene Datenstrukt auf DHTs ab.
übernimmt die Routing-Funktionen in der DHT.
ist ein System der dritten Generation.
Werner Gaulke — Chord und Varianten
5/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Peer 2 Peer der dritten Generation
Chord
verwendet verteilte Hash Tabellen (DHT) als Grundlage.
bildet die eigene Datenstrukt auf DHTs ab.
übernimmt die Routing-Funktionen in der DHT.
ist ein System der dritten Generation.
Werner Gaulke — Chord und Varianten
5/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Peer 2 Peer der dritten Generation
Chord
verwendet verteilte Hash Tabellen (DHT) als Grundlage.
bildet die eigene Datenstrukt auf DHTs ab.
übernimmt die Routing-Funktionen in der DHT.
ist ein System der dritten Generation.
Werner Gaulke — Chord und Varianten
5/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Peer 2 Peer der dritten Generation
Chord
verwendet verteilte Hash Tabellen (DHT) als Grundlage.
bildet die eigene Datenstrukt auf DHTs ab.
übernimmt die Routing-Funktionen in der DHT.
ist ein System der dritten Generation.
Werner Gaulke — Chord und Varianten
5/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Verteilte Hash Tabellen
Funktion und Aufbau
Eine Hash Tabelle
Schlüssel k werden Werten v zugeordnet.
Schlüssel befinden sich in einem geeigneten
Schlüsselraum.
Verteilte Hash Tabellen
Schlüssel zeigen auf Daten.
Knoten zeigen auf Netzteilehmer.
beides wird in einem Schlussraum gehasht.
Werner Gaulke — Chord und Varianten
6/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Distributed Hash Tables
Hashfunktion und Schlüsselraum
Werner Gaulke — Chord und Varianten
7/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Distributed Hash Tables
Hashfunktion und Schlüsselraum
Werner Gaulke — Chord und Varianten
7/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Distributed Hash Tables
Hashfunktion und Schlüsselraum
Werner Gaulke — Chord und Varianten
7/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Distributed Hash Tables
Hashfunktion und Schlüsselraum
Werner Gaulke — Chord und Varianten
7/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Der Chord Ring
Abbildung der DHT auf einen Ring
Werner Gaulke — Chord und Varianten
8/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Der Chord Ring
Abbildung der DHT auf einen Ring
Werner Gaulke — Chord und Varianten
8/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Der Chord Ring
Abbildung der DHT auf einen Ring
Werner Gaulke — Chord und Varianten
8/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Der Chord Ring
Zusammenfassend
Der Ring
Schlüssel und Knoten der DHT werden im Uhrzeigersinn
angeordnet.
Zwischen den Knoten bilden sich Schlüsselintervalle.
Schlüssel eines Invervalls werden dem nachfolgenden
Knoten zugeordnet.
Frage: Wie stehen die Knoten in Verbindung zueinander?
Werner Gaulke — Chord und Varianten
9/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Der Chord Ring
Zusammenfassend
Der Ring
Schlüssel und Knoten der DHT werden im Uhrzeigersinn
angeordnet.
Zwischen den Knoten bilden sich Schlüsselintervalle.
Schlüssel eines Invervalls werden dem nachfolgenden
Knoten zugeordnet.
Frage: Wie stehen die Knoten in Verbindung zueinander?
Werner Gaulke — Chord und Varianten
9/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Die Finger Tabellen
Die Zeigerliste der Knoten
Aufbau Fingertabelle
Jeder Knoten besitzt logn
Finger.
Die Einträge zeigen auf
folgende Knoten im Ring.
Berechnungsvorschrift:
k(n) = (n + 2i )mod 2m .
Befindet sich bei k(n) kein
Knoten, wird der
Nachfolger verwendet.
Werner Gaulke — Chord und Varianten
10/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Operationen im Chord Ring
Grundlegende Operationen zum Nutzen des P2P Systems
Nötige Operationen/Funktionen
Notwendig um ein lauffähiges P2P Netz zu betreiben:
Einfügen von Knoten
Entfernen von Knoten
Stabilisieren des Netzes
Suchen von Schlüsseln
Werner Gaulke — Chord und Varianten
11/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Einfügen
Einfügen von Knoten in den Ring
Ablauf - Einfügen von Knoten
Knoten n möchte Ring betreten:
1 Es muss ein vorhandener
Knoten e gefunden werden.
2 n Ordnet sich hinter seinem
Nachfolger ein.
3 n bekommt seine Schlüssel
zugewiesen.
4 n’s Vorgänger aktualisieren
ihre Finger (stabilisieren).
Werner Gaulke — Chord und Varianten
12/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Einfügen
Einfügen von Knoten in den Ring
Ablauf - Einfügen von Knoten
Knoten n möchte Ring betreten:
1 Es muss ein vorhandener
Knoten e gefunden werden.
2 n Ordnet sich hinter seinem
Nachfolger ein.
3 n bekommt seine Schlüssel
zugewiesen.
4 n’s Vorgänger aktualisieren
ihre Finger (stabilisieren).
Werner Gaulke — Chord und Varianten
12/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Einfügen
Einfügen von Knoten in den Ring
Ablauf - Einfügen von Knoten
Knoten n möchte Ring betreten:
1 Es muss ein vorhandener
Knoten e gefunden werden.
2 n Ordnet sich hinter seinem
Nachfolger ein.
3 n bekommt seine Schlüssel
zugewiesen.
4 n’s Vorgänger aktualisieren
ihre Finger (stabilisieren).
Werner Gaulke — Chord und Varianten
12/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Einfügen
Einfügen von Knoten in den Ring
Ablauf - Einfügen von Knoten
Knoten n möchte Ring betreten:
1 Es muss ein vorhandener
Knoten e gefunden werden.
2 n Ordnet sich hinter seinem
Nachfolger ein.
3 n bekommt seine Schlüssel
zugewiesen.
4 n’s Vorgänger aktualisieren
ihre Finger (stabilisieren).
Werner Gaulke — Chord und Varianten
12/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Entfernen
Entfernen von Knoten aus dem Ring
Ablauf - Ausfall von Knoten
1 Knoten verlassen
geplant/ungeplant den Ring.
2 Schlüssel werden den neuen
Nachfolgern zugeordnet.
3 Sobald Vorgänger Ausfall
bemerkt, kontaktiere
nächsten aktiven Knoten.
4 Aufruf der Stabilisieren
Funktion entfernt inaktive
Knoten.
Werner Gaulke — Chord und Varianten
13/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Entfernen
Entfernen von Knoten aus dem Ring
Ablauf - Ausfall von Knoten
1 Knoten verlassen
geplant/ungeplant den Ring.
2 Schlüssel werden den neuen
Nachfolgern zugeordnet.
3 Sobald Vorgänger Ausfall
bemerkt, kontaktiere
nächsten aktiven Knoten.
4 Aufruf der Stabilisieren
Funktion entfernt inaktive
Knoten.
Werner Gaulke — Chord und Varianten
13/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Entfernen
Entfernen von Knoten aus dem Ring
Ablauf - Ausfall von Knoten
1 Knoten verlassen
geplant/ungeplant den Ring.
2 Schlüssel werden den neuen
Nachfolgern zugeordnet.
3 Sobald Vorgänger Ausfall
bemerkt, kontaktiere
nächsten aktiven Knoten.
4 Aufruf der Stabilisieren
Funktion entfernt inaktive
Knoten.
Werner Gaulke — Chord und Varianten
13/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Entfernen
Entfernen von Knoten aus dem Ring
Ablauf - Ausfall von Knoten
1 Knoten verlassen
geplant/ungeplant den Ring.
2 Schlüssel werden den neuen
Nachfolgern zugeordnet.
3 Sobald Vorgänger Ausfall
bemerkt, kontaktiere
nächsten aktiven Knoten.
4 Aufruf der Stabilisieren
Funktion entfernt inaktive
Knoten.
Werner Gaulke — Chord und Varianten
13/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Entfernen
Gleichzeitiger Ausfall mehrerer Knoten
Mögliche Probleme
Isolierte Knoten
Unzugängliche Schlüssel
Zerteilung des Rings
Werner Gaulke — Chord und Varianten
14/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Stabilisieren
Stabilisieren des Chord Netzes
Funktion
Der Ring ist stetigen Änderungen unterlegen. Dies führt zu
fehlerhaften Zeigern im Ring.
Lösung: Mechanismus zur Aktualisierung.
Funktionen der Stabilisierung
Frage den Nachfolger nach dem Vorgänger ⇒ falls
ungleich, übernehme die Antwort als neuen Nachfolger.
Prüfen ob Vorgänger aktiv ⇒ falls inaktiv, ersetze durch
erste Anfrage.
Prüfe, ob die Finger noch aktiv sind ⇒ falls inaktiv,
ersetze durch aktive.
Werner Gaulke — Chord und Varianten
15/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Suchen
Suchen von Knotem im Ring
Ablauf der Suche
Ausgehend von einem Knoten n
1 Suchanfrage nach Schlüssel
14 wird gestartet.
2 n wählt dichtesten Knoten
aus der Fingertabelle.
3 Weiterleiten der Suchanfrage,
wenn der Schlüssel nicht
bekannt.
4 Schlüssel bekannt ⇒ Suche
erfolgreich.
Werner Gaulke — Chord und Varianten
16/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Suchen
Suchen von Knotem im Ring
Ablauf der Suche
Ausgehend von einem Knoten n
1 Suchanfrage nach Schlüssel
14 wird gestartet.
2 n wählt dichtesten Knoten
aus der Fingertabelle.
3 Weiterleiten der Suchanfrage,
wenn der Schlüssel nicht
bekannt.
4 Schlüssel bekannt ⇒ Suche
erfolgreich.
Werner Gaulke — Chord und Varianten
16/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Suchen
Suchen von Knotem im Ring
Ablauf der Suche
Ausgehend von einem Knoten n
1 Suchanfrage nach Schlüssel
14 wird gestartet.
2 n wählt dichtesten Knoten
aus der Fingertabelle.
3 Weiterleiten der Suchanfrage,
wenn der Schlüssel nicht
bekannt.
4 Schlüssel bekannt ⇒ Suche
erfolgreich.
Werner Gaulke — Chord und Varianten
16/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Suchen
Suchen von Knotem im Ring
Ablauf der Suche
Ausgehend von einem Knoten n
1 Suchanfrage nach Schlüssel
14 wird gestartet.
2 n wählt dichtesten Knoten
aus der Fingertabelle.
3 Weiterleiten der Suchanfrage,
wenn der Schlüssel nicht
bekannt.
4 Schlüssel bekannt ⇒ Suche
erfolgreich.
Werner Gaulke — Chord und Varianten
16/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Performanz
Performanz der Suche
Laufzeitverhalten der Suche
Ohne Fingertabellen: Schlimmstenfalls alle n Knoten.
Mit Fingertabellen: Schlimmstenfalls logn Sprünge.
Fingertabelle ermöglicht mit jedem Sprung halbieren der
Distanz zum Ziel: binäre Suche.
Werner Gaulke — Chord und Varianten
17/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Performanz
Performanz der Suche
Laufzeitverhalten der Suche
Ohne Fingertabellen: Schlimmstenfalls alle n Knoten.
Mit Fingertabellen: Schlimmstenfalls logn Sprünge.
Fingertabelle ermöglicht mit jedem Sprung halbieren der
Distanz zum Ziel: binäre Suche.
Werner Gaulke — Chord und Varianten
17/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Chord Modifikationen
Allgemeine Modifikationen
Priorisierung nach Latenz: Anordnen der Knoten nach
Latenz zum verkleinern der Suchzeit.
Zerteilte Ringe: Zufällige Anfragen an Knoten im Netz
um Zerteilungen zu bemerken.
Absicherung gegen Angreifer: Verbinden von IP mit
Ringposition um gezieltes im Ring platzieren zu
verhindern.
Werner Gaulke — Chord und Varianten
18/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Verschiedene Chord Modifikationen
EPI Chord: Paralelle Suchanfrage an n Knoten. Ersetzen
der Fingertabellen durch Caches.
Erasure Codes: Zerteilen der Daten in n, von denen k < n
zum rekonstruieren ausreichen.
B-Chord: Vorgänger und Nachfolger in der Fingertabelle.
Auswahl des günstigeren Knotens.
S-Chord: Fingertabelle berechnet Knoten gegen und mit
dem Uhrzeigersinn.
Werner Gaulke — Chord und Varianten
19/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Fazit
Bewertung des Chord Systems
Vorteile
Vorteile der DHTs.
Verbinden der DHT mit einfacher Struktur.
Algorithmen mit gutem theoretischen Laufzeitverhalten.
Nachteile
Asymmetrie: Suche von n nach p ungleich p nach n.
Wandern durch den ganzen Ring, wenn Schlüssel bei
Vorgängern des Startknotens liegt.
Suche nur nach exakten Schlüsseln.
Keine Vorkehrungen gegen Angriffe.
In der Praxis latenzbedingte Schwäche.
Werner Gaulke — Chord und Varianten
20/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Ende
Vielen Dank für eure Aufmerksamkeit!
Werner Gaulke — Chord und Varianten
21/22
Das Chord Projekt Grundlagen Aufbau Varianten Fazit
Bewertung der Modifikationen
Priorisierung nach Latenz
Zerteilte Ringe
Absicherung gegen Angreifer
EPI Chord: Paralelle Suche, Caches anstatt Finger.
Erasure Codes
B-Chord: Vorgänger und Nachfolger in der Fingertabelle.
S-Chord: Fingertabelle berechnet Knoten gegen und mit
dem Uhrzeigersinn.
Werner Gaulke — Chord und Varianten
22/22
Herunterladen