データ・リンク層に対しても同じものが使われるので省略しやすい
IP,TCP,UDPのような上位層のプロトコルは、どのようなデータ・リンク層に対しても同じものが使われ、ヘッダーはコンパクトさを意識せずに設計されている。実際、ソフトウェア・オーバーヘッドの削減を検討していると、もっと工夫すれば削減できたであろうヘッダー問題にぶつかることがある。
省略しやすいように設計されている
上位層プロトコルのヘッダーがデータ・リンク層の帯域を無駄に使わないように削減する手法がヘッダー圧縮(header compression)である。汎用的な手法はなく、専用に設計された手法が使われる。なぜなら、ヘッダーは小さいため、一つずつではうまく圧縮できなし、復元にはそれまでのデータ全てが必要だからである。パケット・ロスが生じたときには、復元できない。
40バイトから3バイトまで圧縮する
ヘッダー圧縮は、プロトコル・フォーマットを詳細に分析して行われる。初期の手法の一つは、Van Jacobsen(1990)で提案されたものであり、低速なシリアル・リンクのためにTCP/IPのヘッダーを圧縮する方法である。典型的な40バイトのヘッダーを3バイトまで圧縮できる。
...
ヘッダーフィールドの多くは、パケットごとに変化しない。つまり、例えば、IPのTTLやTCPのポート番号は同一なので各パケットで送る必要がない。送信側では省略し、受信側で補完すれば良い。
順序番号の省略
パケット・ロスがなければTCP順序番号は、増加するだけである。これらの場合、受信側はあり得そうな数字を予測する。予測されうものと異なる場合に、本当の数字を送る必要がある。その時でさえも、前に送った数字からの差分だけを送る。
無線リンクも圧縮できる
ROHCは、無線リンクで生じるロスに耐えられるように設計されている。圧縮されたヘッダーは、コネクションに必要なコンテキストを参照することにより運ばれる。同じコネクション上のパケットのヘッダー・フィールドは予測しやすい。しかし異なるコネクションではそうではない。ROHCは、IP/UDP/RTPヘッダーを40バイトから1バイトないし3バイトに圧縮する。
ヘッダー圧縮による利点
ヘッダー圧縮は主として、帯域削減のために用いられるが、遅延を削減するためにも使える。遅延は、伝搬遅延と伝送遅延からなる。伝送遅延とは、ネットワークの経路で固定である。一方、伝送遅延は帯域とデータ量によって決まる。
ネットワークは比較的低速であるので、遅延の中で伝送遅延が大きな比重を占める。したがって、QoSのためには伝送遅延を小さくすることが重要である。