Probleme: Difference between revisions

From
Jump to navigation Jump to search
No edit summary
No edit summary
Line 17: Line 17:
Ein enormes Problem war die schlechte Skalierbarkeit von Gnutella. Im Mittel war das Gnet nur bei einer Anzahl von 400-800 Usern nutzbar. Bei einer größeren Anzahl von Useren trat das so genannte Modem-Bandwith-Barrier Problem auf. Dieses Problem entstand bei Usern mit Modem, deren nutzbare Bandbreite durch den Traffic des Gnet überschritten wurde, was zu Störungen im gesamten Gnet führte, da z.B. Query Hits nicht mehr weitergeleitet werden konnten. <br>
Ein enormes Problem war die schlechte Skalierbarkeit von Gnutella. Im Mittel war das Gnet nur bei einer Anzahl von 400-800 Usern nutzbar. Bei einer größeren Anzahl von Useren trat das so genannte Modem-Bandwith-Barrier Problem auf. Dieses Problem entstand bei Usern mit Modem, deren nutzbare Bandbreite durch den Traffic des Gnet überschritten wurde, was zu Störungen im gesamten Gnet führte, da z.B. Query Hits nicht mehr weitergeleitet werden konnten. <br>
Um zu verhindern, dass diese Störungen durch überlastet Modems auftreten musste das Netzwerk strukturiert werden. Servents mit schneller Verbindung sollen daher überwiegend Verbindungen mit anderen 'schnellen' Servents aufbauen und den Kern des Netzwerks bilden. Servents mit langsamer Verbindung sollen hingegen an den Netzwerkrand, wo sie nicht viel Traffic zu verwalten haben. <br>
Um zu verhindern, dass diese Störungen durch überlastet Modems auftreten musste das Netzwerk strukturiert werden. Servents mit schneller Verbindung sollen daher überwiegend Verbindungen mit anderen 'schnellen' Servents aufbauen und den Kern des Netzwerks bilden. Servents mit langsamer Verbindung sollen hingegen an den Netzwerkrand, wo sie nicht viel Traffic zu verwalten haben. <br>
Um diese Strukturierung zu erreichen müssen User bei ihren Clients ihre Verbindungsgeschwindigkeit (T1, T3, ...) einstellen. Verbindungen zu überlasteten Servents werden beendet, was zur Folge hat, dass diese an den Netzwerkrand verschoben werden. Eine neuere Implementationsidee ist die Unterteilung der Servents in [[Ultrapeers]] und [[Leafs]].
Um dies zu erreichen werden Implementationen wie [[Flow Control]], [[Ping Pong Schema]] und das [[Query Routing Protocol]] verwendet.
Ausserdem werden Implementationen wie [[Flow Control]], [[Ping Pong Schema]] und das [[Query Routing Protocol]] verwendet.

Revision as of 15:15, 4 February 2006

Die erste Version von Gnutella (v0.4) hatte in den drei folgenden Bereichen wesentliche Probleme:


Download

Beim Versuch sich Dateien aus dem Gnutella Netzwerk herunterzuladen kam es oft zu Fehlern, so dass der Download nicht gestartet oder beendet werden konnte. Das lag einerseits an schlecht programmierten Clients, die die Vorgaben des Gnutella Netzwerks zum Verhalten eines Clients nicht oder nur teilweise implementierten.
Andererseits trugen die User wesentlich selbst dazu bei. Es gab eine wachsende Anzahl an Usern, die browserbasierte Suchdienste wie asiayeah.com und gnute.com verwendeten, um Dateien herunterzuladen und dadurch selber keine Dateien im Gnet anboten. Die Folge davon waren viele Download Anfragen, aber nur wenige Bereistellungen von Uploads. Eine Datei konnte man durch eine Suche im Gnet zwar finden, aber meistens nicht herunterladen oder man musste eine lange Wartezeit hinnehmen, da der anbietende Servent seine maximalen Uploads schon erreicht hatte.
Deshalb ging man dazu über, User zu Blockieren, die Webinterfaces benutzten.

Ein weiteres Problem war das Userverhalten. Viele benutzten zwar Clients, stellten aber trotzdem nichts zum Upload bereit oder waren nur kurz mit dem Gnet verbunden, so dass angefangene Uploads nicht beendet werden konnten.
Seitdem ist es bei den meistens Clients daher notwendig Uploads bereitzustellen, wenn man Dateien herunterladen möchte.
Um den Traffic im Gnet zu verringern und unnötige Query Hits zu vermeiden, die wahrscheinlich ein Download Request nach sich ziehen würden, wird bei neueren Clients nur noch ein Query Hit gesendet, wenn Ressourcen für ein Upload bereitgestellt werden. Ausserdem senden Servents ein Busysignal wenn kein Ressourcen verfügabr sind. Dadurch versucht der anfragende Servent es zu einem späteren Zeitpunkt noch einmal.
Das hatte auch gleichzeitig den Effekt, dass User länger online blieben um ihre Downloads zu vervollständigen und somit auch länger ihre Uploads dem Gnet zur Verfügung stellten.

Skalierbarkeit

Ein enormes Problem war die schlechte Skalierbarkeit von Gnutella. Im Mittel war das Gnet nur bei einer Anzahl von 400-800 Usern nutzbar. Bei einer größeren Anzahl von Useren trat das so genannte Modem-Bandwith-Barrier Problem auf. Dieses Problem entstand bei Usern mit Modem, deren nutzbare Bandbreite durch den Traffic des Gnet überschritten wurde, was zu Störungen im gesamten Gnet führte, da z.B. Query Hits nicht mehr weitergeleitet werden konnten.
Um zu verhindern, dass diese Störungen durch überlastet Modems auftreten musste das Netzwerk strukturiert werden. Servents mit schneller Verbindung sollen daher überwiegend Verbindungen mit anderen 'schnellen' Servents aufbauen und den Kern des Netzwerks bilden. Servents mit langsamer Verbindung sollen hingegen an den Netzwerkrand, wo sie nicht viel Traffic zu verwalten haben.
Um diese Strukturierung zu erreichen müssen User bei ihren Clients ihre Verbindungsgeschwindigkeit (T1, T3, ...) einstellen. Verbindungen zu überlasteten Servents werden beendet, was zur Folge hat, dass diese an den Netzwerkrand verschoben werden. Eine neuere Implementationsidee ist die Unterteilung der Servents in Ultrapeers und Leafs. Ausserdem werden Implementationen wie Flow Control, Ping Pong Schema und das Query Routing Protocol verwendet.