Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
eDonkey2000 (abgekürzt auch ed2k ) ist der Name einer bekannten Tauschbörse im Internet . Ursprünglich konnten Windows - und Linux -Benutzer daran mit der gleichnamigen werbefinanzierten Software teilnehmen mittlerweile steht auch eine Reihe alternativen Programmen zur Verfügung die allesamt das Netz nutzen.
Bei ed2k kommen sowohl das Peer-to-Peer -Prinzip als auch das Client-Server -Prinzip zum Einsatz. Die Software die ein ed2k-Benutzer installiert nennt man im Allgemeinen dennoch Client .
Ein ed2k-Link hat den Zweck eine Datei eindeutig identifizieren. Ein Beispiel wäre folgender Link: ed2k://|file|datei.txt|123|1234567890abcdef1234567890abcdef|
1234567890abcdef1234567890abcdef Gibt den Hash-Wert an um die Datei zu identifizieren. ist der übergreifende MD4 -Hash aus allen aneinandergehängten MD4-Einzelhashes (welche aus einem "Chunk" zu je 9 5MB Daten werden).
ed2k-Benutzer können diesen ed2k-Link an andere ed2k-Benutzer weitergeben der Link immer auf die selbe Datei (wobei der keine Rolle spielt es sind lediglich die beiden Felder entscheidend).
Der Client versucht eine Verbindung zu Server aufzubauen. Die Server-Software ist ein eigens diesen Zweck geschriebenes Programm. Grundsätzlich kann jeder einen ed2k-Server anbieten dies ist allerdings für Benutzer Internetanbindungen unter 2 MBit/Sek wegen der hohen nicht sinnvoll. Zur Zeit (November 2003) gibt etwa 60 öffentliche ed2k-Server und 1 5 Mio Clients. Mai waren es 300-350 Server die 200.000 Clients haben.
Im Wesentlichen findet folgende Kommunikation zwischen und Server statt:
Der Client übermittelt die ed2k-Links seiner freigegebenen Dateien ( Shares ) an einen Server. Dieser fügt die in seinen Index ein.
Der Client möchte eine Datei suchen und einen Teil eines Dateinamens (einige andere Eigenschaften Dateigröße sind ebenfalls möglich) an einen oder Server. Die angefragten Server durchsuchen ihre Indizes schicken die entsprechenden ed2k-Links zurück.
Der Client fragt regelmäßig alle bekannten Server welche Clients die Dateien freigeben die er möchte. Die Server schauen in ihren Indizes und senden IP-Adressen und Ports dieser Clients zurück.
Die Server verwalten also nur einen der freigegebenen Dateien und der dazugehörigen Client-Adressen. Server speichert und verschickt keine Dateien sondern Metadaten über die Dateien.
Da die Netzlast der Server mit Beliebtheit des ed2k-Netzwerks immer weiter steigt wurden Konzepte entwickelt wie die Server zu entlasten Inzwischen sind die meisten Clients in der ihren Datenverkehr mit dem Server mit Hilfe zlib-Bibliothek zu komprimieren und so Bandbreite auf Kosten von CPU-Zeit einzusparen. Der radikalste Ansatz war aber derjenige das eDonkey-Netz einem serverlosen Netz umzubauen. Der ursprüngliche ed2k-Entwickler dazu zunächst einen neuen Client (Overnet) der ohne Server mit Hilfe des Kademlia -Algorithmus operierte. Sobald man einmal mit einem Overnet-Client verbunden ist erhält man eine Liste Clients die man auf der Suche nach bestimmten Datei fragen kann. Wenn ein Client Datei nicht hat (übrigens der Regelfall) weiß zumindest welcher andere Client topologisch näher an Datei sitzt und weiterhelfen kann. Overnet funktionierte litt aber daran dass die Suche nach sehr langsam voran ging und ein signifikanter der Bandbreite des Clients als Overhead für Suche verloren ging. Man kam daher vom eDonkey komplett serverlos zu machen wieder ab. war nun nicht mehr die Server komplett sondern parallel zur servergestützten Suche auch serverlos suchen und so die Server zu entlasten. Funktionalität wurde als erstes in den originalen integriert der dadurch zum eDonkey-Hybridclient wurde.
Inzwischen hat auch das Entwicklerteam des unter den Clients eMule einen Hybridclient im Betatest ihre Implementation Kademlia -Algorithmus unterscheidet sich allerdings etwas von der eDonkey-Clients da man einige alte Zöpfe aus Overnet-Zeit die sich als hinderlich erwiesen hatten wollte. Sobald dieser eMule Kademlia -Client der offizielle Client wird ist mit Durchbruch für das serverlose Netzwerk im Netzwerk zu rechnen.
Sobald ein Client vom Server über Clients informiert wurde versucht er zu diesen verbinden. Im Folgenden werden die Clients Peers da sie gleich gestellt sind und der ed2k-Server in diesem Teil der Datenübertragung keine mehr spielt.
Ein Peer hat eine begrenzte Anzahl Upload-Plätzen ( Slots ). Jeder Peer der bei einem anderen eine Datei anfordert belegt einen Slot bei Sind alle Slots belegt kommen die Peers eine Warteliste ( Queue ) und müssen warten bis sie dran
Die Peers können eine Datei von Quellen gleichzeitig downloaden und somit die Download-Zeit Gleichzeitig können sie die fertigen Teile ( Chunks ) ihrer noch laufenden Downloads an andere verschicken.
eMule [1] ist der zur Zeit meistgenutzte ed2k-Client. wurde ursprünglich nur für Windows entwickelt und bringt einige Erweiterungen zum mit sich (z.B. das Austauschen von Quellen eine Datei direkt zwischen Peers) welche in ed2k-Clients einflossen. Mittlerweile existieren mit xMule [2] und aMule [3] auch Portierungen für Unix-basierende Systeme.
Der ursprüngliche Client eDonkey2000 [5] wird immernoch weiterentwickelt aber ist stark das mittlerweile effizient gewordene Overnet gebunden.Der eDonkey in der Hybridversion sozusagen nurnoch der Aufsatz den Overnet-Client