Reference Manual

HOW TO resolve MTU problems:

The Maximum Transfer Unit (MTU) is the maximum size of a packet sent to a Network Adapter by a Windows TCP/IP protocol stack. The MTU is normally determined automatically and need not be explicitly configured by the user. However, the NDIS3PKT driver assumes that packets have a maximum length of 1500 bytes, so if Windows ever defaults to a larger MTU, a special registry variable must be set to limit the MTU to a value <= 1500 bytes.

Below is a list of default MTU sizes for different media:

  16 Mbit/Sec Token Ring        17914 bytes
   4 Mbits/Sec Token Ring        4464 bytes
   FDDI                          4352 bytes
   Ethernet                      1500 bytes
   IEEE 802.3/802.2              1492 bytes
   X.25                           576 bytes

Also note that PPPoE implementations fail when an MTU of 1500 bytes is used. In such cases, the MTU of all machines behind NAT32 must be set to a smaller value.

Setting the MTU under Windows 95/98:

  1. Determine the NDIS3 "name" of the Ethernet Adapter. This is done by opening the following Key using regedit.exe:    HKLM\System\CurrentControlSet\Services\Class\NetTrans\

  2.  
  3. You will find several additional subkeys there, with "names" like 0000, 0001 etc.
  4. Look for the key which has an IPAddress value equal to the IP Address of your Ethernet Adapter.
  5. To that key, add a STRING value called MaxMTU and set it to 1492 (or whatever value you require).
Setting the MTU under Windows NT:
  1. Open the following key with regedit.exe: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

  2. \adapter name\Parameters\Tcpip
  3. The "adapter name" will be very similar to the descriptive name of your adapter, so you should find it quite easily.
  4. Add a DWORD value called MTU and set it to 1492 (or whatever value you require).
Reboot Windows to bring the changes into effect.

NAT32 Path MTU Discovery:

Later builds of NAT32 support the ICMP Path MTU Discovery Protocol. All Windows machines send IP packets to a gateway with the "Don't Fragment" bit set in the IP Header. When NAT32 receives a packet for the Internet which is longer than the MTU for the Internet interface, it discards that packet and sends an ICMP packet indicating the MTU size back to the original source of the discarded packet. Windows responds to this ICMP packet by restricting all future transmissions to the indicated MTU size.
Users therefore no longer need to modify registry settings manually.

The setm command can be used to set the NAT32 MTU for any given interface.

SEE ALSO

pppoe, setm