Terminology
MTU: In computer networking, the maximum transmission unit (MTU) of a communications protocol of a layer is the size (in bytes) of the largest protocol data unit that the layer can pass onwards. MTU parameters usually appear in association with a communications interface (NIC, serial port, etc.). Standards (Ethernet, for example) can fix the size of an MTU; or systems (such as point-to-point serial links) may decide MTU at connect time.
PPPoE: The Point-to-Point Protocol over Ethernet (PPPoE) is a network protocol for encapsulating PPP frames inside Ethernet frames. It appeared shortly after the year 2000, in the context of the boom of the DSL as the solution for tunneling packets over the DSL connection to the ISP’s IP network, and from there to the rest of the Internet. A 2005 networking book noted that “Most DSL providers use PPPoE, which provides authentication, encryption, and compression.”[1] Typical use of PPPoE involves leveraging the PPP facilities for authenticating the user with a username and password, predominately via the PAP protocol and less often via CHAP.[2]
Failure Phenomenon
When a user requests a web site in PPPoE dialin connectivity, some pages do not fully load.
Troubleshooting MTU Size in PPPoE Dialin Connectivity
Let’s launch the Unicorn and start capture packets. then visit a web in browse, e.g. www.ids-sax2.com. Switch to conversation tab and find the TCP conversation to be generated just a moment ago. Next, double-click the conversation to show detail, see the figure below:
Figure 1: Conversation detail
From in the figure above, we found that the conversation been established successfully. The server responded the client SYN request in 355ms, the time is normal. then the client sent many same HTTP Get requests and did not received any response, we known only two reasons can lead to the result, the request packets are dropped or the response packets are dropped. The web server was not busy and the network was not congested, What causes this malfunction? Through in-depth analysis, we think that the PPPoE gateway MTU size is incorrect and set the size to 1400 bytes, the fault is resolved.
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.
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.