要約

  • RFC 3150は送信時間を共有リンクの問題として扱った。非常に低速なリンクでは、一つの全長パケットがインターフェースを長く占有し、他のフローを体感できるほど遅らせる場合がある。
  • 100〜200ミリ秒という勧告は条件付きのベストプラクティスであり、普遍的なMTU規則ではない。小さなパケットは一回の占有を短くする一方、オーバーヘッドなど別のトレードオフを増やす。

パケットにはサイズだけでなく時間もある

パケットヘッダーには長さがバイトで記される。高速なオフィスネットワークでは、そのバイト列をリンクに送り出す時間は意識されにくい。低速アクセス回線では、その時間が体験になる。最後のビットが送信されるまで、別のフローは同じ送信機会を使えない。キューが短く、リンクが設定どおりに動いていても、後続のパケットは待つことがある。

これが RFC 3150「End-to-end Performance Implications of Slow Links」に含まれる、目立ちにくい設計課題だった。2001年7月に Best Current Practice 48 として公開されたこの文書は、非常に低いビットレートのリンクを通る経路を扱い、56 Kb/s モデムと 4.8 Kb/s 無線アクセスを例に挙げる。特定の事業者や機器の報告ではなく、制約のある経路での一般的なインターネット通信に対する勧告である。

MTUの節では、比較的大きなパケットの送信に人が感じ取れる時間がかかり、同じインターフェースを使う他のフローを遅らせることがあると説明する。RFCは100〜200ミリ秒を体感できる遅延として挙げ、それを大きく超える時間インターフェースを占有しないMTUを推奨した。ヘッダー圧縮を併用する296バイトのダイヤルアップMTUは、9.6 Kb/sの回線で200ミリ秒近くとなる折衷例だった。

バイトから共有待ち時間へ

単純な計算でトレードオフが見える。フレームやヘッダーを除けば、56 Kb/sでは100ミリ秒に700バイト、4.8 Kb/sでは60バイトを送れる。200ミリ秒ならそれぞれ倍になる。これはシリアライズ時間の例であってMTUの指定ではない。リンク層フレーム、カプセル化、ヘッダー、実際の回線速度で占有時間は変わる。

視点の移動が重要だ。MTUは最大パケット長、ヘッダー負担を償却する手段、あるいはフラグメントを避ける制約として語られがちだ。RFC 3150は、パケットが共有媒体を何秒使うのかも問う。大きなパケットは自分のフローの1バイト当たりのヘッダー比率を下げても、別のフローには長い順番待ちを強いることがある。影響を受けるのは、そのサイズを選んだフローだけではない。

小さなMTUにも費用がある。パケットごとにヘッダーが繰り返され、パケット単位で課金するネットワークでは、同じデータ量でも高くつくことがある。一方、低速で損失のある経路では、小さなセグメントが小さな輻輳ウィンドウに多く入り、重複ACKや高速回復を促す場合がある。同じ数のキュー内パケットなら、待ち行列のバイト量も減る。結論は経路次第で、「小さいほど常に速い」わけではない。

シリアライズとキューイングも別の量だ。前者はパケットのビットがリンクを占有する時間、後者はすでに待ち行列にあるパケットの後ろで待つ時間である。MTUを小さくすれば一回の占有は短くなり、キューの挙動も変わり得るが、両者を同一視してはならない。RFC 3150の指摘だけでは、長いキューや遅いアプリケーションが実際にあったとは証明できない。

ベストプラクティスであって、全世界共通の設定ではない

RFC 3150は、低速リンク向けの複数の最適化も整理した。ヘッダーとペイロードの圧縮、TCP輻輳制御との相互作用、バッファーの自動調整、小さなウィンドウでの損失回復、Limited Transmitなどである。仕組みは相互作用するが、すべての経路を同じにするものではない。圧縮は送信ビット数を減らし、受信ウィンドウは送信中に許されるデータ量を変え、アクティブキュー管理は輻輳の通知場所と時点に関わる。どれも一つのパケットのシリアライズ時間そのものではない。

したがって、体感できる時間を超えて占有しないという勧告は、具体的な選択を実装者と経路条件に委ねていた。100〜200ミリ秒を不変の知覚定数、標準上の義務、すべての技術にとっての最適値とはしていない。人の視点からの問いを残したのだ。パケット一つの順番で、共有リンクの他の人はどれくらい待つのか。

ダイヤルアップの例が現在のネットワークを代表しなくなっても、この問いは方法として有効だ。実際の回線についてシリアライズ時間を計算または測定し、回線速度とフレーム形式を含め、キュー待ちやアプリケーション処理とは分ける。そうして初めて、共有遅延についての主張を観測した経路に限定できる。

歴史的な貢献は小さいが、見方を変えた。RFC 3150はパケット化をバイトを効率よく運ぶ方法としてだけでなく、フロー間に待ち時間を分配する仕組みとして扱った。一つのパケットがリンクを押さえる時間も、インターフェース設計の一部である。

解釈の視点として、Lu HengのNote 64(最小限の初期仕様とローカルな選択)およびNote 20(形式的な記述と観測可能な現実の区別)を参照した。これらは編集上の枠組みであり、RFC 3150の著者の主張ではない。

出典

  1. RFC 3150 — End-to-end Performance Implications of Slow Links
  2. RFC EditorによるRFC 3150の記録
  3. RFC 1144 — Compressing TCP/IP Headers for Low-Speed Serial Links
  4. RFC 2416 — When TCP Starts Up With Four Packets Into Only Three Buffers
  5. RFC 2689 — Providing Integrated Services Over Low-bitrate Links
  6. RFC 3155 — End-to-end Performance Implications of Links with Errors
  7. RFC 3449 — TCP Performance Implications of Network Path Asymmetry
  8. RFC 7567 — IETF Recommendations Regarding Active Queue Management
  9. Lu Heng, Note 64 — Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
  10. Lu Heng, Note 20 — On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile