Peer-to-Peer-Netzwerke: Algorithmen und Methoden
Beschreibung der Dateien, die der vorausgegangenen Anfrage entsprechen.
Push ist ein Mechanismus um Peers hinter einer Firewall das Bereitstellen von Daten zu ermoglichen (fur Details siehe [7]).
Mit deco eingangs beschriebenen Prozess erhalt ein Peer p eine Liste moglicherweise aktiver Gnutella Peers, die immer weiter verrangert and gespeichert wird. Dieser Prozess wird auch verwendet um p in das Gnutella Netzwerk einzubinden, weshalb wir diesen Prozess noch einmal etwas genauer beschreiben. Hat Peer p einen aktiven Gnutella Peer p' gefunden, so wird p eine Ping-Nachricht an p' senden. Mit dieser Nachricht verknupft ist eine Sprungweite TTL (Time to Live, nicht zu verwechseln mit deco TTL-Feld von TCP), die bei jedern Schritt der Nachricht im Netzwerk um Eins verringert wird. Jeder Peer, der eine Ping-Nachricht erhalt, verringert das TTL-Feld der Nachricht and reicht diese an alle Nachbarn weiter, bis die vorn TTL-Wert vorgegebene Anzahl von Schritten erreicht wurde. Peers die eine Ping-Nachricht erhalten haben, antworten auf diese mit einer Pong-Nachricht, die auf deco gleichen Pfad zuruckgesendet wird. Auf diese Weise erhalt Peer p eine Liste zur Zeit aktiver Gnutella Peers aus denen er zufallig einige als seine Nachbarn auswahlt (siehe Abbildung 3.2). Ein typischer Wert fur die GroBe der Nachbarschaft ist funf.
Die resultierende Graphstruktur ensteht also durch einen zufalligen Prozess, da sie allein durch die Menge der (zufallig) aktiven Peers and deren gerade aktiven Nachbarn bestimmt wird. Man sieht, dass es keine zentrale Instanz oder Kontrollmechanismen gibt (auBer dem TTL-Feld), welche die Struktur des Verbindungsgraphen kontrollieren. Gewisse statistische GesetzmaBigkeiten lassen sich dennoch entdecken. So unterliegen wichtige Parameter der Graphstruktur der Pareto-Verteilung, wie z.B. die Verteilung des Grades der Knoten [33]. Die Verbindungsstruktur von
Abb. 3.2. Anbindung von neuen Peers in Gnutella. Der neue Peer schickt eine Ping-Nachricht mit TTL 3 in das Netzwerk (a). Die erreichten Peers antworten mit Pong-Nachrichten (b). Der neue Peer erzeugt Netzwerkverbindungen zu einem Teil der antwortenden Peers (c).
Gnutella entsteht aus dem vollig unkoordinierten Verhalten der Benutzer. Die hierbei beobachteten Phanomene rind so interessant, dass wir uns im Abschnitt 9.1 auf Seite 174 eingehender damit beschaftigen werden. Ein Schnappschuss des Gnutella Netzwerks aus dem Jahr 2000 [33] wird in Abbildung 3.3 dargestellt.
Abb. 3.3. Ein Schnappschuss des Gnutella Netzwerks [33].
Die Suche (Query) nach Dateien geschieht vollig analog zum Ping-Pong-Prozess. Eine Query wird durch einen beschrankten Broadcast an alle Nachbarn im Netzwerk his zur Entfernung TTL weitergeleitet, and in entgegengesetzter Richtung werden die Antworten vom Typ QueryHit auf denselben Pfaden zuruckgeleitet. Wenn der Initiator der Suche die Beschreibung der gewunschten Datei in den QueryHit- Nachrichten vorfindet, kann er these direkt von dem Peer herunterladen, der die entsprechende QueryHit-Nachricht erstellt hat (siehe auch Abbildung 3.4).
Diskussion
Im Gegensatz zu Napster liegt hier zum ersten Mal ein echtes Peer-to-Peer-Netzwerk vor, das vollstandig ohne zentrale Kontrollmechanismen auskommt. Die Vorteile von Gnutella beruhen auf der verteilten Netzwerkstruktur. Gnutella ist extrem robust and praktisch unangreifbar. Die zufallige Netzwerkstruktur ist auch sehr gut skalierbar, d.h., viele Knoten konnen ohne EinbuBen in der Leistungsfahigkeit aufgenommen werden.
Abb. 3.4. Dateisuche in Gnutella. Fin Peer schickt eine Query-Nachricht mit TTL 3 in das Netzwerk (a). Jeder Peer, der die Query-Nachricht erhalt and eine der Anfrage entsprechende Datei bereitstellt, schickt seine Antwort auf demselben Pfad zuruck (b). Falls die Suche erfolgreich war, wird die Datei direkt vom gefundenen Peer heruntergeladen (c).
Gnutella hat jedoch auch eine Reihe von Nachteilen. Das Hauptproblem ist, dass durch die tiefenbeschrankte Suche nur in einem Teilnetzwerk nach der Zieldatei gesucht wird. Ist die gesuchte Datei unter den Peers weit verbreitet, dann wird sie schnell and zuverlassig gefunden. Selten vorhandene Dateien werden nur gefunden, wenn sie zufallig von einem Peer im lokalen Umfeld bereitgestellt werden. Dieses Problem konnte man durch Erhohung des TTL-Eintrags umgehen, wenn dadurch nicht der zweite Nachteil von Gnutella noch verscharft wurde. Dies ist das Nachrichtenaufkommen bei einer Suche. Da es vollig unklar ist, wo sich eine
Weitere Kostenlose Bücher