In der letzten Zeit gab es einigen Aufruhr um Napster, ein Programm, mit dem viele Benutzer MP3s und mit Hilfe von Wrapster auch andere Dateien tauschen können. Diejenigen, die Napster nicht kannten, werden das spätestens tun, seit Metallica Napster gezwungen hat, Benutzer, die illegal Metallica-MP3s verbreitet hatten, aus Napster auszuschließen. Aber Napster ist nicht das einzige Programm bzw. der einzige Service dieser Art – es gibt einige sehr interessante Nachfolger.
Gnutella
Gnutella wurde ursprünglich von Nullsoft entwickelt. Nullsoft ist seit einiger Zeit Teil von AOL, und da AOL mit Time Warner fusioniert hat, wurde die Entwicklung von Gnutella offiziell gestoppt. Man wollte scheinbar den CD-Umsätzen von Time Warner nicht schaden. Trotzdem gibt es aber Betas der Windows-Software online. Auf der Basis dieser Betas wurden zahlreiche Clones, unter anderem auch für Linux geschrieben.
Das Besondere an Gnutella ist, dass es keinen zentralen Host wie bei Napster gibt, über den alles abgewickelt wird, sondern dass alle Programme sich gegenseitig Suchaufträge weitergeben und überprüfen, ob sie die verlangte Datei haben. Dadurch sind alle Gnutella-Programme gleichzeitig Server und Client. Der Vorteil dieses dezentralen, verteilten Designs ist, dass das System auch dann weiterbesteht, wenn ein Programm ausfällt. Alle interessanten Dateien werden in kurzer Zeit von anderen Nutzern übernommen und so an vielen Stellen parallel gesichert.
Nachteil des Systems ist, dass man die Adresse eines anderen Gnutella-Benutzers braucht, um am Netzwerk teilzunehmen. Solch eine Adresse bekommt man unter http://gnutella.nerdherd.net/cgi-bin/hosts.cgi. Ein weiteres Problem ist, dass Gnutella nicht vollständig anonym ist. Es ist problemlos möglich, die IP-Adressen aller Nutzer mitzuloggen, die sich eine Datei vom lokalen Gnutella downloaden. Gnutella war von Nullsoft ursprünglich nur für relativ kleine Gruppen geplant; deshalb ist es angesichts der vielen Benutzer etwas langsam.
Eine sehr gute Gnutella-Implementation für Linux (und Win32) ist Gnut. Gnut ist relativ ausgereift, hat aber bis jetzt kein stabiles graphisches Interface. Das Kommando “help” zeigt eine Liste der gesammelten Kommandos an. Konfiguriert wird Gnut über die Datei ~/.gnutrc. In der Datei ~/.gnut_hosts werden alle Adressen bekannter Hosts gespeichert. Gnut ist in der Lage, alle empfangenen Suchanfragen mit dem Befehl “monitor” anzuzeigen. Beim Suchen mit Gnut und allen anderen Gnutella-Programmen muss man darauf achten, dass Wildcards (*, ?) nicht von allen Implementationen erkannt werden – man sollte nur nach Stichworten suchen. Gnut kann man unter http://www.umr.edu/~jjp downloaden.
Weitaus komfortabler als Gnut ist Gtk-gnutella. Gtk-gnutella übernimmt das Look & Feel des ursprünglichen Gnutella und läuft auf meinem System ohne Probleme. Das Interface ist weitgehend intuitiv; IP-Adressen trägt man im Format “Adresse:Port” im Feld neben Add ein. Binaries und Sourcecode von Gtk-gnutella bekommt man unter http://gtk-gnutella.sourceforge.net. Wie der Name schon sagt, braucht man GTK+, damit Gtk-gnutella läuft.
Eine weitere Gnutella-Implementation mit graphischem Interface ist Gnubile. Bei Gnubile muss man alle IP-Adressen unter dem Menüpunkt File/Preferences im Format “Adresse Port” eingeben. Ansonsten ist auch dieses Programm selbsterklärend. Voraussetzung für Gnubile ist GNOME. Das Programm bekommt man unter http://gnutella.wego.com.
Falls man nur mal in Gnutella reinschnuppern möchte, gibt es auch einige Gnutella-Suchmaschinen im Web unter den Adressen http://cruncher.ba-mannheim.de/~972869/gnutoka.cgi, http://www.gnutella.de, http://www.surfy.com/page/nut.php3 und http://www.dailyphat.com.
Wer noch mehr Clients bzw. Informationen zu Gnutella sucht, dem kann ich http://gnutella.wego.com empfehlen.
Jungle Monkey
Jungle Monkey ist ein relativ neues Programm – dementsprechend sind auch noch kaum Dateien darüber zu finden. Nichtsdestotrotz ist das System interessant. In Jungle Monkey gibt es mehrere Channels, in denen Dateien angeboten werden können. Jeder Benutzer kann solche Channels eröffnen, Dateien tauschen und mit anderen Benutzern chatten.
Jungle Monkey unterscheidet sich von anderen Programmen wie Gnutella, da es Multicasting benutzt (End to End Multicasting, um genau zu sein).
Als erstes öffnet Jungle Monkey einen so genannten “Root-Channel”, in dem der Benutzer über alle anderen Channels informiert wird. Da man ohne diesen Root-Channel nicht über andere Channels informiert werden kann, hat Jungle Monkey die Schwächen eines zentralisierten Systems wie Napster. Es ist zwar möglich, Channels ohne den Root-Channel zu öffnen, aber dann muss man sich die Adressen merken.
In den Channels selbst kann man dann Dateien downloaden. Es kann aber einen Moment dauern, bis alle Dateien angezeigt werden, da nur etwa alle zehn Sekunden übertragen wird, welche Dateien sich im Channel befinden. Falls man keinen anderen Root-Channel angibt, öffnet Jungle Monkey beim Start den Standard-Channel.
Jungle Monkey gibt es in einer GTK- und in einer GNOME-Version, wobei die GNOME-Version zu empfehlen ist. Außerdem gibt es noch eine Kommandozeilen-Version namens jmlite und einen Kommandozeilen-Suchserver mit dem Namen jmsearchserver. Ausführliche Informationen zu Jungle Monkey sowie Source und Binaries gibt es unter http://www.junglemonkey.net. (Falls diese Seite nicht zu erreichen ist, http://141.213.11.223.)
Freenet
Freenet ist der Versuch, ein Netzwerk zu schaffen, in dem Informationen anonym bezogen und zur Verfügung gestellt werden können. Ähnlich wie Gnutella ist Freenet ein verteiltes und dezentralisiertes System. In diesem System gibt es ein Netzwerk von Nodes (Knoten). Von diesen Nodes kann man Dateien herunterladen, indem man einen Key zu einem Node schickt. Keys haben ein Format wie zum Beispiel “text/philosophy/sun_tzu/art_of_war”. Dabei spielt es keine Rolle, wo eine Datei physikalisch gespeichert ist: Falls der erste Node die Datei nicht hat, fragt er einfach den nächsten. Das Ganze funktioniert so ähnlich wie bei Gnutella – nur dass Freenet auch für größere Netze konzipiert wurde und das Protokoll deshalb noch etwas komplizierter ist. Die aktuelle Version von Freenet kann noch keine Anonymität und Verschlüsselung bieten, aber in der nächsten Version soll Freenet relativ sicher sein. Momentan gibt es noch einige Probleme mit der Architektur von Freenet. So ist es zum Beispiel noch nicht möglich, Dokumente zu aktualisieren oder effizient zu durchsuchen. Diese Probleme sollen aber in zukünftigen Versionen behoben werden, obwohl es nicht einfach ist, ein Dokument zu ändern, wenn niemand weiß, wo es tatsächlich gespeichert ist. Mehr Informationen zum Protokoll und zur Philosophie, die hinter Freenet steckt, sowie zum Programm selbst gibt es auf der Freenet-Homepage http://freenet.sourceforge.net.
Freenet ist in Java geschrieben, und daher leicht auf andere Plattformen portierbar. Es gibt aber auch Clients in Perl und C. Der “Liberator” genannte Perl-Client ist Teil der Freenet-Software; FreeClient, den C-Client, gibt es unter http://lar2.dyndns.org (die Seite ist nicht ständig online). Auch auf Freenet kann man begrenzt über das Web zugreifen (http://uts.cc.utexas.edu/~blanu/keyindex.html), der Zugriff ist dann natürlich nicht anonym. Für die Java-Version von Freenet braucht man verständlicherweise eine Java-Implementation.
Fazit
Für Gnutella gibt es einige gute Implementationen, mit denen man Unmengen an Dateien finden kann; aber ich persönlich denke, dass in Zukunft vor allem Freenet sehr interessant wird.
Glossar
-
Multicasting
-
Beim Multicasting kann man ein Datenpaket von einer Quelle gleichzeitig an viele Ziele schicken. Das spart im Vergleich zum sonst üblichen Unicasting Bandbreite.






