Connexion · quand deux clients se rencontrent

Bonjour. Qui es-tu ?

Connaître l'adresse d'une source ne suffit pas. Les deux logiciels doivent réussir à se joindre, s'identifier et découvrir les fonctions qu'ils comprennent en commun.

Premier contact

« Bonjour. Qui es-tu ?
Et que sais-tu faire ? »

Une connexion entre deux clients commence par un échange d'identité et de capacités. eMule n'imagine pas que l'autre client comprend toutes les extensions : il le lui demande.

A

Akshaan

Client eMule

HELLO ─────────►◄──── HELLOANSWER
B

Bob

Client compatible

KadLarge FilesSource ExchangeSecureIdentAICHObfuscationCaptchaMultiPacket
La règle est simple : utiliser ce que les deux comprennent.

Cette négociation de capacités a permis à eMule d'ajouter de nouvelles fonctions pendant des années sans rendre automatiquement incompatibles les anciens clients.

Joignable ou non

HighID / LowID : la vraie différence.

Ce n'est pas une note de qualité. Cela décrit surtout la possibilité, ou non, pour les autres clients d'ouvrir directement une connexion vers vous.

HighID
Autre client────────►Vous

Le port entrant est joignable. Les autres clients peuvent initier directement une connexion vers votre eMule.

Plus simple pour les relations directes et les callbacks.
LowID
Autre client─── X ───►Vous

Une connexion entrante directe échoue normalement. Il faut utiliser une autre voie pour provoquer une connexion sortante de votre côté.

Vous pouvez toujours télécharger et partager, mais avec davantage de contraintes.
LowID ne signifie pas « client lent ».

Le débit dépend de nombreux facteurs. Le LowID décrit d'abord une limitation de joignabilité réseau, souvent liée au NAT ou au pare-feu.

Quand le direct ne marche pas

Le callback.

Si Bob ne peut pas être joint directement, un intermédiaire peut lui transmettre la demande : « contacte Akshaan toi-même ».

Akshaanveut joindre Bob
1
Serveur eD2Ktransmet la demande
2
Bob · LowIDouvre la connexion sortante
Bob ─────────────────────► Akshaan
Et sur Kad ?

Le réseau Kad dispose de mécanismes adaptés aux clients derrière un pare-feu, notamment le principe de Buddy pour certaines fonctions de callback. L'objectif reste le même : rendre joignable indirectement un client qui ne l'est pas directement.

Sous le capot : pourquoi le Hello est si important ?
Le Hello transporte des informations d'identité et de nombreuses capabilities. C'est là que les deux clients apprennent notamment s'ils peuvent employer des extensions comme Large Files, Source Exchange 2, SecureIdent ou certaines fonctions Kad.
La suite de l'histoire

La connexion existe.
Mais le slot n'est pas encore gagné.

La prochaine page explique les files d'attente, les crédits, SecureIdent, A4AF et les fameux reasks.