MTU・MSS計算ツール
MTUから残るMSSを、IPv6・トンネル・TCPオプションを含めて計算します。
MTU・MSS計算ツールは完全にブラウザ内で動作します。計算のみを行い、パケットは送信されず、入力内容も端末から出ません。
CIDRサブネット計算ツールを開く
MTU・MSS計算 について
MSSはリンクのMTUからヘッダー分を引いた残りです。IPv4なら20バイト、IPv6なら40バイト、TCPでさらに20バイト、タイムスタンプが有効ならもう12バイト、そしてトンネルが被せる分が加わります。値を誤ると、失敗の仕方がきれいではありません。分割が必要なパケットは、それを知らせるICMPが遮断されていると消え、接続は開けないのではなく転送の途中で固まります。このツールは代表的なカプセル化の計算を行い、pingの結果を実測の経路MTUに変換します。
機能
- IPv4とIPv6のMTUからMSSを算出し、ヘッダー内訳も表示
- PPPoE、GRE、IPsec、WireGuard、OpenVPN、VXLAN、L2TPのプリセット
- TCPタイムスタンプのオプション分を個別に計上
- 逆算モード:既知のMSSから導かれるMTU
- 通過した最大pingサイズから経路MTUを算出
- Linux、macOS、Windows向けのpingコマンドを表示
MTU・MSS計算 の使い方
- リンクのMTUを入力します。Ethernetは1500、PPPoE配下は1492です
- IPバージョンと経由するトンネルを選びます
- クランプすべきMSSとヘッダー内訳を読み取ります
- 不明なときはpingモードで実際の経路MTUを測ります
例
入力
MTU 1500 · IPv4 · WireGuard tunnel (60 bytes)
出力
Effective MTU 1440 · MSS 1400
Clamp MSS to 1400 on the tunnel interface
カプセル化の層はそのままペイロードから差し引かれます。トンネルでMSSクランプが必要なのはこのためです。
よくあるエラーとトラブルシューティング
- 小さな要求は通るのに大きなアップロードが固まる。 — 典型的なMTUブラックホールです。経路のどこかが大きなパケットをICMPなしで破棄しています。ここで示すMSSにクランプしてください。
- キャプチャのMSSが12バイト小さい。 — TCPタイムスタンプが有効で、そのオプション分が各セグメントから引かれています。ここでも同じ設定を有効にしてください。
よくある質問
- MTUからMSSはどう計算しますか。
- IPヘッダーとTCPヘッダーを引きます。1500 − 20 − 20でEthernet IPv4の定番である1460になります。トンネル分はその前に差し引きます。
- MTUが1500ではなく1492なのはなぜですか。
- 多くのDSLや一部の光回線が使うPPPoEが、6バイトのPPPoEヘッダーと2バイトのPPPヘッダーを追加するためです。
- WireGuardではMSSをいくつにしますか。
- WireGuardはIPv4で約60バイト、IPv6で約80バイトを使うため、1500のリンクではおおよそ1400と1360が残ります。
- pingで経路MTUを調べるには。
- 分割禁止でサイズを下げながら送ります。Linuxはping -M do -s 1472、macOSはping -D -s 1472、Windowsはping -f -l 1472です。通った最大値に28バイトを足します。
関連ツール
すべての ArrayKit ツール