MSSはTCP通信で一度に送るデータ量を考えるうえで重要な値です。
Webサイトの閲覧、オンライン会議、クラウドサービスへの接続など、日常的な通信の裏側では、MSSとMTUが関係するサイズ調整が行われています。
似た言葉としてMTUやパケットサイズがあるため混同されがちですが、それぞれが示す範囲と役割は異なります。
この記事では、MSSの意味、TCPにおける仕組み、MTUとの違い、設定時の注意点まで、通信の流れに沿ってわかりやすく解説します。
MSSの意味とTCP通信における役割

それではまずMSSの基本的な意味と役割について解説していきます。
MSSが示す最大セグメントサイズ
MSSはMaximum Segment Sizeの略で、日本語では最大セグメントサイズと呼ばれます。
TCPが1つのセグメントに格納できる、アプリケーションデータ部分の最大サイズを表す値です。
ここでいうセグメントとは、TCPがデータを分割して送信するときの単位です。
たとえばWebページの画像やメールの本文、ファイルの一部などは、そのまま巨大なかたまりで送られるわけではありません。
通信経路に適した大きさへ分割され、TCPヘッダーやIPヘッダーを付与したうえでネットワークへ送出されます。
MSSが対象とするのはTCPヘッダーを除いたデータ本体であり、IPパケット全体の上限を示す値ではありません。
この違いを押さえると、MTUとの関係も理解しやすくなります。
MSSはTCPデータ部の上限値です。
IPヘッダーとTCPヘッダーを含めたパケット全体の上限値は、通常はMTUで管理されます。
TCPでMSSが必要になる理由
TCPは、信頼性を重視する通信プロトコルです。
送信したデータが相手に届いたかを確認し、途中で失われた場合には再送する仕組みを持っています。
そのため、送信するデータを無制限に大きくすると、経路上の機器が扱いにくくなったり、パケット損失時の再送量が増えたりします。
反対に、極端に小さく分割すると、ヘッダーの比率が高まり、通信効率が落ちる可能性があります。
MSSはこのバランスを取るための目安です。
適切なMSSを利用すれば、経路の制約に配慮しながら、TCPデータを比較的効率よく送信できます。
通信品質は回線速度だけで決まらず、データ分割のサイズも影響する点が重要です。
SYNパケットで行われるMSSの通知
TCP接続では、通信を始める前にスリーウェイハンドシェイクが行われます。
クライアントとサーバーはSYNパケットを交換し、接続開始に必要な情報を確認します。
MSSは、このSYNパケットに含められるTCPオプションの一つです。
送信側は、自分が受信できるTCPデータの最大サイズを相手へ通知します。
相手は受け取った値を参考にし、送信時のセグメントサイズを決定します。
つまりMSSは、一方的にネットワーク全体へ強制する値ではなく、TCPの両端が通信開始時に共有する受信可能サイズの目安として働きます。
経路途中のルーターがMSSそのものを基準に転送するわけではない点も、理解しておくとよいでしょう。
一般的なイーサネット環境では、MTUが1500バイトに設定されることがあります。
IPv4ヘッダーが20バイト、TCPヘッダーが20バイトの場合、MSSは1500から40を引いた1460バイトが目安です。
MTUとMSSの違い
続いてはMTUとMSSの違いを確認していきます。
MTUが示す通信フレームの上限
MTUはMaximum Transmission Unitの略で、最大転送単位と訳されます。
一般には、あるネットワークインターフェースが一度に送信できるIPパケットの最大サイズを指します。
MTUにはIPヘッダー、TCPヘッダー、UDPヘッダー、アプリケーションデータなどが含まれます。
TCP通信に限らず、IP通信全般と関わる概念です。
一方のMSSはTCP専用の考え方であり、TCPデータ部のサイズに焦点を当てています。
MTUはパケット全体、MSSはTCPペイロード部分と覚えると整理しやすいでしょう。
ヘッダーサイズから考える両者の関係
標準的なIPv4とTCPでは、それぞれ最低20バイトのヘッダーがあります。
オプションを使わない場合、MTUからIPヘッダーとTCPヘッダーを差し引くと、おおよそのMSSを求められます。
ただし、実際のヘッダー長は常に固定ではありません。
IPv4オプション、TCPオプション、IPv6拡張ヘッダーなどが利用されると、必要なヘッダー領域は増えます。
そのため、単純な引き算だけでは安全なサイズを判断できない場面もあります。
| 項目 | MSS | MTU |
|---|---|---|
| 正式名称 | Maximum Segment Size | Maximum Transmission Unit |
| 主な対象 | TCPデータ部 | IPパケット全体 |
| 主な利用場面 | TCP接続時の送受信サイズ調整 | ネットワークインターフェースの転送上限 |
| TCPヘッダー | 含まれない | 含まれる |
| IPヘッダー | 含まれない | 含まれる |
| 代表的な目安 | IPv4で1460バイト | イーサネットで1500バイト |
この表の数値は代表例であり、VPNやPPPoE、トンネル通信がある環境では変化します。
通信不良を調べる際には、利用している回線と経路の条件を確認する必要があります。
IPv4とIPv6で変わるMSSの目安
IPv4では、基本IPヘッダーが20バイトです。
TCPヘッダーも基本部分は20バイトなので、MTU1500バイトならMSS1460バイトが一般的な目安になります。
IPv6の基本ヘッダーは40バイトです。
TCPヘッダー20バイトを加えると、同じMTU1500バイトでもMSSの目安は1440バイトになります。
IPv6ではIPv4よりIPヘッダーが大きいため、同条件ならMSSも小さくなるという関係です。
もっとも、実務ではTCPオプションやトンネル方式も影響するため、代表値だけで設定を断定しないことが大切です。
IPv4の基本的な計算例は、1500から20から20を引いて1460バイトです。
IPv6の基本的な計算例は、1500から40から20を引いて1440バイトです。
TCPセグメント分割と再送制御の仕組み
続いてはTCPセグメントがどのように分割され、再送されるのかを確認していきます。
アプリケーションデータの分割
アプリケーションが送信するデータは、TCPスタックへ渡された後、適切なサイズのセグメントへ分割されます。
送信側はMSSを参考にして、1セグメントに載せるデータ量を調整します。
たとえば1万バイトのデータを送る場合、MSSが1460バイトなら、複数のTCPセグメントに分けて送信されます。
最後のセグメントだけは、MSSより小さいサイズになることもあります。
受信側ではシーケンス番号を使い、到着順が前後したデータを元の順番へ並べ直します。
この仕組みにより、アプリケーションは細かな分割を意識せずに、連続したデータとして扱えます。
パケット損失と再送量の関係
通信経路でパケットが失われると、TCPは確認応答やタイムアウトを手がかりに再送を行います。
1セグメントが大きいほど、1回の損失で再送するデータ量は増えます。
一方でセグメントが小さすぎると、送る回数やヘッダー処理が増え、帯域の利用効率が下がることがあります。
このため、MSSは単に大きければよいものではありません。
回線の品質、遅延、経路上のMTU、端末の処理能力などを踏まえた調整が求められます。
再送の増加は速度低下だけでなく、遅延の体感悪化にもつながるため、オンライン業務では特に注意したいポイントです。
ウィンドウサイズとの役割分担
MSSと混同されやすい用語に、TCPウィンドウサイズがあります。
MSSは1回のセグメントに入れるデータ量の上限です。
ウィンドウサイズは、確認応答を待たずに送信できるデータ量の範囲を表します。
たとえばMSSが1460バイトで、十分に大きいウィンドウサイズが使える場合、複数のセグメントを連続して送信できます。
高速で遅延が大きい回線では、ウィンドウサイズが小さすぎると帯域を使い切れないことがあります。
反対に、MSSだけを大きくしても、経路MTUや受信側の条件に合わなければ効果は限定的です。
MSSは分割単位、ウィンドウサイズは送信量の枠として、別々の役割を持っています。
通信速度を考えるときは、MSSだけを確認して終わりにはできません。
RTT、ウィンドウサイズ、輻輳制御、パケット損失率を合わせて確認することで、原因を切り分けやすくなります。
経路MTU探索とMSSクランプの基礎
続いては経路MTU探索とMSSクランプの基礎を確認していきます。
経路MTU探索の考え方
通信経路には、複数のルーター、回線、トンネル、ゲートウェイが存在します。
そのなかで最も小さなMTUが、実質的な通信上限になりやすい条件です。
経路MTU探索は、送信元から宛先までの経路で利用できるMTUを把握するための仕組みです。
IPv4ではフラグメント禁止設定とICMP通知を活用する方法があります。
IPv6では途中ルーターによるフラグメントが行われないため、送信元が経路MTUを考慮する重要性が高まります。
必要なICMPメッセージが正常に届かないと、通信が途中で止まったように見える現象が起きる場合があります。
MTUブラックホールが起きる状況
MTUブラックホールとは、大きすぎるパケットが経路で破棄されているにもかかわらず、送信元が適切なサイズへ調整できない状態を指します。
たとえばファイアウォールが必要なICMPメッセージを遮断していると、送信側がパケットサイズ超過の原因を把握できないことがあります。
Webサイトの一部だけ表示されない、VPN接続後に特定サービスだけ利用できない、大きな添付ファイルだけ送れないといった症状につながることがあります。
小さい通信は成功するのに、一定サイズを超える通信だけ失敗する場合、MTUやMSSを疑う価値があります。
接続できるのに大きなデータだけ送れない現象は、MTU不整合の代表的な兆候です。
MSSクランプによる対策
MSSクランプは、ルーターやファイアウォールがTCPのSYNパケットを確認し、通知されるMSS値を必要に応じて小さく書き換える設定です。
VPN、PPPoE、IPsec、GREなど、追加ヘッダーによって実効MTUが小さくなる環境で使われることがあります。
送信元と受信先が大きすぎるMSSを通知しても、中継機器が経路に合わせて値を調整すれば、後続のTCPセグメントを安全なサイズに抑えやすくなります。
ただし、MSSクランプはTCPだけに効く対策です。
UDP通信やICMP通信のサイズ問題までは解決できません。
また、必要以上に小さい値を設定すると、通信効率を下げるおそれがあります。
PPPoEでは追加の通信制御情報により、一般的なイーサネットより実効MTUが小さくなる場合があります。
IPv4で実効MTUが1492バイトなら、基本ヘッダーを差し引いたMSSは1452バイトが一つの目安です。
MSS設定と通信トラブルの確認ポイント
続いてはMSS設定と通信トラブルの確認ポイントを解説していきます。
VPNとトンネル通信の追加ヘッダー
VPNや各種トンネル通信では、元のパケットを別のパケットで包む処理が行われます。
この処理には追加ヘッダーが必要です。
外側のIPヘッダー、暗号化に関する情報、認証情報などが加わると、内部パケットで使える実効MTUは小さくなります。
通常の回線で問題がなくても、VPN接続後だけ通信が不安定になる場合は、このオーバーヘッドを確認する必要があります。
トンネルの内側で使えるMTUと、物理回線のMTUは同じとは限りません。
ネットワーク機器の自動計算に任せられる環境もありますが、構成が複雑な場合は実測とログ確認が有効です。
OSとネットワーク機器の設定確認
MSSの直接設定やMSSクランプの設定場所は、利用しているOS、ルーター、ロードバランサー、ファイアウォールによって異なります。
まず確認したいのは、インターフェースのMTU値です。
次に、PPPoEやVPNの有無、トンネルの種類、通信経路上の中継装置を洗い出します。
TCP接続のパケットキャプチャを取得できる場合は、SYNパケットに含まれるMSSオプションを確認すると、両端がどの値を通知しているかを把握できます。
設定変更後は、Web閲覧だけでなく、大きめのファイル転送、社内システムへのログイン、双方向通信など、複数のパターンで検証すると安心です。
| 症状 | 確認したい項目 | 考えられる対応 |
|---|---|---|
| VPN接続後に一部サイトが開かない | VPNの実効MTUとTCP MSS | MSSクランプやMTU設定の見直し |
| 小容量通信だけ成功する | 経路MTU探索とICMP遮断 | 必要なICMPの扱いを確認 |
| 大容量ファイル転送が途中で止まる | フラグメント、再送、損失率 | 経路条件とパケットサイズの調査 |
| IPv6だけ通信が不安定 | IPv6 MTUと拡張ヘッダー | IPv6対応機器の設定確認 |
| 特定拠点だけ遅い | 拠点間VPNと回線種別 | 経路別のMTU測定と設定調整 |
安易な固定値設定を避ける理由
通信トラブルが起きたとき、MSSを小さな固定値へ変更すると、一時的に改善することがあります。
しかし、原因を確認せずに一律で小さくすると、本来不要なオーバーヘッドを常に抱えることになります。
クラウド接続、拠点間VPN、モバイル回線など、経路ごとに条件が異なるケースでは、固定値が別の通信に悪影響を与える可能性もあります。
設定前には、どの経路の、どのプロトコルで、どのサイズの通信が失敗しているかを確認することが重要です。
MSS調整は万能な高速化策ではなく、MTU不整合を避けるための実務的な対策として捉えると判断しやすくなります。
TCP通信の不具合を調査するときは、回線速度の測定結果だけで判断しないことが大切です。
パケットキャプチャ、経路、MTU、MSS、ICMPの到達性を順に確認すると、原因の見落としを減らせます。
MSSとMTUの要点整理
MSSはTCPの最大セグメントサイズであり、TCPヘッダーを除くデータ部分の上限を示す値です。
MTUはIPパケット全体の転送上限で、TCP通信だけでなくIP通信全般に関係します。
一般的なIPv4のイーサネット環境では、MTU1500バイトに対してMSS1460バイトが代表的な目安です。
IPv6、VPN、PPPoE、IPsecなどを利用する場合は、追加ヘッダーや経路上の制限により、実際に使える値が小さくなることがあります。
MSSとMTUの違いを理解すると、通信速度低下や一部通信失敗の原因を切り分けやすくなります。
特に、小さな通信は問題ないのに大きなデータだけ失敗する場合は、経路MTUとMSSクランプの設定を確認するとよいでしょう。
最適な値はネットワーク構成によって変わるため、代表値をそのまま固定するのではなく、実際の経路と通信状況を踏まえて判断することが大切です。