简介
本文档介绍TCP MSS调整的概念和配置,还讨论最大传输单位(MTU)的概念,以及如何防止数据包大小较大的网站丢包。
作者:Richika Jain,Cisco TAC工程师。
先决条件
要求
思科建议您了解以太网点对点协议(PPPoE)。
使用的组件
本文档中的信息基于通用设备。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
配置
MTU是协议在一个实例中可以传输的最大数据长度。例如,以太网接口的MTU大小默认为1500字节,这不包括以太网帧头和帧尾,这意味着接口不能传输大于1500字节的帧。此图显示了以下概念:
如果查看帧内部,您会看到一个20字节的IP报头+ 20字节的TCP报头,即剩余的1460字节,是可以在一个帧中传输的负载。这被标记为TCP MSS。
如果转接路由器上没有执行其他封装,源设备可能使用最大负载长度1460字节,而不存在任何数据包分段/丢弃的潜在风险。这是在源主机和目的主机之间的TCP三次握手阶段协商的。但是,当传输中的路由器执行额外封装时,它会添加额外的标签报头,这最终会增加离开传输路由器的帧的大小。接口的最大MTU取决于硬件平台,但IEEE 802.3标准要求最小MTU为1500字节。
PPPoE需要额外的8个字节,并将以太网MTU截断为1492,如果主机上的有效MTU未更改,则主机和服务器之间的路由器可以终止TCP会话。建议在PPPoE配置中使用此命令IP TCP ADJUST-MSS 1452。
如果源设备创建TCP MSS为1460字节的完整大小数据包,则经过传输的路由器可能会丢弃/分段该数据包。这对我们的网络性能不利,例如您浏览网站时出现问题。因此,为了容纳数据包大小较大的网站,您可以从源设备缩小最大可能的TCP MSS大小(如1452字节)。如果路由器在TCP握手时未向源和目标发出信号,则最佳TCP MSS可能会造成丢弃/分段问题。
当您浏览所有网站时,此问题可能不存在,但可以通过某些网站看到。 T其背后的原因是它为到达它们而创建的数据包大小(取决于介于两者之间的硬件)。 对于将创建更大数据包大小的网站,如果不使用ip tcp adjust-mss命令,则会丢弃任何较大的数据包。
要对浏览某些网站时出现的问题进行故障排除,应在指向LAN接口的接口上配置IP TCP ADJUST-MSS 1452命令。
1.启用
2.配置终端
3.接口类型编号
4. Ip tcp adjust-mss max-segment-size //调整通过路由器的TCP SYN数据包的MSS值。max-segment-size参数是最大数据段大小(以字节为单位)。范围从 500 至 1460。
5. Ip mtu bytes //设置接口上发送的IP数据包的MTU大小(以字节为单位)。
6.结束
验证
使用本部分可确认配置能否正常运行。
步骤1:
检验TCP MSS调整的配置。
interface ethernet1/1
ip address 10.0.0.1 255.0.0.0
ip tcp adjust-mss 1452
duplex half
第二步:
从路由器A Telnet至路由器B。
telnet 10.0.1.2
Trying 10.0.1.2...
TCP: sending SYN, seq 886170752, ack 0
TCP0: Connection to 1.0.1.2:23, advertising MSS 536
tcp0: O CLOSED 1.0.1.2:23 4.0.0.1:11008 seq 886170752
OPTS 4 SYN WIN 4128
第三步:
观察路由器B的调试输出。
tcp0: I LISTEN 4.0.0.1:11008 1.0.1.3:23 seq 886170752
OPTS 4 SYN WIN 4128
TCP0: state was LISTEN -> SYNRCVD [23 -> 4.0.0.1(11008)]
TCP0: Connection to 4.0.0.1:11008, received MSS 1452, MSS is 1452
TCP MSS值调整为配置值1452。
故障排除
目前没有针对此配置的故障排除信息。