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

MTU

MTU・フラグメンテーションと通信速度の関係|性能低下の仕組みと最適化ポイント

ネットワーク通信の性能を考える際、「帯域」や「レイテンシ」だけでなく、 見落とされがちな重要要素が MTU(Maximum Transmission Unit) です。

MTUの設定が適切でない場合、フラグメンテーション(分割)が発生し、 スループット低下、遅延増加、CPU負荷増大といった問題を引き起こします。

本記事では、MTUとフラグメンテーションの仕組み、 それが通信速度に与える影響、そして実務での最適化方法について、 エンジニア向けに詳しく解説します。

MTUとは

MTU(Maximum Transmission Unit)とは、 1つのパケットとして送信できる最大データサイズのことです。

これはデータリンク層に依存する値であり、 Ethernetでは通常1500バイトが標準です。


Ethernet MTU:1500バイト
→ IPパケットの最大サイズ

このMTUには、IPヘッダやTCPヘッダが含まれるため、 実際にアプリケーションが送れるデータはさらに小さくなります。

MSSとの関係

TCPでは、MTUからヘッダ分を引いたサイズを MSS(Maximum Segment Size)として使用します。


MTU:1500
- IPヘッダ:20
- TCPヘッダ:20
= MSS:1460バイト

つまり、TCP通信では1回の送信で最大1460バイトのデータが送られます。

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

フラグメンテーションとは、 MTUを超えるサイズのIPパケットを複数に分割する処理です。

例えば、1500バイトのMTUを超える2000バイトのパケットが送られた場合、 以下のように分割されます。


元パケット:2000バイト

→ フラグメント1:1500バイト
→ フラグメント2:500バイト

受信側ではこれらを再結合(リフラグメンテーション)して元のデータに戻します。

なぜフラグメンテーションが問題なのか

フラグメンテーションは通信を成立させるための仕組みですが、 パフォーマンス面では大きなデメリットがあります。

1. オーバーヘッド増加

分割された各パケットにIPヘッダが付くため、 無駄なデータ量が増えます。


2000バイト → 2パケットに分割
→ ヘッダが2回分必要

2. 再送の影響

分割されたパケットのうち1つでも失われると、 全体の再送が必要になります。

これにより、TCPスループットが大きく低下します。

3. CPU負荷増加

フラグメントの分割と再構築はCPU処理です。 高トラフィック環境ではCPUボトルネックになります。

4. 遅延の増加

すべてのフラグメントが揃うまで処理が進まないため、 レイテンシが増加します。

フラグメンテーションの種類

1. 送信側フラグメンテーション

送信元ホストがMTUに合わせて分割する方式。

2. ルータフラグメンテーション

経路途中のルータが分割する方式。 現在は非推奨です。

現代のネットワークでは、ルータでのフラグメンテーションを避ける設計が基本です。

Path MTU Discovery(PMTUD)

フラグメンテーションを避けるために使われるのが Path MTU Discovery(PMTUD)です。

これは、通信経路上で最小のMTUを検出し、 それに合わせてパケットサイズを調整する仕組みです。


DF(Don't Fragment)フラグ ON
↓
MTU超過 → ICMPエラー
↓
送信サイズを調整

PMTUDにより、フラグメンテーションを回避し、 効率的な通信が可能になります。

PMTUDの問題点

PMTUDは有効な仕組みですが、以下の問題があります。

  • ICMPが遮断されると動作しない
  • ファイアウォールでブロックされやすい
  • ブラックホール問題(通信が途切れる)

このため、現場ではMTUを手動で調整するケースもあります。

MTU不一致による問題

ネットワーク内でMTUが統一されていない場合、 以下の問題が発生します。

  • フラグメンテーション増加
  • 通信遅延
  • スループット低下
  • 通信断(特にVPN環境)

特にVPNでは、ヘッダが追加されるため実効MTUが小さくなります。


通常MTU:1500
VPNオーバーヘッド:50〜100バイト
→ 実効MTU:1400程度

ジャンボフレームと性能向上

MTUを9000バイト程度に拡張するジャンボフレームを使用すると、 以下のメリットがあります。

  • パケット数削減
  • オーバーヘッド削減
  • CPU負荷軽減
  • スループット向上

ただし、すべての機器が対応している必要があります。

実務での最適化ポイント

  • MTUをネットワーク全体で統一する
  • VPN環境ではMTUを小さめに設定
  • PMTUDが機能するようICMPを許可
  • ジャンボフレームを活用(対応環境のみ)
  • パケットロスと再送を監視

よくあるトラブル例

Webが途中で止まる

MTU不一致で大きなパケットが破棄される。

VPNが遅い

フラグメンテーションが頻発している。

特定サイトだけ接続できない

PMTUDブラックホール問題。

まとめ

MTUは、ネットワーク通信効率を左右する重要なパラメータです。

フラグメンテーションが発生すると、 オーバーヘッド増加、再送、CPU負荷、遅延といった問題が発生し、 実効スループットが低下します。

これを防ぐためには、MTUの適切な設定とPMTUDの理解が不可欠です。

また、ネットワーク全体でMTUを統一し、 必要に応じてジャンボフレームを活用することで、 より効率的な通信を実現できます。

MTUとフラグメンテーションを正しく理解することは、 ネットワーク設計・トラブルシュートにおいて非常に重要です。