The Broadband Guide
SG
search advanced

Windows 10 Manual TCP/IP Registry Tweaks

Bypassing Windows restrictions by manually editing TCP settings in the Windows Registry
2021-04-11 (updated: 2021-04-27) by

Using the Advanced Registry tweaks below allows users to bypass some of the PowerShell/netsh restrictions in setting TCP/IP parameters.

This article is intended as supplemental information to our Windows 10 TCP/IP Tweaks, and the TCP Optimizer, only necessary in case your Windows version does not allow for other methods of changing TCP settings. It implies some prior knowledge in using the Windows Registry Editor, and modifying TCP parameters.

In many Windows 10 Home builds, and older Windows 7/8 versions the user is restricted from modifying some TCP/IP parameters such as the CongestionProvider (congestion avoidance algorithm) and other related settings via netsh commands or PowerShell cmdlets. This article provides alternate methods of modifying TCP/IP settings using the Windows Registry, reverse-engineered from Windows 10 builds where it is possible to edit them, such as Windows Server/Pro.


Displaying current TCP settings

Most TCP/IP related settings can be viewed either using Command Prompt, or the Windows PowerShell. Running either as administrator (right-click > Run as Administrator) allows for more control of what you are allowed to change. Windows 7 and later has several "templates" with sets of TCP parameters, and only one of them is currently in use depending on your connection properties, Windows build, etc. The most common TCP template in use in later builds is called "Internet".

To find the template (set of TCP settings) currently in use by Windows, in admin command prompt or PowerShell use the command:

netsh int tcp show supplemental

To see current TCP settings:

netsh int tcp show global

Or via PowerShell cmdlets:

Get-NetTCPSetting
Get-NetTCPSetting -SettingName Internet
  (this shows the TCP parameters only for the currently used "Internet" template)



Changing the TCP CongestionProvider in the Registry

Some Windows 10 builds allow for changing the CongestionProvider (TCP Congestion Control/Avoidance Algorithm) and other TCP parameters via netsh, or PowerShell. However, under many other Windows Home builds (1607, 1703, 1709, 1803, 1809, 1903, 1909..) it fails with an error: "Property CongestionProvider is read-only"

Please ONLY use the below undocumented Registry hack if your version of Windows does not allow you to change some TCP settings via admin Command Prompt or PowerShell, as described in our Windows TCP/IP Tweaks articles. The method described here is undocumented, and modifying the Windows Registry incorrectly can cause many issues, the least of which is corrupting your TCP/IP stack. That said, here is how to modify your CongestionProvider using the Windows Registry:


1) Run the Windows Registry editor "regedit", and navigate to the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\26





2) Edit the REG_BINARY value "00000000" (you may as well edit the equivalent value "04000000") very carefully! Note when editing those types of reg_binary/hex values, be careful not to change the positions of the original entries, as typing simply adds more hex pairs. Here is a direct export of the default Registry values from Windows 10 Pro:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\26]
"00000000"=hex:00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,ff,00,00,00,00,00,00,00
"04000000"=hex:00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,ff,00,00,00,00,00,00,00

Note the 13th pair of hex numbers above highlighted in red, originally "05" in more recent Windows builds. That is the CongestionProvider pair, and the possible values are as follows:

00 - none
01 - NEWRENO
02 - CTCP
03 - DCTCP
04 - LEDBAT (where available)
05 - CUBIC

Recommended value: CUBIC or CTCP. For more information on the different algorithms, see our TCP Congestion Control Algorithms Comparison article.

The two values "00000000" and "04000000" above represent different "templates" of TCP parameters, as follows:

"00000000" - Internet   (this template is default in later Windows 10 builds)
"04000000" - InternetCustom (this template was used in earlier versions of Windows 8/10, possibly with CTCP as the default CongestionProvider)


Other TCP Registry Parameters

Refer to the image below for other possible changes to the TCP parameters:

TCP Registry Parameters


Merging a Registry File

It is sometimes more convenient and useful to create a registry file, and merge it with the Windows Registry by double-clicking it, rather than opening regedit and navigating to the proper key to edit values. To do this, follow these steps:

1. Copy/Paste the text below (including the "Windows Registry Editor..." line) into a text file with a ".reg" instead of ".txt" extension, for example "enable-ctcp.reg"
2. Import the registry file you created into the Windows Registry by double-clicking on the file, agree to the warning.
3. Reboot.
Here is a sample Registry File you can use (copy everything, including the "Windows Registry Editor..." line):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\26]
"00000000"=hex:00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,ff,00,00,00,00,00,00,00
"04000000"=hex:00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,ff,00,00,00,00,00,00,00


Notes:
Backslashes at the end of lines above simply indicate that the value continues on next line.
Please use at your own risk, make changes carefully, as any errors in editing the above registry keys/values will likely cause internet connectivity issues, and may possibly corrupt your TCP stack.
Any of the above registry changes will be reflected after reboot.


Windows 8 TCP CongestionProvider

Under Windows 8, you can't set the congestionprovider to CTCP using netsh. It is still possible to change the congestion algorithm and other TCP parameters in the Windows Registry. The registry file below will let you do this, please note the registry key location is slightly different than under Windows 10.

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\0]
"0200"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"1700"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

To use this, copy/paste the above text and save it into a registry file (as described in the "Merging a Registry File" section above).

The binary values above affect many parameters: "Chimney Offload State" (offset 04, 00=disabled,01=enabled,02=auto), RSS (offset 05, 00=default/enabled,01=disabled), ECN Capability (offset 06, 00=disabled/default, 01=enabled), CTCP (offset 28, 00=none, 02 = ctcp), etc.


See Also:

Windows 8, 10, Server TCP/IP Tweaks
TCP Congestion Control Algorithms Comparison
TCP Optimizer

  User Reviews/Comments:
    rate:
   avg:
by XPRAY - 2024-02-05 13:54
BBR2?
News Glossary of Terms FAQs Polls Cool Links SpeedGuide Teams SG Premium Services SG Gear Store
Registry Tweaks Broadband Tools Downloads/Patches Broadband Hardware SG Ports Database Security Default Passwords User Stories
Broadband Routers Wireless Firewalls / VPNs Software Hardware User Reviews
Broadband Security Editorials General User Articles Quick Reference
Broadband Forums General Discussions
Advertising Awards Link to us Server Statistics Helping SG About