要約
- QUIC 受信側はパケット保護を正常に解除し、全フレームを処理するまでそのパケットを確認応答できない。
- STREAM の「処理」はアプリが受け取るためのキュー投入までで、アプリによる受信や消費までは要求しない。
- アプリケーションへの引き渡しや処理完了を主張するには、ACK をフレーム、ストリームオフセット、再送系譜、アプリ固有の受領記録に結び付ける必要がある。
監視画面は、要求を載せたパケットが ACK 範囲に現れた瞬間に「引き渡し済み」を緑で表示する。それが新たに確認され、ACK を誘発するパケットのうち測定対象に選ばれたものなら RTT 標本を得られる。さらに、そのパケットで確認された情報の再送も止まる。ところが受信プロセスは読み出し処理の直前で停止しており、解析も書込みも実行もしていない。トランスポートの受領事実が、いつの間にかアプリの結果へ格上げされている。
境界は RFC 9000 13.1 節に明記されている。受信側は、パケット保護を正常に解除し、そのパケット内の全フレームを処理するまで ACK を返してはならない。STREAM フレームの場合、処理とはアプリケーションプロトコルによる受信準備としてデータをキューに入れることを指す。アプリケーションへの引き渡しや消費は要件ではない。したがって ACK は相手の QUIC 処理を強く裏付けるが、アプリ消費の手前で止まる。
何が確認されたかも重要だ。RFC 9000 19.3 節の ACK 範囲は、同じパケット番号空間で受信・処理されたパケット番号を表す。番号は保護されたトランスポートパケットを識別し、業務メッセージを識別しない。1 パケットが複数種類のフレームを運ぶ一方、1 メッセージが複数の STREAM フレームやパケットにまたがることもある。
ストリーム状態にも同じ境界がある。RFC 9000 2.2 節は順序付きバイト列を定義し、STREAM フレーム境界は送信、再送、引き渡しで保持されないとする。RFC 9000 3.2 節は全データが到着した Data Recvd と、アプリが全データを読み終えた後の Data Read を分ける。トランスポートでの完全な到着、アプリによる受信開始、読取完了は別々の状態遷移だ。
ACK の見え方は一対一の受領台帳でもない。RFC 9000 13.2 節では、ACK を誘発するパケットは規則に従い相手が通知した最大遅延内に確認されるが、ACK を誘発しないパケットは後続トラフィックを待てる。ACK フレーム自体が失われ、古い範囲が後に省略される場合もある。送信側から ACK が見えないことは、受信処理がなかった即時証明にならない。
再送ではパケットの同一性も維持されない。RFC 9000 13.3 節が再送するのは情報であり、失われたパケット全体ではない。同じ STREAM オフセットが新しいフレーム、新しいパケット番号で再登場し得る。その情報を運ぶパケットが確認されると、通常は送信を止める。バイトについて判断するには、ACK 範囲を元のフレーム、ストリーム ID、オフセット、長さ、FIN、各再送へ結ぶ必要がある。それでも証明の終点はトランスポート受信キューだ。
回復アルゴリズムもこの範囲を越えない。RFC 9002 5.1 節は、新たに確認された、ACK を誘発するパケットのうち最大番号のものから RTT 標本を得て、ACK Delay を規則どおり扱う。これはトランスポートの往復を測り、アプリの処理時間は測らない。RFC 9002 6.1 節は、後続 ACK とパケット・時間の閾値で並べ替えを許容しながら損失を推定する。ACK 不在は即時の損失証明ではなく、ACK 到着はアプリ成功の証明ではない。
運用証拠は階段にする。まず接続、番号空間、パケット番号、送信時刻、ACK 時刻、ACK Delay、搭載フレームを残す。次に STREAM ID、オフセット、長さ、FIN、損失判定、再送系譜を残す。さらに受信スタックのキュー投入とアプリの読取・コールバックを記録する。最後にメッセージやトランザクション ID、アプリプロトコルの確認、永続コミット、副作用、最終応答を結ぶ。
各段は別の問いに答える。「相手が保護パケットを処理した」「バイトが QUIC 受信キューに届いた」「プロセスが読んだ」「アプリがメッセージを受理した」「操作が永続的に完了した」は同じ事実ではない。
この区別は再試行権限にも効く。ACK を完了とみなせばキュー内やデッドロック中の仕事を救えない。ACK が見えないだけで失敗とみなせば、処理済み操作を重複させる。操作 ID と冪等性を知る層だけが、安全な再試行を決められる。
QUIC の証拠が強いのは、主張する範囲が狭く正確だからだ。アプリの結果はアプリ自身が証明しなければならない。
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加

