要約

  • QUIC は両端が通知したゼロ以外の値のうち小さい方を採用し、現在の PTO の 3 倍を下限とする。
  • タイマーは定められた受信・送信イベントでのみ再始動し、ローカル送信を繰り返しても無期限には延長できない。
  • 長い設定値は UDP マッピング、バックエンドの対応関係、アプリ状態、業務セッションの有効性を予約しない。

両端が 30 分を通知したため、製品画面は「無通信でも 30 分は維持される」と説明した。最後の通信から 90 秒後、ファイアウォールが UDP マッピングを削除する。クライアントの次のパケットは、接続状態をまだ保持しているバックエンドへ届かない。トランスポートパラメーターは経路上の状態を予約していないため、矛盾はない。

RFC 9000 10.1 節が定めるのは、プロトコル端点の状態境界である。いずれかの端点がゼロ以外の max_idle_timeout を通知した場合、有効値は双方の通知値の小さい方になる。一方だけがゼロ以外なら、その値を用いる。接続が適用される期間を超えてアイドル状態になると、端点は通知なしに接続を閉じ、状態を破棄する。

重要なのは「最大」という語である。これは許容する沈黙の上限であって、その時刻まで利用可能な接続を最低限貸し出す契約ではない。値を通知した端点は、有効期間より前に自ら接続を放棄するなら、直ちにクローズ処理を始める責任を負う。しかし、アプリの期限、明示的な終了、ステートレスリセット、資格情報の失効、経路障害、中継装置の故障が先に有用性を失わせることは防がない。

タイマーの再始動条件も、単なる「最後の送信時刻」ではない。端点は、相手からパケットを受信して正常に処理したときにアイドルタイマーを再始動する。確認応答を引き出すパケットを送る場合は、最後に相手のパケットを受信・処理してから同種のパケットをまだ送っていないときに限って再始動する。相手側の進展がないままローカル送信を繰り返しても、接続を無期限には延ばせない。「最後に送ったパケット」だけを残す監視画面では、実際の判定を再現できない。

設定値がそのまま実際の期限になるとも限らない。RFC 9000 は、アイドル期間を現在の Probe Timeout(PTO)の少なくとも 3 倍まで引き上げるよう求める。RFC 9002 6.2 節では、PTO は期待した確認応答が届かない場合やアドレス検証が未完了の場合に、1 個または 2 個の探査用データグラムを送るきっかけである。PTO の満了だけで、それ以前の未確認パケットを損失と判定するわけではない。

RFC 9002 6.2.1 節の PTO は、平滑化 RTT、RTT の変動、タイマー粒度、必要に応じて最大確認遅延から計算され、連続する PTO では待ち時間が延びる。したがって 3 PTO の下限は回復状態に応じて動く。交渉したミリ秒値だけを保存すると、実際の期限を説明する回復時の情報が失われる。

生存確認の通信は証拠を増やすが、万能な保証にはならない。RFC 9000 10.1.1 節は、期限直前に送ったパケットが、相手がすでに状態を破棄した後で到着し得ると警告する。PING など確認応答を引き出すフレームは、期限が近い相手の応答を試せる。ACK が戻ればトランスポート上の交換は観測できるが、アプリが正常であること、ログインが有効であること、取引を安全に再開できることまでは示さない。

RFC 9000 10.1.2 節は、実装が周期的に PING を送り、アプリにアイドル期限を先送りする手段を提供できるとしている。静かな時間が正当な利用形態なら端点状態の維持に役立つが、適否はアプリケーションプロトコルが導くべきである。不要な探査はパケット、処理、回線容量を消費し、性能を損なうおそれがある。維持通信の方針は運用判断であって、タイムアウト値を可用性保証へ変換する仕組みではない。

同節は、中間装置の状態が交渉済み QUIC タイマーより早く失効し得ることも明記する。NAT、ファイアウォール、ロードバランサーは、それぞれ別の時計を持つ。両端が接続状態を保持していても、次のパケットは消えたマッピングにぶつかるか、別のバックエンドへ届くかもしれない。端点の設定で、管理外の基盤状態を予約することはできない。

RFC 9000 18.2 節によれば、双方がパラメーターを省略するかゼロを指定すると、この QUIC アイドル機構は無効になる。無効になるのはこの機構だけであり、アプリの期限、セキュリティ上の失効、即時終了、ネットワーク障害、中間装置の回収ではない。端点が無期限に待てても、外部のマッピングや認可記録は保存できない。

説明可能な運用記録には、双方の通知値とその最小値、当時の PTO と計算要素、最後に正常処理した相手パケット、条件を満たした最後のローカル送信、PING と ACK の結果、中間装置の観測、バックエンドの対応関係、アプリセッションの期限、最終的な終了機構が必要である。一つのタイマーが証明できるのは一つの境界だけだ。