11. Receiving Trickled Candidates (Réception des candidats trickle)
À tout moment pendant une session ICE, un agent Trickle ICE peut recevoir de nouveaux candidats de l'agent distant, à partir desquels il tentera de former une paire de candidats ; cela fonctionne comme décrit dans la spécification ICE [RFC8445], avec les conditions suivantes :
-
L'agent vérifie si des candidats locaux 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 distants (sans l'apparier).
-
Sinon, si l'agent a déjà collecté un ou plusieurs candidats locaux pour ce flux et ce composant, il tente d'apparier le nouveau candidat distant comme décrit dans la spécification ICE [RFC8445].
-
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 la vérification de redondance à l'étape suivante.
-
L'agent élague les paires redondantes comme décrit ci-dessous 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)).
A. Si l'agent trouve une redondance entre deux paires et que l'une de ces paires contient un candidat distant nouvellement reçu dont le type est réflexif de pair (peer-reflexive), l'agent devrait (SHOULD) rejeter la paire contenant ce candidat, définir la priorité de la paire existante à la priorité de la paire rejetée, et ré-trier la liste de vérification. (Cette politique aide à éliminer les problèmes avec les candidats réflexifs de pair distants pour lesquels une demande de liaison STUN est reçue avant que la signalisation du candidat ne soit trickle vers l'agent récepteur, tels qu'une vue différente des priorités de paire entre l'agent local et l'agent distant, car le même candidat pourrait être perçu comme réflexif de pair par un agent et comme réflexif de serveur par l'autre agent.)
B. L'agent applique ensuite les règles définies dans la Section 6.1.2.4 de [RFC8445].
-
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].