Windows 2000 Networking Tweaks
6 Apr 2002 @ 10:40AM

Updated: 9 Feb 2010 @ 10:47AM
In this first half of my Windows 2000 tweaks project, I'll be going over a bunch of registry hacks that could potentially enhance your internet speeds. Note that this is primarily aimed at broadband users, ie ADSL or cable, though I assume that any high speed internet connection could benefit. To make it more plain...if you are using a dialup modem, be it 56k or 2400baud, these tweaks will probably not do much for you. In fact, some of them may actually hurt your connection. So, you are forewarned. These are a fair number of tweaks I have acquired through browsing the internet or through personal use. Your mileage may vary.

Secondly, what we're going to be doing is registry tweaks. For those that don't know, the registry is, essentially, the brain of windows. As such, what we're doing is the windows equivelant of brain surgery...if you delete the wrong thing, or put in the wrong value somewhere, you could potentially KILL windows. Kill as in DEAD, and in need of a reinstallation from scratch. So, rule number one when messing with the registry is to BACK IT UP. You can do this by opening regedit, highlighting the computer, then going to registry | export registry file, and saving it somewhere. This way it shouldn't be too hard to restore it in the chance that something goes dreadfully wrong. Note...I am NOT going to be held responsible if you blow up your registry. I'm providing information, but I am NOT providing any type of tech support. Everything contained within is for informational purposes only...if you decide to apply this information, YOU and YOU alone are responsible if your computer explodes. Alright, enough of the CYA, onto the tweaks.

These tutorials assume at least a basic knowledge of the use of regedit.
Comments (0)
Speeding up your browsing
This tweak should work on all versions of Windows after Windows 3.1/WfWG. What it involves is an apparent bug in the operating systems concerning scanning of file shares for scheduled tasks.

First, we need to bring up regedit by going to start | run and typing regedit, then hitting enter (or ok). When regedit is up, navigate to the following key.

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace


On the right hand side, you should see a key called {D6277990-4C6A-11CF-8D87-00AA0060F5BF}. Right click on it and delete the key. Please note that, as stated above, you should backup your registry before trying this.

And that, my friends, is the end of the first tweak. You should immediately see a speedup in browsing speed. No reboot is necessary on this particular tweak. Additionally, upgrading to a new browser (say, going from ie5.5 to ie6) may very well cause this registry key to come back, forcing you to delete it again.
Comments (0)
DNS cache
First, a primer on what DNS is. DNS stands for Domain Name System (or service), and it changes friendly domain names (such as yahoo.com, google.com, or eraserlake.com) into the IP addresses that the internet really works off of. It's alot easier for people to remember yahoo.com than it is to remember 66.54.245.13, which is why the DNS system was created. Anytime you type a domain name in your web browser (or anywhere else that goes across the internet), a DNS server takes that domain name, compares it against an internal table (DNS table), and then sends back the ip address it looked up to your computer. Then your computer uses that IP address to contact the actual web page.

As you an probably surmise, this can be a slow, laborious practice, especially if the DNS server is under a heavy load. So, to help expedite this, Windows 2000 has a DNS cache implemented...basically, instead of asking for the ip over and over again, it stores a local copy of the ip. This allows it to just look up the ip locally and very quickly. This local copy of ip addresses is called a DNS cache.

Windows 2000 actually comes with a pretty efficient DNS cache preinstalled. However, through the use of the registry, we can tweak the cache out to make it larger, so that it stores more ip addresses. To do that, continue reading.

First, we need to open up regedit. Start | run | regedit. Then, we need to browse to the following key:


HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDnscacheParameters


We will need to modify or create the following keys. CacheHashTableBucketSize, CacheHashTableSize, MaxCacheEntryTtlLimit, and MaxSOACacheEntryLimit. If these values don't exist, you will need to create them. Please note that they are DWORDS.

Apparently the best values for these are as follows. Note, all values are in decimal.

CacheHashTableBucketSize384
CacheHashTableSize 64000
MaxCacheEntryTtlLimit301
MaxSOACacheEntryLimit300


There are additional values in this key, but I wouldn't recommend tweaking them any unless you really know what you're doing.
Comments (0)
Broadband tweaks
These tweaks are meant specifically for broadband internet users. If you are a dialup user, do not make these changes, they will mess up your connection. Alright, having said that, below is a series of tweaks revolving around packet sizes and such.

We will need to open regedit and navigate to the following key:


HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters


Once there, tweak the following settings to the values described.

"SackOpts"dword:00000001
"TcpWindowSize"dword:0005ae4c
"Tcp1323Opts"dword:00000003
"DefaultTTL"dword:00000040
"EnablePMTUBHDetect"dword:00000000
"EnablePMTUDiscovery"dword:00000001
"GlobalMaxTcpWindowSize"dword:0005ae4c


Please note that I had to manually add all these values into my key. They were not there previously.

Now for some defintions:
SackOpts:Selective acknowledgements allow TCP to recover from IP packet loss without resending packets that were already received by the receiver. Employed with TCP large windows.
TcpWindowSize:Determines how much data the receiving computer is prepared to get.
Tcp1323Opts:Used when an application requests a Winsock socket to use buffer sizes greater than 64K. In previous implementations the TCP window size was limited to 64K, this limit is raised to 2**30 through the use of TCP large window support as defined in RFC1323 and implemented in Winsock 2.
DefaultTTL:Specifies the default Time To Live value set in the header of outgoing IP packets. The TTL determines the maximum amount of time an IP packet can live in the network without reaching its destination. It is effectively a limit on the number of routers an IP packet may pass through before being discarded.
EnablePMTUBHDetect:When enabled, causes TCP to try to detect "Black Hole" routers while doing Path MTU Discovery. A "Black Hole" router does not return ICMP Destination Unreachable messages when it needs to fragment an IP datagram with the Don't Fragment bit set. TCP depends on receiving these messages to perform Path MTU Discovery. With this feature enabled, TCP will try to send segments without the Don't Fragment bit set if several retransmissions of a segment go unacknowledged. If the segment is acknowledged as a result, the MSS will be decreased and the Don't Fragment bit will be set in future packets on the connection. Enabling black hole detection increases the maximum number of retransmissions performed for a given segment.
EnablePMTUDiscovery:Determines whether TCP uses a fixed, default maximum transmission unit (MTU) or attempts to find the actual MTU. If the value of this entry is 0, TCP uses an MTU of 576 bytes for all connections to computers outside of the local subnet. If the value of this entry is 1, TCP attempts to discover the MTU (largest packet size) over the path to a remote host.
GlobalMaxTcpWindowSize:The TcpWindowSize parameter can be used to set the receive window on a per-interface basis. This parameter can be used to set a global limit for the TCP window size on a system-wide basis


Clear as mud? If so, feel free to drop these terms into google and look up some more definitions. However, unless you're a network engineer or write network protocols yourself, I doubt you'll find much of interest.
Comments (0)
Web Connections
This following tweak is simply a small registry hack to allow Internet Explorer to make more connections to a server at once than ordinarily allowed. By doing these tweaks, we are actually violating the RFC specs for HTTP, but most servers shouldn't care. If you have any problems browsing as a result of this tweak, you'll want to restore these values back to what they were. However, you shouldn't run into this problem.

Once more, open regedit. First, we need to go to the following registry key.


HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings\


In here, we need to change the value for MaxConnectionsPerServer to 20, or dword:00000020. Additionally, we need to change the value of MaxConnectionsPer1_0Server to the same, 20 or dword:00000020. Please note the dword just means the type of value, and you shoudln't type dword in the blank (not that it would let you, anyway).

Next, find your way to the following registry key.


HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\


We will need to duplicate our efforts in this key, as well. Namely we need to change the value for MaxConnectionsPerServer to 20, or dword:00000020. And again, we need to change the value of MaxConnectionsPer1_0Server to the same, 20 or dword:00000020. Please note that, once more, I had to add these keys manually...they did not preexist for me to manipulate.
Comments (0)
And that does it for this installment of tweaks. I hope you enjoyed. For further information or more tweaks, check out the following links.

MSDN, registry configurable TCP/IP options.

Speedguide.net, various internet speed tweaks.
Axcel216 has an awesome page on tweaks and tips for nearly anything you can think of.
Comments (0)