最大伝送単位(MTU:Maximum Transmission Unit)は、インターネットに接続されたデバイスが受け入れることができる最大データパケットをバイトで示した単位です。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
ネットワーキングにおける最大送信単位(MTU)は、ネットワークに接続されているデバイスが受け取る最大のデータパケットを表す尺度です。MTUを高速道路の地下道やトンネルにある高さ制限のようなものだと考えてみてください。高さ制限を超える自動車やトラックが通過できないように、ネットワークのMTUを超えるパケットはそのネットワークを通過できません。
ただし、車やトラックとは違い、MTUを超えるデータパケットは通過できるように小さな断片に分割されます。このプロセスをフラグメンテーション(断片化)と呼びます。断片化されたパケットは、宛先に到着すると再構成されます。
MTUはバイト単位で測定されます。「1バイト」は8つの0と1の集まりで表される8ビットの情報に相当します。1,500バイトが最大MTUサイズです。
インターネット経由で送信されるすべてのデータは、パケットと呼ばれる小さなまとまりに分割されます。たとえば、WebサーバーからユーザーのノートパソコンへWebページが送信されると、Webページの構成データは一連のパケットとしてインターネット上を移動します。その後、パケットはノートパソコンによって元のWebページ全体に再度組み立てられます。
データパケットは、主としてヘッダー とペイロードの2つの部分でできています。ヘッダーにはパケットの送信元アドレスと宛先アドレスに関する情報が含まれ、ペイロードはパケットの実際の内容です。ヘッダーは小包に貼られた発送用ラベルで、ペイロードは小包の内容品と考えればよいでしょう。(小包とは異なり、インターネット上のパケットには、さまざまなネットワーキングプロトコルごとに複数のヘッダーが付いています。)
MTUは、ほとんどの場合、第3層*パケット、または インターネットプロトコル (IP) を使用するパケットを参照するために使用されます。MTUは、すべてのヘッダーとペイロードを含むパケット全体を測定します。これには、IPヘッダーと TCP (トランスポート制御プロトコル) ヘッダーが含まれます。通常、最大40バイトまで加算されます。
* OSIモデルは、インターネットを可能にする機能を7つの層に分割します。第3層はネットワーク層であり、ルーティングが行われます。
2台のコンピューティングデバイスが接続してパケットの交換を開始すると、それらのパケットは複数のネットワーク経由でルーティングされます。通信の両端にある2台のデバイスのMTUだけでなく、その間にあるすべてのルーター、スイッチ、サーバーのMTUも考慮する必要があります。ネットワークパスのどこかのポイントでMTUを超えるパケットは断片化されます。
たとえば、サーバーAとコンピュータAーは接続していますが、互いに送信するデータパケットが、途中でルーターBとルーターCを通過しなければならないとします。サーバーA、コンピューターA、およびルーターBのすべてのMTUは1,500 バイトです。ただし、ルーターCのMTUは1,400バイトとします。サーバーAとコンピューターAがルーターCのMTUを認識せず、1,500バイトのパケットを送信する場合、すべてのデータパケットはルーターBによって転送中に断片化されます。
断片化によって、ネットワーク通信にわずかなレイテンシー と非効率性が生じるため、可能であれば、避けるべきです。(古いネットワーク機器は、フラグメーションを悪用するサービス拒否 攻撃や、Ping of Death 攻撃などに対する脆弱かもしれません)。
すべてのネットワークルーターは、パケットを受信する次のルーターのMTUに対して、受信する各IPパケットのサイズをチェックします。パケットが次のルーターのMTUを超えると、最初のルーターはペイロードを2つ以上のパケットに分割し、それぞれが独自のヘッダーを持ちます。
新しい各パケットには、元のパケットからコピーされたヘッダーがあり(すべてのパケットに送信元および宛先 IPアドレス などが付与される)、重要な変更が加えられています。ルーターは IPヘッダーの特定のフィールドを編集して、パケットが断片化していること、再構成が必要であること、パケット数、および送信順序を示します。
たとえば、ある輸送会社が施設の一つで荷物を扱っていますが、その荷物は重量制限オーバーです。その会社は、荷物の配達を拒否するかわりに、荷物の中身を3つの小さな荷物に分割することにしました。また、各荷物の配送ラベルを複製し、各荷物が一緒に到着する必要がある3セットのどれかであることを示すメモを追加します。つまり、最初の荷物は1/3、2番目の荷物は2/3などのメモを付けます。(運送会社によるこのようなアプローチはプライバシーの侵害になるので、現実世界では起こりません。)
場合によっては、パケットが断片化されないため、ネットワークパス上のルーターまたはデバイスのMTUを超えると、パケットが配信されません:
IPヘッダーは、消費者が小包を誰かに送るときに記入する配達伝票のようなものと考えてください。フォームには、送信元アドレス、宛先アドレス、荷物の配達日数、および配達業者に向けたその他の特別な指示が示されます。
「Don't Fragment」フラグは、ルーター用の特別な命令で、IPヘッダーの「伝票」で選択できるオプションです。フラグが設定されている場合、添付されたパケットは断片化できません。
パケットを受信したルーターはどれでも、ヘッダーを分析し、Don't Fragmentフラグを確認します。フラグがオンで、パケットがMTUを超えると、ルーターはパケットを断片化せずにドロップします。
ルーターは、パケットをドロップするだけでなく、パケットの発信元に ICMPメッセージを送信します。ICMPメッセージは、ステータスアップデートを送信する非常に小さなデータパケットです。この場合に表示される実際のメッセージは、「このルーターまたはデバイスは、パケットが大きすぎて、断片化できなかったため、配信できませんでした」というものです。
パスMTUディスカバリー(PMTUD)とは、ネットワークパス上のすべてのデバイス、ルーター、およびスイッチのMTUを検出するプロセスです。前述の例のコンピューターAとサーバーAがPMTUDを使用する場合、ルーターBのMTU要件を特定し、それに応じてパケットサイズを調整して断片化を回避します。
PMTUの動作は、接続されたデバイスが IPv4またはIPv6 のいずれを使用しているかによって、若干異なります:
IPv4: IPv4は断片化を許可し、したがって、IPヘッダーにDon't Fragmentフラグを含めます。IPv4のPMTUDは、Don't Fragmentフラグをオンにして、ネットワークパスに沿ってテストパケットを送信することで機能します。パス上のルーターまたはデバイスのいずれかがパケットをドロップすると、MTUとともにICMPメッセージを返送します。送信元デバイスはMTUを下げ、別のテストパケットを送信します。このプロセスは、テストパケットがドロップされることなく、ネットワークパス全体を通過できるほど十分に小さくなるまで繰り返されます。
IPv6: 断片化を許可しないIPv6の場合、PMTUDはほぼ同じように動作します。主な違いは、IPv6ヘッダーにDon't Fragmentオプションがないため、フラグが設定されないことです。IPv6をサポートするルーターはIPv6パケットを断片化しないため、テストパケットがMTUを超えると、ルーターはパケットをドロップし、対応するICMPメッセージをDon't Fragmentフラグをチェックせずに返信します。IPv6 PMTUDは、IPv4の場合と同様に、パケットがネットワークパス全体を通過できるようになるまで、より小さなテストパケットを送信します。
MSS は、最大セグメントサイズを表します。MSSは、インターネットの第3層ではなく第4層 (トランスポート層) でTCPによって使用されます。MSSは、各パケット内のペイロードのサイズだけに関係します。これは、MTUからTCPおよび IPヘッダーの長さを引いて計算されます。
ルーターのMTUを超えるパケットは断片化またはドロップされますが、MSSを超えるパケットは常にドロップされます。
MTUとMSSの詳細については、「MSSとは?」を参照してください。
利用開始
ネットワーク層について
ネットワークの種類
ネットワーキングの基礎
用語集
ラーニングセンターナビゲーション