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