Depuis la version v.42.1, eMule utilise deux réseaux différents
– le réseau eD2k classique, basé sur les serveurs et un
tout nouveau réseau sans serveur, basé sur Kademlia.
Par nature, les deux réseaux disposent des mêmes fonctions. Ils
permettent tous deux, par des moyens différents, de trouver les autres
utilisateurs et les fichiers que vous désirez télécharger.
Les bases
Identification du fichier
Tous les fichiers reçoivent une valeur de hachage. Cette valeur est une
combinaison de chiffres et de lettres qui permet l'identification unique de
chaque fichier. Un fichier peut avoir de nombreux noms, mais cela ne modifie
en rien sa valeur de hachage. Chaque utilisateur a donc la possibilité
de trouver toutes les sources d'un fichier précis, quels que soient les
noms qui lui sont donnés.
De plus, les fichiers sont divisés en morceaux de données d'une
taille de 9,28 Mo. Chacune de ces parties reçoit aussi une valeur de
hachage. Par exemple, un fichier de 600 Mo contient 65 parties. Chaque partie
possède une valeur de hachage. Puis, afin que le fichier complet soit
reconnu sur le réseau, sa valeur de hachage est créée à
partir des valeurs de toutes ses parties élémentaires.
Identication des autres clients
De la même manière que les fichiers, chaque utilisateur du réseau
reçoit un hachage unique et permanent. Cette identification de l'utilisateur
est hautement sécurisée par l'établissement d'une liaison
basée sur une clé publique / privée, afin d'éviter les abus.
Le téléchargement des données
Il est important de comprendre que le téléchargement en lui-même
n'est pas affecté par le choix du réseau. La topologie du réseau
est seulement relative à la recherche des fichiers et des clients qui
en sont les sources.
Une fois la source trouvée, votre client la contacte. Elle vous réserve
alors une place dans sa file d'attente, pour ce fichier précis. Lorsque
vous atteignez la première place de cette file, après un certain
temps d'attente, vous êtes autorisé à recevoir des données.
Le réseau eD2k classique basé sur les serveurs
La connexion au réseau
La clé de ce réseau est le serveur eD2k. Chaque client doit se
connecter à un serveur pour accéder au réseau.
Lorsque votre client établit une connexion avec un serveur, ce dernier
vérifie si les autres clients peuvent librement communiquer avec le vôtre.
Si la réponse est affirmative, le serveur assigne à votre client
ce que l'on appelle une ID forte (high ID). Si la communication est bloquée,
le serveur assigne à votre client une ID faible (low ID).
Une fois que vous avez reçu une ID, votre client eMule envoie au serveur
une liste de tous ses fichiers partagés. Celui-ci ajoute les noms des
fichiers et leurs valeurs de hachage dans sa base de données.
La recherche des fichiers
Une fois qu'il est connecté au réseau, le client peut rechercher
des noms de fichiers par mots clés. La recherche peut être locale
ou globale. Une recherche locale (seulement sur le serveur auquel vous êtes
connecté), est plus rapide mais affiche moins de résultats. Une
recherche globale (sur tous les serveurs du réseau), prend plus de temps
mais offre plus de résultats. Chaque serveur vérifie les mots
clés dans sa base de données et retourne tous les noms de fichiers
(ainsi que leur valeur de hachage) qui correspondent à ces mots clés.
Recherche des sources de fichiers
Il est possible d'ajouter les téléchargements par l'intermédiaire
de la fonction de recherche d'eMule ou grâce à un format eD2k spécial
de liens, offerts sur de nombreux sites internet.
Une fois qu'ils sont dans la liste des téléchargements, eMule
demande tout d'abord au serveur local (celui auquel elle est connectée),
puis à tous les autres serveurs du réseau, des sources pour ces
téléchargements. Le serveur cherche les valeurs de hachage dans
sa base de données et renvoie les clients qui les possèdent.
Les sources sont d'autres clients qui ont au moins téléchargé
une partie élémentaire complète (9,28 Mo) du fichier correspondant
à la valeur de hachage.
Le réseau Kademlia sans serveur
La connexion au réseau
Une seule chose est nécéssaire pour se connecter au réseau,
l'IP et le port d'un client déjà connecté. C'est ce que
l'on nomme l'Amorce.
Une fois que le client est entré dans le réseau, il demande aux
autres de déterminer s'il peut être contacté librement.
Ce processus est similaire à la vérification exercée par
le serveur en vue de l'attribution d'une ID forte ou faible. Si vous pouvez
être librement contacté, vous recevez une ID (similaire à
une ID forte) et un statut "ouvert". S'il est impossible aux autres
de vous contacter, votre statut affiche "Derrière un pare-feu".
Actuellement, les clients présentant ce statut ne sont pas supportés
et il leur est nécessaire de se connecter à un serveur. Une prise
en charge des pare-feu sera ajoutée dans le futur.
Les recherches sur Kademlia
Sur ce réseau, quelles que soient vos recherches, noms de fichiers, sources
de téléchargements ou autres utilisateurs, l'opération
s'effectue de manière identique.
Aucun serveur ne conserve la trace des clients et des fichiers qu'ils partagent.
Ceci doit donc être effectué par chacun des membres du réseau
- par essence, tout client est aussi un petit serveur.
Comme chaque client est identifié par une valeur de hachage unique, l'idée
de Kademlia est d'associer une certaine "responsabilité" sur
la base de ce hachage. Chacun des clients du réseau Kademlia fonctionne
comme un serveur pour certains mots clés et sources. Le hachage du client
détermine pour quels mots clés et sources ce comportement sera
adopté.
Ainsi, le but de tous les types de recherches est de trouver les clients qui
ont la responsabilité de cette recherche précise. Cela s'effectue
par un calcul compliqué de la distance possible du client cible, en demandant
aux autres clients quelle est la route la plus courte qui mène à
lui.
En bref
Les deux réseaux utilisent des concepts totalement différents
pour arriver au même résultat. La recherche des fichiers et de
leurs sources. Les buts principaux de Kademlia sont l'indépendance vis
à vis des serveurs et l'amélioration de la hiérarchisation.
Les serveurs ne peuvent prendre en charge qu'un nombre limité d'utilisateurs
et lorsqu'un gros serveur quitte le réseau, ce dernier se trouve sévèrement
handicapé.
Kademlia s'organise et se règle automatiquement pour assurer les meilleures
performances possibles en fonction du nombre d'utilisateurs et de la qualité
de leurs connexions. Par conséquent, il résiste mieux à
une perte étendue du réseau.
S'applique à la version : .42a+ |