republican-creole
Search:  

 
 
   IntroFAQTweak TestSpeed TestsLine QualityLine MonitorWhoisDoctor Ping»»






how-to block ads



Information on 'Tweaking' your TCP stack


Jump to topic :

MTU

The MTU setting controls the maximum ethernet packet size your PC will send (you did know the internet works in packets, didnt you?). Why a limit? because although larger packets can be constructed and sent, Your ISP and Internet backbone routers and equipment will chop up (fragment) any larger than their limit, then these parts are re-assembled by the target equipment before reading. This fragmentation, and reassembly is not optimal.

MTU and Windows and Defaults

Unless otherwise set, windows defaults MTU to 1500, or a lower value of 576 for external networks. 1500 is ok unless you are running PPPoE, or want to use IPSec (Secure VPNs), or both, (it is then too big). 576 is not efficient for the broadband/internet, (it is too small).

Finding the largest MTU, by EXPERIMENT

If your MTU is too low already, (maybe 576), the following method will not be able to detect whether you can switch to an optimal size..... So first follow "CHANGING MTU for PPPoE" to reset MTU to 1500, reboot, then come back to this!
The best value for MTU is that value just before your packets get fragmented. How do you find out that? by using ping! Open an MSDOS command prompt, and just use ping -l 1472 -f www.dslreports.com, (that is a dash-letter-l-for-lambda not a dash-number-one). Reduce 1472 by 10 until you no longer get the "packet needs to be fragmented" error message, then increase by 1 until you find the max command line number for ping.
Add 28 more to this (since you specified ping packet data size, not including a packet header of 28 bytes) AND THIS IS YOUR MaxMTU.
The MaxMTU you get using this method might very well be 1500, in which case, everything is pretty boring, and your MaxMTU must already be set ok, otherwise you could not get ping working up to 1472.
For PPPoE, your MaxMTU should be no more than 1492, to allow space for the 8 byte PPPoE "wrapper", but again, experiment to find the optimal value.. For PPPoE, the stakes are high: if you get MTU wrong, you may not just be sub-optimal, things like UPLOADING, or web pages, may stall, or not work at all!

(TCP, IP, MTU and MSS magic numbers)
1500The biggest sized IP packet that can normally traverse the internet without getting fragmented. Typical MTU for non PPPoE, non VPN connections.
1492The maximum MTU recommended for internet PPPoE implementations
1472The maximum ping data payload before fragmentation errors are received on non-PPPoE non VPN connections
1460TCP Data size (MSS) when MTU is 1500 and not using PPPoE
1464The maximum ping data payload before fragmentation errors are received when using a PPPoE connected machine
1452TCP Data size (MSS) when MTU is 1492 and using PPPoE
576Typically recommended as the MTU for dialup type applications .. leaving 536 bytes of TCP data.
48The sum of IP, TCP, and PPPoE headers
40The sum of IP, and TCP headers
28The sum of IP, ICMP headers

Windows 98/98SE (or 95 with DUN 1.3) - CHANGING MTU with PPPoE (WinPoet/Enternet etc)

The windows 98 dialup networking (DUN) 1.3 MTU super-parameter is called IPMTU.

1. Check your dial-up adaptor (used by PPPoE) if you have one:
  • Control panel » Network settings » Dial-Up Adaptor
  • (may not be present) Advanced » IP Packet Size.
  • (if possible) set IP Packet Size to Automatic.
2. Check for DUN MTU settings is the properties of "PPP over Ethernet protocol -> (network card)".
  • Control panel » Network settings » PPP over ethernet protocol -> (network card)
  • (may not be present) General » Override maximum transfer unit
  • (if possible) Uncheck this option
3. MTU in the registry
To find and set MTU via the registry use the Registry101 topic above, to learn how to search your registry for keys. Search for a key called MaxMTU, and a key called IPMTU.

Depending on past tweaks applied, whether or not you have the latest Dial Up Networking installed, MaxMTU may exist in your registry in none, one, some or all of the keys:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000 ... 00nn
If you can find MaxMTU keys here, set them to what you wish MTU to be.

Click on down through:
    HKEY_LOCAL_MACHINE\
    System\
    CurrentControlSet\
    Services\
    Class\
    Net
Now you have a choice. Check in each subkey, to find the one that is your active Dial-up adaptor entry and click into that.
    Click on down .. Ndi\params\IPMTU\enum
Now you have the IPMTU settings exposed.
In the right hand part of the registry window, right-click Automatic, and select 'Delete' from the popup menu.
Now create a new registry key, type of String, and name it your MTU value! (that's right : its name is a number, and is your MaxMTU).
Set the VALUE of this string key (for example, 1492), to "Automatic". (yes, this sounds back to front, but trust me on this).
Quit Regedit.
Reboot.
Now you have MaxMTU set (hopefully) perfectly and correctly.

Windows 98/98SE (or 95 with DUN 1.3) - CHANGING MTU (DHCP or Static IP)

For those without PPPoE:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NdisWan\Parameters\IPMTU can be changed (or for VPNs, change TunnelMTU).

Windows 95 without DUN 1.3 - Fixing MTU for PPPoE

The same instructions apply as above, (excepting anything to do with IPMTU). Find MaxMTU and edit it to your taste. Create the MaxMTU key if necessary in:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000 ... 00nn

Windows NT without PPPoE

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters
DWORD MTU
Note you can also create or modify DWORD keys TCPRecvSegmentSize and TCPSendSegmentSize to set MSS to different values, (less than or equal to 40 bytes less than the MTU).

Win2k (with or without PPPoE)

Windows 2K uses a GUID for each component. So you must look inHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcipi\Parameters\interface\(some hex number)MTU (a DWORD) must be modified or created within the (some hex number) belonging to your ethernet adaptor card.Microsoft refers to this method for modifying MTU in a knowledge base article about PPPoE, implying that there is no special MTU treatment when PPPoE (and therefore Dial Up Networking) is installed on a Win2k machine.

MTU and other OS

For Linux, it is a matter of using the ifconfig command (read the man page for ifconfig).
For Macintosh, your PPPoE software (MacPOET) will set the MTU correctly.




Friday, 03-Jul 20:53:40 Terms of Use | Privacy Policy | Hosting by www.nac.net - DSL,Hosting & Co-lo | feedback | contact
over 9.5 years online! © 1999-2009 dslreports.com.