ネットビギナーガイド

MTU と MSS の違い|通信が遅いときに知っておきたいパケットサイズの話

MTU と MSS の違いを一言で:

  • MTU: 1 つのパケットで送れる全体の最大サイズ(L3 = IP レベル)
  • MSS: 1 つのパケットで送れるデータ部分の最大サイズ(L4 = TCP レベル)

MSS = MTU − ヘッダ分(通常 40 バイト)

MTU とは

MTU(Maximum Transmission Unit) は、ネットワーク上で 1 回に送れるパケットの最大サイズです。 標準的な値は次の通りです。

ネットワークMTU
Ethernet1500 バイト
PPPoE 接続(フレッツ光)1454 バイト
MAP-E(v6 プラス)IPoE1460 バイト
DS-Lite(transix)1500 バイト(条件あり)

MTU が小さいほど、1 回の通信で運べるデータ量が少なくなり、効率が下がります。

MSS とは

MSS(Maximum Segment Size) は、TCP の 1 つのセグメント(データ部分)の最大サイズです。 MTU から IP ヘッダ(20 バイト)と TCP ヘッダ(20 バイト)を引いたサイズが MSS です。

パケットの構造:
[IPヘッダ 20B][TCPヘッダ 20B][データ ← MSS]
←─────────── MTU ─────────────────────────→
  • Ethernet 接続の場合: MTU 1500 → MSS 1460
  • PPPoE 接続の場合: MTU 1454 → MSS 1414

なぜ MTU を意識する必要があるのか

通常の Ethernet 接続では、MTU は 1500 で固定されており意識する必要はありません。 しかし以下のような環境では MTU の最適化が通信速度に影響します。

PPPoE 接続

PPPoE では追加のヘッダがあるため、MTU が 1454 に制限されます。 ルーターがこれに対応していない場合、断片化(フラグメント)が起きて通信が遅くなります。

IPoE(MAP-E / v6 プラス)

IPoE は方式によって MTU 制限が異なります。 v6 プラス(MAP-E) では MTU 1460 が推奨されており、ルーターの設定で明示的に指定する必要があります。 ルーターが自動設定しない場合は手動設定が必要です。

VPN

VPN を使うと暗号化ヘッダが加わり、実効的な MTU が下がります。 VPN 越しに大きなファイルをやり取りすると遅くなる場合、MTU の問題が疑われます。

MTU の不一致で起きる問題

フラグメント化(パケットの分割)

送信側が大きすぎるパケットを送ると、途中のネットワークが MTU に合わせて分割します。 この分割処理は CPU 負荷が高く、再構成も必要になるため通信が遅くなります。

Path MTU Discovery の失敗

「最適な MTU を自動検出する仕組み」(Path MTU Discovery)はファイアウォールに ICMP が遮断されているとうまく動かず、結果として通信が止まる「ブラックホール」現象が起きることがあります。

MTU を確認する方法

Windows での確認

コマンドプロンプトで:

netsh interface ipv4 show interface

各インターフェースの MTU が表示されます。

Mac/Linux での確認

ifconfig

または

ip link show

MTU の最適値を実測で求める

「これ以上大きくすると断片化する」MTU の上限値を実測で確認できます。

Windows での例:

ping -f -l 1472 google.com
  • -f: 断片化禁止
  • -l 1472: データサイズ 1472 バイト(IP+ICMP ヘッダ 28 を足して 1500)

Packet needs to be fragmented but DF set.」とエラーが出たら、サイズを 10 ずつ減らして再試行します。 エラーが出なくなった最大サイズ + 28(ヘッダ分)が最適 MTU です。

ルーターでの MTU/MSS 設定

家庭用ルーターには MSS クランプ(MSS Clamping)機能があり、TCP の MSS を自動的に MTU に合わせて調整してくれます。

BUFFALO ルーター

「詳細設定」→「Internet」→「PPPoE 設定」→「MTU 値」「MSS 値」で設定できます。

NEC ルーター

「詳細設定」→「インターフェース設定」→「MTU」「MSS」

「詳細設定」→「ネットワーク」→「DSL モデム」または「インターネット」セクション

最近のルーターは自動設定の精度が上がっており、手動調整が必要なケースは減っています。

MTU 関連の症状と対処

症状疑い対処
一部のサイトだけ読み込み途中で止まるMTU 不一致 / ブラックホールMTU を下げる / MSS クランプを有効化
メールの送信が途中で失敗する大きな添付で MTU 問題MSS クランプを有効化
VPN 越しの通信が遅いVPN ヘッダで MTU 不足VPN の MTU を 1400 程度に下げる
通常の Web は問題ないがファイルダウンロードだけ遅い大パケットの断片化MTU の最適化

ジャンボフレーム

通常の Ethernet は MTU 1500 ですが、設定で MTU 9000 まで拡張する「ジャンボフレーム」という機能があります。 NAS と PC を 10GbE で繋ぐような環境で、大きなファイル転送の効率を上げる目的で使います。

ただし家庭の WiFi では通常使えず、対応する機器(NAS・スイッチ・PC のネットワークカード)がすべてジャンボフレーム対応である必要があります。

よくある質問

Q. MTU を勝手に変えると通信できなくなる?

A. 通常の値より小さくしすぎる(1000 以下など)と効率は下がりますが通信は可能です。 逆に環境が許容する値より大きくすると一部の通信が失敗します。 基本は「自動」または「環境推奨値」を使い、問題が起きてから調整する方が安全です。

Q. IPoE で MTU の調整は必須?

A. ルーターが対応していれば自動で最適値が設定されることが多いです。 v6 プラス対応ルーターを使っていて速度に問題がなければ、特に意識する必要はありません。 ただし古いルーターを IPoE で使うと、MTU の問題で遅くなることがあります。

まとめ

  • MTU: パケット全体の最大サイズ(IPレベル、通常 1500)
  • MSS: TCP データ部分の最大サイズ(MTU − 40)
  • PPPoE や IPoE では MTU が下がるため、対応ルーターの利用が前提
  • 通信に問題が起きたら MSS クランプ機能を有効にすると改善することが多い

関連記事

関連記事