Passa al contenuto principale

13. Generating an End-of-Candidates Indication (Generazione di un'indicazione di fine candidati)

Una volta che tutta la raccolta dei candidati è completata o scade per una sessione ICE associata a un flusso di dati specifico, l'agente genererà un'indicazione "fine dei candidati" (end-of-candidates) per quella sessione e la trasmetterà all'agente remoto tramite il canale di segnalazione. Sebbene la forma esatta dell'indicazione dipenda dal protocollo di utilizzo, l'indicazione deve (MUST) specificare la generazione (combinazione di Username Fragment e Password), in modo che un agente possa correlare l'indicazione di fine dei candidati con una sessione ICE particolare. L'indicazione può essere trasmessa nei seguenti modi:

  • Come parte di una richiesta di avvio (che sarebbe tipicamente il caso con la descrizione ICE iniziale per half trickle)
  • Con l'ultimo candidato che un agente può inviare per un flusso
  • Come una notifica autonoma (ad esempio, dopo la scadenza delle richieste di binding STUN o delle richieste di allocazione TURN a un server e l'agente non sta più raccogliendo attivamente candidati)

La trasmissione di un'indicazione di fine dei candidati in modo tempestivo è importante per evitare ambiguità e accelerare la conclusione del trattamento ICE. In particolare:

  • Un agente Trickle ICE controllato dovrebbe (SHOULD) trasmettere un'indicazione di fine dei candidati dopo aver completato la raccolta per un flusso di dati, a meno che il trattamento ICE non si concluda prima che l'agente abbia avuto la possibilità di completare la raccolta.
  • Un agente controllante può (MAY) concludere il trattamento ICE prima di trasmettere indicazioni di fine dei candidati per tutti i flussi. Tuttavia, è raccomandato (RECOMMENDED) che un agente controllante trasmetta indicazioni di fine dei candidati nella misura possibile per coerenza e per tenere informati i middlebox e gli agenti controllati sullo stato del trattamento ICE.

Durante la trasmissione di un'indicazione di fine dei candidati durante il trickling (piuttosto che come parte della descrizione ICE iniziale o di una risposta ad essa), spetta al protocollo di utilizzo definire metodi per associare l'indicazione a uno o più flussi di dati specifici.

Un agente può (MAY) anche scegliere di generare un'indicazione di fine dei candidati prima che la raccolta dei candidati sia effettivamente completata, se l'agente determina che la raccolta si è protratta per più di un periodo di tempo accettabile. Tuttavia, un agente non deve (MUST NOT) trasmettere altri candidati dopo aver trasmesso un'indicazione di fine dei candidati.

Durante l'esecuzione di half trickle, un agente dovrebbe (SHOULD) trasmettere un'indicazione di fine dei candidati con la sua descrizione ICE iniziale, a meno che non preveda potenzialmente di trickle candidati aggiuntivi (ad esempio, nel caso in cui la parte remota si riveli supportare Trickle ICE).

Dopo che un agente ha trasmesso l'indicazione di fine dei candidati, aggiornerà lo stato della checklist corrispondente come spiegato nella Sezione 8. Oltre questo punto, un agente non deve (MUST NOT) trickle nuovi candidati all'interno di quella sessione ICE. Pertanto, l'aggiunta di nuovi candidati alla negoziazione è possibile solo tramite un riavvio ICE (vedere Sezione 15).

Questa specifica non sostituisce la semantica ICE regolare per concludere il trattamento ICE. Pertanto, anche se le indicazioni di fine dei candidati sono trasmesse, un agente dovrà comunque procedere con la nomina di coppie. Inoltre, se le coppie sono state nominate per componenti e flussi di dati, il trattamento ICE può (MAY) ancora concludere anche se le indicazioni di fine dei candidati non sono state ricevute per tutti i flussi. In tutti i casi, un agente non deve (MUST NOT) trickle nuovi candidati all'interno di una sessione ICE dopo la nomina di una coppia di candidati come descritto nella Sezione 8.1.1 di [RFC8445].