Gnutella

Gnutella

Gnutella (gesprochen [nʊˈtɛlə] mit einem stummen g; meist klein geschrieben) bezeichnet ein Peer-to-Peer-Computernetzwerk und dessen spezifisches Netzwerkprotokoll. Es ist das erste komplett dezentrale Filesharing-Netzwerk überhaupt und hat mehrere Millionen Nutzer weltweit, die über ein breit gefächertes Angebot an Clients auf das Netzwerk zugreifen. Der meist genutzte und bekannteste Client war lange Zeit LimeWire. Trotz des Namens gehört gnutella nicht zum GNU-Projekt.

Inhaltsverzeichnis

Geschichte

Das gnutella-Protokoll wurde von Justin Frankel (Erfinder und früherer Entwickler des Audioabspielprogramms Winamp) definiert, der am 14. März 2000 als erste Software für das gnutella-Netzwerk die Beta-Version des ebenfalls gnutella bezeichneten Programms zum kostenlosen Herunterladen im Internet freigab. Frankels Arbeitgeber AOL zwang ihn jedoch nach kurzer Zeit, das Projekt aufzugeben und das Programm nicht weiter zu veröffentlichen. Das Programm war jedoch zu diesem Zeitpunkt bereits weit verbreitet und durch IRC-Chaträume und Drittanbieter-Websites weiterhin verfügbar.

Einige Zeit später gelang es einer Gruppe von unabhängigen Entwicklern, das gnutella-Protokoll zu entschlüsseln und ihre Ergebnisse zu veröffentlichen. Daraufhin wurden zahlreiche weitere Programme für das gnutella-Netzwerk entwickelt, die auch den Leistungsumfang des Netzwerkes deutlich erweiterten.

Im Mai 2006 zählte das gnutella-Netzwerk schätzungsweise 2,2 Millionen Nutzer.[1]

Hintergrund

Vorbild und Anreiz für das gnutella-Netzwerk war in weiten Teilen das zentrale Peer-to-Peer-Netzwerk Napster, welches bereits seit Juni 1999 einen direkten Austausch von Musikdateien ermöglichte. Durch die überwiegend illegal getauschten Inhalte geriet die Betreiberfirma Napster jedoch immer häufiger in rechtliche Konflikte. Frankels Motivation war es, ein Netzwerk zu errichten, das im Gegensatz zu Napster ohne zentrale Server und somit auch ohne zentralen Betreiber, gegen den rechtliche Vorwürfe hätten erhoben werden können, auskommen sollte.

Technik

Das gnutella-Netzwerk ist ein vollständig dezentrales Netzwerk. Das bedeutet, dass jeder Benutzer eine gleichwertige Software verwendet und es keine zentralen Server gibt, welche die Suchanfragen bearbeiten. Um trotzdem zu funktionieren, muss das Client-Programm mindestens einen anderen Benutzer (sogenannten node) finden. Um dies zu erreichen, gibt es diverse Methoden wie vordefinierte Serverlisten, GWebCache-Seiten im Internet oder auch der Austausch von Host-Listen über IRC. Wird eine Verbindung aufgebaut, tauschen die Programme Listen erreichbarer Nodes aus, welche dann wiederum kontaktiert werden, bis die eingestellte Anzahl an Verbindungen erreicht ist.

Startet ein Benutzer des Netzwerkes eine Suchanfrage, so wird diese zunächst nur an benachbarte Clients weitergeleitet. Diese leiten dann ihrerseits die Anfrage an ihre Nachbarn weiter, bis die angeforderte Datei gefunden wurde. Anschließend kann eine direkte Verbindung zwischen suchendem und anbietendem Benutzer für die Datenübertragung hergestellt werden.

Der besondere Vorteil dieser Netzwerkstruktur ist die Ausfallsicherheit, da Suchanfragen selbst dann weitergeleitet werden können, wenn einzelne Teile des Netzwerkes zeitweise unerreichbar sind. Nachteilig dagegen ist die lange Dauer der Suchanfrage, da es keine zentralen Index-Server gibt, und die hohe Netzwerkbelastung, da mit der Distanz zum suchenden Client die Anzahl der Anfragen exponentiell anwächst.

In den letzten Jahren wurde das gnutella-Netzwerk allerdings deutlich weiterentwickelt, so dass die Effizienz beträchtlich erhöht werden konnte. Beispiele hierfür sind das QRP, mit dem Quellen sich austauschen, welche Dateien sie haben, so dass auf den letzten beiden Schritten die Anfragen nur noch an diejenigen weitergeleitet werden, die möglicherweise antworten können, und dynamische Suchanfragen, wodurch nicht alle benachbarten Systeme auf einmal angefragt werden, sondern nur so viele, bis genügend Suchergebnisse erhalten wurden.

Software

Windows
Mac OS
Unix-basiert
plattformunabhängig

Einige weitere Clients basieren auf giFT.

Entwicklung

Das gnutella-Protokoll wird ständig durch neue Erweiterungen verbessert. Zum einen wird hiermit die Funktionalität erweitert, zum anderen wird mit ausgeklügelten Algorithmen versucht, die benötigte Bandbreite zu reduzieren und die Stabilität zu verbessern.

Hierzu gehören:

  • Klassifizierung in Ultrapeer- und Blattknoten
  • Query-Routing-Protokoll (QRP)
  • Horizontstatistik (HSEP)
  • Aktive und passive Warteschlangen für Dateitransfers
  • Komprimierung der P2P-Verbindungen (Link Compression Extension)
  • Propagieren alternativer Dateiquellen über das sogenannte Download Mesh
  • Download-Verifikation mittels Tiger-Tree Hashes
  • Meta-Daten

Viele gnutella-Clients sind Open-Source-Software. Dementsprechend ist es möglich, an der Entwicklung der Clients selbst mitzuwirken.

Nachfolger

Das gnutella-Protokoll hat einige konzeptionelle Schwächen, die sich ohne Bruch der Kompatibilität nicht beheben lassen. Als Nachfolger von gnutella, die diese Schwächen beheben sollen, werden vielfach Netzwerke nach dem Kademlia-Algorithmus aufgefasst, wie zum Beispiel das von den Entwicklern von LimeWire entworfene mojito DHT, das im Moment jedoch allein zur Quellenidentifikation genutzt wird. Bei auf Kademlia beruhenden Netzwerken gibt es ebenfalls keine zentralen Server, jedoch wird für jede einzelne denkbare Suchabfrage jeweils ein bestimmter "Ansprechpartner" rechnerisch ermittelt, der für diese Abfrage "zuständig" ist. Damit wird das bei gnutella bestehende Problem vermieden, dass praktisch jede Suchabfrage zu jedem Rechner gelangen muss, wenn auch seltene Dateien erfolgreich gefunden werden sollen. Im Gegenzug sind allerdings die unscharfen Suchen via Suchwort, für die gnutella entwickelt wurde, mit Kademlia schwerer effizient zu implementieren, da nur Suchen nach exakten Werten möglich sind, während in gnutella alle Treffer zurückgegeben werden, auf die die Suchworte passen. In diesem Zusammenhang spricht man bei gnutella auch von einem unstrukturierten Overlay, während es sich bei Kademlia um ein strukturiertes Overlay handelt.

2002 wurde das bis auf das alte Handshake neu erdachte Gnutella2-Protokoll veröffentlicht, welches jedoch von der gnutella-Entwicklergemeinde nicht als Nachfolgeprotokoll anerkannt wird, was hauptsächlich auf historische Gründe zurückzuführen ist. Es wird daher als von gnutella unabhängiges Protokoll betrachtet, obwohle beide Netzwerke nach wie vor durch ihr gleiches Handshake miteinander verwoben sind. Seinen Entwickler zufolge skaliert das Protokoll besser als gnutella, da es über effizientere Suchmechanismen verfügt und durch seine spezifische Paketstruktur ohne Kompatibilitätsverlust fast unbegrenzt erweitert werden kann. Außerdem wird angegeben, dass es einfacher ist, einen Gnutella2-Client neu zu entwerfen, als einen gnutella Client mit vergleichbaren Fähigkeiten. Gnutella-Entwickler widersprechen der Aussage über die Skalierbarkeit und Effizienz allerdings und führen an, dass die gleiche Erweiterbarkeit in gnutella bereits durch GGEP-Erweiterungen gegeben ist.

Siehe auch

Weblinks

Quellen

  1. Stand Mai 2006, Quelle: www.slyck.com

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Gnutella 2 — Gnutella  Ne pas confondre avec Nutella, la pâte à tartiner de Ferrero. Gnutella est un protocole informatique décentralisé de recherche et de transfert de fichiers peer to peer (aussi appelés P2P). Il a été imaginé en 2000 par Tom Pepper et …   Wikipédia en Français

  • Gnutella — (pronunciado sin la g ) es un proyecto de software distribuido para crear un protocolo de red de distribución de archivos entre pares, sin un servidor central. El primer cliente fue desarrollado por Justin Frankel y Tom Pepper de Nullsoft,… …   Enciclopedia Universal

  • Gnutella — Not to be confused with Nutella. Part of a series on File sharing Technologies …   Wikipedia

  • Gnutella —  Ne pas confondre avec Nutella, la pâte à tartiner de Ferrero. Gnutella est un protocole informatique décentralisé de recherche et de transfert de fichiers peer to peer (aussi appelés P2P). Il a été imaginé en 2000 par Tom Pepper et Justin… …   Wikipédia en Français

  • Gnutella — Стиль этой статьи неэнциклопедичен или нарушает нормы русского языка. Статью следует исправить согласно стилистическим правилам Википедии. Gnutella полностью децентрализованная файлообменная сеть в рамках Интернета, потомок Napste …   Википедия

  • Gnutella 2 — Das Gnutella2 Peer to Peer Protokoll ist eine 2002 von Michael Stokes veröffentlichte Rundumerneuerung des Gnutella Protokolls. Alles bis auf das alte Handshake des Gnutella Protokolls wurde komplett neu erdacht. Somit ist neues System entstanden …   Deutsch Wikipedia

  • Gnutella — Número de usuarios de las redes FastTrack, eDonkey y Gnutella en el periodo enero de 2003 mayo de 2006. Gnutella es un proyecto de software distribuido para crear un protocolo de red de distribución de archivos entre pares, sin un servidor… …   Wikipedia Español

  • Gnutella — ● np. m. ►APPLI►SECU De GNU et Nutella, la pâte à tartiner à la noisette. Logiciel à la fois client et serveur permettant à ses utilisateurs d échanger toutes sortes de fichiers. L intérêt est l absence de point central sur le réseau GnutellaNet …   Dictionnaire d'informatique francophone

  • GNUtella — dezentrale Peer to Peer Verwaltung unter GPL zum Austausch von Dateien ( http://gnutella.wego.com/, vergl. Napster) …   Acronyms

  • GNUtella — dezentrale Peer to Peer Verwaltung unter GPL zum Austausch von Dateien (http://gnutella.wego.com/, vergl. Napster) …   Acronyms von A bis Z

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”