Vorlesung P2P Netzwerke - cit.tu

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