Tiplord Windows 95 &Windows 98 Tips


Bookmark me Annoyances Boot Disks Customizing Device Manager
FAQ Hardware Networking Setup Switches Shortcuts
Software Help Updates Tip Ring Home

TCP/IP parameter optimization


The following is a compilation of various information I found on the Internet. See below for further reading.

By default, Windows 95 TCP/IP parameters are optimized for communication over a Local Area Network (LAN). When using the Internet via a dial-up connection, in many cases data throughput can be improved by changing some parameters, in particular MaxMTU and RWIN:

MTU = Maximum Transmission Unit, the maximum packet size that can be transferred over a network without fragmentation. The Internet "standard" for MTU is 576, however most ISP's use MTU's larger than this. The Windows 95 default setting for MTU is 1500, which is the LAN standard. If a packet is sent across a network that has an MTU smaller than the size of the packet, fragmentation will occur. This will reduce data throughput, as fragments need to be reassembled. If you connect to a remote site there is a reasonable chance that your data go through a router with an MTU of 576.

MTU auto-discovery should over-ride the Windows default value of 1500, but somehow this does not seem to work in Windows 95 dial-up networking. This bug may be fixed in the Winsock 2 update however.

MSS = Maximum Segment Size of TCP data. MSS = MTU - 40. The 40 bytes is the size of header and trailer information of one packet.

RWIN = Reveive Window, the size of the buffer that is filled before the received data is acknowledged. Usually RWIN is set to 4 times MSS.

More information about TCP/IP registry parameters can be found in the Windows 95 Resource Kit Help File, that is included with the Windows 95 CD-ROM. Look in the Networking chapter, section Network Technical Discussion.

If you do not have the Winsock 2 update, you can avoid packet fragmentation by setting MaxMTU to 576. The preferred value for RWIN is 2144, being 4 times MSS. You can change TCP/IP parameters manually by editing the Windows 95 registry, but it is a lot easier to use a freeware utility called MTUSpeed to perform this task:

Run MTU-Speed, and select the MTU Settings tab. Enable RWIN, and set RWIN to 4 times MSS via the RWIN track bar. Now click "optimum settings", click "update registry" and exit.

If you have the Winsock 2 update installed, some sources claim that no speed is gained by setting MaxMTU. You can still use the MTUSpeed utility to select the best settings for this case, as suggested by Malcolm Reeves:

Run MTU-Speed. Select the registry options tab and click "optimum settings". Then set MaxMTU, RWIN, MTUAutoDiscover and MTUBlackHoleDetect to remove (i.e. let Windows 95 assume its defaults). Click "update registry" and exit.

How to find a suitable MaxMTU:

For most people setting MaxMTU to 576 will work just fine. However on good connections network packet header overhead can be reduced by using a larger MTU, which can give an improvement of a few percents in throughput. MTUSpeed Pro version 4 has a utility built in to discover the optimal MTU of a route using the PING program of Windows 95 with the Don't Fragment flag, as explained on the Tips Page of Malcolm Reeves. You can simply enter the name of a server and a test value for MTU. Now click "Test MTU Value". If the MTU test value is larger than the MaxMTU of the route to the server, PING will respond with this message: "Packet needs to be fragmented but DF set."

By trying different values you can work out what MTU is being used on the test route. Don't forget to disable MaxMTU or set MaxMTU to 1500 before using this method, or else it could be that your MaxMTU setting is the limiting factor!