MTU とフラグメンテーション

広告

広告

MTU とは

最終更新
2004-10-17T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/nw/tcpip/ip/mtu.html#mtu

MTU は【Maximum Transfer Unit】の略でフレームが運ぶ事のできる最大サイズを表す数値です。つまり、各種データリンクによってこの値は変わってくることになります。例えば、EthernetPPP 【Point to Point Protocol】では1,500オクテットFDDI【Fiber Distributed Data Interface】4,352オクテットとあらかじめMTU は決められているのです。

フラグメンテーション とは

最終更新
2004-10-17T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/nw/tcpip/ip/mtu.html#flagment

IP とはで簡単にフラグメンテーションについて説明しましたが、こちらでは再度詳しく見てみましょう。フラグメンテーションとは「IP」の行う処理の一つで、データリンク層で使用するプロトコルMTU を調べ、それにあわせてデータを分割をします。

例えば、IP パケット全体のサイズが2000オクテットだったとしましょう。データリンク層プロトコルEthernetを使用していると仮定すると、EthernetのMTU は1500オクテットですのでMACフレームの中にこのデータを入れる事はできません。入れる事ができないからと言ってあきらめてしまえば相手までこのデータが届くことはありません。ですのでフラグメンテーション(分割)処理を行うのです。具体的には2000オクテットのデータを先頭から1480オクテットの位置で切り分けます。すなわち、1480オクテットのデータと、520オクテットのデータに分割するのです。ではなぜ、EthernetのMTU は1500オクテットなのに1480オクテットの位置で分割するのかわかりますか?分割したは良いものの、1500オクテットにしてしまいますとIPヘッダ(20オクテット)分はみだしてしまいます。このIPヘッダも含めてきっちりMTU と同じサイズに分割をしているというわけです。つまり、最終的には1500オクテットと540オクテットのIP パケットができあがり、それぞれのパケットをMACフレームに格納しているのです。

今回はEthernetを例に挙げましたが、インターネットのようにさまざまなネットワークが繋がっている環境ですとあて先の端末にたどり着くまでにさまざまな種類の回線を通ります。当然、データリンク層に使われていますプロトコルもEthernetだけではありません。そうなると、EthernetのMTU のままではデータを運べない場合もあるでしょう。そこで、回線同士を繋いでいるルータは、自分に繋がっている回線で運べる大きさにIP パケットを分割するのです。

せっかくですので先ほどの例の延長で話をしましょう。ルータに先ほどのMACフレーム(1500オクテット)が運ばれてきたとしましょう。ルーティングテーブルから次のあて先を調べると1000オクテットがMTU の回線を通らなければならないようです。このときルータはまず受信したIPパケットからIPヘッダを取り除き、先頭から980オクテットの位置で切り分けます。つまり980オクテットのデータと500オクテットのデータに分割されたと言うわけです。後はもう分かりますよね。それぞれにIPヘッダを付けた上でMAC フレームに格納し、次のルータ(端末)までそのフレームを送り出すのです。もちろん、IP の働きは分割するだけではありません。IPヘッダに記載してある「識別子」「フラグ」「フラグメントオフセット」を基に、分割したデータを元に戻すのです。

広告

Copyright (C) 2004 七鍵 key@do.ai 初版:2004年10月17日 最終更新:2004年10月17日