Passa al contenuto principale

10. Terminazione della connessione

10. Terminazione della connessione​

Una connessione QUIC stabilita può essere terminata in uno di tre modi:

  • Timeout di inattività (Sezione 10.1)
  • Chiusura immediata (Sezione 10.2)
  • Reset senza stato (Sezione 10.3)

10.1 Timeout di inattività​

Se un max_idle_timeout è specificato da uno degli endpoint nei suoi parametri di trasporto (Sezione 18.2), la connessione viene chiusa silenziosamente e il suo stato viene scartato quando rimane inattiva per un periodo superiore al minimo del valore max_idle_timeout annunciato da entrambi gli endpoint.

10.1.1 Test di vitalità​

Un endpoint può utilizzare frame PING (Sezione 19.2) per testare la vitalità di una connessione o per prevenire il timeout di inattività.

10.1.2 Differimento del timeout di inattività​

Un endpoint potrebbe dover inviare pacchetti che richiedono acknowledgment per evitare un timeout di inattività se desidera mantenere una connessione.

10.2 Chiusura immediata​

Un endpoint invia un frame CONNECTION_CLOSE (Sezione 19.19) per terminare immediatamente la connessione.

10.2.1 Stato di connessione in chiusura​

Dopo aver inviato un frame CONNECTION_CLOSE, un endpoint entra nello stato di chiusura.

10.2.2 Stato di connessione in svuotamento​

Lo stato di svuotamento viene raggiunto quando un endpoint riceve un frame CONNECTION_CLOSE.

10.2.3 Chiusura immediata durante l'handshake​

Gli endpoint possono chiudere una connessione durante l'handshake inviando un frame CONNECTION_CLOSE in pacchetti che utilizzano il livello crittografico appropriato.

10.3 Reset senza stato​

Un reset senza stato è fornito come opzione di ultima risorsa per un endpoint che non ha accesso allo stato di una connessione.

10.3.1 Rilevamento di un reset senza stato​

Un endpoint rileva un potenziale reset senza stato esaminando i 16 byte finali di un datagramma.

10.3.2 Calcolo di un token di reset senza stato​

Il token di reset senza stato DEVE essere difficile da indovinare.

10.3.3 Cicli​

Il design di un reset senza stato è tale che senza la conoscenza del token di reset senza stato, un reset senza stato non può essere generato da un endpoint.