eDonkey2000
aus Wikipedia, der freien Enzyklopädie
eDonkey2000 (abgekürzt auch ed2k) ist der Name einer bekannten Tauschbörse im Internet. Mit fast jedem Betriebssystem und entsprechender Software können Internet-User dieses Netzwerk nutzen.
Bei ed2k kommen sowohl das Peer-to-Peer-Prinzip, als auch das Client-Server-Prinzip zum Einsatz. Die Software, die ein normaler ed2k-Benutzer installiert, nennt man im Allgemeinen dennoch Client.
Inhaltsverzeichnis // [AnzeigenVerbergen] 1 Geschichte
2 ed2k-Links
2.1 Linkbestandteile
3 Client-Server
4 Serverlos
5 Peer-to-Peer
6 Eine kleine Auswahl an ed2k-Clients
7 Weblinks
[Bearbeiten]
Geschichte
Ursprünglich konnten Internet-User an dem Netz nur mit der Software eDonkey2000 von MetaMachine teilnehmen. Die zunächst bestehende Trennung zwischen Overnet und eDonkey wurde aufgehoben. 2002 entstand aus Unzufriedenheit mit dem originalen eDonkey2000-Client das eMule Projekt, um einen alternativen Client auf Open Source-Basis zu kreieren. Dieser erfreut sich mittlerweile auch grosser Beliebtheit. Im Oktober 2004 überholte eDonkey als Netzwerk in seiner Beliebtheit das KaZaA-Netzwerk ([DLMURL="http://www.heise.de/newsticker/meldung/52060"]heise news[/DLMURL] (KaZaA)).
[Bearbeiten]
ed2k-Links
Ein ed2k-Link dient dazu, den Client mit neuen Information wie Servern oder Dateien von Webseite zu versehen. Mit Hilfe der Links kann ein Server in die Server-Liste oder eine Datei in die Download-List des Clients aufgenommen werden. Folgende Links zeigen beispielhaft deren Aufbau:
- Datei: ed2k://|file|datei.txt|123|1234567890abcdef1234567890abcdef|
- Server: ed2k://|server|195.245.244.243|4661|
[Bearbeiten]
Linkbestandteile
- ed2k://|file Identifiziert den Link als Protokoll ed2k und als Datei.
- datei.txt Gibt dem Client den Namen der Datei an. Austauschbar.
- 123 Gibt Größe der Datei in Byte an.
- 1234567890abcdef1234567890abcdef Gibt den Hash-Wert an, um die Datei zu identifizieren. Bei Dateien die größer als ein sogenannter "Chunk" sind, ist es der übergreifende MD4-Hash aus allen aneinandergehängten MD4-Einzelhashes, welche aus je einem "Chunk" zu je 9,5 MiB (exakt 9500 KiB bzw. 9728000 Bytes) Daten errechnet werden. Bei Dateien die nur ein Chunk groß (oder kleiner) sind, ist es direkt der MD4-Hash dieses Chunks.
ed2k-Benutzer können diesen ed2k-Link an andere ed2k-Benutzer weitergeben, der Link zeigt immer auf die selbe Datei (wobei der Dateiname keine Rolle spielt, es sind lediglich Größe und Hash-Wert entscheidend).
[Bearbeiten]
Client-Server
Der Client versucht eine Verbindung zu einem Server aufzubauen. Die Server-Software ist ein eigens für diesen Zweck geschriebenes Programm. Grundsätzlich kann jeder Internet-Benutzer einen ed2k-Server anbieten, dies ist allerdings für Benutzer mit Internetanbindungen unter 2 MBit/Sek wegen der hohen Netzwerkbelastung nicht sinnvoll.
Zur Zeit (Dezember 2004) gibt es etwa 70 öffentliche ed2k-Server und 2,6 Mio Clients. Mai 2002 waren es 300-350 Server, die 200.000 Clients bedient haben. Die Betreiber von ed2k-Servern sind davon abgewichen, die original Server-Software [DLMURL="http://www.edonkey.com/documentation/aboutServer.html"]eDonkey2000 'dserver'[/DLMURL] ([DLMURL]http://www.edonkey.com/documentation/aboutServer.html[/DLMURL]) zu benutzen. Stattdessen kommt eine weitaus optimiertere Version von [DLMURL="http://lugdunum2k.free.fr/kiten.html"]Lugdunum 'eserver'[/DLMURL] ([DLMURL]http://lugdunum2k.free.fr/kiten.html[/DLMURL]) zum Einsatz. Dadurch konnten beispielsweise die Nutzerzahlen pro Server, bei gleichgebliebenen Bandbreiten- sowie Hardwareanforderungen, erheblich gesteigert werden.
Im Wesentlichen findet folgende Kommunikation zwischen Client und Server statt:
- Der Client übermittelt die Informationen über seine freigegebenen Dateien (Shares) an einen Server, der diese indiziert.
- Der Client möchte eine Datei suchen und übermittelt einen Teil eines Dateinamens (einige andere Eigenschaften wie Dateigröße sind ebenfalls möglich) an einen oder mehrere Server. Die angefragten Server durchsuchen ihre Indizes und schicken die entsprechenden ed2k-Links zurück.
- Der Client fragt regelmäßig alle bekannten Server ab, welche Clients die Dateien freigeben, die er herunterladen möchte. Die Server schauen in ihren Indizes nach und senden IP-Adressen und Ports dieser Clients zurück.
Die Server verwalten also nur einen Index der freigegebenen Dateien und der dazugehörigen Client-Adressen. Ein Server speichert und verschickt keine Dateien, sondern lediglich Metadaten über die Dateien.
[Bearbeiten]
Serverlos
Da die Netzlast der Server mit zunehmender Beliebtheit des ed2k-Netzwerks immer weiter steigt, wurden verschiedene Konzepte entwickelt, wie die Server zu entlasten seien. Inzwischen sind die meisten Clients in der Lage, ihren Datenverkehr mit dem Server mit Hilfe der zlib-Bibliothek zu komprimieren, und so Bandbreite auf Kosten von CPU-Zeit einzusparen. Der wohl radikalste Ansatz war aber derjenige, das eDonkey-Netz zu einem serverlosen Netz umzubauen. Der ursprüngliche ed2k-Entwickler baute dazu zunächst einen neuen Client (Overnet), der völlig ohne Server mit Hilfe des Kademlia-Algorithmus operierte. Sobald man einmal mit einem anderen Overnet-Client verbunden ist, erhält man eine Liste mit Clients, die man auf der Suche nach einer bestimmten Datei fragen kann. Wenn ein Client die Datei nicht hat (übrigens der Regelfall), weiß er zumindest, welcher andere Client topologisch näher an der Datei sitzt und weiterhelfen kann. Overnet funktionierte gut, litt aber daran, dass die Suche nach Dateien sehr langsam voran ging, und ein signifikanter Teil der Bandbreite des Clients als Overhead für die Suche verloren ging. Man kam daher vom Ansatz, eDonkey komplett serverlos zu machen, wieder ab. Ziel war nun nicht mehr, die Server komplett abzuschaffen, sondern parallel zur servergestützten Suche auch serverlos zu suchen und so die Server zu entlasten. Diese Funktionalität wurde als erstes in den originalen eDonkey-Client integriert, der dadurch zum eDonkey-Hybridclient wurde.
Inzwischen hat auch das Entwicklerteam des Marktführers unter den Clients, eMule, einen Hybridclient im Betatest, ihre Implementation des Kademlia-Algorithmus unterscheidet sich allerdings etwas von der des eDonkey-Clients, da man einige alte Zöpfe aus der Overnet-Zeit, die sich als hinderlich erwiesen hatten, abschneiden wollte. Inzwischen ist dieser eMule Kademlia-Client zum offiziellen eMule-Client avanciert. Sobald das Netz auch standardmäßig aktiviert ist, ist mit dem Durchbruch für das serverlose Netzwerk im Netzwerk zu rechnen.
[Bearbeiten]
Peer-to-Peer
Sobald ein Client vom Server über andere Clients informiert wurde, versucht er zu diesen zu verbinden. Im Folgenden werden die Clients Peers genannt, da sie gleich gestellt sind und der ed2k-Server in diesem Teil der Datenübertragung keine Rolle mehr spielt.
Ein Peer hat eine begrenzte Anzahl von Upload-Plätzen (Slots). Jeder Peer, der bei einem anderen Peer eine Datei anfordert, belegt einen Slot bei diesem. Sind alle Slots belegt, kommen die Peers in eine Warteliste (Queue) und müssen warten, bis sie dran sind.
Die Peers können eine Datei von mehreren Quellen gleichzeitig herunterladen und somit die Download-Zeit verkürzen. Gleichzeitig können sie die fertigen Teile (Chunks) ihrer noch laufenden Downloads an andere Peers verschicken.
[Bearbeiten]
Eine kleine Auswahl an ed2k-Clients
- Der ursprüngliche Client eDonkey2000 [DLMURL="http://www.edonkey2000.com/"][1][/DLMURL] ([DLMURL]http://www.edonkey2000.com/[/DLMURL]) wird immernoch weiterentwickelt, aber ist stark an das mittlerweile effizient gewordene Overnet gebunden. Ab Version 0.54 (wurde als Version 1.0 veröffentlicht) des eDonkey wird der Datenaustausch über Overnet stattfinden. Die alte Methode sich zu den eDonkey-Servern zu verbinden wird allerdings zuschaltbar sein, um weiterhin Erreichbarkeit zu gewährleisten, und um das Netz nicht in Emule und Overnet zerfallen zu lassen.
- eMule [2] ([2]) ist der zurzeit meistgenutzte ed2k-Client. Er wurde ursprünglich nur für Windows entwickelt und bringt einige Erweiterungen zum ed2k-Netzwerkprotokoll mit sich (z.B. das Austauschen von Quellen für eine Datei direkt zwischen Peers) welche in andere ed2k-Clients einflossen. Mittlerweile existieren mit [DLMURL="http://de.wikipedia.org/wiki/XMule"]xMule[/DLMURL] [3] (http://www.xmule.org/) und aMule [4] (http://www.amule.org/) auch Portierungen für Unix-basierende Systeme.
- MLDonkey [5] (http://www.nongnu.org/mldonkey/) wird in erster Linie für Linux entwickelt, es existieren aber auch Versionen für Darwin, FreeBSD, MorphOS, Solaris und Windows.
[Bearbeiten]
Weblinks
- [DLMURL="http://www.edonkey2000.com/"]eDonkey2000 - Overnet[/DLMURL] ([DLMURL]http://www.edonkey2000.com%5b/DLMURL]) - Homepage der Ursoftware
- eMule-Project (eMule-Project) - alternativer und weitverbreitester Client
- Edonkey FAQ (http://www.edonkey-faq.de/) Inoffizielle Homepage für Fragen rund um eDonkey
- TheDonkeyNetwork (TheDonkeyNetwork) Allgemeine Website zu Technik, Serverlisten/Statistiken, Tools
- Frequently Asked Questions about eDonkey2000/eMule (http://ed2k.sinfree.net/) (englisch)
- [DLMURL="http://lugdunum2k.free.fr/"]eserver (lugdunum)[/DLMURL] ([DLMURL]http://lugdunum2k.free.fr%5b/DLMURL]) - eDonkey Server Software (französisch)
- Jacksum (Jacksum) - ein freies und plattformunabhängiges Programm, u. a. zur Berechnung von ed2k-Fingerprints und Erstellung von ed2k-Links (mit Java-Quelltext)