MSS

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

TCPの1つのセグメントに含められるデータ部分の最大長を表す値である。TCPヘッダーとIPヘッダーの長さは含めない。接続開始時に自分が受け取れる上限を相手へ通知し、相手が送る量を調整するために使う。

イマシルちゃんの解説

TCPで大きなファイルなどを送るときは、内容を小さく分けて送るんだ。
ただし相手が1つのまとまりで受け取れる量には限度があるよ。
そこで通信を始めるときに、自分が受け取れる上限をMSSという値で相手に知らせるんだ。

ここで数えるのは、ファイルなどの内容を運ぶ部分の長さだよ。
実際の送信では、宛先や順番を伝えるIPヘッダーとTCPヘッダーも付け加えるんだ。
ヘッダーもデータの一種だけれど、MSSにはこの2つのヘッダーの長さを含めないよ。

送信側は相手のMSSを超えない量に分けて送ることで、受け取れる大きさに合わせられるんだ。

より深い解説

定義

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の大きさのセグメントがいくつも入る関係にある。

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

ネットワークスペシャリスト

午前Ⅱ

この用語が出てくる記事

↑