TCP 的那些事 | MSS

MSS 的全称是 Maximum Segment Size(最大报文长度),是 TCP 层上的概念。MSS 指的是 TCP 报文段中数据部分的最大长度,并不是整个TCP 报文段长度,整个 TCP 报文段长度 = TCP 首部长度 + TCP 数据部分长度。

网络交互的双方进行 TCP 通信时,会在三次握手时告知对方各自的 MSS,MSS 值只会出现在 SYN 报文中。

如下抓包所示,其中IP地址为 192.168.0.100 的发起方称为 A,IP 地址为183.192.200.98 的对端称为 B:

图1. A--->B SYN

 

图2. B--->A SYN + ACK

(1)如图 1 所示:A 向 B 发送一个SYN请求报文,这个 SYN 报文的 “Options” 字段中含有 MSS 值,当前是 1460。该 MSS 值是为了告知对方最大的发送数据大小。

(2)如图 2 所示:B 收到 SYN 报文后,在 SYN + ACK 报文中的 “Options” 字段也会有 MSS 值,值也为 1440。

(3)通信双方选择 SYN 和 SYN + ACK 报文中最小的 MSS 最为此次 TCP 连接的 MSS,也即以 1440 作为双方通信的 MSS,后续的报文交互中,TCP 层的数据长度不会超过 1440,如图 3 所示。

图3. 数据交互

本次的 MSS 就介绍到这里,如有错误,还请指正。

扫描二维码,关注“小眼睛的梦呓”公众号,在手机端查看文章
扫描二维码,关注“清远的梦呓”公众号,在手机端查看文章

版权声明:本文为u014023993原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>