Passa al contenuto principale

10. Pairing Newly Gathered Local Candidates (Accoppiamento dei candidati locali appena raccolti)

Quando un agente Trickle ICE raccoglie candidati locali, deve formare coppie di candidati; questo funziona come descritto nella specifica ICE [RFC8445], con le seguenti condizioni:

  1. Un agente Trickle ICE non deve (MUST NOT) accoppiare un candidato locale finché non è stato trickled verso la parte remota.

  2. Una volta che l'agente ha trasmesso il candidato locale alla parte remota, l'agente controlla se eventuali candidati remoti sono attualmente noti per lo stesso flusso e componente. Se non lo sono, l'agente aggiunge semplicemente il nuovo candidato all'elenco dei candidati locali (senza accoppiarlo).

  3. Altrimenti, se l'agente ha già appreso uno o più candidati remoti per questo flusso e componente, tenta di accoppiare il nuovo candidato locale come descritto nella specifica ICE [RFC8445].

  4. Se una coppia appena formata ha un candidato locale il cui tipo è riflessivo del server (server-reflexive), l'agente deve (MUST) sostituire il candidato locale con la sua base prima di completare i test di ridondanza pertinenti.

  5. L'agente pota le coppie ridondanti seguendo le regole della Sezione 6.1.2.4 di [RFC8445] ma controlla le coppie esistenti solo se hanno uno stato In attesa (Waiting) o Congelato (Frozen); questo evita la rimozione di coppie per le quali i controlli di connettività sono in corso (uno stato In corso (In-Progress)) o per le quali i controlli di connettività hanno già dato un risultato definitivo (uno stato Riuscito (Succeeded) o Fallito (Failed)).

  6. Se, dopo aver completato i test di ridondanza pertinenti, la checklist in cui la coppia deve essere aggiunta contiene già il numero massimo di coppie di candidati (100 per impostazione predefinita secondo [RFC8445]), l'agente dovrebbe (SHOULD) rifiutare tutte le coppie nello stato Fallito per fare spazio alla nuova coppia. Se non ci sono tali coppie, l'agente dovrebbe (SHOULD) rifiutare una coppia con una priorità inferiore alla nuova coppia per fare spazio alla nuova coppia, fino a quando il numero di coppie è uguale al numero massimo di coppie. Questo trattamento è coerente con la Sezione 6.1.2.5 di [RFC8445].