1x3 - Complex and Distributed IT Systems

Werbung
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
Herunterladen