Gnutella


Einleitung P2P

Virtuelle Netzwerke
P2P Netzwerke als virtuelle Netzwerke
Quelle: www.sun.com/jxta

Formen des Peer-to-Peer

OpenNap Users
Quelle: Clip2, Kelly Truelove, OpenP2P.com
Rckgang der (Open) Napster User nach dem juristischen Einschreiten der RIAA. Die Anzahl der Server ist von ca. 200 auf ca. 100 zurckgegangen.

Software Architektur


Gnutella

Phex Gnutella Screen
Phex Gnutella Bildschirm

Features

Gnutella Protokoll

Das Gnutella Protokoll zur Kommunikation ist erstaunlich einfach. Es besteht aus nur fnf (sieben) Kommandos / Nachrichtentypen / Descriptoren und nutzt zus„tzlich zwei Funktionen des HTTP 1.0 Protokolls.

Bootstraping
Management
Routing

Jeder Gnode hat nur Verbindungen zu seinen unmittelbaren Nachbarn.

  1. Fr jede Nachricht wird das TTL Feld decrementiert und das Hops Feld hochgez„hlt. Ist das TTL Feld Null, wird die Nachricht verworfen.

  2. Falls der Gnode erkennt, dass eine Nachricht innerhalb eines (kurzen) Zeitraums, erneut eingetroffen ist, wird die Nachricht verworfen. Dient zur Schleifenerkennung (loop detection).

  3. Eingehende Ping und Query Nachrichten werden mit einer Pong bzw. einer QueryHit Nachricht ber die eigene IP-Adresse bzw. der Liste der Treffer beantwortet.

  4. Eingehende Ping und Query Nachrichten werden an alle Verbindungen (ausser der eingehenden) weiter geleitet falls das TTL Feld gr”sser als Null ist.

    Ping - Pong Routing
    Gnutella Ping - Pong Routing
    Quelle: Gnutella Spezifikation 0.4, http://www.clip2.com/
  5. Eingehende Pong und QueryHit Nachrichten werden nur auf der Verbindung weiter geleitet, von der die entsprechenden Ping bzw. Query Nachrichten kamen, andernfalls werden sie verworfen. Dazu werden die Nachrichten gespeichert und ber den Nachrichten Descriptor verglichen (evtl. wie Hash Tabelle).

    Query - QueryHit Routing
    Gnutella Query - QueryHit Routing
    Quelle: Gnutella Spezifikation 0.4, http://www.clip2.com/
  6. Push Nachrichten werden nur in der Verbindung weiter geleitet, von der eine entsprechende QueryHit Anfrage beantwortet wurde, andernfalls werden sie verworfen.

    Push Routing
    Gnutella Push Routing
    Quelle: Gnutella Spezifikation 0.4, http://www.clip2.com/
Anwendungen

Zum Transport der Dateien bedient sich Gnutella des HTTP 1.0 Protokolls.
Die HTTP Verbindung wird unabh„ngig vom Gnutella Netzwerk direkt zwischen Client und Server (IP-Adresse und Port steht in QueryHit) aufgebaut.

Erweiterungen des Protokolls


© Universität Mannheim, Rechenzentrum, 2002-2007.

Heinz Kredel

Last modified: Sun Jan 28 13:28:02 CET 2007