パケットの制限がある
各ネットワークやリンクはパケットの最大長の制限を設けている。
ホスト側は大きなパケットを送りたいが問題が生じる
ホスト側は大きなパケットでデータを送信する方が好ましい。そうすることでヘッダーによる帯域の消費といったオーバーヘッドを軽減できるためである。長いパケットがそれより最大パケット長の短いネットワークを通過しようとすると、明らかに問題が生じる
最適なパケットの大きさ(経路MTU)にする
パケットがネットワーク上をどのような経路で宛先へ向かうのかを送信元が知っているとは限らないため、宛先へ辿り着くためにどの程度パケットを小さくすれば良いのかはわからない。このパケット・サイズは経路MTUと呼ばれる。
経路MTUがわかっていても経路が変化し経路MTUも変わってしまう
例え送信元が経路MTUを知っていたとしても、インターネットのようなコネクションレス型ネットワークではそれぞれのパケットが独立にルーティングされるため、経路が突然変化し、経路MTUが不意に変わってしまう可能性がある。
パケットをフラグメントに分ける
ルーターがフラグメントとよばれる断片に分割し、各フレグメントを別々にインターネット・パケットとして送信する方法がある。
フラグメントの欠点
パケット交換型ネットワークもまたフラグメントをもとに戻すという厄介な問題を解決する必要がある。
透過なパケットにしてフラグメントにしたことをなかったことにする
小さなパケットしか通さないネットワークでのパケット転送は他に影響を与えない透過なものになる。以降のネットワークは分割が行われたことにまったく気がつかない。
透過の欠点
出口のゲートウェイがいつすべてのフラグメントが届いたかを知る必要があることである。そのために、各パケットにはカウンタ・フィールドかあるいは、「パケットの終わり」と表すビットが含まれなければならない。
最終的な宛先は向かう過程で、あるパケットが一つの経路を通ったとすると、他のフラグメントを別の経路で転送することはできないため、性能があると程度低下してしまう可能性がある。
ルーターはフラグメントが到着するごとにバッファに格納し、到着しなかったフラグメントがあれば、いつそれらを捨てるのかを決定する必要がある。また小さなパケットしか通れないネットワークをいくつも通過する場合には、その度にフラグメント化とくみたてが繰り返されるため、無駄が多い。
宛先まで組み立てを行わない方法
一旦パケットが分割されたら、各フラグメントはそれぞれ独立したパケットのように扱われる。ルーターはフラグメントを図5−40(b)のように渡していき、組み立ては宛先ホストでのみ行われる。
利点
ルーターに要求される作業量が少ないことである。IPはこの方法で動作する。
宛先のバッファにおいて、組み立てを行う際の正しい位置にそれぞれのフラグメントを配置することができる。
パケット番号、正しい位置にデータを配置するためのフラグメント・オフセット、いつ完全なパケットとなるかを決定するための終端パケット・フラグを利用して、パケットの組み立てを行う。
欠点
オーバーヘッドは透過なフラグメント化の場合よりも大きくなる。しかし真の問題は、そもそもフラグメントが存在することにある。
一部のフラグメントが失われただけでもパケット全体がロスすることになる。また、フラグメント化によって、ホストへの負担は送信前の想定よりも大きくなってしまう
大き過ぎたら返されそれを繰り返してる経路MTU探索
各IPパケットは、ヘッダーに特定のビット列をセットしてパケットを送信することで、フラグメント化を禁止されていることを表す。ルーターが大きすぎるパケットを受信した場合には、誤りパケットを生成して送信元へ返送し、受信したパケットを捨てる。この様子を5-42に示す。送信元が誤りパケットを受信するとその中に含まれる情報をもとに、誤りを返したルーターが扱えるサイズまでパケットを再分割してから送信する。もし下流のルーターがさらに小さなMTUを持っている場合には、このプロセスが繰り返される。
利点
送信元で、送信すべきパケットの長さがわかることである。
より上位の層が経路MTUを把握し、正しい量のデータをIPへ渡さない限りは、送信元と宛先の間でフラグメント化が必要となる。TCPとIPは通常TCP/IPとして実装され、こうした情報をやり取りできるようになっている。仮に他のプロトコルで同様のことが行われないとしても、フラグメントかはネットワーク上からホストに移される。
欠点
送信までに多くの遅延時間がかかることである。