Aller au contenu principal

4. Tri des Adresses (Sorting Addresses)

Avant de tenter de se connecter à l'une des adresses de destination résolues, le client doit définir l'ordre dans lequel commencer les tentatives. Une fois l'ordre défini, le client peut utiliser un algorithme simple pour faire la course entre chaque option après un court délai (voir Section 5). Il est important que la liste ordonnée inclue toutes les adresses des deux familles qui ont été reçues jusqu'à ce point, car cela permet au client d'obtenir l'effet de course de Happy Eyeballs pour la liste entière, et pas seulement pour la première adresse IPv4 et la première adresse IPv6.

Tout d'abord, le client MUST trier les adresses reçues jusqu'à ce point en utilisant la sélection d'adresse de destination (Destination Address Selection) ([RFC6724], Section 6).

Si le client est avec état et possède un historique des temps d'aller-retour (RTT, Round-Trip Time) attendus pour les routes d'accès à chaque adresse, il SHOULD ajouter une règle de sélection d'adresse de destination entre les règles 8 et 9 qui préfère les adresses avec des RTT plus faibles. Si le client garde une trace des adresses qu'il a utilisées dans le passé, il SHOULD ajouter une autre règle de sélection d'adresse de destination entre la règle RTT et la règle 9, qui préfère les adresses utilisées aux adresses non utilisées. Cela aide les serveurs qui utilisent l'adresse IP du client lors de l'authentification, comme c'est le cas pour TCP Fast Open [RFC7413] et certains cookies du protocole de transfert hypertexte (Hypertext Transport Protocol, HTTP). Ces données historiques MUST NOT être utilisées sur différentes interfaces réseau et SHOULD être effacées chaque fois qu'un appareil change le réseau auquel il est connecté.

Ensuite, le client SHOULD modifier la liste ordonnée pour entrelacer les familles d'adresses. Quelle que soit la famille d'adresses en première position dans la liste, elle devrait être suivie d'une adresse de l'autre famille d'adresses; c'est-à-dire, si la première adresse dans la liste triée est IPv6, alors la première adresse IPv4 devrait être déplacée vers le haut dans la liste pour être la deuxième dans la liste. Une implémentation MAY vouloir favoriser davantage une famille d'adresses en permettant de tenter plusieurs adresses de cette famille avant d'essayer l'autre famille. Le nombre d'adresses contiguës de la première famille d'adresses sera appelé "First Address Family Count" (Nombre de la Première Famille d'Adresses) et peut être une valeur configurable. Ceci est effectué pour éviter d'attendre à travers une longue liste d'adresses d'une famille d'adresses donnée si la connectivité sur cette famille d'adresses est altérée.

Notez que la sélection d'adresse décrite dans cette section s'applique uniquement aux adresses de destination; la sélection d'adresse source (Source Address Selection) ([RFC6724], Section 5) est effectuée une fois par adresse de destination et est hors de la portée de ce document.