16. Half Trickle (Half Trickle)
Dans le half trickle, l'initiateur transmet la description ICE initiale avec une génération de candidats utilisable mais pas nécessairement complète. Cela garantit que la description ICE peut être traitée par un répondeur ICE régulier et est principalement destinée à être utilisée dans les cas où le support de Trickle ICE ne peut pas être confirmé avant de transmettre la description ICE initiale. La description ICE initiale indique le support de Trickle ICE, de sorte que le répondeur peut répondre avec quelque chose de moins qu'une génération complète de candidats, puis trickler le reste. La description ICE initiale pour half trickle peut contenir une indication de fin des candidats, bien que cela ne soit pas obligatoire car si le support de trickle est confirmé, l'initiateur peut choisir de trickler des candidats supplémentaires avant de transmettre une indication de fin des candidats.
Le mécanisme de half trickle peut être utilisé dans les cas où il n'y a aucun moyen pour un agent de vérifier à l'avance si une partie distante prend en charge Trickle ICE. Parce que la description ICE initiale contient une génération complète de candidats, elle peut donc être gérée par un agent ICE régulier, tout en permettant à un agent Trickle ICE d'utiliser l'optimisation définie dans cette spécification. Cela évite l'échec de la négociation dans le premier cas tout en donnant environ la moitié des avantages de Trickle ICE dans le second.
L'utilisation de half trickle n'est nécessaire que lors d'un échange initial de descriptions ICE. Après que les deux parties ont reçu une description ICE de leur pair, chacune peut déterminer de manière fiable le support de Trickle ICE et l'utiliser pour tous les échanges ultérieurs (voir Section 15).
Dans certains cas, l'utilisation de half trickle pourrait apporter plus que la moitié de l'amélioration en termes d'expérience utilisateur. Cela peut se produire lorsqu'un agent commence à collecter des candidats sur des indices d'interface utilisateur indiquant que l'utilisateur va bientôt initier une interaction, comme une activité sur un clavier ou le téléphone décrochant. Cela signifierait qu'une partie ou la totalité de la collecte de candidats pourrait être terminée avant que l'agent n'ait réellement besoin de transmettre les informations de candidat. Parce que le répondeur pourra trickler des candidats, les deux agents pourront commencer les vérifications de connectivité et terminer le traitement ICE plus tôt qu'avec l'ICE régulier et potentiellement même aussi tôt qu'avec le trickle complet.
Cependant, une telle anticipation n'est pas toujours possible. Par exemple, un agent utilisateur multifonction ou une page web WebRTC où la communication est une fonctionnalité non centrale (par exemple, appeler une ligne de support en cas de problème avec les fonctionnalités principales) n'aurait pas nécessairement un moyen de distinguer entre les intentions d'appel et d'autres activités utilisateur. Dans de tels cas, l'utilisation du trickle complet est la plus susceptible de donner une expérience utilisateur idéale. Même ainsi, l'utilisation de half trickle serait une amélioration par rapport à l'ICE régulier car elle donnerait une meilleure expérience pour les répondeurs.