Advanced Windows XP/9x Tweaking2001-03-31 (updated: 2021-04-19) by Philip
Tags: UDP, MTU, TCP Window, BDP
This page is provided as a supplement of our Registry Tweaks articles. Here you will find more advanced information on implementing the same tweaks, methods for determining MTU, BDP and RWIN calculations, as well as other suplemental relevant information.
Determining your ISP's MTU
The TCP packet size, or the Windows Registry "MaxMTU" value you should use is limited by your ISP's MTU value, since all packets will be traveling through their equipment. To determine the MTU of your ISP, try the following:
In Dos Prompt(Command Prompt), type:
The largest value that does not give you the error "Packet needs to be fragmented, but DF set" will be your ISP's MTU - 28 (excluding the IP [20 bytes] and ICMP [8 bytes] headers). Use the following table to interpret the number you received and determine your ISPs MTU:
Note: All this can be also determined automatically by using our SG TCP Optimizer program, freely available for download in the Dwonloads area of the site.
Finding the right "000n" Folder in Windows 9x
If you have multiple devices that use TCP/IP, you will have multiple "000n" folders in the Registry, under HKLM\System\CurrentControlSet\Services\Class\Net\Trans If you add the MaxMTU value to all "000n" folders with "TCP/IP" to the DriverDesc setting, chances are you will slow down your dial-up modem connection a bit ( since its optimal MaxMTU is still 576, rather than 1500 ). In order to determine which is the right one for entering the MaxMTU value, you can use any one of the following methods:
1. Open Regedit, and navigate to HKLM\System\CurrentControlSet\Services\Class\Net\Trans\000n\Ndi You can modify the "HelpText" value to be any text value you wish. If you give each 000n folder a unique "HelpText" value, you can then distinguish between them all when you go to Network Properties and check the Description field for each TCP/IP binding.
2. Right-click on "Network Neighborhood" and choose "Properties". Find TCP/IP that's bound to the NIC you use with the Cable Modem/DSL. If it has a static IP address, you can look for that under
3. You could also delete all but one adapter that uses TCP/IP from "Control Panel > Network". Note that before doing that, you should write down the settings of these adapters and the TCP/IP they bind to, since you will have to re-enter them later. Once you've deleted the unnecessary adapters, reboot and you will be left only with one "000n" folder ( that has "TCP/IP" assigned to DriverDesc ) in your Registry. At this point, add the MaxMTU to this folder and re-add the adapters you erased in the previous step.
Bandwidth*Delay Product and the TCP Receive Window
The Bandwidth*Delay product (BDP) determines the maximum amount of data that can be in transit in the network. It is directly related to the Maximum TCP Receive Window (RWIN) value that should be used when tweaking your internet connection. Throughput can not exceed the BDP and the TCP Receive Window (RWIN) needs to be large enough to fit the BDP.
With that in mind, here is the BDP formula:
Essentially, the BDP depends on the maximum available bandwidth multiplied by the latency/delay/ping value.
RWIN (the TCP Receive Window) is the TCP buffer that determines how much data can be in transit in the network, just as the BDP. It should be big enough to accomodate BDP. In addition, the TCP specs, and related RFCs also introduce a few notable considerations for calculating an optimal RWIN value summarized below:
With all those points in mind, calculating the optimal RWIN value is a bit more involved than just plugging any number in the Windows Registry. Below is a good way to accomplish this in 3 steps:
1. Determine MSS (displayed by the SG TCP Analyzer), maximum anticipated latency and advertised maximum bandwidth.
UDP Packet Size
UDP over IP has a total header length of 32 bytes (12 bytes for UDP, and 20 bytes for IP).
Note: When you configure the UDP packet size, remember that UDP packets must travel through different devices that may not support large UDP packets. Some network equipment cannot handle packets larger than 1468 bytes, particularly under heavy load.
For additional tweaks and information, check some of our other related Registry Tweaking Articles, or visit the