本文档解释在实施以太网PPP(PPPoE)拨号时为什么必须更改最大传输单位(MTU)大小。它还解释了用于进行更改的过程。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
当用户请求网站时,PC与托管网站的Web服务器之间会进行客户端/服务器协商。协商期间,将协商最大MTU大小。由于PC协商且其默认MTU大小为1500字节(Windows 3x、9x、NT、ME等),因此Web服务器协商MTU大小为1500字节。因此,无论您的路由器MTU大小配置为多少,Web服务器所发送的数据包最大字节数仍为1500。
某些页面未完全加载的原因是,如果PC MTU配置错误,并且向路由器发送大于1492字节的数据包,则路由器会分段IP数据包。此分段不会在通过通用接入集中器(UAC)(Cisco 6400或7200)的返回路径上发生。 UAC将丢弃接收到的超过1490字节的数据包,同时生成互联网控制消息协议(ICMP)消息并发送给发送超过1490字节数据包的网络服务器。ICMP通知该Web服务器其所发送了一个过大的数据包,需要重发一个小一点MTU值的数据包。
注意: 有关MTU大小为1492字节的原因的信息,请参阅Cisco 6400的PPPoE基线架构白皮书。
出现此问题的原因是许多Web服务器阻止ICMP消息,这导致服务器持续发送1500字节的数据包。这些数据包被丢弃,因此请求的网站不会加载。如果Web服务器配置正确且ICMP消息未被阻止,服务器会调整其MTU并重新传输,直到页面完全加载。
Web服务器开始发送的数据包的最大值少于1492字节时,就会出现加载部分网页的情况。但是,随后会发送超过此最大值的数据包。服务器继续重新传输这个过大的数据包,导致部分加载页面和“等待回复……” 的下界。
您可以通过以下三种方法之一来更改MTU大小:
注意: 只有在Cisco DSL路由器上运行网络地址转换(NAT)或端口地址转换(PAT)时,这些配置命令才可用。
Cisco IOS®软件版本12.2(2)XH中的ip adjust-mss命令已更改为ip tcp adjust-mss <mss value>。此更改记录在Cisco IOS版本12.2(2)XH的Cisco 800系列路由器和Cisco 820系列路由器的版本说明中。
interface ethernet0 no shut ip address <ip address> <subnet mask> ip adjust-mss 1452 !--- The TCP MSS command requires an MSS of 1452, and not 1492. ip nat inside no ip directed-broadcast
Dr. TCP实用程序只需运行一次。注册表更改在完成此过程后保存。
导航至Dr. TCP实用程 序。
重新加载页面,以确保您拥有当前副本。
下载最新版Dr.TCP程序(DRTCPnnn.exe);
运行工具。
从菜单中选择你的以太网适配器;
在MTU字段键入1492;
点击另外一个字段,不要键入任何字符;
单击Apply以保存更改,然后单击Exit。
重启PC。
使用此过程可通过修改注册表项来更改MTU大小。
向包含PC的以太网适配器的注册表项添加“MaxMTU”字符串值。
将"MaxMTU"字符串的值设为1492
重启PC。
如果使用Dr TCP或在Cisco DSL路由器上更改MTU大小,但仍无法浏览某些网站,请再次调整MTU大小。在Dr. TCP中把MTU值调整到1452,或者在你的Cisco DSL路由器上把MSS值调整到1412。如果这些数值仍然过大,则继续减小MTU的大小直到调整到所允许的MTU的标准值,在Cisco DSL路由器上,使用Dr. TCP的标准值为1400,使用MSS的标准值为1360。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
26-Feb-2008 |
初始版本 |