Netzwerkinformationen
Ab v.42.1 unterstützt eMule zwei unterschiedliche Netzwerke.
Das klassische eD2k Netzwerk und eine völlig neue, leistungsfähige
Netzstruktur, genannt Kademlia.
Beide Netzwerke erfüllen die gleichen Aufgaben. Die Suche
nach anderen Benutzern und nach Dateien. Der eigentliche Download
von Dateien findet dann immer direkt zwischen zwei Benutzern
statt.
Grundlagen
Dateiidentifikation
Alle Dateien die heruntergeladen werden können besitzen
einen so genannten Hash-Wert. Dies ist eine Kombination aus
Zahlen und Buchstaben die eine bestimmte Datei eindeutig identifizierbar
macht. Ein Download kann unterschiedliche Dateinamen besitzen,
dies ändert jedoch nichts an seinem Hash-Wert. Dadurch
können Quellen für eine Datei unabhängig von
ihrem Namen gefunden werden.
Zusätzlich wird jede Datei in 9,28 MB grosse Blöcke
(Parts) unterteilt. Jeder dieser Blöcke erhält auch
einen Hash-Wert. Eine z.B. 600 MB grosse Datei besitzt 65
Blöcke mit je einem eigenen Hash. Aus diesen einzelnen
Hash-Werten wird dann der im Netzwerk verwendete Datei-Hash
erstellt. Dieser Wert findet sich auch in den eD2k Downloadlinks.
Identifikation anderer Benutzer
Ähnlich dem Datei-Hash erhält auch jeder eMule eine
eindeutige und einmalige Benutzerkennung. Um Missbrauch dieser
Kennung zu verhindern wird diese mit einem speziellen Schlüsselverfahren
gesichert.
Dateien herunterladen
Dateien die heruntergeladen werden können liegen immer
auf Computern der Netzwerkteilnehmer. Es findet kein Herunterladen
von Servern oder ähnlichem statt.
Die Aufgabe des Netzwerks ist es den Kontakt zwischen den
Benutzern herzustellen und das Finden von Dateien bzw. Quellen
für einen Download zu ermöglichen.
Sind Quellen gefunden wird bei diesen Teilnehmern ein Warteschlangenplatz
reserviert. Erreicht eMule den ersten Platz wird eine Verbindung
aufgebaut und der Download beginnt.
Das servergestützte eD2k Netz
Zum Netzwerk verbinden
Dieses Netzwerk basiert auf den eD2k Servern. Jeder Teilnehmer
muss sich zu solch einem Server verbinden. Verbindet sich
eMule zu einem Server, überprüft dieser ob eine
freie Verbindung zu eMule möglich ist. Kann der Server
eMule direkt auf seinem Client Port ansprechen bekommt er
eine hohe ID wenn nicht eine niedrige.
Ist die Verbindungsprüfung beendet, sendet eMule dem
Server eine Liste mit allen seinen freigegeben Dateien und
den zugehörigen Hash-Werten. Der Server speichert diese
Informationen in einer Datenbank zusammen mit denen anderer
verbundener Teilnehmer.
Suche nach Dateien
Ist die Verbindung hergestellt, kann das Netzwerk nach bestimmten
Schlüsselworten durchsucht werden. Es wird zwischen einer
lokalen Suche, also nur auf dem verbundenen Server und der
globalen Suche auf allen Servern in der Serverliste unterschieden.
Eine lokale Suche ist schneller, hat aber unter Umständen
weniger Treffer.
Bei jeder Suche werden die eingegebenen Schlüsselwörter
an den Server gesandt und dieser vergleicht dann ob es eine
Übereinstimmung mit Namen in seiner Datenbank gibt. Die
Treffer werden zusammen mit ihren Hash-Werten als Ergebnis
zurückgegeben.
Quellensuche für Downloads
Downloads können entweder direkt über die Suche
oder über das spezielle eD2k Link Format zu eMule hinzugefügt
werden.
Sind die Downloads in der Transferliste fragt eMule erst beim
lokalen Server und dann auch bei allen Servern in der Serverliste
nach Quellen zu diesem Download. Der Server überprüft
an Hand des Hash-Wertes ob Teilnehmer zu ihm verbunden sind,
die mindestens ein Block (9,28 MB) dieser Datei fertig heruntergeladen
haben, wenn ja werden diese als Quellen für den betreffenden
Download zurückgegeben.
Das serverlose Kademlia Netzwerk
Verbindung zum Netzwerk
Um eine Verbindung zu diesem Netzwerk aufzubauen, muss die
IP Adresse und der Kademlia Port eines anderen bereits verbundenen
eMule bekannt sein. Ist dieser gefunden wird, ähnlich
der ID Vergabe bei den Servern, überprüft ob eine
freie Verbindung zu dem neuen Teilnehmer möglich ist.
Ist die möglich bekommt eMule eine Kademlia ID und erhält
den Status "offen". Benutzer hinter einer Firewall
oder einem Router werden zurzeit noch nicht unterstützt
und erhalten den Status "firewalled". Diese müssen
sich zu einem klassischen Server verbinden.
Suchen in Kademlia
In diesem Netzwerk ist es praktisch egal wonach gesucht wird.
Suchen nach anderen Benutzern, nach Schlüsselworten oder
nach Quellen werden gleich behandelt.
Da es keine Server gibt, die die Teilnehmer und deren freigegebenen
Dateien verwalten, müssen diese Aufgaben von den eMules
im Netzwerk selbst übernommen werden. Jeder verbundene
eMule arbeitet also auch als Server für das Kademlianetz.
Jeder Benutzer bekommt an Hand seiner einmaligen Benutzerkennung
ein Aufgabe zugewiesen. Diese besteht im Verwalten von bestimmten
Schlüsselworten zur Suche und bestimmten Quellen für
Downloads. Welche das sind hängt von seiner Kennung ab
und ist nicht vorherseh- oder anzeigbar.
Das Ziel jeder Suche in diesem Netzwerk ist es also, diejenigen
Teilnehmer zu finden, die die passenden Antworten auf die
gestellte Anfrage haben. Dies wird erreicht in dem eine "Entfernung"
zu diesem Ziel errechnet wird und andere bekannte Teilnehmer
nach dem kürzesten Weg dorthin gefragt werden. Einen
Eindruck dieser Entfernungsberechnung gibt die Anzahl der
Nullen bei den Kontakten im Kademliafenster. Je mehr Nullen
am Anfang desto "näher" befindet sich dieser
Kontakt zum eigenen eMule.
Zusammenfassung
Beide Netzwerke verfolgen einen gänzlich unterschiedlichen
Ansatz mit dem selben Ziel: Suchen nach Downloads und Suchen
nach Quellen für diese Downloads.
Der Vorteil von Kademlia liegt in der Unabhängigkeit
von Servern und der besseren Verwaltung vieler Netzteilnehmer.
Server können nur eine begrenzte Anzahl von Benutzern
verwalten und sollte ein grosser Server ausfallen hat dies
schwere Auswirkungen auf das gesamte Netz.
Das Kademlianetz organisiert sich selbst und stellt sich automatisch
auf die Anzahl der Benutzer und deren Leitungsqualität
ein. Damit ist es besser gegen ausgedehnte Netzausfälle
geschützt
Aktualisiert: 2004-02-27 , Monk
|