Rolf Wanka Sommersemester Vorlesung

Peer-to-Peer-Netzwerke Rolf Wanka Sommersemester 2007 10. Vorlesung 28.06.2007 [email protected] basiert auf einer Vorlesung von Christian Schindelhaue...
Author: Rosa Amsel
4 downloads 3 Views 333KB Size
Peer-to-Peer-Netzwerke Rolf Wanka Sommersemester 2007 10. Vorlesung 28.06.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 – Koorde

• 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 und PAST • Peter Druschel – Rice University, Houston, Texas

• Antony Rowstron – Microsoft Research, Cambridge, GB

entwickelten in Cambridge bei Microsoft Research: • Pastry: – Scalable, decentralized object location and routing for large scale peer-topeer-network

• PAST: – A large-scale, persistent peer-to-peer storage utility

• Zwei Namen, ein Peer-to-Peer-Netzwerk – PAST ist eine Anwendung auf Pastry – Hier wird einheitlich der Name Pastry verwendet

Peer-to-Peer-Netzwerke 3

Pastry: Überblick • Jeder Peer hat eine128-bit ID: Node-ID – Eindeutig und gleichmäßig verteilt – z.B. durch Hash-Funktion, angewandt auf IP-Adresse

• Routing – Die Schlüssel werden auf {0,1}128 abgebildet – Gemäß einer Metrik werden Nachrichten zum nächstgelegenen Nachbarn weitergereicht

• Routing-Tabelle hat O(2b (log n)/b) + ℓ Einträge – n: Anzahl der Peers – b, ℓ: Konfigurationsparameter, • b: Wortlänge, typisch: b = 4 (Basis 16), also Node-ID 8 „Buchstaben“ • ℓ = 16, Auslieferung ist garantiert, falls nicht mehr als ℓ/2 Knoten ausfallen

• Einfügen von Peers benötigt O((log n)/b) Nachrichten Peer-to-Peer-Netzwerke 4

Pastry: Routing-Tabelle • Node-ID wird zur Basis 2b dargestellt, – z.B. Node-ID: 65a1ba13

• Für jedes Präfix p und jeden Buchstaben y ∈ {0,..,2b-1} von Node-ID wird ein Repräsentant der Form py* eingetragen Beispiel: b=4, damit ist 2b=16 also 15 Einträge für 0*,1*, .. F* 15 Einträge für 60*, 61*,... 6F* ... Existiert kein Repräsentant, wird nichts eingetragen

• Bezüglich einer Metrik wird immer der nächstgelegene Repräsentant gewählt – Die Metrik resultiert auf den wechselseitigen Latenzzeiten zwischen den Knoten

• Zusätzlich werden ℓ Nachbarn gemäß der Node-ID gespeichert (sog. leaf set) – ℓ/2 mit nächst größerer ID und – ℓ/2 mit nächst kleinerer ID

Peer-to-Peer-Netzwerke 5

Pastry: Routing-Tabelle • Beispiel: b=2, ℓ=4, Node-ID=001 • routing table: Für jedes Präfix p und jeden Buchstaben y ∈ {0,..,2b-1} von Node-ID wird ein Repräsentant der Form py* eingetragen • leaf set: Zusätzlich werden ℓ Nachbarn gemäß der Node-ID gespeichert – ℓ/2 mit nächst größerer ID und – ℓ/2 mit nächst kleinerer ID

• Beobachtung: – Schon durch die leaf set werden die Zielknoten immer gefunden

• Lemma Mit hoher Wahrscheinlichkeit sind höchstens O(2b (log n)/b) Einträge in jeder Routing-Table

Peer-to-Peer-Netzwerke 6

Pastry: Routing-Tabelle Lemma Mit hoher Wahrscheinlichkeit sind höchstens O(2b (log n)/b) Einträge in der Routing-Table

Beweis – Die Wahrscheinlichkeit, daß ein Peer ein bestimmtes m-stelliges Präfix bekommt, ist 2-bm

– Mit hoher Wahrscheinlichkeit ist also kein Peer mit dem gleichen Präfix der Länge (c+2)(log n)/b vorhanden – Damit gibt es (c+2)(log n)/b Zeilen mit jeweils 2b-1 Einträgen □

– Die Wahrscheinlichkeit, daß ein bestimmtes m-stelliges Präfix im Netzwerk vorkommt, ist höchstens n 2-bm – Für m=(c+2) (log n)/b ist dies n-c-1

Peer-to-Peer-Netzwerke 7

Routing - im Prinzip • Zuerst wird durch Hash-Funktion die Zieladresse berechnet • Befindet sich die Zieladresse innerhalb der ±ℓ/2 -Nachbarschaft, – wird direkt dorthin ausgeliefert – oder das Fehlen des Ziel-Peers wird festgestellt

• Ansonsten wird in der Routingtabelle die Adresse mit gemeinsamem Präfix gesucht und • dorthin wird die Nachricht weitergeleitet • Zusätzlich wird eine Menge M von nahen Knoten unterhalten, diese werden hinsichtlich der Latenzzeit im Internet optimiert Peer-to-Peer-Netzwerke 8

Pastry: Routing im Detail • L: • R: • M:

ℓ -Nachbarschaft Routing-Table Knoten in der Nähe von D (gemäß Latenzzeit)

• D:

Zieladresse, an der der Schlüssel liegt Node-ID des aktuellen Peers

• A: • Ri ℓ : • Li: • Dℓ : • shl(A):

ℓ-te Zeile und i-te Spalte der Routing-Tabelle Numerierung der ℓ-Nachbarschaft ℓ-te Ziffer von D Länge des gemeinsamen Präfix von A und D in Ziffern

Peer-to-Peer-Netzwerke 9

Pastry: Routing - Diskussion • Falls Routing-Tabelle korrekt ist, – benötigt das Routing im Erwartungswert O((log n)/b) Nachrichten

• Solange leaf set korrekt ist, – benötigt das Routing im worst-case O(n/ℓ) Nachrichten – Tatsächlich ist es aber wesentlich schneller, da selbst eine defekte RoutingTabelle erhebliche Beschleunigung bringt

• Routing berücksichtigt nicht die wahren Abstände – M wird nur benutzt, falls Fehler in der Routing-Tabelle vorliegen – Durch Ausnutzung der Lokalität sind Verbesserungen möglich

• Daher verwendet Pastry Heuristiken zur Verbesserung der Latenzzeit – Diese werden in den besonders teuren letzten Hops angewendet Peer-to-Peer-Netzwerke 10

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 11

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-Table • 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 12

Ende der 10. Vorlesung

Peer-to-Peer-Netzwerke

Peer-to-Peer-Netzwerke

Suggest Documents