当前位置:   article > 正文

TCP MSS详解_firmwall tcp-mss

firmwall tcp-mss

TCP MSS(最大报文长度)

   建立TCP连接的两端在三次握手时会协商TCP MSS大小

Eg: pc1(192.168.1.1)-------router-------internet--------server(200.0.0.1)

上图中:1 PC1发出SYN报文,其中option MSS字段一般为1460(MTU1500-IP头20-传输头20)

        2 SERVER收到后回答SYN ACK应答  option字段也为1460

        3 协商两端比较SYN 与SYN ACK中MSS大小

        4 选择最小作为MSS分片大小,最终为1460.

对于MPLS,L3VPN,PPPOE+NAT,IPSEC,L2TP,GRE组网等,通常由于报文太大需要分片,使用TCP MSS解决

关于TCP MSS设置位置的问题:

  拓扑如上:(注意仅为三次握手过程)

  假设在路由器内网配置TCP MSS 1200

  路由器收到server的SYN ACK后将TCP MSS改为1200,然后再转发给PC1,PC1收到报文后认为对端的tcp mss为1200,这样PC1发送数据给www server时会以1200作为分片大小;但路由器修改tcp mss为1200的操作www server是不知道的,因此www server还会以1460作为分片大小发送报文。

   于是PC就以1200发送报文,但server仍会以1460发送数据。

  假设在路由器外网配置 TCP MSS 1200

路由器收到PC1的syn报文时会修改option选项中的mss字段为1200,然后再转发给www server,同样www server发送数据给PC1时会以1200作为分片大小;同样PC1不知道路由器修改tcp mss为1200,因为PC1还会以1460作为分片大小发送报文。

故在路由器的出接口上配置TCP MSS即可实现广域网传输时数据不分片。

在路由器的出入接口均设置可实现整个传输不分片

 

应保证协商之后的TCP MSS小于MTU,都则会出现分片。

命令:接口下 IP TCP ADJUST-MSS

注意:

  MTU为二层包大小,一般为1500

  MSS为四层=MTU-IP大小20-四层包头20(如果有其他pppoe、加密报文头的话也同样减去)=1460最大,MSS值其实就是TCP所承载的净载荷的长度

IP报文里是有五元组的,但报文要进行分片时,只有第一片报文带有IP的五元组信息(源目的ip位址,源目的端口号,协议号),后续的分片不会保留TCP/UDP报文所有的标识信息,如端口号信息等,这种情况下,如果设备又实现了NAT转换操作(NAT转换过程中,会随机地做埠转换),并且应用又是基于TCP/UDP的,这就导致报文不能正确组包,出现能PING通,但访问WWW,FTP等应用时网速

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/483046
推荐阅读
相关标签
  

闽ICP备14008679号