Moin,
und das ist beim neuen morpheus extrem penetrant, ich kann fast 10 minuten lange gar nichts nach dem einschalten von morpheus mit ihm machen, weil der so ausgelastet ist.
und es gib ein ca. 65:35 upload...nur ich frage mich echt was zum geier da so! viel als upload weggeht.
Ich habs zwar nicht extra erwähnt, habe aber die Antwort weiter unten schon gegeben.
Bei Napster sieht das Netzwerk ungefähr so aus:
A B C
\ | /
|/
D--S--E
/|\
/ | \
F G H
Ein zentraler Server(S) (bzw. später dann auch mehrere) um den sich die einzelnen Clients(A bis H) ringsherum versammeln. Auf jeder Verbindung Client-Server müssen nur die Suchanfragen des betreffenden Clients und die Antworten des Servers transportiert werden.
Bei Gnutella und damit auch Morpheus sieht das Netz eher so aus:
A----B
\
C--D---G
/ |
E F---H
Es gibt keinen zentralen Server und die Kommunikationskanäle müssen mehr Informationen transportieren. Wenn H etwa eine Suchanfrage hat, dann schickt er sie an alle Servents mit denen er verbunden ist, in diesem Fall nur F. F empfängt die Anfrage, schaut nach ob er etwas passendes hat und merkt sich die Anfrage. Wenn etwas passendes gefunden wurde, schickt er eine Antwort an F. In jedem Fall aber schickt er die Anfrage über alle Kommunkationsverbindungen (ausser der auf der die Anfrage reingekommen ist) weiter, also an D. D macht jetzt das gleiche Spiel und schickt die Anfrage an G und C. Wenn D etwas findet schickt er die Antwort an F. F weiss wer ihn ursprünglich danach gefragt hat und schickt die Antwort an H zurück. Evt. merkt sich F auch die Antwort um spätere Anfragen schneller beantworten zu können. G hat die Anfrage mittlerweile empfangen und sendet ggbf. eine Antwort an D zurück der sie über F zu H weiterleitet. Von C aus nimmt die Anfrage ausserdem ihren Weg zu E und A und schliesslich zu B. Es gibt natürlich eine time-to-live in jedem Paket die dafür sorgt dass die Anfrage nicht bis zum Sankt-Nimmerleinstag herumgeistert. Die hat aber auch nicht nur gute Seiten da sie dafür sorgt dass Anfragen von einem Ende des Netzes das andere Ende eher nicht erreichen, jeder Client also nur eine sehr beschränkte Sichtweite hat.
Du merkst dass in diesem Schema gerade zwischen C und D sehr viel Netzwerkverkehr unterwegs ist, ohne dass einer von den beiden irgendwas herunterlädt. Die Algorithmen im Netzwerk sorgen zwar dafür, dass Benutzer mit schnelleren Anbindungen eher in die Mitte des Netzes kommen und Modembenutzer weiter nach aussen, aber letztendlich ist der Overhead der allein durch die Verbindung mit dem Netz besteht ziemlich groß.
Wahrscheinlich hat dein Client auch eine Möglichkeit alle ankommenden Queries zu beobachten, sowas ist zumindest bei Gnutella in der LimeWire-Inkarnation dabei. Da kannst du dann sehen was die anderen Benutzer so suchen und merkst dass bei deinem Servent in sehr kurzer Zeit ziemlich viele Suchanfragen eingehen.
Die Vorteile dass das Netz dadurch ziemlich abschaltungsresistent und unabhängig wird, sind nicht zu verachten, auch wenn die Diskussion um die Skalierbarkeit von Gnuella schon seit längerem die Runde macht.
Das Fastrack-Netz war da etwas anders aufgebaut:
a-----B----c
\ /|\
| / | |
|/ | |
E | d
/|\ | |
g f \ | |
\ |/
--H--i
(langsam wird das wirklich schwierig :)
Eine Reihe von Nodes (Kleinbuchstaben) versammeln sich um eine Reihe von Supernodes (Grossbuchstaben). Dabei kann eine Node mehrere Verbindungen zu mehreren Supernodes haben, die Supernodes sind aber alle untereinander vernetzt. Wenn eine Node eine Suchanfrage sendet, dann sendet sie sie nur an die Supernodes mit denen sie verbunden ist und kriegt auch nur von dort die Antwort. Eine normale Node braucht also keinen zusätzlichen Traffic weiterleiten. Das Suchen und Indizieren übernehmen die Supernodes unter sich irgendwie.
Daher ist es nur natürlich dass Morpheus seit dem Umstieg von FastTrack- auf Gnutella-Technologie sehr viele merkwürdigen Daten rein- und rausschickt.
Sehr viele gute Informationen über Gnutella finden sich unter http://www.limewire.com/index.jsp/learn.
Das bisschen an Informationen was über FastTrack bekannt war, befand sich bisher auf den Seiten von gift (GNU Internet File Transfer, vormals giFT isn't FastTrack bzw. generic interface to FastTrack) unter http://gift.sourceforge.net, wurde aber anscheinend mittlerweile weggeräumt. Vielleicht hat ja noch jemand mit der Wayback Machine Erfolg.
--
Henryk Plötz
Grüße aus Berlin