IPフラグメント
読み:アイピーフラグメント
外語:IP fragment
IP破片。ある一つのデータを、複数の
IPパケット
に分割して送り、IP層にて連結し上位階層へ渡すこと。
目次
概要
実装
実装方法
注意点
対応環境
IPv6
概要
TCP/IPv4
ネットワークの
IPv4
層では、最大64Kiオクテットまでのデータを一度に送ることができる。だが実際には各ホストの都合により、必ずしも最大サイズを送受信できるとは限らない。
例えばIPの下層に
Ethernet
を用いた場合、最大でも1500オクテットまでしか一度に送ることができない。それを超える場合は何らかの方法でパケットを分割し、あとで連結せねばならない。
これには幾つか方法があり、上位層(TCPやUDP)で行なう方法と、このIP層で行なう方法があり、IP層で行なうものをIPフラグメントという。
実装
実装方法
IPv4ヘッダー
内の情報にて、以下の三種類が区別可能となっている。
一番最初のパケット
途中のパケット
最後のパケット
これらは、次の二つの識別情報で判断される。
Flags情報のうちの、More fragments(継続フラグメント)ビット
Fragment Offset (フラグメントオフセット)
続くフラグメントがある(一番最初と途中)場合は、継続フラグメントビットを1とする。最後のパケットでは0とする。
フラグメントオフセットは8オクテットごとの、当該パケットの開始位置を表わす。一番最初は0であり、続くパケットは何オクテット目からを格納しているのかをここで示す。
そして全体を通じて、データグラム識別子(Identification)などは統一する。
注意点
IPフラグメントが発生した場合、時に順序が入れ代わって届いたり、重複して届いたりする。
受信元はこれらを正しい順序に直さなければならず、効率が悪くなる。
対応環境
ルーター
などの高度なネットワーク機器は、通常は対応している。しかし、ネットワーク家電などのたぐいはメモリー容量の制約等もあり、対応していないものが多い。
IPv6
IPv6
においては、実際の通信に先立って
MTU
のネゴシエーションが行なわれ、経路上MTUが最小の部分のMTUをその通信のMTUとして使うので、ルーターでのフラグメントは起きない。
再検索