原文源自:https://blog.csdn.net/q1007729991/article/details/69668576

1、MSS

MSS,最大报文段长度。在连接建立的时候,即在发送SYN段的时候,同时会将MSS发送给对方(MSS选项只能出现在SYN段中!!!),告诉对端他期望接收的TCP报文段数据部分最大长度。

2、MSS的作用

一般来说,TCP 报文段携带的数据当然是越多越好。

如果 TCP 报文段传输的数据只有一个字节,在 IP 层传输的数据报大小就是 40 + 1 = 41 字节(至少 20 字节的 IP 头 + 20 字节的 TCP 头 + 1 字节数据)。这样网络的利用率就只有 1/41. 传输 n 字节的数据利用率就是 n/n+40,显然 TCP 报文段传输的数据如果越大,网络利用率就越高。

但是实际上并非如此。因为网络传输数据时,数据是最终是要交付到链路层协议上的,也就是说最后要封装成“帧”。二型以太网(Ethernet Type 2)中规定,帧的大小不能超过 1518 个字节(14 字节的帧头 + 4 字节帧校验和 + 最多 1500 字节数据)。所以 IP 数据报的大小如果超过了 1500 字节,要想交付给链路层就必须进行“分片”。
       “分片”指的是一个IP数据报太大,需要拆分成一个一个的小段,变成多个IP数据报。

这种分片显然是不利的,有一定的开销。为了避免分片开销,我们希望IP数据报的大小不超过1500字节。除去IP数据报的首部20字节,也就是希望TCP报文段不超过1480字节。再减去TCP报文段首部20字节,也就是TCP携带的数据不超过1460字节。

有些设备默认是tcp mss 1500 有可能和运营商所设置的tcp mss不一致会造成 数据包超过1500字节会造成丢包显现,上网查看到的现象是上网一下卡,一下非常流畅,这就表示有些数据包就接受的,有些数据包是丢弃了。

您必须 登录 才能发表评论