16. Half Trickle (Half Trickle)
Nel half trickle, l'initiator trasmette la descrizione ICE iniziale con una generazione di candidati utilizzabile ma non necessariamente completa. Questo garantisce che la descrizione ICE possa essere elaborata da un risponditore ICE regolare ed è principalmente destinato all'uso nei casi in cui il supporto di Trickle ICE non può essere confermato prima di trasmettere la descrizione ICE iniziale. La descrizione ICE iniziale indica il supporto di Trickle ICE, in modo che il risponditore possa rispondere con qualcosa di meno di una generazione completa di candidati, quindi trickle il resto. La descrizione ICE iniziale per half trickle può contenere un'indicazione di fine dei candidati, sebbene questo non sia obbligatorio perché se il supporto di trickle è confermato, l'initiator può scegliere di trickle candidati aggiuntivi prima di trasmettere un'indicazione di fine dei candidati.
Il meccanismo di half trickle può essere utilizzato nei casi in cui non c'è modo per un agente di verificare in anticipo se una parte remota supporta Trickle ICE. Poiché la descrizione ICE iniziale contiene una generazione completa di candidati, può quindi essere gestita da un agente ICE regolare, consentendo comunque a un agente Trickle ICE di utilizzare l'ottimizzazione definita in questa specifica. Questo evita il fallimento della negoziazione nel primo caso mentre fornisce circa la metà dei benefici di Trickle ICE nel secondo.
L'uso di half trickle è necessario solo durante uno scambio iniziale di descrizioni ICE. Dopo che entrambe le parti hanno ricevuto una descrizione ICE dal loro peer, ciascuno può determinare in modo affidabile il supporto di Trickle ICE e utilizzarlo per tutti gli scambi successivi (vedere Sezione 15).
In alcuni casi, l'uso di half trickle potrebbe portare più della metà del miglioramento in termini di esperienza utente. Questo può accadere quando un agente inizia a raccogliere candidati su indizi dell'interfaccia utente che indicano che l'utente sta per avviare un'interazione, come attività su una tastiera o il telefono che viene sollevato. Questo significherebbe che parte o tutta la raccolta dei candidati potrebbe essere completata prima che l'agente debba effettivamente trasmettere le informazioni sui candidati. Poiché il risponditore potrà trickle candidati, entrambi gli agenti potranno iniziare i controlli di connettività e terminare il trattamento ICE prima rispetto a ICE regolare e potenzialmente anche presto come con il trickle completo.
Tuttavia, tale anticipazione non è sempre possibile. Ad esempio, un agente utente multifunzione o una pagina web WebRTC dove la comunicazione è una funzionalità non centrale (ad esempio, chiamare una linea di supporto in caso di problema con le funzionalità principali) non avrebbe necessariamente un modo per distinguere tra le intenzioni di chiamata e altre attività utente. In tali casi, l'uso del trickle completo è il più probabile a dare un'esperienza utente ideale. Anche così, l'uso di half trickle sarebbe un miglioramento rispetto a ICE regolare perché darebbe un'esperienza migliore per i risponditori.