MSS
MSS英文全称为Maximum Segment Size, 表示最大TCP报文段数据长度. 并且MSS只会出现在对端发送SYN
段时才会夹带的信息.
在三次握手的过程中可以看到这个对端期望能够收到最大的数据段长度, 如下 :
可以看到现在对端的MSS
都是65495. 当数据超过了MSS的值就无法保证能够一次性放入TCP报文段中, 那么只能将数据进行分片传送, 所以TCP报文段一次性携带的数据越多越好啊, 这样就越不容易造成分片了, 也能构提高网络利用率.
那么是不是我们通过调整MSS
的值就可以完全避免分片呢? 这肯定不可能, MSS
的值不能无限增大, 它是有一个明确的上限的. 以太网规定帧的大小不能超过1518字节, 而动态端口规定帧的范围为1024~65536. 我们以以太网为例(因为大多数都是以1518字节).
- 封装成帧有14字节的帧头, 4字节的帧校验和.
- 也就是上层的IP数据报不能够超过1500字节. 而这个值一般也是
MTU
的值.
- IP首部固定有20字节
- TCP首部至少有20字节.
- 除去IP和TCP首部, TCP报文的数据部分最多不能够超过1460字节