パケットの分割化処理(フラグメンテーション)についてはMTUのセクションで説明しました。 ここではフラグメントについてもう少し詳しく見てみましょう。
IPデータをフラグメンテーションする場合、データを単純に先頭から分割するだけではないのです。
例えば1つのIPデータを3つのデータにフラグメンテーションして送出した場合を考えてみよう。
その3つのパケットはそれぞれ個々にルーティングされて宛先へと到着します。
このときに2つ目のパケットが1つ目のパケットよりも先に到着してしまったらどうなるでしょう?
あるいは3つ目のパケットが宛先に届かなかった場合どうなるでしょう?
受信側ではどのパケットがどの順番のパケットなのか分からないため、到着したパケットから順に組み立てようとしてしまい、正常に組み立てることができないわけです。
そんな問題を解決するために IP ではデータを適切に遅れるような仕組みがあるのです。
IPでは分割したパケットなのかそうでないのか、分割しているのであればパケットの順序を正しく認識し、パケットの1つが届かなかった場合それを認識するように出来ています。
そのため分割したパケット1つ1つにIPヘッダを付与しています。
受信したパケットが分割されたデータなのかそうでないのかを知るためには、IPヘッダ内の識別子、フラグ、フラグメントオフセットに記されています。
IPデータのサイズがMTUを超えているような場合、MTUの長さ以下の長さにデータを分割します。
分割した各データにはIPヘッダが付与されますので、IPヘッダを除いた部分が分割したデータサイズの上限となります。
そして分割したデータの順序を受信側に教えているのが、IPヘッダ内のフラグフィールドとフラグメントオフセットフィールドなのです。
フラグフィールドにはそのパケットが分割しているのかそうでないのかといった情報が入っています。
フラグメントオフセットフィールドにはそのパケットが何番目の分割されたパケットなのかといった情報が入っています。
ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!
これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。
もちろん無料です!!
↓メールマガジン購読はこちら↓