Peer-to-Peer-Netzwerke Rolf Wanka Sommersemester 2007 11. Vorlesung 05.07.2007 [email protected] basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Peer-to-Peer-Netzwerke Inhalte • Kurze Geschichte der Peer-to-PeerNetzwerke • Das Internet: Unter dem Overlay • Die ersten Peer-to-Peer-Netzwerke – Napster – Gnutella • • • • CAN Chord Pastry Gradoptimierte Netzwerke – Viceroy – Distance-Halving • Netzwerke mit Suchbäumen – Skipnet und Skip-Graphs – P-Grid • Selbstorganisation – Pareto-Netzwerke – Zufallsnetzwerke • Sicherheit in Peer-to-PeerNetzwerken • Anonymität • Datenzugriff: Der schnellere Download • Peer-to-Peer-Netzwerke in der Praxis – eDonkey – FastTrack – Bittorrent • Peer-to-Peer-Verkehr • Juristische Situation Peer-to-Peer-Netzwerke 2 Pastry: Einfügen eines Peers • Neuer Knoten X sendet Nachricht an Knoten Z mit längstem gemeinsamen Präfix p • X erhält – Routingtabelle von Z – Nachbarschaftsmenge von Z • Z aktualisiert Nachbarschaftsmenge • X informiert ℓ-Nachbarschaft • X informiert Peers in Routing-Tabelle – mit gleichem Präfix p außerhalb der ℓ-Nachbarschaft (falls ℓ/2 < 2b) Aufwand für Einfüge-Operation: – ℓ Nachrichten an Nachbarschaft – Erwartet (2b - ℓ/2) Nachrichten an Knoten mit gemeinsamen Präfix – Eine Nachricht an Knoten Z mit Antwort Peer-to-Peer-Netzwerke 3 Pastry: Wenn das Einfügen versagt • Die Übernahme der Nachbarschaftsmenge vom nächstgelegenen Peer reicht im allgemeinen nicht • Beispiel: – Falls kein Peer mit 1* vorhanden ist, müssen alle anderen Peers auf den neuen Knoten zeigen – Einfügen von 11: – 03 kennt aus Routing-Tabelle • 22,33 • 00,01,02 – 02 kennt aus Leaf-Set • 01,02,20,21 • 11 kann nicht alle notwendigen Links veranlassen Peer-to-Peer-Netzwerke 4 Fehlender Eintrag in Routing-Table Annahme: • Tabelleneintrag Riℓ fehlt in Peer D – ℓ-te Zeile und i-te Spalte der Routing-Table • Wird festgestellt, sobald eine Nachricht von einem Peer mit diesem Präfix ankommt • Kommt auch vor, falls ein Peer das Netzwerk verlässt • Kontaktiere Peers in derselben Zeile • Falls Peer bekannt ist, wird Adresse kopiert • Falls dies scheitert, führe Routing zu dieser Adresse durch Peer-to-Peer-Netzwerke 5 Lokalisierung der nächsten Knoten • Direkte Nachbarn bzgl. Node-ID im Peer-to-Peer-Netzwerk sind nicht Knoten in der Nähe – z.B. Link von Neuseeland nach Mittelfranken – von Indien nach Kalifornien • Das TCP-Protokoll des Internets misst Latenzzeiten – Damit kann eine Metrik definiert werden – Diese ist die Grundlage zur Suche nach den nächsten Peers • Damit können die Einträge in der Routing-Table optimiert werden • Sämtliche Verfahren in Pastry beruhen hier auf Heuristiken – D.h. es gibt keinen mathematischen Nachweis der Güte der Verfahren • Annahme: Metrik ist Euklidisch Peer-to-Peer-Netzwerke 6 Lokalität in der Routing-Tabelle • Annahme: – Beim Einfügen eines Peers A in Pastry kontaktiert der Knoten zuerst einen nahen Knoten P – Alle Knoten haben schon ihre RoutingTable optimiert • Aber: – Der zuerst kontaktierte Peer P ist bezüglich der Node-ID nicht nah • 1. Schritt – Kopiere Einträge der ersten Zeile der Routing-Table von P • wegen der Dreiecksungleichung sind diese Einträge recht gut • 2. Schritt – Kontaktiere passenden Peer P´ von P mit gleichen ersten Buchstaben – Wiederum sind diese Einträge relativ nah • Wiederhole diese Schritte bis alle Tabelleneinträge gefüllt sind Peer-to-Peer-Netzwerke 7 Lokalität im Routing • Für jeden Eintrag in der RoutingTabelle wird der nächste Knoten gemäß der Latenzzeit gewählt – Routing wählt nicht unbedingt den kürzesten Weg (bezüglich der Latenzmetrik) – Dennoch Hoffnung auf kurze Wege • Warum? – Mit der Länge des gemeinsamen Präfix steigt die erwartete Latenzmetrik exponentiell – Damit sind die letzten Sprünge am teuersten – Hier greift aber die Menge M Peer-to-Peer-Netzwerke 8 Experimentelle Resultate Skalierung • Parameter b = 4, ℓ = 16, M = 32 • In diesem Experiment steigt die durchschnittlich Hop-Distanz logarithmisch mit der Knotenanzahl an • Analyse sagt hier 4 log n voraus • Gute Übereinstimmung Peer-to-Peer-Netzwerke 9 Experimentelle Resultate Verteilung der Routing-Hops • Parameter b = 4, ℓ = 16, M = 32, n = 100 000 • Ergebnis: – Die Abweichung von der erwarteten Hop-Distanz ist extrem gering • Analyse sagt Abweichung mit extrem kleiner Wahrscheinlichkeit voraus – Gute Übereinstimmung Peer-to-Peer-Netzwerke 10 Experimentelle Resultate Latenzzeit • Parameter b = 4, ℓ =16, M = 3 • Im Vergleich zum kürzesten Weg erstaunlich gering – scheint zu stagnieren Peer-to-Peer-Netzwerke 11 Kritische Betrachtung der Experimente • Experimente geschahen in einer (gutartigen) Simulationsumgebung • Mit b = 4, ℓ = 16 wird die Anzahl der Links pro Knoten relativ groß – Damit kann der Faktor 2b/b = 4 das Ergebnis erheblich beeinflussen – Beispiel n = 100 000 • 2b/b log n = 4 log n > 60 Links in Routing-Tabelle • Hinzu kommen noch 16 Links in Leaf-Set und 32 in M • Dadurch ist der Grad im Verhältnis zu anderen Protokollen wie CHORD enorm groß • Annahme Euklidischer Latenzzeiten aus der Luft gegriffen Peer-to-Peer-Netzwerke 12 Experimentelle Untersuchungen Knotenausfälle • Parameter b = 4, ℓ = 16, M = 32, n = 5000 • • • No fail: vor Ausfall No repair: 500 von 5000 Peers fallen aus Repair: Nach Reparatur der Routing-Tabellen Peer-to-Peer-Netzwerke 13 Zusammenfassung • Beruht auf dem Routing-Prinzip von – Plaxton, Rajamaran und Richa – Verallgemeinerung vom Routing auf dem Hypercube • Pastry – – – – Heuristiken für die Metrik Experimentelle Verifikation ersetzt analytische Untersuchungen Praktisch umsetzbar Durch Leaf-Sets sehr robust Peer-to-Peer-Netzwerke 14 Inhalte • Kurze Geschichte der Peer-to-PeerNetzwerke • Das Internet: Unter dem Overlay • Die ersten Peer-to-Peer-Netzwerke – Napster – Gnutella • • • • CAN Chord Pastry Gradoptimierte Netzwerke – Viceroy – Distance-Halving • Netzwerke mit Suchbäumen – Skipnet und Skip-Graphs – P-Grid • Selbstorganisation – Pareto-Netzwerke – Zufallsnetzwerke • Sicherheit in Peer-to-PeerNetzwerken • Anonymität • Datenzugriff: Der schnellere Download • Peer-to-Peer-Netzwerke in der Praxis – eDonkey – FastTrack – Bittorrent • Peer-to-Peer-Verkehr • Juristische Situation Peer-to-Peer-Netzwerke 15 Gradoptimierte Netzwerke Viceroy A Scalable and Dynamic Emulation of the Butterfly Dahlia Malkhi, Moni Naor, David Ratajczak 2001 Peer-to-Peer-Netzwerke 16 Erreichbarer Durchmesser • CHORD, Pastry: – Durchmesser O(log n) – Grad O(log n) • Gesucht: – Netzwerk mit kleinem Ausgangsgrad – D.h. Eingangsgrad, Ausgangsgrad konstant, O(1) – Durchmesser O(log n) • Lösung: – Viceroy – Distance-Halving-Netzwerk Peer-to-Peer-Netzwerke 17 Definition Butterfly-Graph (mit wrap-around-Kanten) • Knoten: (i, S) – i ist aus {0,..,k-1} – S ist k-stelliger Binärstring • Interpretation – m = 2k Knoten pro Ebene – k Ebenen – In der Regel werden die Knoten der k-ten Ebene zweimal gezeichnet • Kanten: Von (i, (b0,..,bi, ..., bk-1)) nach ((i+1) mod k, (b0,..,bi, ..., bk-1)) und ((i+1) mod k, (b0,..,1-bi, ..., bk-1)) Peer-to-Peer-Netzwerke 18 Eigenschaften Butterfly-Graph • Kleiner Grad – Eingangsgrad + Ausgangsgrad = 4 • Kleiner Durchmesser – mit log m = log n + log log n optimal • Gute Simluationseigenschaften – Andere Netzwerke können sehr effizient in einen Butterfly-Graphen eingebettet werden – D.h. Eine Kante eines anderen Netzwerks wird durch sehr kurze Pfade im Butterfly-Graph ersetzt • Einfache Routing-Algorithmen – Routing-Entscheidung in konstanter Zeit möglich • Kaum Flaschhälse – Mit hoher W‘keit: Kein Knoten wird beim Routing mit Nachrichten überlastet • Hohe Fehlertoleranz – Ausfall von Knoten kann gut toleriert werden Peer-to-Peer-Netzwerke 19 Übersicht Viceroy • Zielsetzung – Skalierbarkeit – Bewältigung von Dynamik – Verteilung des Traffic • Congestion – Maximale Anzahl Nachrichten, die ein Peer zu bewältigen hat • Kosten für Peer-Aufnahme/Entfernen – Minimierung Anzahl Nachrichten/Zeit • Dilation, Länge des Suchpfads • Viceroy war das erste P2P-Netzwerk mit optimaler Grad/Durchmesser-Beziehung – Techniken lassen sich auf andere Netzwerke übertragen Peer-to-Peer-Netzwerke 20 Ende der 11. Vorlesung Peer-to-Peer-Netzwerke Peer-to-Peer-Netzwerke