本文档说明在实施PPP over Ethernet (PPPoE)拨入时必须更改最大传输单元(MTU)大小的原因。它还说明了用于进行更改的过程。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
当用户请求网站时,PC与托管网站的Web服务器之间会发生客户端/服务器协商。在协商期间,会协商最大MTU大小。由于PC会进行协商,并且其默认MTU大小为1500字节(Windows 3x、9x、NT、ME等),因此Web服务器会协商1500字节的MTU大小。因此,无论您的路由器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字节时,就会出现加载部分网页的情况。但是,随后会发送超过此最大值的数据包。服务器继续重新传输此过大数据包,导致页面部分加载和状态栏中出现“waiting for reply...”消息。
您可以使用以下三种方法之一更改MTU大小:
注意:仅当在思科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或在思科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 |
初始版本 |