要約

  • RFC 9768では、受信側はECN表示を機械的に反映する。輻輳応答はデータ送信側のローカルな判断として残る。
  • TCPヘッダー内の3ビットACEは必須で粗い。TCPオプション内の24ビット・バイトカウンターは詳しいが、オプション空間や中間装置に左右される。
  • 運用記録には、ACK欠落、折り返し仮定、計数単位、二つの経路の照合、送信側が選んだ行動を別々に残す必要がある。

値の前後にある時間

従来のTCP ECNは、一往復の間にCEマークが複数あっても、一回分の通知しか返せなかった。マークされた割合を使うDCTCPやL4S型の応答には情報が足りない。2026年4月にStandards Trackとして公開されたRFC 9768は、RFC 3168のTCP向け交渉とフィードバックをAccECNで更新する。

ただし、更新の対象はワイヤ上のフィードバックであり、輻輳制御アルゴリズムではない。受信側は到着した許容可能なTCPセグメントのECNフィールドを数える。送信側は、自分がECT(0)、ECT(1)、Not-ECTのどれを送ったかを知っているため、返された情報を検証し、自分の応答を選べる。

この役割分担により、受信側は「汎用の機械的な反射器」でいられる。新しい送信アルゴリズムを導入するたびに受信側へ判断ロジックを配る必要がない。

小さなACEの強さと限界

AccECN Counterは、三つのTCP ECNフラグを使い、受信側のCEパケットカウンターの下位3ビットを返す。現在値を繰り返すため、一つのACKが消えても次のACKから差分を回収できる場合がある。

一方、状態は八つしかない。値が6から1へ変わったとき、最小差分は3だが、欠落期間が長ければ一周分を追加した可能性がある。遅延ACK、ACKフィルタリング、順序逆転も再構成を難しくする。RFCは受信側に十分な頻度のACKを求めるが、ネットワーク上の欠落を消すことはできない。詳細オプションがない場合、送信側は保守的な折り返し推定を使う。

ACEはCE付きの許容可能なTCPパケットを数える。SYNを除き、制御パケットと再送も含む。したがって、ACEはアプリケーションの一意な配信バイト数ではない。

24ビットの三つの台帳

AccECNオプションは、CE、ECT(0)、ECT(1)として受け取ったペイロード・オクテットの三つのカウンターを、下位24ビットで伝える。ヘッダーは含めず、再送ペイロードは再び数える。通常のACK欠落時間で24ビットが見えないまま一周する可能性は低く、マーク量の比率を扱いやすい。

しかし、この証拠はTCPオプション空間に依存する。二つのSACKブロックと最小AccECNオプションが同時に収まらない場合、SACKが優先される。未知のオプションを削る中間装置、接続を分割するプロキシ、GRO/LROによる集約も観測点を変える。接続中にオプションが通らなくなることもある。

そのため、バイトカウンターはACEを補うが置き換えない。粗くても必須の経路と、詳しいが条件付きの経路を、送信側が基準値からモジュラー差分として照合する。

初期値を固定しすぎない

AE、CWR、ECEの組合せで三者間ハンドシェイク中にAccECNを交渉する。古い相手には従来ECNまたはECNなしへ戻れる。初期SYNはオプション空間が狭いため、AccECNオプションはSYN/ACKと最初のACKで通過性を試す。

非ゼロの初期カウンターは、ステートレス処理を助け、途中でビットがゼロ化される現象を見つけやすくする。だが、正しい初期値を一つだけに固定すると、将来のプロトコル余地を失う。さらに、並べ替えによりハンドシェイク直後のACEが正当にゼロになる場合もある。

ここには最小初期仕様の考え方がある。相互運用と故障検出に必要な部分は共通化し、将来の応答は送信側へ残す。全員が同じ判断をする必要がない場所まで標準化しない。

証言を書き換える経路

ECNフィールドは一方向だけ消去・変更されることがあり、オプションも除去されうる。受信側には送信時の値が見えない。ゆえにデータ送信側が、自分の送信履歴とACE、バイト台帳を比較する。

CEバイト数が増えたのにパケット側が合理的に対応せず、再送、単位差、ACK欠落、折り返しで説明できない場合、送信側はその半接続でECTを無効化できる。これは接続を守る局所判断であり、どの装置が原因かを断定するものではない。

CEの増加は、到着時にCongestion Experiencedが付いていたことを示す。キュー長、しきい値、装置名、運用者責任、利用者影響は示さない。応答もDCTCP、CUBIC、L4S向け制御などで異なる。

運用レシートは方向ごとに、交渉フラグ、送受信ECN、ACE列と差分、三つのバイト基準値、オプション形式と可用性、ACK欠落・遅延・逆転、SACK圧力、再送、オフロード、プロキシ、照合結果、ECT無効化、送信アルゴリズムを記録する。キュー、スループット、アプリケーション遅延は別の証拠として接続する。

試験では、ACKを単独・連続で落とし、一周を隠し、最初のACKを逆転させ、途中でオプションを除去し、SACKで空間を圧迫し、一方向のECNを書き換える。合格とは常に完全な数字が得られることではない。不確実性を表示したまま明示的に劣化できることである。

情報源