EDonkey2000
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 von alternativen Programmen zur Verfügung, die allesamt das selbe Netz 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.
Table of contents |
2 Client-Server 3 Serverlos 4 Peer-to-Peer 5 Eine kleine Auswahl an ed2k-Clients 6 Links |
Im Wesentlichen findet folgende Kommunikation zwischen Client und Server statt:
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. Sobald dieser eMule Kademlia-Client der offizielle Client wird, ist mit dem Durchbruch für das serverlose Netzwerk im Netzwerk zu rechnen.
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 downloaden und somit die Download-Zeit verkürzen. Gleichzeitig können sie die fertigen Teile (Chunks) ihrer noch laufenden Downloads an andere Peers verschicken.
ed2k-Links
Ein ed2k-Link dient dazu, um 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|
Linkbestandteile
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).ed2k://|file
Identifiziert den Link als Protokoll edk2 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. Es ist 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.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 (November 2003) gibt es etwa 60 öffentliche ed2k-Server und 1,5 Mio Clients. Mai 2002 waren es 300-350 Server, die 200.000 Clients bedient haben.
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.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. 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.Eine kleine Auswahl an ed2k-Clients
Links