Inhalt ● Napster ■ Erstes "P2P" Netzwerk ■ Kein wirkliches P2P ■ Enormes Medienecho Æ Popularität für P2P Vorlesungg P2P Netzwerke ● Gnutella 2: Unstrukturierte 2: Unstrukturierte Netze Netze Dr. Dominic Battré Complex and Distributed IT‐Systems dominic battre@tu berlin de dominic.battre@tu‐berlin.de ■ 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 Inhalte der Vorlesung (vorläufig) Einleitung • Was ist P2P? • Definition • Einsatzgebiete ● 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 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 2 Literatur U Unstrukturierte Netze k i N • Napster • Gnutella • Super‐Peer Netzwerke Super Peer Netzwerke • Small‐World Netzwerke etc. Dominic Battré ‐ P2P Netzwerke Anwendungen • OceanStore • BabelPeers • Amazon • Multicast 3 11.04.2009 Dominic Battré ‐ P2P Netzwerke 4 Napster 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 ● Fokussiert: Einfache Anwendung (suche nach Musikdateien) ● Suche über zentralen Server ● Datenaustausch dezentral Datenaustausch dezentral Registrierung Suche Registrierung, Suche Datenaustausch Napster Server 5 11.04.2009 Napster 6 Gnutella ● Funktionsweise ■ ■ ■ ■ ■ Dominic Battré ‐ P2P Netzwerke ● Kein zentraler Server mehr ● Peers werden Servents genannt 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 11.04.2009 Dominic Battré ‐ P2P Netzwerke 8 Overlay‐Netzwerk Problemstellungen ● Gnutella ist sog. Overlay über dem Internet ● 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 9 11.04.2009 Dominic Battré ‐ P2P Netzwerke Lösungen Gnutella Nachrichten ● 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 10 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 Nb. of Hits 1 Byte Port 2 Bytes IP Address 4 Bytes Speed 4 Bytes Result Set: PONG (0x01) 11 QUERY HIT (0x81) QUERY HIT (0x81) ‐ 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 Routing in Gnutella Ping / Pong IP Address 4 Bytes Port 2 Bytes 2 Bytes Dominic Battré ‐ P2P Netzwerke 13 11.04.2009 Probleme von Gnutella PUSH QUERY PONG PUSH 4 Bytes PUSH PING 11.04.2009 16 Bytes File Index PING QUERY PUSH (0x40) Servent Identifier QUERY HIT PING Push HIT PING ■ PUSH Nachricht über Gnutella routen Query / Query Hit HIT ● Direkte Verbindung zum Servent ● Transfer durch HTTP ● Wenn Servent Wenn Servent hinter Firewall liegt: hinter Firewall liegt: Push File Dominic Battré ‐ P2P Netzwerke 14 Eigenschaften 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 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 ? ■ Zig‐Zack Routen Zig Zack Routen ■ Daraus folgen hohe Latenzzeiten 11.04.2009 Dominic Battré ‐ P2P Netzwerke 15 11.04.2009 Dominic Battré ‐ P2P Netzwerke 16 Gradverteilung Gradverteilung Quelle: Jovanovic Annexstein Berman: Quelle: Jovanovic, Annexstein, Berman: Scalability Issues in Large Peer‐to‐Peer Networks – A Case Study of Gnutella ● 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 log(Anzahl Peers mit Grad d) = c g( ) – k log(d) g( ) 11.04.2009 Dominic Battré ‐ P2P Netzwerke 17 11.04.2009 Dominic Battré ‐ P2P Netzwerke 18 Modell für Preferential Attachement 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): ● 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 ■ 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: ● Effekt: Knoten verbinden sich mit bereits gut verbundenen Knoten mit höherer Wahrscheinlichkeit ■ 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 11.04.2009 Dominic Battré ‐ P2P Netzwerke 20 Milgram's Experiment 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) Quelle: http://en.wikipedia.org/wiki/File:Map_of_USA_with_state_names.svg 11.04.2009 Dominic Battré ‐ P2P Netzwerke 21 11.04.2009 Milgram's Experiment Dominic Battré ‐ P2P Netzwerke Milgram's Experiment ● Wie ist das möglich? ● These: Soziale Netzwerke haben folgende Eigenschaften: ● Wie ist das möglich? ● These: Soziale Netzwerke haben folgende Eigenschaften: ■ Großer Clustering‐Koeffizient g ■ Kleiner Durchmesser bzw. charakteristische Pfadlänge ■ 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) 22 ● Durchmesser: Durchmesser: ■ Längster kürzester Pfad zwischen zwei Knoten , N (i) = { j | (i, j ) ∈ E}, d (i) = N (i ) ● Charakteristische Pfadlänge: Charakteristische Pfadlänge: ■ Durchschnittlicher kürzester Pfad zwischen zwei Knoten ■ 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 11.04.2009 Dominic Battré ‐ P2P Netzwerke 24 Randnotiz: Erdös‐Nummer Eigenschaften von Gnutella ● Untersuchung von 2000: Paul Erdös (1913 – 1996) Berühmter Mathematiker Knoten Kanten Frage: Über wie viele Schritte ist jemand als Co‐Autor mit Paul Erdös verbunden? 11.04.2009 ist Co‐Autor von 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 Klaus H. Ecker 20.12.2000 1077 4094 10 0.0652 0.0094 3.31 3.66 1026 3752 8 0.0630 0.0102 3.30 3.71 1125 4080 8 0.0544 0.0090 3.33 3.77 Beispiel: Odej Kao hat Erdös‐Nummer 4: Odej Kao Durch‐ messer Klaus H. Ecker ist Co‐Autor von Helmut Ratschek 27.12.2000 Helmut Ratschek ist Co‐Autor von Egbert Harzheim 28.12.2000 Egbert Harzheim ist Co‐Autor von Paul Erdös Dominic Battré ‐ P2P Netzwerke ● Ergebnis: Clustering‐Koeffizient deutlich größer als beim Zufallsgraph, charakteristische Pfadlänge ähnlich bis kleiner 25 11.04.2009 Dominic Battré ‐ P2P Netzwerke 26 Modell von Watts und Strogatz Watts und Strogatz 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 p=0 11.04.2009 Dominic Battré ‐ P2P Netzwerke 27 11.04.2009 Dominic Battré ‐ P2P Netzwerke p=1 28 Übergang bei Watts / Strogatz 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 C: Clustering‐Koeffizient g L: Charakteristische Pfadlänge 11.04.2009 Dominic Battré ‐ P2P Netzwerke 29 11.04.2009 Zusammenfassung Gnutella Felix Heine ‐ P2P Netzwerke Super‐Peer Netze ● Gnutella hat: ● Idee: Kern‐Netz aus "Super‐Peers" ● Die "normalen" Knoten sind per Client/Server angebunden: ■ Gradverteilung nach Power‐Law ■ Einen hohen Clustering‐Koeffizienten g ■ Einen kleinen Durchmesser Super Peer Leaf Node Æ 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 30 31 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