Summary

  • QUIC接続は端点が発行する複数のルーティング用ハンドルを持ち、単一CIDは恒久的な身元ではない。
  • 移行準備は未使用在庫、合意済みの上限、完了した廃止に依存し、接続が開いているだけでは証明できない。
  • 双方向のCIDライフサイクル記録が、誤配送、在庫枯渇、プライバシー目的の切替を区別する。

端末がWi-Fiから携帯網へ移ったとする。鍵は有効でストリームも開いているのに、クライアントは新経路からサーバーを探索できない。サーバーが発行した未使用CIDが残っていないからだ。逆方向では、サーバーにもクライアント発行の未使用IDが必要になる。接続は生きていても、経路継続に必要な資源は尽きている。

RFC 9000 §5.1は、接続ごとに一つの固定名ではなくCIDの集合を定義する。各端点は、相手が自分宛てに使うIDを独立に選ぶ。主目的は下位層のアドレスが変わっても、パケットを正しい接続状態へ届けることだ。

方向は欠かせない。端点は自分宛てのIDを発行し、送信時には相手が発行したIDを消費する。キャプチャに現れる宛先CIDは一方向の現在のハンドルにすぎず、利用者、端末、アプリケーション・セッションを認証しない。

§5.1.1では発行CIDにシーケンス番号を付け、NEW_CONNECTION_IDで増加する番号を送る。番号はライフサイクルの照合用で、時刻や世界共通の識別子ではない。

active_connection_id_limitは相手が保持する活動中CIDの上限である。追加と廃止の処理後に超えればCONNECTION_ID_LIMIT_ERRORとなる。しかし上限は在庫ではない。上限未満でも、すべてが使用済みか交換待ちなら新経路向けの未使用IDはない。

§9.5は、利用可能なCIDを使い切ると新経路の探索、移行開始、相手の探索や移行への応答ができないとする。「接続中」は「移行可能」を意味しない。

在庫はプライバシーにも必要だ。同じCIDを複数経路で使えば観測者が活動を結び付けられる。QUICは複数の送信元アドレス、または複数の宛先アドレスへの再利用を禁じる。ただし切替は完全な非連結性を保証せず、時刻やパケット長は残る。

§5.1.2のRETIRE_CONNECTION_IDは再利用しない宣言と交換要求である。Retire Prior Toは古い番号の廃止を要求する。メッセージと確認が収束するまでは両端の見え方が異なり得る。

発行・廃止フレームは暗号化される。RFC 9312が示すように、受動観測はCIDの変化を見ても在庫や廃止理由を見られない場合がある。ゼロ長CIDを選んだ端点は新しいCIDを発行できず、CIDによる移行を放棄する。

編集上の運用提案として、完全な記録には、接続観測IDと時刻、端点の役割、ローカル/相手アドレスの組、発行方向、CIDのシーケンス番号と指紋、活動中・未使用・経路に割当済み・廃止要求済み・廃止済みの各状態、active_connection_id_limit、最大Retire Prior To、NEW_CONNECTION_ID受信時刻、RETIRE_CONNECTION_ID送信/確認時刻、対応するステートレスリセットトークンの指紋、最初と最後の経路、ゼロ長合意、双方向の未使用数、移行または探索の要求、バックエンド配送結果、プライバシー上の限界を残す。機微な実値は広く保存せず、指紋を用いる。

単一CIDが示すのはパケット上のハンドルだけだ。接続への帰属は暗号状態が、次経路への余力はライフサイクル記録が示す。値自体は人やアプリケーションの身元ではない。