Path MTU
The Path MTU is the
Maximum Transmission Unit (MTU) supported by a network path. It is the minimum of the MTUs of the links (segments) that make up the path. Larger Path MTUs generally allow for more efficient data transfers, because source and destination hosts, as well as the switching devices (routers) along the network path have to process fewer packets. However, it should be noted that modern high-speed network adapters have mechanisms such as
LSO (Large Send Offload) and
Interrupt Coalescence that diminish the influence of MTUs on performance. Furthermore, routers are typically dimensioned to sustain very high packet loads (so that they can resist denial-of-service attacks) so the packet rates caused by high-speed transfers is not normally an issue for today's high-speed networks.
The prevalent Path MTU on the Internet is now 1500 bytes, the Ethernet MTU. There are some initiatives to support larger MTUs (
JumboMTU) in networks, in particular on research networks. But their usability is hampered by last-mile issues and lack of robustness of RFC 1191 Path MTU Discovery.
Path MTU Discovery Mechanisms
Traditional (RFC1191) Path MTU Discovery
RFC 1191 describes a method for a sender to detect the Path MTU to a given receiver. (
RFC 1981 describes the equivalent for IPv6.) This method is widely implemented, but is not robust in today's Internet because it relies on ICMP packets sent by routers along the path. Such packets are often suppressed either at the router that should generate them (to protect its resources) or on the way back to the source, because of firewalls and other packet filters or rate limitations. These problems are described in
RFC2923.
Packetization Layer Path MTU Discovery (PLPMTUD, RFC 4821)
An IETF Working Group (
pmtud) was chartered to define a new mechanism for Path MTU Discovery to solve these issues. This process resulted in RFC 4821,
Packetization Layer Path MTU Discovery, which was published in March 2007. An implementation of the new scheme for the Linux kernel was integrated into version 2.6.17. A user-space implementation over
UDP is included in the
VFER bulk transfer tool.
References
- RFC 4821, Packetization Layer Path MTU Discovery, M. Mathis, J. Heffner, March 2007.
- RFC 1191, Path MTU discovery, Mogul, J. and S. Deering, November 1990.
- RFC 1981, Path MTU Discovery for IP version 6, McCann, J., Deering, S., and J. Mogul, August 1996.
- RFC 2923, TCP Problems with Path MTU Discovery, K. Lahey, September 2000
- RFC 3128, Protection Against a Variant of the Tiny Fragment Attack (RFC 1858), Miller, I., June 2001.
- RFC 4459, MTU and Fragmentation Issues with In-the-Network Tunneling, P. Savola, February 2006.
- Measuring the Evolution of Transport Protocols in the Internet, A. Medina, M. Allman, and S. Floyd, April 2005.
- PMTU (Path MTU) Discovery - Some servers are unusable for many internet users, an article about problems with Path MTU Discovery and their effects.
- Practical hints from Cisco for working around PMTUD issues, for Windows, Solaris, and other systems
- IP Fragmentation and PMTUD, Cisco White Paper
Implementations
- for Linux 2.6 - integrated in mainstream kernel as of 2.6.17. However, it is disabled by default (see net.ipv4.tcp_mtu_probing sysctl)
- for NetBSD
--
HankNussbacher - 03 Jul 2005
--
SimonLeinen - 19 Jul 2006