Maximum transmission unit
From Wikipedia, the free encyclopedia
The tone or style of this article or section may not be appropriate for Wikipedia. Specific concerns may be found on the talk page. See Wikipedia's guide to writing better articles for suggestions.(December 2007) |
In computer networking, the term Maximum Transmission Unit (MTU) refers to the size (in bytes) of the largest packet or frame that a given layer of a communications protocol can pass onwards. MTU parameters usually appear in association with a communications interface (NIC, serial port, etc.). The MTU may be fixed by standards (as is the case with Ethernet) or decided at connect time (as is usually the case with point-to-point serial links). A higher MTU brings higher bandwidth efficiency. However, large packets can block up a slow interface for some time, increasing the lag for further packets. For example, a 1500 byte packet, the largest allowed by Ethernet at the network layer (and hence most of the Internet), would tie up a 14.4k modem for about one second.
Contents |
[edit] Table of MTUs of common media
Media | Maximum Transmission Unit |
---|---|
Internet Path MTU (RFC 879) | 576 |
Ethernet (RFC 1191) | 1500 |
802.3 (RFC 1191) | 1492 |
802.11[1] | 2272 |
802.5 | 4464 |
FDDI (RFC 1191) | 4500 |
Jumbo Frames | 1500-9000 |
[edit] IP (Internet protocol)
The Internet protocol suite was designed to work over many networking technologies, each of which may have different sized packets. While a host will know the MTU of its own interface and possibly that of its peers (from initial handshakes), it will not initially know what the lowest MTU on a chain of links to any other peers are. Another potential problem is that higher-level protocols may create packets larger than a particular link supports.
To get around this issue, IP allows fragmentation, which refers to dividing the datagram into pieces, each small enough to pass over the single link that is being fragmented for, using the MTU parameter configured for that interface. This fragmentation process takes place at the IP layer (OSI layer 3) and marks packets it fragments as such, so that the IP layer of the destination host knows it should reassemble the packets into the original datagram. This method implies a number of possible drawbacks:
- All fragments of a packet must arrive for the packet to be considered received. If any fragment is dropped, the entire packet must be resent.
- When the MTU of a particular link is less than the size of most or all packets that have to be sent over that link, almost everything has to be fragmented. In certain cases the overhead this causes can be considered unreasonable or unnecessary. For example, various tunneling situations cross the MTU by very little as they add just a header's worth of data. The addition is small, but each packet now has to be sent in two fragments, the second of which carries very little payload. The same amount of payload is being moved, but every intermediate router has to do double the work in terms of header parsing and routing decisions.
- As it is normal to maximize the payload in every fragment, in general as well as when fragmenting, any further fragmentation that turns out to be necessary will increase the overhead even more.
- There is no simple method to discover the MTU of links beyond your direct peers.
[edit] Path MTU discovery
The Internet Protocol defines the "path MTU" of an Internet transmission path as the smallest MTU of any of the IP hops of the "path" between a source and destination. Put another way, the path MTU is the largest packet size that traverse this path without suffering fragmentation.
RFC 1191 describes "Path MTU discovery", a technique for determining the path MTU between two IP hosts. It works by setting the DF (Don't Fragment) option in the IP headers of outgoing packets. Any device along the path whose MTU is smaller than the packet will drop such packets and send back an ICMP "Destination Unreachable (Datagram Too Big)" message containing its MTU, allowing the source host to reduce its assumed path MTU appropriately. The process repeats until the MTU is small enough to traverse the entire path without fragmentation.
Unfortunately, increasing numbers of networks drop ICMP traffic (e.g. to prevent denial-of-service attacks), which prevents path MTU discovery from working. One often detects such blocking in the cases where a connection works for low-volume data but hangs as soon as a host sends a large block of data at a time (for example, with IRC a client might see up to the nospoof ping but get no response after that, as the large set of welcome messages freezes up the connection). Also, in an IP network, the path from the source address to the destination address often gets modified dynamically, in response to various events (load-balancing, congestion, outages, etc.) - this could result in the path MTU changing (sometimes repeatedly) during a transmission, which may introduce further packet drops before the host finds the new safe MTU.
Most Ethernet LANs use an MTU of 1500 bytes but more modern LANs can use Jumbo frames. But protocols like PPPoE will reduce this, causing path MTU discovery to come into effect with the possible effect of making some sites behind badly-configured firewalls unreachable. One can possibly work around this, depending on which part of the network one controls; for example one can change the MSS (maximum segment size) in the initial packet that sets up the TCP connection at one's firewall.
This problem has surfaced more frequently since the introduction of Windows Vista which introduces the 'Next Generation TCP/IP Stack'. This implements "Receive Window Auto-Tuning that continually determines the optimal receive window size by measuring the bandwidth-delay product and the application retrieve rate, and adjusts the maximum receive window size based on changing network conditions".[2] This has been seen to fail in conjunction with older routers and firewalls that appeared to work with other operating systems. This problem is often seen in ADSL routers and can often be rectified by a firmware update.
[edit] ATM backbones
Some providers, particularly those with a telephony background, use the ATM (Asynchronous Transfer Mode) protocol on their internal backbone network. That protocol uses 53 byte packets, 5 bytes of which constitute a header, leaving 48 bytes of payload for each packet. A maximum MTU for PPPoE/DSL connections is 1492, per RFC 2516: 8 bytes being PPPoE header, leaving enough room for a 1488 byte payload, or 31 full ATM cells.
[edit] Disruption
Jabber is the transmission of a packet on a computer network that is larger than the network's MTU. Such transmissions hog bandwidth and congest the network. Many network switches have a built-in capability to detect when a device is jabbering and block it until it resumes proper operation.[3]
[edit] Notes
- ^ Structure of the IEEE 802.11 MAC Frames - Wireless,Wlan,wifi,Configuration,and,Optimization Tips
- ^ "The Cable Guy" (November 2005). Performance Enhancements in the Next Generation TCP/IP Stack. Microsoft Corporation.
- ^ 3Com SuperStack Switch Management Guide
[edit] References
- RFC 1191
- Marc Slemko (January 18, 1998). Path MTU Discovery and Filtering ICMP. Retrieved on 2007-09-02.
[edit] See also
[edit] External links
- Tweaking your MTU / RWin for Orange Broadband Users
- A wealth of information on MTU and RWin
- How to set the TCP MSS value using iptables
- Discovering of MTU value via ping and setting it in Microsoft Windows
- DrTCP – a utility for optimizing MTU under Microsoft Windows
- mturoute – a console utility for debugging mtu problems
- MSS Initiative