Gnutella Definition Kriterien für P2P-Netzwerke Gnutella

Werbung
Definition
„Ein Peer-to-Peer-Netzwerk ist ein Kommunikationsnetzwerk zwischen
Rechnern, in dem jeder Teilnehmer sowohl Client als auch ServerAufgaben durchführt.“
Gnutella
•
•
Beobachtung: Das Internet ist (eigentlich auch) ein Peer-to-PeerNetzwerk
Andere Definition von der Peer-to-Peer-Working-Group:
„In einem Peer-to-Peer-Netzwerk werden verteilte Rechenresourcen
durch direkte Kommunikation gemeinsam genutzt.“
•
Was ist ein Peer-to-Peer-Netzwerk nicht?
– Ein Peer-to-Peer-Netzwerk ist kein Client-Server-Netzwerk!
Zusätzliche Quelle:
Christian Schindelhauer, Vorlesung: Algorithmen für Peer-to-Peer-Netzwerke
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Kriterien für P2P-Netzwerke
•
Handhabbarkeit
•
Informationskohärenz
•
Erweiterbarkeit
•
Fehlertoleranz
•
Sicherheit
•
Schutz gegen politische Verfolgung
•
Skalierbarkeit
– Wie schwer ist es, dass Netzwerk zu unterhalten
Gnutella
Gnutella =
+
– Wie gut wird Information verteilt?
– Wie leicht kann es wachsen?
– Wie gut können Fehler behoben werden?
– Wie leicht kann es mutwillig zerstört werden?
– Wie schwierig ist es, das Netzwerk abzuschalten?
– Wie groß kann ein Netzwerk wachsen?
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
• Unstrukturierte ad-hoc Topologie: Peers
verbinden sich zufällig mit Knoten.
• Zufällige Suche: Anfragen „fluten“ das ganze
Netwerk.
• Skalierungsproblem: Mit größeren Netzwerken
wächst der Overhead der Suche.
• File-Sharing-System
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Protokoll
• Protokoll
–Ping
• Teilnehmeranfrage.
• werden weiter gereicht gemäß TTL-Feld (time to live).
Graphstruktur
• Entsteht durch zufälligen Prozess.
• Unterliegt Pareto-Verteilung.
• Entsteht unkontrolliert.
–Pong
• Reaktion auf Ping.
• Werden auf dem Anfragepfad zurückgereicht.
• IP und Port des angefragten Teilnehmers.
• Anzahl und Größe zur Verfügung gestellter Dateien.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Beispiel Netz
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Nachbarschaftslisten
• Gnutella verbindet direkt mit anderen Clients.
• Beim Download wird ein Liste von Clients
mitgeliefert.
• Diese werden ausprobiert bis ein Aktiver sich
meldet.
• Ein aktiver Client gibt dann seine
Nachbarschaftsliste weiter.
• Nachbarschaftslisten werden immer weiter
verlängert und gespeichert.
• Die Anzahl aktiver Nachbarn ist beschränkt
(typisch auf fünf).
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Gnutella Schnappschuss im Jahr
2000
Anfragen
• Dateianfragen:
–Werden an alle Nachbarn geschickt.
–Diese senden sie an ihre Nachbarn.
–Bis zu einer vorgegebenen Anzahl von Hops (TTLFeld (time to live)).
• Protokoll
–Query: Anfrage nach Datei wird bis zu TTL-hops
weitergereicht.
–Query-hits: Antwort auf umgekehrten Pfad.
• Wenn die Datei gefunden wurde, startet der
direkte Download.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Beispiel Anfrage
Vor- und Nachteile
• Vorteile
–verteilte Netzwerkstruktur.
–Netzwerk skalierbar.
• Nachteil
–Durch TTL findet für Abfragen eine implizite
Netzwerkpartitionierung statt.
–Dadurch Anfrageerfolg gering.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Verbesserungsvorschläge
• Durch lange Wege, große Latenzzeiten.
• Random Walks statt Broadcasting.
• Passive Replikation von Information
entlang des Pfads: Häufigkeit der
Replikate nimmt im Quadrat des Abstands
ab.
CAN
Content-Addressable Network
Zusätzliche Quelle:
Christian Schindelhauer, Vorlesung: Algorithmen für Peer-to-Peer-Netzwerke
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Eine Hash-Tabelle als Peer-toPeer-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.
Peers
0
1
2
0
23
f(23)=1
3
4
5
1
5
Indexdaten
f(1)=4
• Suche:
– Berechne f(x).
– Gehe zu Peer mit Adresse f(x) entlang der Linie.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
6
Von der Hash-Tabelle zur
Verteilte Hash-Tabelle (DHT)
Hash-Tabellen:
• Vorteile
– Einfache Suche.
• Nachteile
– Ein neuer Peer verursacht neue Wahl der Hash-Funktion.
– Lange Wege.
4
Verteilte Hash-Tabelle:
• Peers werden an eine Stelle gehasht und erhalten
Bereiche des Wertebereichs der Hashfunktion zugeteilt.
• Daten werden auch gehasht und je nach Bereich den
Peers zugeordnet.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Beispiel DHT
Einfügen in die Verteilte HashTabelle (DHT)
1. Verteilte Hash-Tabelle:
– Peers werden an eine Stelle gehasht.
– Dokumente ebenso.
– Jeder ist für einen Bereich verantwortlich.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Einfügen in die Distributed HashTable (DHT)
2. Kommt ein neuer Knoten hinzu: müssen
die Nachbarn teilen.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Einfügen in die Distributed HashTable (DHT)
3. Verlässt ein Knoten das Netzwerk:
übernehmen die Nachbarn sein Gebiet.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
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.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
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
• Dateien werden durch
(zweiwertige)-Hash-Funktionen
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.
Peer
Peer
Peer
Peer
Peer
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
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.
Lemma:
Für alle Peers p gilt
1
1.
E [A( p )] =
Content Addressable Network
(CAN)
n
2. Sei PR,n die Wahrscheinlichkeit, dass keines der n Peers
in das Rechteck R hineinfällt. Dann gilt
− nVol ( R )
PR ,n ≤ e
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
• 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 mit hoher Wahrscheinlichkeit
jeder Peer höchstens 2c (ln n) mal mehr als der
Durchschnittspeer.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Lookup in CAN
• Zuerst wird Ort des Indexes
durch Berechnung der HashFunktion bestimmt.
• Zwischen den Besitzern
benachbarter Rechtecke
bestehen Kanten.
• Anfragen werden in Richtung
des Index weitergeleitet.
• d Dimension des Quadrats:
Linie, Quadrat, Würfel, ...
• Erwartete Anzahl Hops in d
Dimensionen: n1/d
• Durchschnittlicher Grad eines
Knotens: O(d).
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Beispiel Random Tree
Einfügen in CAN = Random
Tree
• Random Tree
– Neue Blätter werden zufällig eingefügt.
– Falls die Wurzel ein interner Knoten ist, gehe zufällig in linken
oder rechten Teilbaum.
– Falls Wurzel ein Blatt ist, füge zwei Blatt an diese Wurzel an.
• Tiefe:
– im Erwartungswert: 2 log n + O(1)
– Tiefe O(log n) mit hoher Wahrscheinlichkeit, d.h. 1-n-c
• Beobachtung
– CAN fügt neue Peers ein wie neue Blätter beim Random Tree
eingefügt werden.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Entfernen von Peers in CAN
• Verschwindet ein Peer:
–Meldet er dies nicht vorher an. Daher
testen Peers regelmäßig die
Anwesenheit ihrer Nachbarn.
–Übernimmt der erste Nachbar der
das „Verschwinden“ bemerkt das
Gebiet des verschwundenen Peers.
• Peers können mehrere Gebiete
verwalten.
• Häufiges Einfügen und Entfernen
führt zur Kleinstaaterei
(Fragmentierung).
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Defragmentierung - der
einfache Fall
• Um die Fragmentierung zu
beseitigen, wird von Zeit zu Zeit
eine Zonenneuzuweisung
durchgeführt.
• Für jeden Peer, der mindestens
zwei Zonen hat, lösche die
kleinste Zone des Peers und finde
Ersatzpeer für dieses Gebiet.
1. Fall:
Nachbarzone im Baum ist
ungeteilt:
¾ Dann sind beide Peers Blätter im
CAN-Baum.
¾ Übertrage Zone dem Nachbarknoten.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
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ß.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Defragmentierung - der
schwierige Fall
2. Fall:
Nachbarzone im Baum ist
weiter unterteilt:
¾ Führe Tiefensuche in
Nachbarbaum durch, bis zwei
benachbarte Blätter gefunden
worden sind.
¾ Übertrage einem Blatt (Peer) die
Zonen beider Blätter und
¾ wähle das andere Blatt (Peer)
als Ersatzpeer.
Steffen Staab
ISWeb – Informationssysteme & Semantic Web
Herunterladen