se connecter liste des serveurs FAQ eD2K History Forum

LowID blabla

Comment trouver votre ID ?

Dans eMule, regardez dans l'onglet serveur et à droite vous trouvez "Mes infos" qui contiennent par exemple ceci:

eD2K Réseau
Etat: Connecté
IP:Port: 214.122.142.132:3100
ID: 2133755677
HighID ou LowID:
  • Si le ID est faible (inférieur à un million), on dit que c'est un LowID
  • Si le ID est élevé (supérieur à un million), on dit que c'est un HighID

Comment est attribué l'ID?

L'ID est attribué par le serveur en début de connexion. Quand un client se connecte au serveur eDonkey, le serveur tente d'ouvrir une connexion TCP vers le port 4662 du client.

Si cette connexion se passe bien, le serveur attribue un HighID au client.

Si la connexion échoue (à cause d'un pare-feu ou d'un problème de délai réseau) le serveur attribue un 'LowID', grosso modo un numéro interne du serveur. Un LowID ne permet pas de retrouver l'adresse IP alors qu'un HighID le permet. Si un HighID est attribué par le serveur, ce HighID est exactement l'adresse IP du client réécrite différemment:

Si l'adresse IP du client est A.B.C.D, on écrit sous forme hexad�cimale aa.bb.cc.dd , puis on inverse l'ordre des octets et on met sous la forme : ddccbbaa, puis on passe en décimal: on obtient l'ID. L'opération peut se faire dans l'autre sens.

Ce mécanisme explique que si un client change de serveur eDonkey, en général il conserve son ID, car son adresse IP ne change pas pendant une session Internet. Pour que l'adresse IP change, il faut se déconnecter du réseau Internet, se reconnecter et supposer que le provider ne vous réattribue pas l'IP précédente et en choisisse une autre.

Quel rôle joue l'ID dans la connexion?

Un client eDonkey ou eMule B doit contacter un autre client A (peer to peer) pour obtenir une 'source' ou morceau de fichier. Or pour contacter un peer, il faut connaître son adresse IP. Cette adresse IP, le donkey la détermine grâce à l'ID du peer A que le serveur lui a communiqué, dans le résultat d'un search.

Si le ID de A est un 'HighID', B tente directement une connexion TCP vers le port 4662 de A. Le peer to peer en natif!

Si le ID de A est 'faible' (par opposition à HighID), l'adresse IP ne peut pas être calculée, le peer n'est pas joignable directement.

Pour le joindre, il faut que le client B envoie une trame spéciale au serveur du client A (sur son port UDP 4665). Sur réception d'une demande de ce type, le serveur envoie au client A sur sa liaison TCP 4661 la demande du client B, en indiquant l'adresse IP et le port du client B. Le client A peut ensuite essayer de contacter le client B sur son port 4662. Ce mécanisme est impossible si A et B sont en LowID. De plus, la demande du client B est envoyée en UDP au serveur de A, or UDP est un protocole moins fiable que TCP. Les serveurs étant saturés, une bonne partie des trames UDP 4665 sont perdues sur le réseau Internet.

Conclusion:
  • si un client eDonkey obtient un LowID, il n'est pas joignable par un autre client LowID. Il réduit donc les probabilités de croisement des sources.
  • Il engendre une surcharge de son serveur qui sera sollicité par les clients eDonkey désireux d'obtenir des sources chez le LowID. Les serveurs ayant une bande passante limitée sont obligés de réduire leur nombre maximal d'utilisateurs. le réseau eDonkey fonctionne moins bien.

    L'expérimentation commencée le 22 mai sur lugdunum et ed2k.ch a permis de constater la baisse du trafic engendrée lorsque le taux de LowID diminue sur un serveur. Fran_48 a fait une étude mathématique à ce sujet.

    Si trop de personnes ont un LowID, les téléchargements ne peuvent plus se faire, c'est mathématique (par le jeu des probabilités).
  • Deux clients ayant un LowID ne peuvent pas communiquer entre eux.
  • Deux clients ayant un HighID peuvent communiquer dans les deux sens: situation optimale pour eux mais aussi pour la bonne santé du réseau eDonkey. Les serveurs ne sont pas sollicités pour jouer le rôle de relais. Les serveurs effectuent des recherches, ce pour quoi ils sont faits.

Qu'est-ce qui peut expliquer un low ID ?

  • Un pare-feu, quelque part, bloque le port TCP (par défaut 4662) du client. Merci de consulter la FAQ pour configurer proprement votre pare-feu si vous en avez un (Windows XP intègre un parefeu en standard) Lien pour configurer le parefeu de Windows XP.

  • Vous avez une adresse IP de la forme A.B.C.0 (dernier chiffre nul). Ce cas est fort heureusement exceptionnel.

  • Un routeur ADSL n'a pas été configuré pour mapper le port 4662 en provenance du réseau Internet vers la machine eDonkey intérieure, sur le port TCP (par d�faut 4662). Suivez ce lien pour configurer votre routeur.

  • Le serveur a sa bande passante saturée, et n'arrive pas à contacter le client en moins de huit secondes. Le serveur eDonkey attend très peu de temps pour prendre sa décision.

    Razorback essaie de contrer ce problème en utilisant le 'traffic shaping' de Linux: votre port TCP (par défaut 4662) a été mis en classe prioritaire pour passer devant les autres paquets eDonkey: Razorback alloue plus souvent un HighID que d'autres serveurs.

  • Votre port TCP (par défaut 4662) est mappé non pas sur votre client eDonkey mais vers une autre application. Par exemple le port 80 arrive en général sur un serveur HTTP. Depuis la version 16.38.p63 (17 octobre 2002) le serveur détecte ce cas de figure et vous attribue un LowID. Le serveur détecte même les cas où le port TCP (par défaut 4662) arrive sur un autre client eDonkey... Attention donc à bien configurer vos clients pour ceux qui en utilisent plusieurs sur la même adresse IP.

  • Le client a sa bande passante saturée. Ceci peut arriver pour de multiples raisons.

  • Mauvais paramètres eDonkey (MaxUpload, MaxDownload, MaxConnections).

  • Utilisation simultanée de plusieurs logiciels P2P. Cela est possible uniquement si les réglages sont très bien faits.

  • Parasitage du PC par un virus ou spyware. Utilisez un antivirus remis à jour régulièrement et utilisez AdWare pour retirer les spywares.

Quelle est la formule pour calculer une ID ?

Par exemple j'ai une IP fixe: 62.4.18.116. Mon ID est TOUJOURS le même: 1947337790.

Vous allez me dire, pourquoi c'est toujours 1947337790 et pas un autre? pourquoi quand je suis déconnecté d'eDonkey quelqu'un d'autre ne prend pas mon ID à ma place?

Et bien tout simplement parce que l'ID = l'IP et qu'elle est fixe.

Regardez plutôt:

1947337790 (en décimal) = 7412043E (en hexadécimal)

Groupons mon ID par blocs de 2 digits: 74.12.04.3E

Maintenant inversons le: 3E.04.12.74

Convertissons chaque bloc hexa en décimal à nouveau: on tombe sur.... 62.4.18.116 !! MAGIQUE...

Evidemment, c'est différent pour les personnes dont l'IP est dynamique, la personne qui prend votre ancienne IP aura votre ancien ID.

Maintenant prenons l'exemple d'une personne avec un LowID! le serveur alloue une IP virtuelle de type "107.0.0.0" si c'est le 107e connecté... et bien on fait le même principe mais vous voyez tout de suite que la conversion en hexa, l'inversion, puis la conversion encore en décimal va donner un tout petit chiffre! ... et bien voilà... quand vous changez de serveur, votre numéro de file change, donc l'IP virtuelle attribuée par le serveur change aussi, donc le calcul donne un ID lui aussi différent, d'où le fameux message "Your ID has changed, you've been removed from all upload queue" .. Logique: ID différent = utilisateur différent pour eDonkey... donc tout repart à zero. CQFD.

Là vous allez nous dire, le N-ième connecté avec un LowID sur un serveur A et sur un serveur B vont avoir le même ID alors?... Et bien non, car le serveur est lui aussi identifié de manière unique sur le réseau, et donc il ajoute cette information dans le calcul, ce qui fait que les ID sont différents d'un serveur à l'autre.