How to Optimize Your Internet Connection to Get 100 % Bandwidth
Most of Internet connections are working below capacity. A simple bandwidth test would reveal that your own Internet connection is working well below its capacity. some times below 60% of the bandwidth is utilized. Below are some of the tricks I have collected that may help you get most juice out of your internet connection.
Increase bandwidth by tweaking QoS in Windows XP Pro
The following tweak applies only to Windows XP Professional edition. The default system behavior is that all 100% bandwidth is available, however, if there is a running application that indicates to the OS it needs to send high priority/real time data, then as long as it has the socket open, Windows XP will restrict “best effort” traffic to 80% of the bandwidth so that high priority traffic can be accommodated. Basically, applications can make this request to the operating system for QoS support using the QoS application programming interfaces (APIs) in Windows and this only applies if a specific app is requesting QoS.
If you’d like to change how much bandwidth is reserved for QoS (the default is 20% of the total bandwidth), do the following:
-
Make sure you’re logged in as “Administrator” (not just any account with admin privileges).
-
Navigate to START>Run and type: gpedit.msc
-
Navigate to Local Computer Policy > Administrative Templates > Network > QOS Packet Scheduler
-
In the right window, double-click the limit reservable bandwidth setting
-
On the setting tab, check the enabled setting.
-
Where it says “Bandwidth limit %”, change it to read 0 (or whatever percentage you want to reserve for high priority QoS data)
-
Click OK, close gpedit.msc
-
Under START > My Computer > My Network Connections > View Network Connections, right-click on your connection and under Properties (where it lists your protocols), make sure QOS Packet Scheduler is enabled.
Host Name Resolution Priority Tweak Windows 2k/XP
The tweak desribed below helps boost priority for DNS & hostname resolution in general. What this means is, it helps web pages load faster, and has negligible effect on downloads (not counting the couple of ms gain with the host resolution at connect-time). Applying this tweak assumes some proficiency in editing the Windows Registry using Regedit (Start > Run > type: regedit). As always, backup your Registry before making any changes so you can revert to the previous state if you don’t like the results.
First, open the Windows Registry using Regedit, and (after backing up) navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ServiceProvider
Note the following lines (all hex dwords):
Class = 008 (8) - indicates that TCP/IP is a name service provider, don’t change. LocalPriority = 1f3 (499) - local names cache HostsPriority = 1f4 (500) - the HOSTS file DnsPriority = 7d0 (2000) - DNS NetbtPriority = 7d1 (2001) - NetBT name-resolution, including WINS
What we’re aiming to do is increase the priority of the last 4 settings, while keeping their order. The valid range is from -32768 to +32767 and lower numbers mean higher priority compared to other services. What we’re aiming at is lower numbers without going to extremes, something like what’s shown below should work well:
Change the “Priority” lines to:
LocalPriority = 005 (5) - local names cache HostsPriority = 006 (6) - the HOSTS file DnsPriority = 007 (7) - DNS NetbtPriority = 008 (8) - NetBT name-resolution, including WINS
Host Name Resolution Priority Tweak Windows 9x/ME
The tweak is essentialy the same as in Windows 2000/XP, just the location in the Registry is slightly different. For a more detailed description see the Windows 2000/XP section above.
Open the Windows Registry using Regedit, and (after backing up) navigate to:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\ServiceProvider
You should see the following settings:
Class=hex:08,00,00,00 LocalPriority=hex:f3,01,00,00 HostsPriority=hex:f4,01,00,00 DnsPriority=hex:d0,07,00,00 NetbtPriority=hex:d1,07,00,00
The “priority” lines should be changed to:
LocalPriority=hex:05,00,00,00 HostsPriority=hex:06,00,00,00 DnsPriority=hex:07,00,00,00 NetbtPriority=hex:08,00,00,00
Reboot for changes to take effect.
In addition to the tweaks already covered in Win 2k/XP Registry Tweaks and More Win 2k/XP Tweaks, the Windows XP Service Pack 2 introduces a few new issues covered in the article below. Please make sure you understand what you are doing before making any changes to your Operating System. Note the information below only applies to Windows XP Service Pack 2.
Remove the limit on TCP connection attempts
In addition to the tweaks already covered in Win 2k/XP Registry Tweaks and More Win 2k/XP Tweaks, the Windows XP Service Pack 2 introduces a few new issues covered in the article below. Please make sure you understand what you are doing before making any changes to your Operating System. Note the information below only applies to Windows XP Service Pack 2.
Windws XP SP2 introduces a few new twists to TCP/IP in order to babysit users and “reduce the threat” of worms spreading fast without control. In one such attempt, the developers seem to have limited the number of possible TCP connection attempts per second to 10 (from unlimited in SP1). This argumentative feature can possibly affect server and P2P programs that need to open many outbound connections at the same time.
The forward thinking of Microsoft developers here is that you can only infect 10 new systems per second via TCP/IP ?!?… If you also consider that each of those infected computers will infect 10 others at the same rate:
second 1: 1+10 computers second 2: 10+10*10 computers (110 new ones) second 3: 10+100*10 computers ( 1110 new ones) second 4: 10+1000*10 computers (11110 new ones) ….all the way to 10*60 + 10^60 computers in a single minute (that’s a number with 60 digits, or it would far exceed Earth’s population). Even if we consider that 90% of those computers are unreachable/protected, one would still reach ALL of them within a minute.
In other words, even though it is not going to stop worm spreading, it’s going to delay it a few seconds, limit possible network congestion a bit, and limit the use of your PC to 10 connection attempts per second in the process ! I have no problem with the new default setting limiting outbound connection attempts. Still, users should have the option to easily disable or change this setting. I might be going out on a limb here, but ever since the introduction of Windows XP I can’t help thinking that I dislike all the bult-in Windows “wisardry” in a sense that the system also limits user access. That irritating trend to ease the mental load on end users is somewhat insulting, considering that Windows is to make the more “intelligent” choice instead of the end user, as well as limit their access to tuning such settings…
With the new implementation, if a P2P or some other network program attempts to connect to 100 sites at once, it would only be able to connect to 10 per second, so it would take it 10 seconds to reach all 100. In addition, even though the setting was registry editable in XP SP1, it is now only possible to edit by changing it directly in the system file tcpip.sys. To make matters worse, that file is in use, so you also need to be in Safe mode in order to edit it.
You only need to worry about the number of connection attempts per second if you have noticed a slowdown in network programs requiring a number of connections opened at once. You can check if you’re hitting this limit from the Event Viewer, under System - look for TCP/IP Warnings saying: “TCP/IP has reached the security limit imposed on the number of concurrent TCP connect attempts”. Keep in mind this is a cap only on incomplete outbound connect attempts per second, not total connections. Still, running servers and P2P programs can definitely be affected by this new limitation. Use the fix as you see fit. To change or remove the limit, you can use the following program:
Click here to Download Event ID 4226 Patcher v2.11
It is a patching program for removing or changing the limit imposed on connection attempts in SP2. The patcher has the ability to restore tcpip.sys back to the original… Still, you might want to back up tcpip.sys, use it at your own risk. The author of this patch can be reached at
Recommended settings for Windows 2000 / XP
Windows 2000 & XP, unlike NT supports large windows as described in RFC1323 ( the ‘RcvWindow’ has a maximum value of 2**30 rather than 64K), and includes some other improvements over its predecessors you can use to speed up any TCP/IP transfers. , the descriptions and other options are added to provide you with better understanding and enable you to customize your settings.
All the following entries, unless otherwise noted should be placed in the Windows 2000/XP Registry under the key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
TCP Window Size
The value of TCP Window in the Windows 2000 Registry is DWORD, representing number of bytes, with range from 0 to 2^30. The recommended values (in red) optimize TCP for any high speed Internet connection and work best in most cases, however if you’d like to use a custom value follow these guidelines:
For best results, the TCPWindow should be a multiple of MSS (Maximum Segment Size). MSS is generally MTU - 40, where MTU (Maximum Transmission Unit) is the largest packet size that can be transmitted. MTU is usually 1500 (1492 for PPPoE connections).
There are three places in the Windows 2000 Registry where you can add the TCP Window parameter.
HKLM/SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
GlobalMaxTcpWindowSize=”256960″ (DWORD, number of bytes) Valid range is from MSS to 2^30.
Add the value as a decimal.
Note: For best results RWIN has to be a multiple of MSS lower than 65535 times a scale factor that’s a power of 2, i.e. 44 x 1460 = 64240 x 2^2 = 256960. If you choose to use a RWIN lower than 65535, you can simply make it multiple of MSS and turn scaling off (Tcp1323Opts=0)
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
TcpWindowSize=”256960″ (DWORD, number of bytes) Valid range is from MSS to 2^30.
Add the value as a decimal. TcpWindowSize can also exist under TcpipParametersInterface - if added at this location, it overrides the global setting for this particular .
Note: It seems MS has found another bug in Windows 2000, the TCPWindowSize should be configured with the global setting (GlobalMaxTcpWindowsSize) rather than this one - Q263088 Note: For best results RWIN has to be a multiple of MSS lower than 65535 times a scale factor that’s a power of 2, i.e. 44 x 1460 = 64240 x 2^2 = 256960. If you choose to use a RWIN lower than 65535, you can simply make it multiple of MSS and turn scaling off (Tcp1323Opts=0) Tcp1323Opts Tcp1323Opts is a necessary setting in order to enable Large TCPWindow support as described in RFC 1323. Without this parameter, the TCPWindow is limited to 64K.
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Tcp1323Opts=”1″ (DWORD, recommended setting is 1. The possible settings are 0 - Disable RFC 1323 options, 1 - Window scaling but no Timestamp options, 3 - Window scaling and Time stamp options.)
Note: Tcp1323Opts=”3″ might help in some cases where there is increased packet loss, however generally you’ll achieve better throughput with Tcp1323Opts=”1″, since Timestamps add 12 bytes to the header of each packet.
Default TTL
Default TTL determines the time in seconds and the number of hops a packet lives. While it does not directly affect speed, a larger value increases the amount of time it takes for a packet to be considered lost, discarded and retransmitted. A value that’s too small can cause packets to be unable to reach distant servers at all.
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
DefaultTTL=”64″ (DWORD, recommended setting is 64. Other settings that are widely used are 128 and 32)
Enable PMTU Discovery
When set to 1 (True), TCP attempts to discover MTU automatically over the path to a remote host. Setting this parameter to 0 causes MTU to default to 576 which reduces overall performance over high speed connections.
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnablePMTUDiscovery=”1″ (DWORD - boolean, valid settings are 0–>False and 1–>True. Many connections perform better with this entry at 1, however, if you prefer to set your upstream to send fixed 1500 packets, you might want to use 0 instead). When set at 1, establishing connections and initial transfer speed might slow down a bit, however you will get better throughput if somewhere in the path large packets need to be fragmented.
Enable PMTU BHDetect
Setting this parameter to 1 (True) enables “black hole” routers to be detected, however it also increases the maximum number of re-transmissions for a given segment. In most cases you’d want to keep BHDetect to 0 (False).
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnablePMTUBHDetect=”0″ (DWORD - boolean, valid settings are 0–>False and 1–>True. Recommended setting is 0)
Sack Options
This parameter controls whether or not SACK (Selective Acknowledgement) support is enabled, as specified in RFC 2018. SACK is especially important for connections using large TCP Window sizes.
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
SackOpts=”1″ (DWORD - boolean, recommended setting is 1. Possible settings are 0 - No Sack options or 1 - Sack Option enabled).
TCP Max Dup ACKs
This parameter determines the number of duplicate ACKs that must be received for the same sequence number of sent data before “fast retransmit” is triggered to resend the segment that has been dropped in transit.
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
TcpMaxDupAcks=”2″ (DWORD - range 1-3, recommended setting is 2).
Patches
S. Guide Tweak Patch
Generic patch for Windows XP and Windows 2000 (all versions). This patch will optimize your TCP/IP Registry settings for high speed Internet connections. To install, extract the .inf file first, then double-click (or right-click on filename and choose install from the pull-down menu) and reboot for changes to take effect.
You can download it here
http://www.speedguide.net/files/sguide_tweak_2k.zip
S. Guide Patch PPPoE
Generic patch for Windows XP/2000 and DSL connections using PPPoE. This patch will optimize your TCP/IP Registry settings for high speed Internet connections. It is specifically designed for PPPoE DSL connections. To install, extract the .inf file first, then double-click (or right-click on filename and choose install from the pull-down menu) and reboot for changes to take effect.
You can download it here
http://www.speedguide.net/files/sguide_tweak_2k_pppoe.zip
WinXP DNS Cache Patch
Patch Windows 2k/XP not to cache failed DNS entries. By default, when a DNS lookup fails (due to temporary DNS problems), Windows still caches the unsuccessful DNS query, and in turn fails to connect to a host regardless of the fact that the DNS server might be able to handle your lookup seconds later. This patch fixes the problem by configuring the DNS client to continue sending queries to an unresponsive network. To install, save to your HD, unzip the .reg file, then double-click the filename.
Web Patches - For faster loading of Web Pages
The following patch increases Web page loading speed, by doubling the number of possible concurrent open connections. For example, imagine a web page has 20 images and some text - in order for your browser to get all these files, it opens 2 or 4 concurrent connections, depending on the Web server. Increasing the number of open connections allows for faster retrieving of the data. Please note that the patch sets some values outside of the HTML specs. If you decide to install it, backup your Registry first. Changes will take effect after you reboot. Download the patch appropriate for your OS:
OS: Windows 9x/ME
http://www.speedguide.net/files/sg_webtweak_9x.zip
Windows 2K/XP/2k3
http://www.speedguide.net/files/sg_webtweak_2k.zip
TCP Optimizer Tool
The TCP Optimizer is a free, easy Windows program that provides an intuitive interface for tuning and optimizing your Internet connection. Just download and run, there is no installation required. The program makes it easy to find the best MTU and RWIN values, test latency and tweak all the important broadband related registry parameters. The Optimizer can be helpful with tuning any Internet connection type, from dial-up to Gigabit+
http://www.speedguide.net/files/TCPOptimizer.exe
Enjoy and share this post with friends … Cheers!
People who liked this Post also read
You might also be interested in
- Internet Speed: How to Increase with HOSTS file
- How to View Free Satellite TV on Your PC
- How to Double Firefox Browsing Speed on Dialup Connection
- Beginner’s Guide to internet file types
- Newbies Guide to Internet Slang
- 75,000 drivers for Windows 2000, XP and Vista
- List of Free Linux/Unix Shell Account Providers
- 50 Common Linux Console Commands You Should Learn By Heart
- Google Betrays Mozilla By Releasing Its Own Browser: Google Chrome
- Why All Of Us Should Have A Laptop?
Link to this article from your site or blog. Just copy and paste following code:
Trackbacks & Pingbacks
- Pingback by How to Optimize Your Internet Connection to Get 100% Speed | I travel to work, do you? on August 1, 2008 @ 3:28 pm
- Pingback by test internet connection speed on August 4, 2008 @ 8:41 pm
Comments



















These are some pretty good tips… Hope they work for everyone!
Wow. I am speechless, this is an impressive list of speed tweaks, and they actually work as well.
Thanks.
the QoS one isn`t true, it`s a hoax since 1990
Well, I have tried these settings and I get speed improvements. Can you point to some references that its a Hoax ?
R.MAK A simple search would have turned this up:
http://tech.gameshogun.ws/technews/the_myth_that_is_called_the_qos_20_bandw
You will gain 20% of your *network* bandwidth, *if* it’s in use. Your network card will probably run at 100mbps, so you would gain 20mbps to take you up from 80mbps. Is your net connection 80mbps?
Didn’t think so.
Most of these tips are worthless, and some are downright dangerous.
nice useful article, thanks for sharing.
it is nice theory , internet speed related with bandwidth, and tcp/ip used for making connections. u talked about increasing tcp/ip attempt from 10 to onward for one second….i don’t think so any person able to send more than 10 request in one second
sampats last blog post..Are you facing CPU SPEED and FREQUENCY problem?