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