Comment eMule sait-il que les données sont bonnes ?
Recevoir des octets n'est pas suffisant. eMule vérifie que les parts obtenues correspondent bien au fichier attendu, même lorsqu'elles viennent de nombreuses machines différentes.
Le hash attendu devient le juge.
Quand une part est complète, eMule calcule son empreinte MD4 et la compare à celle annoncée dans le hashset du fichier.
Ce sont les données qui sont contrôlées. Une mauvaise part ne devient pas correcte simplement parce qu'elle provient d'un client connu.
Vérifier le fichier par morceaux.
Le hash eD2K ne sert pas uniquement à nommer le fichier. Le jeu de hashes de parts permet également de savoir quelle grande zone est correcte ou incorrecte sans attendre la fin complète du téléchargement.
AICH : descendre dans l'arbre.
Le contrôle MD4 historique travaille à l'échelle de grosses parts. AICH ajoute une structure de hashes plus fine pour localiser plus précisément la zone corrompue.
Il vient renforcer le mécanisme historique et permet une récupération plus ciblée lorsque des données sont endommagées.
Détecter, jeter, redemander.
Une corruption n'oblige pas nécessairement à recommencer le fichier. eMule identifie la zone invalide puis récupère à nouveau ce qui manque auprès des sources disponibles.
Sous le capot : MD4 est ancien, pourquoi est-il toujours là ?
Le fichier finit par être complet.
Et maintenant vous devenez source.
La prochaine étape sera la publication : comment le fichier terminé est annoncé au serveur et à Kad.