关于TCP MSS值

From:http://blog.chinaunix.net/u2/72886/showart_1802033.html

中低端路 由器 tcp mss 的实现原理 为何经常要在内网口和外网口都要配置 tcp mss 值呢
PC1(192.168.0.1) ――― Router ―――― Internet ―――- www server(238.135.1.1)

建立 tcp 连接的两端在三次握手时会协商 tcp mss 大小,具体如下:
pc1 发 出 syn 报文,其中 option 选项填充的 mss 字段一般为 1460 ,同样 www server 收到 syn 报文后,会发送 syn ack 报文应答, option 选项填充的 mss 字段也为 1460 ;协商双方会比较 syn syn+ack 报文中 mss 字段大小,选择较小的 mss 作为发送 tcp 分片的大小。通过比较,协商双方的 tcp mss 都是 1460

对于涉及 mpls l3vpn pppoe nat ipsec l2tp gre 等组网,通常由于报文太大需要分片,一般可以 通过设置 tcp mss 解 决。

针对上例说明 tcp mss 如何实现
1、
假设在路由器内网口配置 tcp mss 1200
a)
路由器收到 www server syn ack 报文时会修改 option 选项中的 mss 字段为 1200 ,然后再转发给 PC1 PC1 收到报文后认为对端的 tcp mss 1200 ,这样 PC1 发送数据给 www server 时会以 1200 作为分片大小;但路由器修改 tcp mss 1200 的操作 www server 是不知道的,因此 www server 还会以 1460 作为分片大小发送报文。

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

3、
因此在实现双向大包传输时需要在内外网同时修改 tcp mss

综上所述: 在路由器接口上配置的 tcp mss 命令仅对出接口方向的 syn 报文和 syn ack 报文有效,对于入接口方向的 syn syn ack 报文无效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值