10. 接続終了
10. 接続終了
確立されたQUIC接続は、次の3つの方法のいずれかで終了できます:
- アイドルタイムアウト (セクション 10.1)
- 即座のクローズ (セクション 10.2)
- ステートレスリセット (セクション 10.3)
10.1 アイドルタイムアウト
いずれかのエンドポイントがトランスポートパラメータでmax_idle_timeoutを指定した場合 (セクション 18.2)、両方のエンドポイントがアドバタイズしたmax_idle_timeout値の最小値よりも長い間アイドル状態が続くと、接続は静かにクローズされ、その状態は破棄されます。
10.1.1 生存性テスト
エンドポイントは、PINGフレーム (セクション 19.2) を使用して接続の生存性をテストしたり、アイドルタイムアウトを防ぐことができます。
10.1.2 アイドルタイムアウトの延期
エンドポイントは、接続を維持したい場合、アイドルタイムアウトを回避するためにACK要求パケットを送信する必要がある場合があります。
10.2 即座のクローズ
エンドポイントは、CONNECTION_CLOSEフレーム (セクション 19.19) を送信して、接続を即座に終了します。
10.2.1 クローズ中の接続状態
CONNECTION_CLOSEフレームを送信した後、エンドポイントはクローズ中状態に入ります。
10.2.2 ドレイン中の接続状態
ドレイン状態は、エンドポイントがCONNECTION_CLOSEフレームを受信したときに入ります。
10.2.3 ハンドシェイク中の即座のクローズ
エンドポイントは、適切な暗号化レベルを使用するパケット内でCONNECTION_CLOSEフレームを送信することにより、ハンドシェイク中に接続をクローズできます。
10.3 ステートレスリセット
ステートレスリセットは、接続の状態にアクセスできないエンドポイントの最後の手段のオプションとして提供されます。
10.3.1 ステートレスリセットの検出
エンドポイントは、データグラムの末尾16バイトを調べることで、潜在的なステートレスリセットを検出します。
10.3.2 ステートレスリセットトークンの計算
ステートレスリセットトークンは推測が困難でなければなりません (MUST)。
10.3.3 ループ
ステートレスリセットの設計は、ステートレスリセットトークンの知識がなければ、エンドポイントによってステートレスリセットを生成できないようになっています。