TCPでのMSSの決定

TCPはコネクション確立時にMSS(最大セグメントサイズ)を決定することで、IPフラグメントによる伝送効率の低下を避けます。MSSとはコネクション中に送信できるTCPデータの最大サイズです。
実際には、各ノードがコネクション確立時のSYNパケットに、希望するMSSを含めて送信します。このとき送信されるMSSは、ネットワーク・インタフェースのMTUからTCP・IPヘッダサイズの40を引いた値です。例えば、MTUが1500の場合、MSSは1460(=1500-40)となります。

(1)SYNパケット

1台目のノードのMTUは1500です。SYNパケットのオプションにMSS「1460」を含めて送信します。

(2)SYN・ACKパケット

2台目のノードのMTUは1200です。SYN・ACKパケットのオプションにMSS「1160」を含めて送信します。

★MSSの決定

1台目のノードが希望するMSSは「1460」、2代目のノードが希望するMSSは「1160」です。
MSSはより小さい方の「1160」に決定します。

(3)データパケット

このコネクションで送信されるパケットのデータサイズは、必ずMSS(1160)以下になります。