MSS

読み:えむえすえす / 英語表記:Maximum Segment Size

TCPの1つのセグメントで送ることのできるデータ部分の最大長。TCPヘッダーとIPヘッダーは含まない。イーサネット(MTU 1,500オクテット)とIPv4では、通常1,460オクテット。

イマシルちゃんの解説

MTUが「箱の最大サイズ」なら、MSSは「箱に入れられる中身の最大量」なんだ。

箱(パケット)には、宛先を書いた伝票(IPヘッダー)と、中身の説明書き(TCPヘッダー)も入れないといけない。
だから、中身に使える量は、箱の大きさからその2つを引いた分になるんだよ!

より深い解説

定義

MSS(Maximum Segment Size:最大セグメント長)は、TCPが1つのセグメントで運べるアプリケーションのデータの最大長である。TCPの接続を確立するとき、3ウェイハンドシェイクのSYNのセグメントのオプションで、互いに自分が受け取れるMSSを相手に知らせる。

MTUとの関係

MSS = MTU − IPヘッダー長 − TCPヘッダー長
条件MTUMSS
イーサネット、IPv41,5001,500 − 20 − 20 = 1,460
イーサネット、IPv61,5001,500 − 40 − 20 = 1,440
PPPoE、IPv41,4921,492 − 20 − 20 = 1,452

ヘッダーにオプションが付く場合は、その分だけ実際に送れるデータは小さくなる。

混同しやすい長さの整理

名前含むものイーサネット・IPv4・TCPの場合
フレーム長MACヘッダー+IPパケット+FCS最大1,518
MTUIPヘッダー+TCPヘッダー+データ1,500
MSSデータだけ1,460

イーサネットのMACヘッダー(14オクテット)とFCS(4オクテット)は、MTUの外側にあるので、MSSの計算では引かない。この取り違えが、計算問題でいちばん多い誤りである。

MSSクランプ

PPPoEやIPsecのトンネルを使う回線では、実際に通れるパケットの大きさが小さくなる。パスMTU探索がうまく働かない環境(ICMPが遮断されている場合など)では、大きなパケットが届かず、通信が途中で止まることがある。

そこで、ルータが、通過するTCPのSYNのセグメントのMSSの値を、トンネルに合わせた小さい値に書き換えることで、端末同士が最初から小さいセグメントで通信するようにする。これをMSSクランプ(TCP MSS調整)という。

MSSとウィンドウサイズの違い

MSSウィンドウサイズ
意味1つのセグメントの最大の大きさ確認応答を待たずに続けて送れる量
決め方接続の確立時に1回通知する通信中、受信側が随時通知する

ウィンドウサイズの中に、MSSの大きさのセグメントがいくつも入る関係にある。

実際の試験ではここに出る!

この用語が出てくる記事

↑