Aller au contenu principal

10. Pairing Newly Gathered Local Candidates (Appariement des candidats locaux nouvellement collectés)

Lorsqu'un agent Trickle ICE collecte des candidats locaux, il doit former des paires de candidats ; cela fonctionne comme décrit dans la spécification ICE [RFC8445], avec les conditions suivantes :

  1. Un agent Trickle ICE ne doit pas (MUST NOT) apparier un candidat local tant qu'il n'a pas été trickle vers la partie distante.

  2. Une fois que l'agent a transmis le candidat local à la partie distante, l'agent vérifie si des candidats distants sont actuellement connus pour ce même flux et composant. Si ce n'est pas le cas, l'agent ajoute simplement le nouveau candidat à la liste des candidats locaux (sans l'apparier).

  3. Sinon, si l'agent a déjà appris un ou plusieurs candidats distants pour ce flux et ce composant, il tente d'apparier le nouveau candidat local comme décrit dans la spécification ICE [RFC8445].

  4. Si une paire nouvellement formée a un candidat local dont le type est réflexif de serveur (server-reflexive), l'agent doit (MUST) remplacer le candidat local par sa base avant de terminer les tests de redondance pertinents.

  5. L'agent élague les paires redondantes en suivant les règles de la section 6.1.2.4 de [RFC8445] mais vérifie les paires existantes uniquement si elles ont un état En attente (Waiting) ou Gelé (Frozen) ; cela évite la suppression de paires pour lesquelles des vérifications de connectivité sont en cours (un état En cours (In-Progress)) ou pour lesquelles les vérifications de connectivité ont déjà donné un résultat définitif (un état Réussi (Succeeded) ou Échec (Failed)).

  6. Si, après avoir terminé les tests de redondance pertinents, la liste de vérification où la paire doit être ajoutée contient déjà le nombre maximum de paires de candidats (100 par défaut selon [RFC8445]), l'agent devrait (SHOULD) rejeter toutes les paires dans l'état Échec pour faire de la place à la nouvelle paire. S'il n'y a pas de telles paires, l'agent devrait (SHOULD) rejeter une paire avec une priorité inférieure à la nouvelle paire afin de faire de la place pour la nouvelle paire, jusqu'à ce que le nombre de paires soit égal au nombre maximum de paires. Ce traitement est cohérent avec la section 6.1.2.5 de [RFC8445].