Gnutella

Gnutella ist ein dezentrales Computerprotokoll für Peer-to-Peer - Dateisuche und Transfer (auch bekannt als P2P ). Es wurde im Jahr 2000 von Tom Pepper (en) und Justin Frankel, damals Programmierer für die Firma Nullsoft , die auch WinAmp redigierte, vorgestellt .  

Das Gnutella-Protokoll wurde in den 2000er Jahren weiterentwickelt und ermöglichte auch eine signifikante Reduzierung der verwendeten Bandbreite. Zu den Verbesserungen zählen das Management von Ultrapeers, GUESS und GWebCache, mit dem Gnutella-Kunden auf dezentrale Weise andere Maschinen kennenlernen können, mit denen eine Verbindung hergestellt werden kann.

Sein Name ergibt sich aus der Kontraktion von GNU und Nutella , obwohl das Protokoll kein GNU-Projekt ist (die Free Software Foundation hat die Entwickler gebeten, den Namen zu ändern, um keine Verwirrung zu stiften) und nichts damit zu tun hat Marke der Verbreitung .

Gnutella v0.4

In Gnutella v0.4 fungiert jede Station als Server und Client und wird als "  Serve  " (eine Kontraktion von Server und Client) bezeichnet.

Jeder Server ist mit einer Reihe von Nachbarn verbunden. Um eine Suche zu starten, fragt ein Server alle seine Nachbarn ab, indem er ihnen eine Suchnachricht sendet. Ihre Nachbarn tun dasselbe mit ihren eigenen Nachbarn. Der Suchnachricht ist ein TTL-Feld (Time To Live) zugeordnet, um die Anzahl der verbleibenden erneuten Übertragungen zu zählen. Wenn dies null ist, wird die Nachricht nicht mehr gesendet. Diese Ausbreitungsmethode wird als Überflutung bezeichnet.

Server mit Dateien, die auf die Anfrage antworten, senden ihre Antwort (Dateiname + IP-Adresse) an den Nachbarn zurück, der die Anfrage an sie weitergeleitet hat. Die Antwort geht somit Schritt für Schritt an den Server zurück, der die Anforderung initiiert hat.

Der Server, der die Anforderung initiiert, wählt dann die herunterzuladenden Dateien aus, indem er direkt eine Download-Anforderung an den Server sendet, dem die Datei gehört.

Diese Überflutung ist jedoch in Bezug auf die Bandbreite kostspielig und die Suche ist langsamer als in zentralisierten Netzwerken ( Napster ).

Gnutella v0.6

Veröffentlicht im Jahr 2002.

Ultrapeers

Dies veranlasste die Entwickler der LimeWire- Software , 2001 das Ultrapeers-System vorzuschlagen. Die Verwaltung von Ultrapeers (oder Superpeers ) ist in Version 0.6 des Gnutella-Protokolls enthalten. Server werden in zwei Kategorien unterteilt: Ultrapeer (oder Superpeer), stabile Server mit guter Konnektivität und Clients (oder Blattknoten). Die Blätter sind an 3 Ultrapeern befestigt und die Ultrapeer lassen zwischen 30 und 45 Kunden und 30 Ultrapeer zu. Ultrapeers indizieren den Inhalt der Clients, an die sie angehängt sind, und beantworten Suchanfragen einschließlich der Dokumente ihrer Kunden.

Die von den Ultrapeers empfangenen Suchanfragen werden nur an die anderen Ultrapeers weitergeleitet. Ein Client, der einen Ultrapeer abfragt, kann also mit einer einzigen Abfrage nach 30 anderen Clients suchen. Wenn die Anfrage erneut an die 30 anderen Ultrapeer übertragen wird, mit denen sie verbunden ist, erreicht ihre Suche den Inhalt von 900 Clients ... Ein weiterer wichtiger Punkt: Clients erhalten keine Suchanfragen mehr. Wir sagen, dass sie durch ihren Ultrapeer geschützt (abgeschirmt) sind . Auf diese Weise können Benutzer, die mit niedriger Geschwindigkeit mit dem Internet verbunden sind, Gnutella verwenden, ohne ihre Leistung zu beeinträchtigen.

VERMUTEN

Mit GUESS (Gnutella UDP-Erweiterung für skalierbare Suchvorgänge) können Blätter die Anzahl der abgefragten Ultrapeer steuern und damit die verwendete Bandbreite reduzieren.

Um eine Suche nach populären Wörtern zu befriedigen, müssen einige Ultrapeer abgefragt werden, um eine zufriedenstellende Anzahl von Ergebnissen zu erhalten. Im Gegenteil, die Erforschung knapper Ressourcen erfordert die Befragung einer großen Anzahl von Ultra-Eern.

Mit dem Flutmechanismus ist es unmöglich, die Anzahl der befragten Ultrapeer effektiv zu kontrollieren. Die von GUESS vorgeschlagene Lösung besteht darin, den Suchinitiator nacheinander eine Reihe von Ultrapeern abfragen zu lassen, bis er eine zufriedenstellende Anzahl von Ergebnissen erzielt.

GWebCache

GWebcache funktioniert als auf einem Webserver installiertes Skript , mit dem Gnutella-Clients eine Liste der Gnutella-Knoten abrufen können, mit denen eine Verbindung hergestellt werden kann. Wenn Sie zum ersten Mal eine Verbindung zum Gnutella-Netzwerk herstellen, kennen die Server normalerweise keine anderen Server, zu denen eine Verbindung hergestellt werden kann. Dieser Schritt wird als Bootstrap bezeichnet .

GWebCaches sind über eine URL- Adresse zugänglich und verwenden das HTTP-Protokoll ( rudimentäre HTTP-Server ).

Das GWebcache-Protokoll gibt zwei Arten von Anforderungen an:

Der Server verwaltet eine begrenzte Liste von IP-Adressen von Ultrapeers- und GWebCaches-URLs und speichert nur die zuletzt empfangenen. Dies stellt sicher, dass die Adressen von Ultrapeers und GWebCaches, die an einen Client zurückgegeben werden, immer aktuell sind und daher gute Chancen haben, weiterhin verfügbar zu sein.

Gnutella2

Gnutella2 (auch G2 genannt): Trotz seines Namens ist es kein Nachfolger des Gnutella-Protokolls, sondern eine 2002 eingeleitete " Gabel " (Gabel, Abweichung). Ein Streitpunkt bei vielen Gnutella-Entwicklern ist der Name "Gnutella2" "spiegelt ein Upgrade oder eine Überlegenheit wider, die zu einem" Flammenkrieg Gnutella2 "geführt hat. Weitere Kritikpunkte sind die Verwendung des Gnutella-Netzwerks für das G2-Peer-Priming und die schlechte Dokumentation des G2-Protokolls.

Gnutella2 wurde von Michael Stokes ( Shareazas ursprünglichem Programmierer ) entwickelt. Es benötigt einige Funktionen von Gnutella, wie zum Beispiel die ursprüngliche Verbindung, aber es hat eine Topologie sowie einen völlig anderen Suchalgorithmus.

Software

Viele P2P-Dateiaustauschsysteme implementieren dieses Protokoll, einschließlich:

Anmerkungen und Referenzen

  1. Weitere Informationen zur Perspektive der Free Software Foundation auf Gnutella finden Sie unter http://www.gnu.org/philosophy/gnutella.html
  2. http://rfc-gnutella.sourceforge.net/src/rfc-0_6-draft.html
  3. (in) Ernesto Van der Sar, "  FrostWire tötet alle Gnutella BitTorrent  " auf torrentfreak.com , FT Publishing ,27. Juni 2011(abgerufen am 27. September 2020 ) .
  4. http://qtella.sourceforge.net
  5. (in) "  WireShare  " auf SourceForge (abgerufen am 27. September 2020 ) .

Anhänge

Zum Thema passende Artikel

Externe Links