Aller au contenu principal

10. Terminaison de connexion

10. Terminaison de connexion

Une connexion QUIC établie peut être terminée de trois manières:

  • Délai d'inactivité (Section 10.1)
  • Fermeture immédiate (Section 10.2)
  • Réinitialisation sans état (Section 10.3)

10.1 Délai d'inactivité

Si un max_idle_timeout est spécifié par l'un des points de terminaison dans ses paramètres de transport (Section 18.2), la connexion est fermée silencieusement et son état est supprimé lorsqu'elle reste inactive plus longtemps que le minimum de la valeur max_idle_timeout annoncée par les deux points de terminaison.

10.1.1 Test de vivacité

Un point de terminaison peut utiliser des trames PING (Section 19.2) pour tester la vivacité d'une connexion ou pour empêcher le délai d'inactivité.

10.1.2 Report du délai d'inactivité

Un point de terminaison peut avoir besoin d'envoyer des paquets nécessitant un accusé de réception pour éviter un délai d'inactivité s'il souhaite maintenir une connexion.

10.2 Fermeture immédiate

Un point de terminaison envoie une trame CONNECTION_CLOSE (Section 19.19) pour terminer immédiatement la connexion.

10.2.1 État de connexion en fermeture

Après l'envoi d'une trame CONNECTION_CLOSE, un point de terminaison entre dans l'état de fermeture.

10.2.2 État de connexion en drainage

L'état de drainage est entré lorsqu'un point de terminaison reçoit une trame CONNECTION_CLOSE.

10.2.3 Fermeture immédiate pendant la négociation

Les points de terminaison peuvent fermer une connexion pendant la négociation en envoyant une trame CONNECTION_CLOSE dans des paquets utilisant le niveau cryptographique approprié.

10.3 Réinitialisation sans état

Une réinitialisation sans état est fournie comme option de dernier recours pour un point de terminaison qui n'a pas accès à l'état d'une connexion.

10.3.1 Détection d'une réinitialisation sans état

Un point de terminaison détecte une réinitialisation sans état potentielle en examinant les 16 derniers octets d'un datagramme.

10.3.2 Calcul d'un jeton de réinitialisation sans état

Le jeton de réinitialisation sans état DOIT être difficile à deviner.

10.3.3 Bouclage

La conception d'une réinitialisation sans état est telle que sans connaissance du jeton de réinitialisation sans état, une réinitialisation sans état ne peut pas être générée par un point de terminaison.