要約
- RFC 1144は、圧縮側と復元側が直前のIPv4/TCPヘッダーを保持し、接続識別子と変化だけを送ることで、四十オクテットを数オクテットへ縮めた。
- 圧縮表現は制約回線だけに閉じ、次のIP区間へ出る前に通常のヘッダーを復元したため、TCP終端は変更を必要としなかった。
- 差分一つの喪失で両者の記憶は分岐する。チェックサム、toss状態、非圧縮パケットによる再同期は付随処理ではなく、方式の中心だった。
一文字より重い外装
1990年2月の RFC 1144 は、300〜19,200 bit/sのシリアルリンクを対象にした。最小IPv4ヘッダー二十オクテットとTCPヘッダー二十オクテットが、一文字のデータを包む。送信41オクテット、エコー41オクテットを200ミリ秒以内に直列化するだけで、歴史的計算では約4,000 bit/sが必要だった。
ファイル転送なら大きなpayloadで固定費を薄められる。対話入力はそうはいかない。しかも大きなフレームが送信中なら、小さなエコーは待たされる。課題は帯域利用率だけでなく、人が感じる応答そのものだった。
消去ではなく、置き場所の変更
Van Jacobsonは、ヘッダーの各フィールドには役割があると認めた。省けるのは意味ではなく、同じ値の再送である。接続中、アドレスとportは固定しやすい。sequence、ACK、window、IP Identificationも、隣接パケット間では規則的に変わることが多い。
compressorとdecompressorは、active flowごとに前回のヘッダーを保存した。小さなCIDが保存場所を選ぶ。UNCOMPRESSED_TCPが完全なcontextを登録し、COMPRESSED_TCPは変更mask、差分、推測できない値を送る。受信側は標準IPv4/TCPヘッダーを再構成してから次へ渡す。
したがって、圧縮は低速hopの内部表現だった。経路全体に新しいIP形式を要求せず、終端にも共有状態を強いない。四十オクテットはInternetから消えたのではなく、そのリンク上で前回の記憶に置き換わった。
図面より、時間方向の規則性
sequence番号は送ったデータ長だけ進み、ACKは受け取った範囲を追う。IP Identificationも小刻みに動く場合がある。RFC 1144は変化したフィールドをbitmaskで示し、小差分を短く符号化した。対話echoや一方向bulk transferにはさらに短い表現を用意した。
一方、IP fragment、SYN、FIN、RST、ACKなし、header長変更、未知のoption、予想外の遷移は通常形式へ戻した。安全な圧縮は何でも当てることではなく、推論できる集合を狭く定義することだった。
RFC本文のtraceでは、平均圧縮headerは約三オクテットになった。この測定を現在の全回線へ一般化はできない。重要なのは、header formatの「無駄」ではなく、flowが時間方向に持つ連続性を符号化した点にある。
失われた一枚が過去を二つにする
差分は基準が一致して初めて意味を持つ。圧縮フレームが失われると、送信側だけが保存headerを進め、受信側は古いままになる。次の差分をそれぞれの基準へ足せば、別のpacketが出来上がる。
RFC 1144はTCP既存の検出・回復を利用した。誤ったsequenceやACKを含む復元は通常checksumで失敗する。decompressorはtoss状態へ入り、圧縮フレームを捨て、非圧縮のcontext更新を待つ。TCPの再送やduplicate ACKも、別個の修復dialogueなしにrefreshを促す材料になった。
checksumは認証ではないし、すべての損害を消すものでもない。ただし「双方が覚えているから送らない」という判断に、期限と復帰点を与える。contextは最適化用cacheであると同時にwire decodingの入力になった。
後継仕様は状態機械を表面化した
RFC 2507 は1999年、full headerでcontextを作り、その後は参照とincrementを送るという一般原則を示した。non-TCP用generationと周期refresh、header request、TCPのno-delta修復、reorderingへの規則も加えた。
CID数には限りがある。多数のflowがslotを奪い合えばCID thrashingが起き、full headerが頻発する。どのflowに記憶を残すかは帯域配分の判断になる。
RFC 4413 はfieldをstatic、推論可能、予測可能、不規則という実挙動で整理した。ROHC framework と ROHC-TCP profile は、lossとreorderingのあるlink向けに初期化、状態遷移、feedback、refresh、CRCをより明示した。RFC 1144とのwire互換更新ではないが、欠けたbyteをどの記憶から戻すかという責任を引き継いでいる。
情報源と限界
閉じた情報源は RFC 1144、RFC 2507、RFC 4413、RFC 4995、RFC 6846 である。機構と記載例は確立するが、現在の普及率、vendor初期値、普遍的効果、常に三オクテットという主張は支えない。
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
