As in XP SP2, Microsoft still limit (hard coded in tcpip.sys) the maximum simultaneous half-open (incomplete) outbound TCP connection attempts per second a Vista system can make. The logic is to protect the system from being used by malicious programs, such as viruses and worms, to spread unchecked to other computers. If you are an expert user and your system is well protected and maintained then you most definitely do not want your tcp stack limited in this way.
When the limit is hit there will be an entry in Event Viewer:
EventID 4226: TCP/IP has reached the security limit imposed on the number of concurrent TCP connect attempts
Unlike XP SP2 which has a maximum limit of 10 incomplete concurrent connection attempts per second, the default limit for Vista is based on the edition. For example, Home Basic has a maximum limit of 2, Home Premium is 10 and Vista Ultimate is 25 per second. Normal Vista users have reported issues with slow web browsing and slow network connection with the half-open connections limit. Significant for us filesharers is the connections limit creates errors and slows down P2P applications such as uTorrent, Azureus, eMule etc.. Basically, the tcp connection limit cripples a bittorrent pc.
Due to enhanced security the Vista fix is not as easy as XP. Luckily I have done this today on a friend's PC, after much trial and error, and here is how. The results were immediate, the system started quicker (decongestion of startup objects making network calls) web browsing was faster and uTorrent came alive.
1. Disable User Account Control (UAC)- Open Control Panel
- Under User Account and Family Safety select "Add or remove user accounts"
- Select "Go to the main User Accounts page"
- Select "Turn User Account Control on or off"
- Unselect "Use User Account Control (UAC) to help protect your computer"
- Click Ok
- Reboot
2. Disable TCP/IP Auto-Tuning- Open a Command Prompt (found in your Accessories folder)
- Run the following command:
netsh int tcp set global autotuninglevel=disable
- Close the Command Prompt
3. Set registry tcp connection limit- Open Registry Editor (regedit)
- Navigate to the following registry key:
HKEY_LOCALL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- Right click on the right panel
- Select “New”
- Select “DWORD value”
- Enter the new value name as “TcpNumConnections” (without quotes)
- Double click on the new "TcpNumConnections" registry value
- Modify the decimal value data to the desired maximum TCP/IP connection limit e.g. 500 or 50,000 or approximation for unlimited = 327680
4. Make a backup of tcpip.sys- Navigate to C:\WINDOWS\System32\drivers\
- Copy tcpip.sys
- Paste the copy into the folder
- Rename the copy "tcpip.sys.original"
- If anything goes wrong then restore your system to good order using the backup file
5. Patch tcpip.sys5. Re-enable User Account Control (UAC)6. Enjoy Vista with the brakes off