Vorlesungg P2P Netzwerke 2: Unstrukturierte 2: Unstrukturierte Netze Netze Dr. Dominic Battré Complex and Distributed IT‐Systems dominic battre@tu berlin de dominic.battre@tu‐berlin.de Inhalt ● Napster ■ Erstes "P2P" Netzwerk ■ Kein wirkliches P2P ■ Enormes Medienecho Æ Popularität für P2P ● Gnutella ■ Erstes "echtes" P2P Netzwerk ■ Interessante Netzwerkeigenschaften Interessante Netzwerkeigenschaften ● Eigenschaften von Gnutella ■ Pareto‐Netzwerke Pareto Netzwerke ■ Small‐World Netzwerke ● Super‐Peer Netzwerke Super Peer Netzwerke 11.04.2009 Dominic Battré ‐ P2P Netzwerke 2 Inhalte der Vorlesung (vorläufig) Einleitung • Was ist P2P? • Definition • Einsatzgebiete U Unstrukturierte Netze k i N • Napster • Gnutella • Super‐Peer Netzwerke Super Peer Netzwerke • Small‐World Netzwerke etc. Fortgeschrittenes • Sicherheit Strukturierte Netze • Verteilte Hash‐Tabellen • Grundlagen • Chord, CAN, Pastry, Kademlia • Programmieren von DHTs Programmieren von DHTs • Gradoptimierte Netzwerke • SkipNet, P‐Grid • Lastverteilung in strukturierten Netzen 11.04.2009 Dominic Battré ‐ P2P Netzwerke Anwendungen • OceanStore • BabelPeers • Amazon • Multicast 3 Literatur ● The Gnutella Protocol Specification v0.4 ● Mihajlo A. Jovanovic, Fred S. Annexstein, Kenneth A. Berman: h l d h "Scalability Issues in Large Peer‐to‐Peer Networks A Case Study of Gnutella". Technical report, University of Cincinnati, January 2001. ● Albert‐Laszlo Barabasi, Reka Albert: "Emergence of Scaling in Random Networks",, Science, Vol Random Networks Science, Vol 286, 1999. 286, 1999. ● Duncan J. Watts, Steven H. Strogatz: "Collective dynamics of 'small‐world' networks", Nature, Vol 393, 1998. ● Katharina A. Lehmann, Michael Kaufmann: "Random K h i A L h Mi h l K f "R d Graphs, Small‐Worlds and Scale‐Free Networks", Peer‐to‐Peer Systems and Applications ● Réka Albert, Hawoong Jeong, Albert‐László Barbási: "Error and attack tolerance of complex networks", Nature, Vol 406, 2000 11.04.2009 Dominic Battré ‐ P2P Netzwerke 4 Napster ● Netzwerk zum Tauschen von MP3‐Dateien ● Geschichte: ■ Mai 1999: Shawn Fanning (Northeastern University) gründet "Napster University) gründet Napster Online music Online music service service" ■ Dezember 1999: Erster Rechtsstreit ■ März 2000: University of Wisconsin: 25% des IP Datenaufkommens sind Napster Pakete ■ Dezember 2000: geschätzte 60 Millionen Anwender ■ Februar 2001: US Circuit Court of Februar 2001: US Circuit Court of Appeals: Appeals: Napster weiß dass die Anwender Copyright‐Rechte verletzen: Napster wird geschlossen ■ 2002: Bankrott ■ September 2008: Aufkauf durch Best Buy 11.04.2009 Dominic Battré ‐ P2P Netzwerke 5 Napster ● Fokussiert: Einfache Anwendung (suche nach Musikdateien) ● Suche über zentralen Server ● Datenaustausch dezentral Datenaustausch dezentral Registrierung Suche Registrierung, Suche Datenaustausch Napster Server 11.04.2009 Dominic Battré ‐ P2P Netzwerke 6 Napster ● Funktionsweise ■ ■ ■ ■ ■ Verbinde mit Napster Server Hochladen der eigenen Dateiliste auf den Server g Suche per Schlüsselwort‐Liste über den Server Wähle beste Antwort aus Direktverbindung mit Ziel‐Peer zum Download ● Nachteile ■ Zentraler Server ♦ Single Point of Single Point of Failure ♦ Skalierbarkeit? ■ Rechtliche Probleme Rechtliche Probleme 11.04.2009 Dominic Battré ‐ P2P Netzwerke 7 Gnutella ● Kein zentraler Server mehr ● Peers werden Servents genannt 11.04.2009 Dominic Battré ‐ P2P Netzwerke 8 Overlay‐Netzwerk ● Gnutella ist sog. Overlay über dem Internet 11.04.2009 Dominic Battré ‐ P2P Netzwerke 9 Problemstellungen ● Bootstrapping ■ Woher kenne ich Knoten im Netzwerk? ■ Mit welchen Knoten verbinde ich mich? ● Suche ■ Wie Wie finde ich Knoten, die Datei XYZ.MP3 anbieten? finde ich Knoten, die Datei XYZ.MP3 anbieten? ■ Wie finde ich den besten Knoten, der Datei XYZ.MP3 anbietet? ■ Der beste Knoten? ♦ Verbindung? ♦ Auslastung? ♦ Qualität der Datei? 11.04.2009 Dominic Battré ‐ P2P Netzwerke 10 Lösungen ● Bootstrapping ■ Allgemein bekannte Knoten (über Webserver) ■ Liste mit bekannten Knoten von vorheriger Session g ■ Weitere Knoten über die Startknoten kennenlernen ● Suche ■ Flooding: Suche an alle Knoten weiterschicken ■ Knoten merken sich IDs von gesehen Nachrichten, dies Knoten merken sich IDs von gesehen Nachrichten, dies verhindert Schleifen ■ TTL (Time to ( Live) begrenzt die Laufzeit einer Nachricht ) g 11.04.2009 Dominic Battré ‐ P2P Netzwerke 11 Gnutella Nachrichten Header für alle Nachrichten QUERY (0x80) Descriptor ID 16 Bytes Min Speed 2 Bytes Payload Descr. 1 Byte Search Criteria n Bytes TTL 1 Byte Hops 1 Byte Payload Length 4 Bytes PING (0x00) keine weiteren Felder QUERY HIT (0x81) QUERY HIT (0x81) Nb. of Hits 1 Byte Port 2 Bytes IP Address 4 Bytes Speed 4 Bytes Result Set: PONG (0x01) ‐ File Index 4 Bytes Port 2 Bytes ‐ File Size 4 Bytes n Bytes IP Address 4 Bytes ‐ File Name (+\0\0) Nb. of shared Files 4 Bytes ‐ … (weitere Result.) Nb. of shared KBytes Nb. of 4 Bytes 4 Bytes Servent Identifier 11.04.2009 Dominic Battré ‐ P2P Netzwerke 16 Bytes 16 Bytes 12 Abholen der Dateien ● Direkte Verbindung zum Servent ● Transfer durch HTTP ● Wenn Servent Wenn Servent hinter Firewall liegt: hinter Firewall liegt: ■ PUSH Nachricht über Gnutella routen PUSH (0x40) Servent Identifier 16 Bytes File Index 4 Bytes IP Address 4 Bytes Port 2 Bytes 2 Bytes 11.04.2009 Dominic Battré ‐ P2P Netzwerke 13 Routing in Gnutella Ping / Pong Query / Query Hit PING HIT PUSH HIT PING 11.04.2009 PUSH PONG PUSH QUERY PING QUERY QUERY HIT PING Push Push File Dominic Battré ‐ P2P Netzwerke 14 Probleme von Gnutella ● Hohe Netzwerklast ● Flooding ist äußerst unstrukturierte Vorgehensweise: ■ Ich frage fast jeden, ob er eine Datei liefern kann g j , ■ Begrenzung nur durch TTL ● Durch TTL werden evtl. Dateien nicht gefunden Durch TTL werden evtl Dateien nicht gefunden ● Gnutella‐Topologie hat nichts mit realer Topologie zu tun ■ Zig‐Zack Routen Zig Zack Routen ■ Daraus folgen hohe Latenzzeiten 11.04.2009 Dominic Battré ‐ P2P Netzwerke 15 Eigenschaften von Gnutella ● ● ● ● ● Was für ein Netzwerk wird aufgebaut? Ist das Netzwerk rein zufällig? Oder hat es bestimmte Eigenschaften? Oder hat es bestimmte Eigenschaften? Woher kommen diese Eigenschaften? Gibt es sog "Emergenz" Gibt es sog. Emergenz bzw. bzw "Selbstorganisation"? Selbstorganisation ? 11.04.2009 Dominic Battré ‐ P2P Netzwerke 16 Gradverteilung Quelle: Jovanovic Annexstein Berman: Quelle: Jovanovic, Annexstein, Berman: Scalability Issues in Large Peer‐to‐Peer Networks – A Case Study of Gnutella log(Anzahl Peers mit Grad d) = c g( ) – k log(d) g( ) 11.04.2009 Dominic Battré ‐ P2P Netzwerke 17 Gradverteilung ● Allgemein: Power‐Law (Pareto‐Verteilung) Pr( X = x) = C xk Auch geschrieben als Pr( X = x) ∝ x − k ● Bei Gnutella: C=94, k=1.4 ● Was hat man davon? Was hat man davon? ■ Power‐Law Netzwerke sind robust ■ Es gibt viele Knoten mit kleinem Grad, deren Ausfall nicht so Es gibt viele Knoten mit kleinem Grad deren Ausfall nicht so schlimm ist ● Wie kommt das zustande? Wie kommt das zustande? ■ „Preferential Attachement“: die Reichen werden reicher 11.04.2009 Dominic Battré ‐ P2P Netzwerke 18 Robustheit ● Nimm ein Netzwerk mit 10.000 Knoten, 20.000 Kanten (durchsch Grad 4) und entferne zufällig ausgewählte Knoten (durchsch. Grad=4) und entferne zufällig ausgewählte Knoten ● Zufallsnetzwerk G(n, p): ■ Entferne 5% der Knoten: Größte Komponente hat 9000 Knoten p ■ Entferne 18% der Knoten: Alle Komponenten zwischen 1 und 100 Knoten ■ Entferne 45% der Knoten: Nur Gruppen von 1 oder 2 Knoten Entferne 45% der Knoten: Nur Gruppen von 1 oder 2 Knoten überleben ● Power‐law Netzwerk: ■ EEntferne 5% der Knoten: Nur isolierte Knoten brechen weg f 5% d K N i li K b h ■ Entferne 18% der Knoten: Größte Komponente hat 8000 Knoten ■ Entferne 45% der Knoten: Immernoch große Komponenten g p ● Achtung: gilt nur für zufällige Ausfälle! Albert, et al. Error and attack tolerance of complex networks, Nature Vol Albert, et al. Error and networks, Nature Vol 406, 2000 406, 2000 11.04.2009 Dominic Battré ‐ P2P Netzwerke 19 Modell für Preferential Attachement ● Barabási‐Albert‐Modell: ■ Starte mit kleinem Netzwerk mit ein paar Kanten und Knoten ■ Pro Schritte füge einen Knoten hinzu g ■ Füge m Kanten vom neuen zu den bestehenden Knoten mit einer Wahrscheinlichkeit hinzu, die Proportional zum Grad des Knoten ist ● Effekt: Knoten verbinden sich mit bereits gut verbundenen Knoten mit höherer Wahrscheinlichkeit 11.04.2009 Dominic Battré ‐ P2P Netzwerke 20 Milgram's Experiment ● Wie sehen "reale" Netzwerke aus? ● Soziales Netzwerk von Menschen: Wer kennt wen? ● Milgram's Experiment (1967): ■ Briefe an einen Freund von Milgram wurden an zufällige Personen in Kansas u. Nebraska verschickt ■ "Routing‐Informationen": "R i I f i " ♦ Name der Zielperson ♦ Ort (Boston) Ort (Boston) ♦ Beruf (Börsenmakler) ■ Anweisung: nur an Du‐Freunde weitergeben g g ● Ergebnis: durchschnittlich 6 Schritte bis zum Ziel! ● (aber nur 3 von 60 Paketen kamen an) 11.04.2009 Dominic Battré ‐ P2P Netzwerke 21 Milgram's Experiment Quelle: http://en.wikipedia.org/wiki/File:Map_of_USA_with_state_names.svg 11.04.2009 Dominic Battré ‐ P2P Netzwerke 22 Milgram's Experiment ● Wie ist das möglich? ● These: Soziale Netzwerke haben folgende Eigenschaften: ■ Großer Clustering‐Koeffizient g ■ Kleiner Durchmesser bzw. charakteristische Pfadlänge ● Clustering Clustering‐Koeffizient Koeffizient eines Knotens: eines Knotens: C (i ) = {( j, k ) ∈ E | j, k ∈ N (i)} d (i )(d (i ) − 1) , N (i) = { j | (i, j ) ∈ E}, d (i) = N (i ) ■ N(i) = Nachbarn von i ■ d(i) = Ausgangsgrad A d ● Clustering‐Koeffizient eines Graphen: avg(C(i)) 11.04.2009 Dominic Battré ‐ P2P Netzwerke 23 Milgram's Experiment ● Wie ist das möglich? ● These: Soziale Netzwerke haben folgende Eigenschaften: ■ Großer Clustering‐Koeffizient g ■ Kleiner Durchmesser bzw. charakteristische Pfadlänge ● Durchmesser: Durchmesser: ■ Längster kürzester Pfad zwischen zwei Knoten ● Charakteristische Pfadlänge: Charakteristische Pfadlänge: ■ Durchschnittlicher kürzester Pfad zwischen zwei Knoten 11.04.2009 Dominic Battré ‐ P2P Netzwerke 24 Randnotiz: Erdös‐Nummer Paul Erdös (1913 – 1996) Berühmter Mathematiker Frage: Über wie viele Schritte ist jemand als Co‐Autor mit Paul Erdös verbunden? Beispiel: Odej Kao hat Erdös‐Nummer 4: Odej Kao ist Co‐Autor von Klaus H. Ecker Klaus H. Ecker ist Co‐Autor von Helmut Ratschek Helmut Ratschek ist Co‐Autor von Egbert Harzheim Egbert Harzheim ist Co‐Autor von Paul Erdös 11.04.2009 Dominic Battré ‐ P2P Netzwerke 25 Eigenschaften von Gnutella ● Untersuchung von 2000: Knoten Kanten Durch‐ messer Gnutella Clustering Koeffizient charakteristische Pfadlänge Gnutella Zufallsgr. Gnutella Zufallsgr. 13.11.2000 992 2465 9 0.0351 0.0078 3.72 4.49 16.11.2000 1008 1782 12 0.0109 0.0056 4.43 5.54 20.12.2000 1077 4094 10 0.0652 0.0094 3.31 3.66 27.12.2000 1026 3752 8 0.0630 0.0102 3.30 3.71 28.12.2000 1125 4080 8 0.0544 0.0090 3.33 3.77 ● Ergebnis: Clustering‐Koeffizient deutlich größer als beim Zufallsgraph, charakteristische Pfadlänge ähnlich bis kleiner 11.04.2009 Dominic Battré ‐ P2P Netzwerke 26 Watts und Strogatz ● Netzwerk‐Modell von Watts und Strogatz: ■ Starte mit einem Ring, jeder Knoten ist mit m/2 Nachfolgern verbunden ■ Durchlaufe den Ring und ersetze mit Wahrscheinlichkeit p das Ziel einer Kante durch ein zufällig ausgewähltes neues Ziel ■ Modelliert Übergang zwischen Ordnung und Chaos ● Eine kleine Anzahl von zufälligen Links reicht aus, um den Durchmesser zu reduzieren 11.04.2009 Dominic Battré ‐ P2P Netzwerke 27 Modell von Watts und Strogatz Watts und Strogatz p=0 11.04.2009 Dominic Battré ‐ P2P Netzwerke p=1 28 Übergang bei Watts / Strogatz C: Clustering‐Koeffizient g L: Charakteristische Pfadlänge 11.04.2009 Dominic Battré ‐ P2P Netzwerke 29 Netzwerktypen ● Small‐World Networks ■ Hoher Clustering‐Koeffizient ♦ Transitivität: wenn A B kennt und A C kennt, dann kennen sich B und C mit hoher W’keit ♦ Viele kleine (beinahe‐) Cliquen ■ Geringer Durchmesser ● Power‐Law Networks / Scale‐Free Networks ■ Wenige Knoten mit hohem Grad 11.04.2009 Felix Heine ‐ P2P Netzwerke 30 Zusammenfassung Gnutella ● Gnutella hat: ■ Gradverteilung nach Power‐Law ■ Einen hohen Clustering‐Koeffizienten g ■ Einen kleinen Durchmesser Æ Gnutella erzeugt ein Small‐World‐Netzwerk mit Power Law Gradverteilung mit Power‐Law Gradverteilung. Das passiert selbstorganisierend (emergent) 11.04.2009 Dominic Battré ‐ P2P Netzwerke 31 Super‐Peer Netze ● Idee: Kern‐Netz aus "Super‐Peers" ● Die "normalen" Knoten sind per Client/Server angebunden: Super Peer Leaf Node 11.04.2009 Dominic Battré ‐ P2P Netzwerke 32 Super‐Peer Netze ● Nachteile: ■ Nicht die reine Lehre ■ Super‐Peers müssen hohe Last aushalten p ■ Wer ist Super‐Peer? ♦ Automatische Auswahl vs. Selbstbestimmung ● Vorteile: ■ ■ ■ ■ 11.04.2009 Weniger Fluktuation g Kleineres Netzwerk Effizientere Suche Effizientere Suche Alle P2P‐Mechanismen lassen sich im Super‐Peer Netz anwenden Dominic Battré ‐ P2P Netzwerke 33