Penguin

Differences between version 2 and revision by previous author of MTU.

Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History

Newer page: version 2 Last edited on Sunday, November 24, 2002 7:38:05 pm by zcat(1) Revert
Older page: version 1 Last edited on Saturday, November 23, 2002 1:50:48 pm by PerryLorier Revert
@@ -1,3 +1,15 @@
 [Acronym] for __M__aximum __T__ransmittion __U__nit. 
  
 The largest packet that can be sent over a link. For ethernet and [PPP] this is usually 1500. The minimum [MTU] you should ever use is 576. The maximum [MTU] for [IPv4] is 65536, although I know of no link that can handle packets this large. 
+  
+%%%  
+%%%  
+  
+''If your MTU is very small, you'll be sending more packets than necessary. Since each packet needs a header containing addresses, port numbers, ttl, flags, etc, it's best to send larger packets.''  
+  
+''OTOH if your MTU is very large and has to go through a link with a smaller MTU, it'll normally be broken into smaller packets (fragmented). For tunneling protocols such as PPTP (used by many ADSL modems) the MTU is slightly smaller than 1500 because the tunneling uses a few bytes for itself. If you're sending 1500-byte packets over a 1470-byte link, the second part of every packet is going to get broken into a tiny 30-byte fragment which is really inefficient.''  
+  
+  
+''Linux (and most other recent OS's) use a clever system called 'path-MTU-discovery'; Linux starts any new connection only sending very small packets and gradually makes them bigger. At the same time it sets the 'don't fragment' flag on all the packets. If a link somewhere is using a too-small MTU and wants to fragment them it's not allowed to, so it sends back an ICMP message 'Need to fragment, but don't fragment is set'. When we get this back, we know what's the largest packet we can use on that connection without it getting fragmented, which happens to be the most efficient size..''  
+  
+''The reason I bothered to tell you all this is because some IDIOT admins (particularly BANKS!) ignorantly block all ICMP without fully understanding why ICMP is an important part of IP, and/or without thinking of the consequences. I just wanted to vent that, OK? :-) - zcat ''