Sources · trouver ceux qui possèdent les morceaux

Où sont les morceaux ?

Le fichier est identifié. Maintenant eMule doit construire une liste de clients capables de fournir ses données — et cette liste peut venir de plusieurs endroits.

Une source, c'est quoi ?

Pas un serveur.
Un autre client.

Une source est simplement un eMule qui possède tout ou partie du fichier recherché et qui peut potentiellement vous en envoyer des données.

#Hash du fichierla question commune
Alice
Bob
Claire
Une source ne signifie pas « connexion ouverte ».

eMule peut connaître de nombreuses sources sans conserver une connexion TCP permanente vers chacune d'elles. Il garde surtout leurs informations et leur état.

Trois grands chemins

Comment la liste grandit.

01

Serveur eD2K

Le client peut demander au serveur les sources connues pour le hash sélectionné. Le serveur renvoie les clients qu'il connaît.

Hash ABCD… → Serveur → Alice · Bob · Claire
02

Kad Source

Kad peut rechercher les annonces de clients qui se sont publiés comme sources de ce même hash.

Hash ABCD… → Kad → nœuds responsables → sources
03

Source Exchange

Les clients eux-mêmes peuvent échanger leurs listes de sources connues pour un fichier.

Akshaan connaît Alice Alice connaît Bob + Claire + David → Akshaan apprend Bob + Claire + David
Sous le capot : pourquoi limiter Source Exchange ?
Une propagation sans limite serait contre-productive : trop de messages de contrôle, trop de doublons et trop de sources potentiellement périmées. eMule applique donc des règles et des délais pour garder l'échange utile.
Effet boule de neige

Une source peut en révéler beaucoup d'autres.

1source initiale
→
4après échange
→
11nouveaux pairs
→
27réseau connu
Plus de sources ≠ débit instantanément multiplié.

Une source peut être occupée, LowID, hors ligne, ne posséder que certaines parts ou vous placer très loin dans sa file d'attente. Trouver les sources n'est que l'étape suivante du puzzle.

Étape suivante

Nous savons qui contacter.
Encore faut-il se parler.

HELLO, capabilities, HighID, LowID et callbacks expliquent comment deux clients établissent réellement leur relation.