要約

  • IPv4 ID の必要な役割は断片集合の識別だったが、初期の要件は断片化されないデータグラムにも一意性を求めた。
  • 65,536 個の番号は、古い断片が消える前に高速通信で一巡し得る。連番は活動量や実装の手掛かりにもなった。
  • RFC 6864 は atomic datagram の ID を全機器が無視するよう定め、断片化済みまたは断片化可能な non-atomic datagram には一意性を維持した。

ばらばらの断片に共通名を与える

RFC 791 の IPv4 は、次のネットワークの MTU に合わせてデータグラムを分割できた。宛先は送信元、宛先、上位 protocol、Identification を組み合わせて再構成の箱を選ぶ。Fragment Offset が位置を示し、MF が続きの存在を示し、DF が分割を禁じる。

ID はアプリケーションの取引番号ではない。生存時間が重なる断片集合を混ぜないための名前である。ところが値は完全なパケットにも必ず存在した。見える欄には、必要以上の意味が集まりやすい。

RFC 1122 は、同じ送信元・宛先・protocol について最大データグラム寿命の間、全データグラムで異なる値を要求した。重複排除や同一再送への ID 再利用も議論された。

再構成用ラベルが一般的な同一性へ広がると、DF を立てた送信元まで小さな番号空間を管理し、診断装置や middlebox は列を順序や host の証拠として扱うようになる。

番号の一周は断片の寿命より短くなった

16 bit は 65,536 通りしかない。安全性を決めるのは単なる wrap ではなく、前回の同じ値を持つ断片がまだ同じ再構成文脈に入れるかどうかだ。

RFC 4963 は高速時の誤結合を説明した。二つの fragmented datagram が早すぎる ID 再利用を行えば、受信側は別の原データグラムの断片を組み合わせ得る。checksum、損失、到着順によって、破棄、破損、性能低下の形が変わる。

これは高速な完全パケットすべてが壊れるという話ではない。断片化と再構成時間の重なりが条件である。だからこそ、絶対に分割されないパケットまで同じ一意性予算を消費しても危険は減らない。

RFC 6864 は 1,500 byte MTU と二分の寿命を仮定し、旧要件が一組の endpoint 間の一 protocol を約 6.4 Mbps に抑えると計算した。普遍的なしきい値ではなく、既に守れない約束だったことを示す計算である。

予測できる値は別の権力を生んだ

単純な global counter は実装しやすい。二回の probe の差から host の送信活動を推測したり、実装を識別したりできる。条件がそろえば、推測可能な fragment ID は off-path attack にも使われる。

RFC 7739 は予測可能性の危険と選択 algorithm を整理した。ただし有限空間では乱数も衝突し得る。本当に断片化する通信には、依然として一意性が必要だ。

一方、断片化不要の通信に一定値を出す実装も長く存在した。挙動が多様なら、観測者は一つの列を相互運用上の保証とは呼べない。観測可能性と解釈権は同じではない。

Atomic という条件で意味を切る

RFC 6864DF=1MF=0、Fragment Offset が 0 の IPv4 データグラムを atomic とする。それ自体が断片ではなく、準拠する transit device は分割できない。

再構成に呼ばれないため、ID は任意でよい。0 は許されるが特別ではない。定数でも変化値でも、protocol 上の共有意味はない。

さらに、router、宛先 host、firewall、NAT、tunnel endpoint を含む全ての IPv4 header 読取装置は、atomic datagram の ID を無視しなければならない。送信元の自由だけでなく、下流が値で決定する権限も撤回された。

Non-atomic はその論理的な反対である。DF=0 の完全なデータグラムは後の hop で分割され得る。MF または offset があれば既に断片である。そこでは ID が再構成に必要になる可能性が残る。

必要な場所の規律は弱めなかった

Non-atomic の送信元は、同じ送信元・宛先・protocol について一最大寿命内に ID を繰り返してはならない。同一内容の再送にも新しい ID が必要だ。外側 header を作る tunnel ingress や書換装置も送信元として責任を負う。

経路は DF=1 を尊重し、transit device は DF を消してはならない。さもなければ、任意 ID で安全だった atomic packet を途中で fragment に変え、存在しなかった一意性を後から要求することになる。

局所的自由は検証可能な前提に結び付き、network はその前提を保存する。

仕様は意味を減らして強くなれる

RFC 6864 は ID による datagram 重複排除を退役させた。診断 correlation や NAT 背後の host 推定も別の証拠を必要とする。Atomic ID は entropy も secrecy も保証せず、自由な bit が covert channel になる場合さえある。

wire format は変わらない。既存の DF、MF、offset で意味の有無を分けたからだ。互換性を守りながら、契約だけを最小化した。

これは番号を廃止した歴史ではない。再構成が所有する意味を残し、便利に見えるだけの第三者利用から authority を引き戻した歴史である。

情報源と限界

閉じた資料は RFC 791RFC 1122RFC 4963RFC 6864RFC 7739 である。原機構、旧要件、高速 wrap、atomic 境界、予測可能性を裏付けるが、現在の OS、fragment 比率、攻撃頻度、全経路共通の破損速度は示さない。