Zum Hauptinhalt springen

10. Verbindungsbeendigung

10. Verbindungsbeendigung

Eine etablierte QUIC-Verbindung kann auf eine von drei Arten beendet werden:

  • Idle-Timeout (Abschnitt 10.1)
  • Sofortiges Schließen (Abschnitt 10.2)
  • Zustandsloser Reset (Abschnitt 10.3)

10.1 Idle-Timeout

Wenn ein max_idle_timeout von einem der Endpunkte in seinen Transportparametern angegeben wird (Abschnitt 18.2), wird die Verbindung stillschweigend geschlossen und ihr Zustand verworfen, wenn sie länger inaktiv bleibt als der Mindestwert des von beiden Endpunkten angekündigten max_idle_timeout-Werts.

10.1.1 Lebenszeittest

Ein Endpunkt kann PING-Frames (Abschnitt 19.2) verwenden, um die Lebendigkeit einer Verbindung zu testen oder ein Idle-Timeout zu verhindern.

10.1.2 Verzögerung des Idle-Timeouts

Ein Endpunkt muss möglicherweise ACK-auslösende Pakete senden, um ein Idle-Timeout zu vermeiden, wenn er eine Verbindung aufrechterhalten möchte.

10.2 Sofortiges Schließen

Ein Endpunkt sendet einen CONNECTION_CLOSE-Frame (Abschnitt 19.19), um die Verbindung sofort zu beenden.

10.2.1 Schließender Verbindungszustand

Nach dem Senden eines CONNECTION_CLOSE-Frames wechselt ein Endpunkt in den Schließzustand.

10.2.2 Entwässernder Verbindungszustand

Der Entwässerungszustand wird betreten, wenn ein Endpunkt einen CONNECTION_CLOSE-Frame empfängt.

10.2.3 Sofortiges Schließen während des Handshakes

Endpunkte können eine Verbindung während des Handshakes schließen, indem sie einen CONNECTION_CLOSE-Frame in Paketen mit der entsprechenden kryptografischen Ebene senden.

10.3 Zustandsloser Reset

Ein zustandsloser Reset wird als letzte Option für einen Endpunkt bereitgestellt, der keinen Zugriff auf den Zustand einer Verbindung hat.

10.3.1 Erkennung eines zustandslosen Resets

Ein Endpunkt erkennt einen potenziellen zustandslosen Reset, indem es die letzten 16 Bytes eines Datagramms untersucht.

10.3.2 Berechnung eines zustandslosen Reset-Tokens

Das zustandslose Reset-Token MUSS schwer zu erraten sein.

10.3.3 Schleifen

Das Design eines zustandslosen Resets ist so gestaltet, dass ohne Kenntnis des zustandslosen Reset-Tokens ein zustandsloser Reset nicht von einem Endpunkt generiert werden kann.