Troubleshooting MTU Size in PPPoE Dialin Connectivity
Why the MTU Size Must Be Changed ?
When a user requests a web site, a client/server negotiation occurs between the PC and the web server that hosts the web site. During the negotiation, a maximum MTU size is negotiated. Since the PC negotiates and its default MTU size is 1500 bytes (Windows 3x, 9x, NT, ME, and so forth), the web server negotiates an MTU size of 1500 bytes. Therefore, regardless of the MTU size you configure on the router, the web server still sends packets up to 1500 bytes in size.
The reason why some pages do not fully load is that the router fragments IP packets if the PC MTU is misconfigured and a packet greater than 1492 bytes is sent to the router. This fragmentation does not occur on the return path through the universal access concentrator (UAC) (Cisco 6400 or 7200). When the UAC receives a packet greater than 1492 bytes, the packet is dropped, and the UAC generates and sends an Internet Control Message Protocol (ICMP) message to the web server that sent the oversized packet. The ICMP informs the web server that it sent an oversized packet and that it needs to resend the packet with a smaller MTU.
Note: For information about why the MTU size is 1492 bytes, refer to the PPPoE Baseline Architecture for the Cisco 6400 white paper.
The problem occurs because many web servers block ICMP messages, which causes the server to continuously send 1500-byte packets. These packets are dropped, and as a result, the requested web site does not load. If the web server is properly configured and ICMP messages are not blocked, the server adjusts its MTU and retransmits until the page loads completely.
A partially loaded page occurs when the initial data packets sent from the web server are under the 1492 byte maximum. However, a packet is then sent that exceeds this maximum. The server continues to retransmit this oversized packet that results in a partially loaded page and a "waiting for reply..." message in the status bar.
How to Change the MTU Size
You can change the MTU size with the help of one of these three methods:
Note: These configuration commands work only if you run Network Address Translation (NAT) or Port Address Translation (PAT) on the Cisco DSL router.
The ip adjust-mss command in Cisco IOS® Software Release 12.2(2)XH has changed to ip tcp adjust-mss. This change is documented in the Release Notes for the Cisco 800 Series Routers and Cisco 820 Series Routers for Cisco IOS Release 12.2(2)XH.
Download the Dr. TCP Utility
The Dr. TCP utility needs to be run only once. The registry change is saved at the completion of this procedure.
When a user requests a web site, a client/server negotiation occurs between the PC and the web server that hosts the web site. During the negotiation, a maximum MTU size is negotiated. Since the PC negotiates and its default MTU size is 1500 bytes (Windows 3x, 9x, NT, ME, and so forth), the web server negotiates an MTU size of 1500 bytes. Therefore, regardless of the MTU size you configure on the router, the web server still sends packets up to 1500 bytes in size.
The reason why some pages do not fully load is that the router fragments IP packets if the PC MTU is misconfigured and a packet greater than 1492 bytes is sent to the router. This fragmentation does not occur on the return path through the universal access concentrator (UAC) (Cisco 6400 or 7200). When the UAC receives a packet greater than 1492 bytes, the packet is dropped, and the UAC generates and sends an Internet Control Message Protocol (ICMP) message to the web server that sent the oversized packet. The ICMP informs the web server that it sent an oversized packet and that it needs to resend the packet with a smaller MTU.
Note: For information about why the MTU size is 1492 bytes, refer to the PPPoE Baseline Architecture for the Cisco 6400 white paper.
The problem occurs because many web servers block ICMP messages, which causes the server to continuously send 1500-byte packets. These packets are dropped, and as a result, the requested web site does not load. If the web server is properly configured and ICMP messages are not blocked, the server adjusts its MTU and retransmits until the page loads completely.
A partially loaded page occurs when the initial data packets sent from the web server are under the 1492 byte maximum. However, a packet is then sent that exceeds this maximum. The server continues to retransmit this oversized packet that results in a partially loaded page and a "waiting for reply..." message in the status bar.
How to Change the MTU Size
You can change the MTU size with the help of one of these three methods:
- Adjust the PPPoE MTU size on the Cisco DSL router.
- Download the Dr. TCP utility that automatically modifies the MTU setting.
- Add and then modify a "MaxMTU" string-value to the registry key that contains the PC Ethernet adapter.
Note: These configuration commands work only if you run Network Address Translation (NAT) or Port Address Translation (PAT) on the Cisco DSL router.
The ip adjust-mss command in Cisco IOS® Software Release 12.2(2)XH has changed to ip tcp adjust-mss
interface ethernet0
no shut
ip address
ip adjust-mss 1452 !--- The TCP MSS command requires an MSS of 1452, and not 1492.
ip nat inside
no ip directed-broadcast
Download the Dr. TCP Utility
The Dr. TCP utility needs to be run only once. The registry change is saved at the completion of this procedure.
- Navigate to the Dr. TCP utility.
- Reload the page in order to ensure you have the current copy.
- Download the latest version of the utility (DRTCPnnn.exe).
- Run the utility.
- From the menu choose your Ethernet adapter.
- In the MTU field, type 1492.
- Click in another field, but do not type anything.
- Click Apply in order to save the change, and then click Exit.
- Reboot the PC.
Modify the Registry Key
Use this procedure in order to change the MTU size by modification of the registry key.
- Add a "MaxMTU" string-value to the registry key that contains the Ethernet adapter of your PC.
- Set the "MaxMTU" value-data entry to 1492.
- Reboot the PC.
If you change the MTU size with Dr. TCP or on the Cisco DSL router and you are still not able to browse certain web sites, adjust the MTU size again. Change the MTU size to 1452 in Dr. TCP, or change the MSS adjust value on the Cisco DSL router to 1412. If these sizes are too large, continue to lower the MTU sizes until you reach a baseline of 1400 for Dr. TCP or 1360 for MSS adjust on the Cisco DSL router.
Comments