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, NAT32 assumes that packets have a maximum data field 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 Windows MTU
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