IPフラグメントについて (2)

 


IPヘッダの中身について

フラグフィールド

フラグフィールド(3ビット)にはデータが分割されているのかどうかを示す情報が挿入されています。

1ビット目は未使用で必ず“0”になります。

2ビット目で、“0”の場合は分割可能、“1”の場合は分割禁止を意味します。

3ビット目が“1”の場合,あとに分割されたパケットが続く、つまり途中のパケットを意味します。
“0”の場合には、そのパケットが分割されていないか、分割されたパケットの最後のパケットであることを意味します。

まとめると以下な感じ

ビット 意味
0 未使用 0
1 分割可能か? 0(分割可)
1(分割禁止)
2 0(最後のパケット)
1(途中のパケット)

フラグオフセットフィールド

フラグオフセットフィールド(13ビット)にはこのパケットが何番目の分割されたパケットなのかが挿入されています。

ここに入る値は元のIPデータの中のどの位置にあったのかをしますデータの位置が値として入ります。
ここに入る値はオフセット単位で表示されます。
値が“1”なら8バイト、“2”なら16バイトを意味します。

つまり元のデータの何バイト目からのデータなのかを示しているわけです。
1番目のパケットであれば当然"0"が入ります。

 

識別子フィールド

識別子フィールドにはIPデータごとに任意の値が入ります。
つまりIPデータが分割されて複数のパケットになったとしても、その分割されたパケットの識別子は同じ値になるため、受信側では同じ識別子の分割されたパケットを集めて1つのIPデータとして構成されるんだねということが分かります。

 

データの組み立て

受信したデータの再組み立ては以下のような手順で行います。

1.識別子から1つの元データを構成する分割されたパケットを認識します。
2.各分割されたパケットのIPヘッダ内のフラグメントオフセットフィールドから、そのパケットが元データのどの部分のデータなのかを認識します。
これにより、たとえ順序が逆で受信したとしてもデータを復元することが出来るわけです。
3.フラグフィールドより最後の分割されたパケットを認識できるため、あとは集めたパケットを組み合わせてデータを組み立てます。
4.もし一部のパケットが届いていないのであれば、分割したパケット全てを破棄します。

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: