Passa al contenuto principale

12. Inserting Trickled Candidate Pairs into a Checklist (Inserimento di coppie di candidati trickled in una checklist)

Dopo che l'agente locale ha trickled un candidato e formato una coppia di candidati da tale candidato locale (Sezione 9), o dopo che l'agente remoto ha ricevuto un candidato trickled e formato una coppia di candidati da tale candidato remoto (Sezione 11), l'agente Trickle ICE aggiunge la nuova coppia di candidati alla checklist come definito in questa sezione.

Per facilitare la comprensione delle procedure definite in questa sezione, considerare la seguente rappresentazione tabulare di tutte le checklist in un agente (notare che inizialmente per una delle fondazioni, cioè f5, non ci sono coppie di candidati):

+=================+====+====+====+====+====+
| | f1 | f2 | f3 | f4 | f5 |
+=================+====+====+====+====+====+
|| s1 (Audio.RTP) | F | F | F | | |
+-----------------+----+----+----+----+----+
|| s2 (Audio.RTCP) | F | F | F | F | |
+-----------------+----+----+----+----+----+
|| s3 (Video.RTP) | F | | | | |
+-----------------+----+----+----+----+----+
|| s4 (Video.RTCP) | F | | | | |
+-----------------+----+----+----+----+----+

Tabella 1: Esempio di stato checklist

Trickle ICE conserva tutte queste regole come si applicano all'insieme di checklist "statico". Ciò significa che se un agente Trickle ICE inizia i controlli di connettività mentre tutte le coppie di candidati sono già presenti, il modo in cui gli stati delle coppie di candidati cambiano è indistinguibile da un agente ICE regolare.

Naturalmente, la principale differenza con Trickle ICE è che l'insieme di checklist può essere aggiornato dinamicamente, poiché i candidati possono arrivare dopo l'inizio dei controlli di connettività. Quando questo accade, l'agente imposta lo stato della coppia di candidati appena formata come descritto di seguito.

Regola 1: Impostare lo stato su In attesa (Waiting) se la coppia di candidati appena formata ha l'ID di componente più basso di tutte le coppie di candidati per quella fondazione, o se gli ID di componente sono uguali, la priorità più alta (cioè se è la coppia di candidati più alta nella colonna).

Regola 2: Impostare lo stato su In attesa (Waiting) se c'è almeno una coppia di candidati nello stato Riuscito per quella fondazione.

Regola 3: Impostare lo stato su Congelato (Frozen) se nessuna delle regole precedenti si applica.

Notare che anche se una coppia di candidati è posta nello stato In attesa, le regole di [RFC8445] si applicano ancora, in modo che i controlli di connettività vengano eseguiti solo da checklist nello stato In esecuzione (Running). Pertanto, è possibile che una coppia di candidati cambi stato più volte tra In attesa e Congelato fino a quando un controllo di connettività non viene effettivamente eseguito per quella coppia.