Dial-Up and Home Networking
Troubleshooting Reference
Last Update 24 May, 2008
Maintained by Lynn Larrow

Note: If you are looking for a basic TCP/IP Troubleshooting Guide for Windows, start with the Microsoft first:  How to troubleshoot TCP/IP connectivity with Windows XP or How to Troubleshoot TCP/IP Connectivity with Windows 2000 or Windows NT.

1.9 What are  the Optimum Windoze values for MTU and MSS?

There is no free lunch or magic bullet to increase your throughput.  Be wary of quick fixes. The best way to determine fact from fiction is measure your throughput before and  after you make any changes.  Also, double check the references and evidence provided by the FAQs, I have a few listed on my  Modem, Networking and Communications Links.  

Acronym Full Name Sample Analog
Modem Value
<128 Kbps
Sample DSL,
Cable Modem
Values
MTU

Maximum Transmission Unit

576
(A)
1500
(B)
MSS

Maximum Segment Size (MTU - 40 bytes
for IP and TCP headers)

536 1460
"RWIN"

TCP Receive Window (Buffer)
or DefaultRcvWindow

8192
(C)
32768
(D)

The table above shows common used values for different TCP/IP connection types.  (A)  Microsoft Automatic Mode setting Description of the Internet Protocol Packet Size Setting for Windows 98/ME for connections < 128 Kbps (B) Automatic Mode setting for connection speeds > 128 Kbps.   (C) default buffer size or DefaultRcvWindow in Windows 98/ME and (D) buffer size recommended by the tireless John Navas, see Navas Cable Modem/DSL Tuning Guide for more details.   If you really want a good low level description of how this works under the covers, see Solaris - Tuning Your TCP/IP Stack.  Of course serious students of TCP/IP, need to purchase Richard Steven's (TCP/IP Illustrated: Volume 1, 1994).

Question: What is the optimum MTU value?

Answer: There  is no universal optimum MTU value. Performance will vary depending on the purpose of your TCP/IP application.

However, there are RFC specifications that specify default  MTU values for standard protocols. These default values are where you should begin your quest for an "optimum" setting and vary depending on the protocol implementation you are using. Below are some sample RFC's for MTU.

MTU Protocol RFC
576 Default 879
1500 PPP default 1134
296 PPP (low relay) 1144
1500 Ethernet 895
1006 SLIP 1055
1492 PPPOE 2516

The default MTU specification was made in 1983 to help vendor implementations of devices like routers to insure interoperability. Most modern router implementations now support MTUs of 1500, but there are some older, e.g., international routers out there that do not support 1500. In fact, Richard Steven's (TCP/IP Illustrated: Volume 1, 1994, p 154) found a transatlantic router with an MTU set at 572!

Question: Do you know any good resources on TCP Receive Window or Buffer Size?

Answer:    If you are looking for a good technical introduction to this topic, check out Solaris - Tuning Your TCP/IP Stack or better yet this Alternative Site pointed out by Tim Kelly CEO, President, Redneck King of Funk Solaris - Tuning Your TCP/IP Stack Alternative.  This FAQ references RFC1326.   For detailed information on how to change your buffer size for DSL/Cable Modems, see the Navas Cable Modem/DSL Tuning Guide for more details.

IP Fragmentation.

The main reason one would be concerned with changing a default MTU value is the problem of IP fragmentation. IP fragmentation occurs when you pass through a router with an MTU less than the MTU you are using. If your TCP/IP stack is set to a MTU of 1500 and you hit a router with a MTU set to 576. The router will fragment your packets down to 576. When you finally reach your destination, those datagrams will have to be re-assembled and this will slow down your throughput, e.g, download time.  You can check on fragmentation and other errors by using the netstat -s (use netstat -s | more to stop the scroll and netstat -x to see the options available to you) command and checking the IP statistics.   Note the Datagram is the MTU. 

IP Statistics

Packets Received                   = 152113
Received Header Errors             = 0
Received Address Errors            = 0
Datagrams Forwarded                = 0
Unknown Protocols Received         = 0
Received Packets Discarded         = 0
Received Packets Delivered         = 152113
Output Requests                    = 122510
Routing Discards                   = 0
Discarded Output Packets           = 0
Output Packet No Route             = 0
Reassembly Required                = 0
Reassembly Successful              = 0
Reassembly Failures                = 0
Datagrams Successfully Fragmented  = 0
Datagrams Failing Fragmentation    = 0
Fragments Created                  = 0

 

Segments Retransmitted.

Another problem to check out is whether or not you are having excessive retransmissions.  The lower your retransmit rate (Segments Sent/Segments Retransmitted) the better.  Sun has an interesting FAQ on this subject Tips for TCP/IP monitoring and tuning to make your network sing.  If you have a retransmit rate in Windoze, check Microsoft there are some patches can fix this type of problem. In this example (using netstat -s), my rate was about 1.5%.  Not bad for Napster ;-)  Note the Segment is the MSS.

TCP Statistics

Active Opens                = 476
Passive Opens               = 22
Failed Connection Attempts  = 27
Reset Connections           = 219
Current Connections         = 10
Segments Received           = 149817
Segments Sent               = 117832
Segments Retransmitted      = 1820

Rules of Thumb for changing your MTU values for general Internet usage.

Grain of Salt: I went through all this only to find out that the default MTU of 1500 for Windows NT 4.0 worked better for me.  In fact, I now have a DSL connection and I haven't change any of the defaults yet.  I have a good connection close to the CO.

In Windows 98 with Automatic Mode, Microsoft sets the MTU size of 576 for with connection speeds under 128K.   Windows 95 does not have Automatic mode.    So if you want to change this setting, you can do it yourself  See Q158474 - Windows TCP/IP Registry Entries or use a program like DR TCP  for modifying Windows 95 MaxMTU setting.

Windows 98/ME has an Automatic mode setting that will set the default MTU to the Internet Standard Maximum Size (RFC879) of 576 for PPP rates below 128 kbs Description of the Internet Protocol Packet Size Setting. .

If you are using Windows 95, the default MTU is 1500. Unless you have some overriding need (e.g., excessive fragmentation, ISP requirement, Internet Mail/News Hangs), I would not recommend the average user to try and modify their registry to change the MTU or other PMTUDiscovery (See RFC1144) values. If you are bold, here are the instructions from Microsoft.

For Diagnosing Windows NT fragmentation problems and other MTU related information, here is an excellent Microsoft reference, which contains several related links: Diagnoses and Treatment of Black Hole Routers.

More MTU defaults:

Here is (according to Microsoft) the Default MTU Size for Different Network Topology.

A more complete MTU listing is available in RFC1191.