MSS
概念
MSS全程最大报文段长度,在TCP连接建立时,收发方协商的每一个报文所能承担的最大数据长度,这个长度不包括报头。
MSS和MTU类似,都是用于定义最大数据长度的。MTU限制了数据链路层上传输的数据(网络层及网络层以上的所有层的数据大小,一般MTU的值是1500,也就是数据链路层的最大payload是1500,一般就是IP层的IP报头和IP层的payload加起来最大是1500)。
MSS值的设置
MSS针对传输层的TCP协议,因为MSS作用于传输层,传输层在数据链路层之上,所以MSS会受到限制数据链路层payload长度的MTU的限制。
因为MTU一般是1500,通常 TCP MSS = MTU - IP Header 长度 - TCP Header 长度。那么去掉IP报头的20个字节(通常为20个字节,IP报头的长度是可变的),去掉TCP报头的20个字节(通常为20个字节,TCP报头的长度是可变的),MSS最大可为1460字节。
MSS在发送方和接收方建立连接的传输过程中也是可以动态调整的,一般在刚建立连接时MSS比较小,然后会传输过程中会进行动态调整。
MSS对网络传输的影响
如果MSS设置得过大,那么可能导致网络传输过程中数据包被分片,增加网络延时。如果MSS设置得过小,那么因为TCP payload占用数据包的比例太低,有用信息太少,网络传输效率会下降。
MSS
https://nrbackback.github.io/2024/04/19/MSS/