Gnutella

Gnutella (mit einem stillen g, aber häufig) ist ein großes Gleicher-zu-Gleicher-Netz, das, zur Zeit seiner Entwicklung, das erste dezentralisierte Gleicher-zu-Gleicher-Netz seiner Art war, zu anderem, spätere Netze führend, die das Modell annehmen. Es hat ein Jahrzehnt der Existenz am 14. März 2010 gefeiert und lässt einen Benutzer in den Millionen für das Gleicher-zu-Gleicher-Dateiteilen stützen.

Im Juni 2005 war die Bevölkerung von gnutella 1.81 Millionen Computer, die zu mehr als drei Millionen Knoten vor dem Januar 2006 zunehmen. Gegen Ende 2007 war es das populärste Dateiteilen-Netz im Internet mit einem geschätzten Marktanteil von mehr als 40 %.

Geschichte

Der erste Kunde wurde von Justin Frankel und Tom Pepper von Nullsoft Anfang 2000 bald nach dem Erwerb der Gesellschaft durch AOL entwickelt. Am 14. März wurde das Programm für das Download auf den Servern von Nullsoft bereitgestellt. Das Ereignis wurde auf Slashdot vorzeitig bekannt gegeben, und Tausende haben das Programm an diesem Tag heruntergeladen. Der Quellcode sollte später, unter dem GNU General Public License (GPL) veröffentlicht werden.

Am nächsten Tag hat AOL die Verfügbarkeit des Programms über gesetzliche Sorgen aufgehört und hat Nullsoft davon zurückgehalten, weitere Arbeit am Projekt zu tun. Das hat gnutella nicht aufgehört; nach ein paar Tagen war das Protokoll offene und freie vereinbare und konstruierte Rückquellklone gewesen hat begonnen zu erscheinen. Diese parallele Entwicklung von verschiedenen Kunden durch verschiedene Gruppen bleibt der Modus operandi der gnutella Entwicklung heute.

Das gnutella Netz ist eine völlig verteilte Alternative zu solchen halbzentralisierten Systemen als FastTrack (KaZaA) und ursprünglicher Napster. Die anfängliche Beliebtheit des Netzes wurde durch die bedrohte gesetzliche Besitzübertragung von Napster Anfang 2001 angespornt. Diese wachsende Woge in der Beliebtheit hat die Grenzen der Skalierbarkeit des anfänglichen Protokolls offenbart. Anfang 2001 haben Schwankungen auf dem Protokoll (zuerst durchgeführt in geschlossenen und Eigentumsquellkunden) eine Verbesserung in der Skalierbarkeit erlaubt. Anstatt jeden Benutzer als Kunde und Server zu behandeln, wurden einige Benutzer jetzt als Ultragleiche, Routenplanungssuchbitten und Antworten für mit ihnen verbundene Benutzer behandelt.

Das hat dem Netz erlaubt, in der Beliebtheit zu wachsen. Gegen Ende 2001 der gnutella Kunde ist Grundlegender LimeWire freie und offene Quelle geworden. Im Februar 2002 hat Morpheus, eine kommerzielle Dateiteilen-Gruppe, seine mit Sitz in FastTrack Gleicher-zu-Gleicher-Software aufgegeben und hat einen neuen Kunden befreit, der auf der freien und offenen Quelle gnutella Kunde Gnucleus gestützt ist.

Das Wort gnutella bezieht sich heute nicht auf irgendwelches Projekt oder Stück der Software, aber zum offenen von den verschiedenen Kunden verwendeten Protokoll.

Der Name ist ein Handkoffer von GNU und Nutella, dem Markennamen einer italienischen Haselnuss schmackhafte Ausbreitung: Vermutlich haben Frankel und Pfeffer viele Nutella gegessen, die am ursprünglichen Projekt arbeiten und haben vorgehabt, ihr beendetes Programm laut der GNU-Lizenz der Breiten Öffentlichkeit zu lizenzieren. Gnutella wird mit dem GNU-Projekt oder seinem eigenen Gleicher-zu-Gleicher-Netz, GNUnet nicht vereinigt.

Am 26. Oktober 2010 wurde populäre kostenlose Software gnutella servent LimeWire geschlossen von Richter Kimba Wood von USA-Landgericht für den Südlichen Bezirk New Yorks bestellt, als sie eine Einstweilige Zustimmungsverfügung unterzeichnet hat, über die sich LimeWire und Aufnahme-Industrieankläger geeinigt hatten. Dieses Ereignis hat einen bemerkenswerten Fall in der Größe des Netzes verursacht, weil, während er die einstweilige Verfügung verhandelt hat, LimeWire Personal entfernte Stilllegung des gnutella Zugangs und Dateiübertragungen hinzufügen ließ, weil einige Benutzer betroffene Versionen installiert haben. Als die einstweilige Verfügung in Kraft getreten ist, haben Versionen später als 5.5.10 das Netz verlassen oder waren arbeitsunfähig, als Benutzer sie angefangen haben. Das geschlossene hat FrostWire nicht betroffen, eine Gabel von LimeWire hat 2004 gemacht, der blockierenden Code und adware ausgeschlossen hat. Da LimeWire kostenlose Software ist, hält nichts Leute davon ab, zusätzliche Gabeln von LimeWire zu machen, der durch das geschlossene ungekünstelt ist, wenn sie gewünscht haben, so lange es Handelsmarken von LimeWire nicht verwendet.

Am 9. November 2010 wurde LimeWire von einer heimlichen Mannschaft von Entwicklern wieder belebt und Piratenausgabe von LimeWire genannt. Es hat auf LimeWire 5.6 BETA basiert. Diese Version hat seine Server-Abhängigkeiten entfernen lassen, und alle PRO-Eigenschaften haben umsonst ermöglicht.

Design

Um sich vorzustellen, wie gnutella ursprünglich gearbeitet hat, stellen Sie sich einen großen Kreis von Benutzern vor (genannt Knoten), von denen jeder gnutella Kundensoftware haben. Auf dem anfänglichen Anlauf muss die Kundensoftware urladen und mindestens einen anderen Knoten finden. Verschiedene Methoden sind dafür einschließlich einer vorher existierenden Adressliste von vielleicht mit der Software verladenen Arbeitsknoten verwendet worden, mit aktualisierten geheimen Weblagern bekannter Knoten (hat Gnutella Geheime Weblager genannt), UDP geheime Gastgeber-Lager und, selten, sogar IRC. Einmal verbunden bittet der Kunde um eine Liste von Arbeitsadressen. Der Kunde versucht, zu den Knoten in Verbindung zu stehen, es, wurde sowie Knoten verladen, die es von anderen Kunden erhält, bis es eine bestimmte Quote erreicht. Es steht zu nur in Verbindung, den viele Knoten, lokal die Adressen versteckend, es noch nicht versucht hat, und die Adressen verwirft, die es versucht hat, die ungültig waren.

Wenn der Benutzer eine Suche tun will, sendet der Kunde die Bitte an jeden aktiv verbundenen Knoten. In der Version 0.4 des Protokolls war die Zahl aktiv verbundener Knoten für einen Kunden (ungefähr 5) ziemlich klein, so hat jeder Knoten dann die Bitte zu allen seinen aktiv verbundenen Knoten nachgeschickt, und sie der Reihe nach die Bitte und so weiter nachgeschickt haben, bis das Paket eine vorher bestimmte Zahl von Sprüngen vom Absender (maximale 7) erreicht hat.

Seit der Version 0.6 ist gnutella ein zerlegbares Netz, das aus Blatt-Knoten und extremen Knoten (auch gemacht ist, genannt Ultragleiche). Die Blatt-Knoten werden mit einer kleinen Anzahl von Ultragleichen verbunden (normalerweise 3), während jeder Ultragleiche mit mehr als 32 anderen Ultragleichen verbunden wird. Damit höher outdegree wurde die maximale Zahl von Sprüngen eine Abfrage kann reisen, zu 4 gesenkt.

Blätter und Ultragleiche verwenden das Anfragenroutenplanungsprotokoll, um Query Routing Table (QRT), einen Tisch von 64 Ki-Ablagefächern und bis zu 2 Mi-Ablagefächern auszutauschen, die aus hashed Schlüsselwörtern bestehen. Ein Blatt-Knoten sendet seinen QRT jedem der Ultragleichen er wird damit verbunden und späht ultra verschmelzen den QRT aller ihrer Blätter (verkleinert zu 128 Ki-Ablagefächern) plus ihr eigener QRT (wenn sie Dateien teilen), und Austausch das mit ihren eigenen Nachbarn. Anfragenroutenplanung wird dann durch hashing die Wörter der Abfrage und des Sehens getan, ob sie alle im QRT zusammenpassen. Ultragleiche tun diese Kontrolle vor dem Versand einer Abfrage zu einem Blatt-Knoten, und auch vor dem Versand der Abfrage einem Gleichen extremer Knoten, vorausgesetzt dass das der letzte Sprung ist, kann die Abfrage reisen.

Wenn eine Suchbitte ein Ergebnis nach oben dreht, setzt sich der Knoten, der das Ergebnis hat, mit dem Forscher in Verbindung. Im klassischen gnutella Protokoll wurden Antwortmeldungen entlang dem Weg zurückgesendet, durch den die Abfrage durchgekommen ist, weil die Abfrage selbst sich identifizierende Information des Knotens nicht enthalten hat. Dieses Schema wurde später revidiert, so dass Suchergebnisse jetzt User Datagram Protocol (UDP) direkt zum Knoten übertragen werden, der die Suche, gewöhnlich ein Ultragleicher des Knotens begonnen hat. So, im aktuellen Protokoll, tragen die Abfragen die IP-Adresse und Hafen-Zahl jedes Knotens. Das senkt den Betrag des durch das gnutella Netz aufgewühlten Verkehrs, es bedeutsam ersteigbarer machend.

Wenn sich der Benutzer dafür entscheidet, die Datei herunterzuladen, verhandeln sie die Dateiübertragung. Wenn der Knoten, der die gebetene Datei hat, nicht firewalled ist, kann der Fragen-Knoten dazu direkt in Verbindung stehen. Jedoch, wenn der Knoten firewalled ist, den Quellknoten verhindernd, eingehende Verbindungen zu erhalten, sendet der Kunde, der will eine Datei herunterladen, ihm eine so genannte Stoß-Bitte an den Server für den entfernten Kunden, um die Verbindung stattdessen zu beginnen (um die Datei zu stoßen). Zuerst wurden diese Stoß-Bitten entlang der ursprünglichen Kette aufgewühlt, die es gepflegt hat, der Abfrage zu senden. Das war ziemlich unzuverlässig, weil Wege häufig brechen würden und aufgewühlte Pakete immer unterworfen sind, um Kontrolle zu überfluten. Deshalb wurden so genannte Stoß-Vertretungen eingeführt. Das sind gewöhnlich die Ultragleichen eines Blatt-Knotens, und sie werden in Suchergebnissen bekannt gegeben. Der Kunde steht zu einer dieser Stoß-Vertretungen mit einer HTTP-Bitte in Verbindung, und die Vertretung sendet eine Stoß-Bitte, im Auftrag des Kunden durchzublättern. Normalerweise ist es auch möglich, eine Stoß-Bitte über UDP zur Stoß-Vertretung zu senden, die effizienter ist als das Verwenden von TCP. Stoßen Sie Vertretungen haben zwei Vorteile: Erstens sind Ultragleicher-blättige Verbindungen stabiler als Wege, der Stoß-Bitten viel zuverlässiger macht. Zweitens reduziert es den Betrag des durch das gnutella Netz aufgewühlten Verkehrs.

Schließlich, wenn ein Benutzer trennt, spart die Kundensoftware die Liste von Knoten, dass es mit und diejenigen aktiv verbunden wurde, die von Gestank-Paketen für den Gebrauch das nächste Mal gesammelt sind, wenn es versucht in Verbindung zu stehen, so dass es unabhängig von jeder Art von Stiefelstrippe-Dienstleistungen wird.

In der Praxis war diese Methode, im gnutella Netz zu suchen, häufig unzuverlässig. Jeder Knoten ist ein regelmäßiger Computerbenutzer; als solcher verbinden sie ständig und trennen, so ist das Netz nie völlig stabil. Außerdem sind die Bandbreite-Kosten der Suche auf gnutella exponential zur Zahl von verbundenen Benutzern gewachsen, häufig Verbindungen sättigend und langsamere nutzlose Knoten machend. Suchen Sie deshalb Bitten wären häufig fallen gelassen, und die meisten Abfragen haben nur einen sehr kleinen Teil des Netzes erreicht. Diese Beobachtung hat das gnutella Netz als ein unbezwingbares verteiltes System identifiziert, und hat die Entwicklung von verteilten Hash-Tabellen begeistert, die viel mehr ersteigbar sind, aber nur genaues Match, aber nicht Schlüsselwort unterstützen, suchen.

Die Probleme von Engpässen, gnutella Entwickler zu richten, hat ein abgestuftes System von Ultragleichen und Blättern durchgeführt. Statt aller Knoten, die gleich betrachten werden, wurden Knoten, die ins Netz eintreten, am 'Rand' des Netzes als ein Blatt behalten, nicht verantwortlich für jede Routenplanung und Knoten, die zu Routenplanungsnachrichten fähig waren, wurden Ultragleichen gefördert, die Blatt-Verbindungen und Weg-Suchen und Netzwartungsnachrichten akzeptieren würden. Das hat Suchen erlaubt, sich weiter durch das Netz fortzupflanzen, und hat zahlreiche Modifizierungen in der Topologie berücksichtigt, die die Leistungsfähigkeit und Skalierbarkeit außerordentlich verbessert haben.

Zusätzlich hat gnutella mehrere andere Techniken angenommen, um Verkehr oben zu reduzieren und Suchen effizienter zu machen. Am bemerkenswertesten sind Query Routing Protocol (QRP) und Dynamic Querying (DQ). Mit QRP erreicht eine Suche nur jene Kunden, die wahrscheinlich die Dateien haben werden, so wachsen seltene Dateisuchen gewaltig effizienter, und mit DQ der Suchhalt, sobald das Programm genug Suchergebnisse erworben hat, der gewaltig den Betrag des durch populäre Suchen verursachten Verkehrs reduziert. Gnutella Für Benutzer hat einen riesengroßen Betrag der Information über diese und anderen Verbesserungen zu gnutella im benutzerfreundlichen Stil.

Einer der Vorteile, so dezentralisierten gnutella zu haben, soll es sehr schwierig machen, das Netz zu schließen und es ein Netz zu machen, in dem die Benutzer die einzigen sind, wer entscheiden kann, welcher Inhalt verfügbar sein wird. Verschieden von Napster, wo sich das komplette Netz auf den Hauptserver verlassen hat, kann gnutella nicht durch das Schließen irgendwelchen Knotens geschlossen werden, und es ist für jede Gesellschaft unmöglich, den Inhalt des Netzes zu kontrollieren, das auch wegen der vielen ist, befreien und öffnen Quelle gnutella Kunden, die das Netz teilen.

Protokoll-Eigenschaften und Erweiterungen

Gnutella hat wirklich einmal auf rein Abfrage Überschwemmungsbasiertes Protokoll funktioniert. Das überholte gnutella Netzprotokoll der Version 0.4 verwendet fünf verschiedene Paket-Typen, nämlich

  • Schwirren: Entdecken Sie Gastgeber im Netz
  • Gestank: Antworten Sie dem Schwirren
  • Abfrage: Suchen Sie nach einer Datei
  • Abfrage hat geschlagen: Antworten Sie der Abfrage
  • Stoß: Laden Sie Bitte um firewalled servents herunter

Diese sind mit hauptsächlich Suche des gnutella Netzes beschäftigt. Dateiübertragungen werden mit HTTP behandelt.

Die Entwicklung des gnutella Protokolls wird zurzeit durch das Gnutella Entwickler-Forum (Der GDF) geführt. Viele Protokoll-Erweiterungen sind gewesen und werden von den Softwareverkäufern und freien gnutella Entwicklern des GDF entwickelt. Diese Erweiterungen schließen intelligente Anfragenroutenplanung, SHA-1 Kontrollsummen ein, fragen Erfolg-Übertragung über UDP, über UDP, dynamische Abfragen über TCP, Dateiübertragungen über UDP, XML meta Daten fragend, Quellaustausch (hat auch das Download-Ineinandergreifen genannt), und das parallele Herunterladen in Scheiben (das Schwärmen).

Es gibt Anstrengungen, diese Protokoll-Erweiterungen im gnutella 0.6 Spezifizierung an der gnutella Protokoll-Entwicklungswebsite zu beenden. Der gnutella 0.4 Standard, noch die letzte Protokoll-Spezifizierung seit allen Erweiterungen seiend, besteht nur als Vorschläge bis jetzt, ist überholt. Tatsächlich ist es hart oder unmöglich, heute mit dem 0.4 Händedruck und gemäß Entwicklern im GDF in Verbindung zu stehen, Version 0.6 ist das, welche neue Entwickler das Verwenden der arbeitsim Gangespezifizierungen verfolgen sollten.

Das gnutella Protokoll bleibt unter der Entwicklung und trotz Versuche, eine saubere Unterbrechung mit der Kompliziertheit geerbt vom alten gnutella 0.4 zu machen und eine saubere neue Nachrichtenarchitektur zu entwerfen, es ist noch eines der erfolgreichsten dateiteilenden Protokolle bis heute.

Gnutella2

Das Gnutella2 Protokoll, das häufig auf als G2 verwiesen ist, ist trotz seines Namens, nicht eines Nachfolger-Protokolls von gnutella, aber eher einer Gabel. Ein wunder Punkt mit vielen gnutella Entwicklern ist, dass der Gnutella2-Name eine Steigung oder Überlegenheit befördert, die zu einem Gnutella2 Flamme-Krieg geführt hat. Andere Kritik hat den Gebrauch des gnutella Netzes zur Stiefelstrippe G2 Gleiche und schlechte Dokumentation des G2 Protokolls eingeschlossen. Zusätzlich konnten die Suchwiederholungen des Kunden von Shareaza, der einer der G2 anfänglichen Kunden war, das gnutella Netz unnötigerweise belasten.

Die Gabel hat 2002 stattgefunden, und beide Protokolle haben bedeutende Wiederholungen seit dieser Zeit erlebt. G2 ist im Vorteil und Nachteile im Vergleich zu gnutella. Ein häufig zitierter Vorteil ist Gnutella2's hybride Suche ist effizienter als die ursprüngliche Gnutella-Anfragenüberschwemmung, die 2002 verwendet wurde. Ein Vorteil für gnutella ist seine Benutzerbevölkerungszahlen in den Millionen, wohingegen das G2 Netz ungefähr eine kleinere Größenordnung ist. Es ist schwierig, die Protokolle in ihrer aktuellen Form zu vergleichen; die individuelle Kundenwahl wird wahrscheinlich so viel eine Wirkung einem Endbenutzer in jedem Netz haben.

Software

Die folgenden Tische vergleichen allgemeine und technische Information für mehrere Anwendungen, die das gnutella Netz unterstützen. Die Tische versuchen nicht, eine ganze Liste von gnutella Kunden zu geben. Die Tische werden auf Kunden beschränkt, die am Strom gnutella Netz teilnehmen können.

Allgemeine Spezifizierungen

Eigenschaften von Gnutella

Zeichen

</klein>
  • Morpheus unterscheidet sich bedeutsam und kann völlig unabhängigen Code vom Motor von GnucDNA haben. Morpheus kann als ein moderner Ultragleicher fungieren, wohingegen andere Kunden von GnucDNA nicht können.
  • Gnucleus und Kiwi Alpha verwenden den Motor von GnucDNA.
  • BearFlix sollte BearShare ähnlich sein.
  • giFTcurs, Apollon, FilePipe, giFToxic, giFTui, giFTwin32, KCeasy, Vergiftet, und Xfactor sind GUI Vorderenden für den Geschenkmotor.
  • etomi verwendet überholten Shareaza, der Code vernetzt.
  • MP3 Rakete, 360Share, LemonWire, MP3Torpedo und DexterWire ist das Paket von LimeWire.
  • FrostWire ist fast zu LimeWire identisch; Acquisition und Cabos haben kundenspezifische Vorderenden, aber verwenden LimeWire als ein Motor.
  • Piratenausgabe von LimeWire ist eine wieder belebte Version von LimeWire, so dieselben Eigenschaften habend.

Siehe auch

  • Bitzi
  • Kettenfahrzeug von Gnutella

Außenverbindungen


Gitarre / George Lucas
Impressum & Datenschutz