On 12-okt-2007, at 2:01, Bob Hinden wrote:
Minimum MTU for IPv4 is only 68 bytes; minimum EMTU_R is the one that is 576 - right?
I forget the exact terminology, but Brian is talking about the biggest packet one can send and be guaranteed it will not be fragmented. The is 576 bytes for IPv4 and 1280 bytes for IPv6.
I think of it as the biggest smallest packet one can send :-)
Please note that the former and the latter are not the same thing. In IPv4, fragmentation is always an option unless you set the DF bit. That doesn't mean it's a good idea to set the DF bit because fragmentation is less than desireable, because the alternative is worse: the packet is dropped. You ONLY get to set the DF bit if you have a mechanism in place that can recover from the drops and resend smaller packets. As far as I know, this is universally not the case for IPv4 UDP applications so those should NEVER set the DF bit.
68 is not the minimum MTU for IPv4, it's a throw-away observation in RFC 791 that having an MTU even smaller than 68 is unworkable. In practice, the smallest MTU that I've seen in IPv4 is 296 (see work by Van Jacobsen) and for a long time, 576 was the largest univesally supported packet size on the IPv4 internet. But this was so long ago that it doesn't mean much anymore today. There are basically two types of UDP protocols: the old / low volume ones such as the DNS, where a 512 / 576 limit is explicitly or implicitly understood, and the newer / higher volume ones such as A/V streaming that will usually work just fine at sizes between 1300 and 1400 bytes.