1
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und Komplexität
Algorithmen für Peer-to-Peer-Netzwerke
Sommersemester 200430.04.2004
2. Vorlesung
Christian Schindelhauer
Algorithmen für Peer-to-Peer-Netzwerke 2
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Kapitel I
Algorithmen für Peer-to-Peer-Netzwerke 3
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Termine
Vorlesung:– jeden Freitag 9-11 (c.t.), Raum F0.530
Übung– Einteilung durch StudInfo{flex}, Link auf– http://wwwcs.upb.de/cs/ag-madh/WWW/Teaching/2004SS/AlgoP2P/
– Gruppe A: Mo 10-11 (Christian Schindelhauer)– Gruppe B: Mo 11-12 (Peter Mahlmann)– Gruppe C: Mo 16-17 (Peter Mahlmann)
Anmeldung zum Vorrechnen– Wer zuerst kommt, mahlt zuerst...
Algorithmen für Peer-to-Peer-Netzwerke 4
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Kapitel II
Algorithmen für Peer-to-Peer-Netzwerke 5
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Wiederholung
„Ein Peer-to-Peer-Netzwerk ist ein Kommunikationsnetzwerk zwischen Rechnern, indem jeder Teilnehmer sowohl Client als auch Server-Aufgaben
durchführt.“
„In einem Peer-to-Peer-Netzwerk werden verteilte Rechenresourcen durch direkte Kommunikation gemeinsam genutzt.“
Ein Peer-to-Peer-Netzwerk ist kein Client-Server-Netzwerk!
Algorithmen für Peer-to-Peer-Netzwerke 6
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Wie funktioniert Napster?
Client-Server-StrukturServer unterhält
– Index mit Meta-Daten• Dateiname, Datum, etc
–Tabelle der Verbindungen der teilnehmenden Clients
–Tabelle aller Dateien der teilnehmenden Clients
Query–Client fragt nach Dateinamen–Server sucht nach passenden Teilnehmern
–Server antwortet, wer die Datei besitzt–Anfrage-Client lädt Datei von datei-besitzenden Client herunter
Algorithmen für Peer-to-Peer-Netzwerke 7
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Wie gut ist Napster?
Vorteile
– Napster ist einfach
– Dateien werden schnell und effizient gefundenNachteile
– Zentrale Struktur erleichtert Zensur, feindliche Eingriffe und technisches Pannen
• wie z.B. Denial-of-Service-Angriff
– Napster skaliert nicht
• d.h. mit zunehmender Teilnehmerzahl verschlechtert sich die Performanz
• Speicher auf dem Server endlichResumee
– Napster keine akzeptable Peer-to-Peer-Netzwerklösung
– Bis auf den Download-Aspekt ist Napster im eigentlichen Sinne kein P2P-Netzwerk
Algorithmen für Peer-to-Peer-Netzwerke 8
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Gnutella - Originalversion - Anfrage
Dateianfrage
– wird an alle Nachbarn geschickt
– diese senden sie an ihre Nachbarn
– bis zu einer vorgegebenen Anzahl von Hops
• TTL-Feld (time to live)
Wenn Datei gefunden wurde, direkter Download
Algorithmen für Peer-to-Peer-Netzwerke 9
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Gnutella - Verbindungsstruktur
Graphstruktur– entsteht durch zufälligen Prozess– unterliegt Pareto-Verteilung– entsteht unkontrolliert
Gnutella Schnappschuss im Jahr 2000
Algorithmen für Peer-to-Peer-Netzwerke 10
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Gnutella - Diskussion
Vorteile
– verteilte Netzwerkstruktur
– Netzwerk skalierbarNachteil
– Durch TTL findet für Abfragen eine implizite Netzwerkpartitionierung statt
– Dadurch Anfrageerfolg gering
– Durch lange Wege, große Latenzzeiten
Verbesserungsvorschläge– Random Walks statt Broadcasting– Passive Replikation von Information entlang des Pfads
• Häufigkeit der Replikate nimmt im Quadrat des Abstands ab
Algorithmen für Peer-to-Peer-Netzwerke 11
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Kazaa, Gnutella (II), Morpheus
Hybride Struktur– Knoten mit großer Bandbreite werden zu
P2P-Server ausgewählt– Diese unterhalten P2P-Netzwerk im Stil
von Gnutella– Normale Knoten werden als Clients an
diese Super-Knoten angebundenEingesetzt in
– Kazaa– Morpheus– Gnutella (neuere Ausgabe)
Vorteile– Verbesserte Skalierbarkeit– Geringere Latenzzeiten
Nachteile– Immer noch unzuverlässig und langsam– Clients können sich der Super-Node-
Aufgabe verweigern
Algorithmen für Peer-to-Peer-Netzwerke 12
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Zusammenfassung
Lackmus-Test für P2P-Netzwerk
– Sind variable Verbindungen und temporäre Netzwerverbindungen die Norm?
– Sind die Kanten des Netzwerks autonom?
Strukturen von P2P-Netzwerken
Zentral
– siehe NapsterRein dezentral
– siehe Gnutella (Original-Version)Teilweise zentralisiert
– siehe Kazaa und neu Version von Gnutella
Algorithmen für Peer-to-Peer-Netzwerke 13
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Kapitel III
Warum manche Netzwerke nicht skalieren
Algorithmen für Peer-to-Peer-Netzwerke 14
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Warum skaliert Napster nicht?
Napster– Client-Server-Struktur entspricht
Stern-Topologie– Grad des Graphen n-1
• n Anzahl der Peers– Der Stern-Graph ist 1-
zusammenhängendEin Graph ist k-zusammenhängend,
– wenn es k Knoten gibt, nach deren Entfernung der Graph unzusammenhängend ist
– wenn nach Entfernen von k-1 beliebigen Knoten der Graph noch zusammenhängend ist.
Napster skaliert nicht, weil– der Grad des Graphen ist groß
• Flaschenhals in Kommunikation– und der Zusammenhang ist schwach
• keine robuste Konstruktion
Algorithmen für Peer-to-Peer-Netzwerke 15
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Warum skaliert Gnutella nicht?
Gnutella– Graph-Struktur ist zufälliger
Verbindungsgraph– Grad des Graphen klein– Durchmesser gering– Zusammenhang groß
Suche aber aufwändig– Um ein Datum sicher zu finden, muss
das gesamte Netzwerk durchsucht werden
Gnutella skaliert nicht, weil– Keine Struktur in der Datenablage
Algorithmen für Peer-to-Peer-Netzwerke 16
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Warum skalieren Kazaa und Co. nicht?
Hybride Struktur– Durchmesser gering– Zusammenhang kann hoch gewählt
werden• durch Anzahl Super-Nodes per Client
– Grad geringSkaliert
– nicht so schlecht wie Gnutella oder Napster
– nicht gut, da jeder Super-Node jede Anfrage der Clients erhält
Algorithmen für Peer-to-Peer-Netzwerke 17
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Kapitel III
Content Addressable NetworkCAN
Algorithmen für Peer-to-Peer-Netzwerke 18
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Zwei Fragen zur Informationsfindung
Wo ist es?Wie dorthin kommen?
Napster:– Wo?
• Auf dem Server – Wie dorthin?
• Zum Serverstau Gnutella
– Wo?• Weiss nicht
– Wie dorthin?• Alle fragen
Besser:
Wo ist Datum x?– An der Stelle f(x)
– Was ist f(x)?• Eine allen Teilnehmern bekannte
Abbildung von x auf einem Raum
Wie komme ich dorthin?– Durch eine Route die mir den Weg
von meinen Standort zu f(x) aufzeigt.
Algorithmen für Peer-to-Peer-Netzwerke 19
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Eine Hash-Tabelle als Peer-to-Peer-Netzwerk
Jeder Peer steht für eine Speicherstelle 0,1,2,..,n-1
– Eine allen Peers bekannte Hash-Funktion, z.B. für n = 7 f(x) = (3x+1 mod 23) mod 7
– Peers sind als Kette verbunden
Suche
– Berechne f(x)
– Gehe zu Peer mit Adresse f(x) entlang der Linie
0 1 2 3 4 5 6
41523 0
Peers
Indexdatenf(23)=1 f(1)=4
Algorithmen für Peer-to-Peer-Netzwerke 20
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Von der Hash-Tabelle zur Distributed Hash-Table (DHT)
Hash-TabellenVorteile
• Suche einfachNachteile
– Ein neuer Peer verursacht neue Wahl der Hash-Funktion
– Lange Wege
Distributed Hash-TablePeers werden an eine Stelle ge“hash“t
und erhalten Bereiche des Wertebereichs der Hashfunktion zugeteilt
Daten werden auch ge“hash“t– Je nach Bereich den Peers
zugeordnet
0 1 2 3 4 5 6
41523 0
Peers
Indexdatenf(23)=1 f(1)=4
Algorithmen für Peer-to-Peer-Netzwerke 21
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Einfügen in die Distributed Hash-Table (DHT)
Distributed Hash-Table– Peers werden an eine Stelle ge“hash“t– Dokumente ebenso– Jeder ist für einen Bereich
verantwortlich
Kommt ein neuer Knoten hinzu– müssen die Nachbarn teilen
Verlässt ein Knoten das Netzwerk– übernehmen die Nachbarn sein
Gebiet
Algorithmen für Peer-to-Peer-Netzwerke 22
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Eigenschaften DHT
Vorteile– Jedes Datum kann einem bestimmten
Peer zugewiesen werden– Einfügen und Entfernen von Peers
erzeugt nur Veränderungen in den benachbarten Peers
DHTs werden von vielen P2P-Netzwerken benutzt
Noch zu klären:– Die Verbindungsstruktur
0 1 2 3 4 5 6
41523 0
Peers
Indexdatenf(23)=1 f(1)=4
Algorithmen für Peer-to-Peer-Netzwerke 23
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Algorithmen für Peer-to-Peer-Netzwerke 24
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
A Scalable Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
DickKarp
Mark Handley
SylviaRatnasamy
Paul Francis
Scott Shenker
Algorithmen für Peer-to-Peer-Netzwerke 25
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Am Anfang ist ein leeres Quadrat mit nur einem Peer als Besitzer
Algorithmen für Peer-to-Peer-Netzwerke 26
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Am Anfang ist ein leeres Quadrat mit nur einem Peer als Besitzer
Der Besitzer einer Fläche speichert alle Einträge in der Fläche
Ein Peer wählt einen zufälligen Punkt in der Ebene
Algorithmen für Peer-to-Peer-Netzwerke 27
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Am Anfang ist ein leeres Quadrat mit nur einem Peer als Besitzer
Der Besitzer einer Fläche speichert alle Einträge in der Fläche
Ein Peer wählt einen zufälligen Punkt in der Ebene
– Der Besitzer des entsprechenden Quadrats teilt seine Fläche und
– übergibt die Hälfte dem neuen Peer
Algorithmen für Peer-to-Peer-Netzwerke 28
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Am Anfang ist ein leeres Quadrat mit nur einem Peer als Besitzer
Der Besitzer einer Fläche speichert alle Einträge in der Fläche
Ein Peer wählt einen zufälligen Punkt in der Ebene
– Der Besitzer des entsprechenden Quadrats teilt seine Fläche und
– übergibt die Hälfte dem neuen Peer
Algorithmen für Peer-to-Peer-Netzwerke 29
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Am Anfang ist ein leeres Quadrat mit nur einem Peer als Besitzer
Der Besitzer einer Fläche speichert alle Einträge in der Fläche
Ein Peer wählt einen zufälligen Punkt in der Ebene
– Der Besitzer des entsprechenden Quadrats teilt seine Fläche und
– übergibt die Hälfte dem neuen Peer
Algorithmen für Peer-to-Peer-Netzwerke 30
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Am Anfang ist ein leeres Quadrat mit nur einem Peer als Besitzer
Der Besitzer einer Fläche speichert alle Einträge in der Fläche
Ein Peer wählt einen zufälligen Punkt in der Ebene
– Der Besitzer des entsprechenden Quadrats teilt seine Fläche und
– übergibt die Hälfte dem neuen Peer
Algorithmen für Peer-to-Peer-Netzwerke 31
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Am Anfang ist ein leeres Quadrat mit nur einem Peer als Besitzer
Der Besitzer einer Fläche speichert alle Einträge in der Fläche
Ein Peer wählt einen zufälligen Punkt in der Ebene
– Der Besitzer des entsprechenden Quadrats teilt seine Fläche und
– übergibt die Hälfte dem neuen Peer
Algorithmen für Peer-to-Peer-Netzwerke 32
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Am Anfang ist ein leeres Quadrat mit nur einem Peer als Besitzer
Der Besitzer einer Fläche speichert alle Einträge in der Fläche
Ein Peer wählt einen zufälligen Punkt in der Ebene
– Der Besitzer des entsprechenden Quadrats teilt seine Fläche und
– übergibt die Hälfte dem neuen Peer
Algorithmen für Peer-to-Peer-Netzwerke 33
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Content Addressable Network (CAN)
Dateien werden in durch (zweiwertige)-Hash-Funktion in das Quadrat abgebildet
Am Anfang ist ein leeres Quadrat mit nur einem Peer als Besitzer
Der Besitzer einer Fläche speichert alle Einträge in der Fläche
Ein Peer wählt einen zufälligen Punkt in der Ebene
– Der Besitzer des entsprechenden Quadrats teilt seine Fläche und
– übergibt die Hälfte dem neuen Peer
Algorithmen für Peer-to-Peer-Netzwerke 34
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Wie groß/klein können solche Flächen werden
R(p) : Rechteck eines Peers p
A(p) : Fläche des Rechteck eines Peers p
n : Anzahl Peers
Anfangsquadrat: Fläche 1
Lemma
Für alle Peers p gilt
1.
2. Sei PR,n die Wahrscheinlichkeit, dass keines der n Peers in das Rechteck R hineinfällt. Dann gilt
Algorithmen für Peer-to-Peer-Netzwerke 35
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Die erwartete Fläche eines Peers in CAN
Beweis von 1.
Seien {1,..,n} die Peers.
Dann gilt:
Ferner gilt wegen Symmetrie
Damit gilt:
Algorithmen für Peer-to-Peer-Netzwerke 36
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Ein nichtgetroffenes Rechteck
Beweis von 2.
Betrachte ein Rechteck R der Fläche x=Vol(R)
Die Wahrscheinlichkeit, dass ein Peer nicht in diese Fläche fällt, ist
Die Wahrscheinlichkeit, dass n Peers nicht in R hineinfallen ist
Damit ist die Wahrscheinlichkeit dafür höchstens
weil für alle
R
Algorithmen für Peer-to-Peer-Netzwerke 37
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Wie groß kann ein nicht getroffenes Rechteck sein?
Aus 2.
folgt für ein Rechteck Ri Fläche 2-i
Es genügen also Peers um Ri
mit Wahrscheinlichkeit1- n-c
zu teilen. Diese kommen jetzt hintereinander. Sei nun
Damit wird ein Rechteck der Fläche mit W‘keit nicht geteilt
R1
R2
R3
R4
Algorithmen für Peer-to-Peer-Netzwerke 38
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Wie gleichmäßig werden die Daten verteilt?
Lemma
Mit Wahrscheinlichkeit (log n) n-c wird ein Rechteck der Größe 2c(ln n)/n nicht geteilt.
Wenn m Elemente insgesamt gespeichert werden, – so erhält jeder Peer also maximal 2 c (ln n) m/n Elemente,– während der Durchschnitt m/n Elemente speichert
Also speichert jeder Peer höchstens 2c (ln n) mal mehr als der Durchschnittspeer mit hoher Wahrscheinlichkeit.
Algorithmen für Peer-to-Peer-Netzwerke 39
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Lookup in CAN
Zuerst wird Ort des Indexes durch Berechnung der Hash-Funktion bestimmt
Zwischen den Besitzer benachbarter Rechtecke bestehen Kanten
Anfrage wird in Richtung des Index weitergeleitet
d Dimension des Quadrats– 1: Linie– 2: Quadrat– 3: Würfel– 4: ...
Erwartete Anzahl Hops in d Dimensionen: n1/d
Durchschnittlicher Grad eines Knotens: O(d)
Algorithmen für Peer-to-Peer-Netzwerke 40
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und KomplexitätChristian Schindelhauer
Bewertung CAN
Vorteile– Einfaches robustes Verfahren– Balanciert die Datenmenge– Kleiner Grad– Netzwerk ist stark
zusammenhängend, dadurch robust– Kennt verschiedene Wege zum Ziel
und kann dadurch Routen optimieren Nachteil
– Durchmesser bei konstanten Dimensionen des Raums polynomiell groß
41
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und Komplexität
Heinz Nixdorf Institut& Institut für InformatikUniversität PaderbornFürstenallee 1133102 Paderborn
Tel.: 0 52 51/60 66 92Fax: 0 52 51/62 64 82E-Mail: [email protected]://www.upb.de/cs/schindel.html
Vielen DankEnde der 2. VorlesungNächste Vorlesung: Fr. 07.05.2004Nächste Übung: Mo. 03.05.2004