Can't set netsh int tcp set supplemental

Hello!

Seems like I can't operate within netsh int tcp set supplemental preferences. When I try to set congestion provider the 'old way' with

"netsh int tcp set global congestionprovider=ctcp"

in elevated command prompt, Windows 8 saying that I must do it now with

"netsh int tcp set supplemental"

But that doesn't work either. All I can do with that new command is set template, but only one is available - "internet", and it's already set to it.

I want to set ctcp, ICW and minrto, but I can't, here's what me getting:

http://s10.postimage.org/jrpkudg53/suplemental.png

The syntax is right, even example doesn't work.

The problem exists in Windows 8 CP, RP and in this build.

Sorry for my English. Thanks in advance.



September 11th, 2012 12:04pm

Hi,

I encountered the same issue. I will collect and forward this problem.

Free Windows Admin Tool Kit Click here and download it now
September 12th, 2012 11:10am

Any news?
October 9th, 2012 8:37pm

Please fix this bug
Free Windows Admin Tool Kit Click here and download it now
October 13th, 2012 9:45pm

It would be nice to know if this is even needed nowadays. I couldn't really find an explanation of what it did apart from it being suggested by the BPA's of SBS 2008
October 19th, 2012 9:31pm

The problem exists in Windows 8 CP, RP and in this build.

A regression (or botched integration) of a W7 hotfix?  <eg>

<title>You cannot customize some TCP configurations by using the netsh command in Windows Server 2008 R2</title>

http://support.microsoft.com/kb/2472264

 

---


Free Windows Admin Tool Kit Click here and download it now
October 21st, 2012 7:55pm

Any news on this?

With fast connections, the speed is really slow with Windows 8, just like it was with Windows 7 with default settings. On Windows 7, setting congestionprovider to ctcp increased speed by about 100% for many users with fast connections. On Windows 8, it is currently not possible to change this due to the mentioned bug, resulting in only ~18mbit instead of ~40mbit (Win7 with ctcp) in my case.

A fix is really needed!

December 18th, 2012 5:07pm

The use of netsh int tcp set global congestionprovider=ctcp has been depreciated.  In order to set or change the congestionprovider the following command must be used:

netsh int tcp set supplemental custom 300 10 ctcp disabled 50
Then type:
netsh int tcp set supplemental custom

For further details about the above command simply type:

netsh int set supplemental

To check which congestionprovider your currently using use the following:

netsh int tcp show supplemental

Hope this helps some of you.
Free Windows Admin Tool Kit Click here and download it now
January 15th, 2013 5:57pm

netsh itself has been deprecated. You should run the following in an administrative PowerShell session:

set-nettcpsetting -CongestionProvider CTCP 

Type get-nettcpsetting to view other settings that used to be part of netsh tcp global.

January 15th, 2013 6:08pm

netsh itself has been deprecated. You should run the following in an administrative PowerShell session:

set-nettcpsetting -CongestionProvider CTCP 

Type get-nettcpsetting to view other settings that used to be part of netsh tcp global.&#

Free Windows Admin Tool Kit Click here and download it now
January 15th, 2013 6:24pm

The use of netsh int tcp set global congestionprovider=ctcp has been depreciated.  In order to set or change the congestionprovider the following command must be used:

netsh int tcp set supplemental custom 300 10 ctcp disabled 50
...

This does not work. Error message is something like "Request is not supported" (translated from german). I also tried other values such as dctcp or default, and also tried setting it on "internet" instead of "custom". Still I get the same error all the time.

And as Nuck stated, the PowerShell command "set-nettcpsetting -CongestionProvider CTCP" also does not work ("property is read-only").

Please, could someone from the networking team look into this and try to get it working?

Edit: When using get-nettcpsetting, it shows CTCP for Internet, although netsh shows "none" (for global, i cannot find a way to show it for "internet"). This is all really confusing. Some help would be highly appreciated.

January 23rd, 2013 10:37pm

Anything new on setting the congestionprovider to CTCP ???

Is there already any fix ??

Thanks in advance

Free Windows Admin Tool Kit Click here and download it now
February 13th, 2013 5:38pm

Has anyone found a way to set the congestionprovider ??

It is a shame, that Microsoft dont response to this problem ;o(

February 18th, 2013 5:18pm

PowerShell command "set-nettcpsetting -CongestionProvider CTCP" also does not work ("property is read-only").

Looking at the Help  what you are describing seems WAD or an attempt to use incorrect syntax.   E.g. does the syntax given in the example work (after fixing differences caused by characterset)?  

BTW is this working for anybody?

get-help Set-NetTCPSetting -online

If so, where does it go?   ; )

FWIW I think the example when seen here is clearer

http://technet.microsoft.com/en-us/library/hh826132.aspx 

 
---

Free Windows Admin Tool Kit Click here and download it now
February 19th, 2013 2:34am

PowerShell command "set-nettcpsetting -CongestionProvider CTCP" also does not work ("property is read-only").

Looking at the Help  what you are describing seems WAD or an attempt to use incorrect syntax.   E.g. does the syntax given in the example work (after fixing differences caused by characterset)?  

BTW is this working for anybody?

get-help Set-NetTCPSetting -online

If so, where does it go?   ; )

FWIW I think the example when seen here is clearer


 
---

Set-NetTCPSetting SettingName Custom InitialCongestionWindow 6 CongestionProvider CTCP

"InitialCongestionWindow is read-only"

Set-NetTCPSetting SettingName Custom CongestionProvider CTCP

"CongestionProvider is read-only"

CMD "netsh int tcp set supplemental internet" helps ("supplemental internet" has CTCP by default)

I want customize the template, but I cannot =(
Microsoft, please unlock templates



February 28th, 2013 8:39am

Use Powershell

1) Use Get-NetTCPSetting to check existing TCP profiles. More technical detailes are available from

Get-Help Get-NetTCPSetting -detailed

2) use Get-NetTransportFilter and New-NetTransportFilter to configure filters to assign specific TCP profiles to your traffic.

3) Then you can check parameters of existing connections using Get-NetTCPConnection.

I hope it helps :-)

Free Windows Admin Tool Kit Click here and download it now
March 16th, 2013 3:22pm

Use Powershell:

The Set-NetTCPSetting cmdlet modifies information for each TCP setting. There will be different connection characteristics when connecting over a wide area network and within a data center. Thus each TCP setting is optimized for different network conditions including latency and congestion. The only modifiable TCP SettingName is Custom. To apply a TCP setting to a specific port number or destination IP address range, use the New-NetTransportFilter cmdlet.

March 16th, 2013 3:26pm

Use Powershell:

The Set-NetTCPSetting cmdlet modifies information for each TCP setting. There will be different connection characteristics when connecting over a wide area network and within a data center. Thus each TCP setting is optimized for different network conditions including latency and congestion. The only modifiable TCP SettingName is Custom. To apply a TCP setting to a specific port number or destination IP address range, use the New-NetTransportFilter cmdlet.


Windows does not give an opportunity to change transort filter
only WinServer 2012 =(
Free Windows Admin Tool Kit Click here and download it now
March 25th, 2013 1:13pm

Oh man. This worked on Windows 7.

I thought Windows 8 was an Upgrade to Windows 7. Now it looks more like a downgrade... :(

March 25th, 2013 2:25pm

So... there is none working solution so far? That's odd. 

And yeah, like others I can't change internet templates with cmd/powershell, they are read-only. Sad!

Free Windows Admin Tool Kit Click here and download it now
March 27th, 2013 10:34am

So... there is none working solution so far? That's odd. 

And yeah, like others I can't change internet templates with cmd/powershell, they are read-only. Sad!


You need Windows Server 2012 for changing internet templates. I think they are specifically blocked the possibility of changing templates for Windows 8
May 15th, 2013 9:51am

You need Windows Server 2012 for changing internet templates. I think they are specifically blocked the possibility of changing templates for Windows 8

Thanks for sharing.

Windows 8.1 is coming in August, I bet, they will not gonna change it until then. Or ever. :)


Not really a big deal in HomePC, but in Windows 7 you were able to change this setting.

Free Windows Admin Tool Kit Click here and download it now
May 15th, 2013 12:35pm

You need Windows Server 2012 for changing internet templates. I think they are specifically blocked the possibility of changing templates for Windows 8

Thanks for sharing.

Windows 8.1 is coming in August, I bet, they will not gonna change it until then. Or ever. :)


Not really a big deal in HomePC, but in Windows 7 you were able to change this setting.


м м - XD
June 4th, 2013 8:03am

Not really a big deal in HomePC, but in Windows 7 you were able to change this setting.
For everyone with a highspeed internet connection (50MBit+) this IS a big deal.
CTCP has much better performance on VDSL and Fiber connections, which get more and more common!
Free Windows Admin Tool Kit Click here and download it now
June 4th, 2013 12:35pm

Not really a big deal in HomePC, but in Windows 7 you were able to change this setting.

For everyone with a highspeed internet connection (50MBit+) this IS a big deal.
CTCP has much better performance on VDSL and Fiber connections, which get more and more common!
Guys...
Look at that (posted by dwayned at 12-10-2012, 07:59 AM)
http://www.networkedmediatank.com/showthread.php?tid=63992&pid=588255
June 10th, 2013 3:21pm

Thanks for that link!

It also has nice comparison of speed: Without CTCP = ~7MB/s and with CTCP = ~30MB/s.

Microsoft, please bring us back the configuration of CTCP, so we do not have to use dirty registry hacks like this.

Free Windows Admin Tool Kit Click here and download it now
June 10th, 2013 4:27pm

Hello!

Seems like I can't operate within netsh int tcp set supplemental preferences. When I try to set congestion provider the 'old way' with

"netsh int tcp set global congestionprovider=ctcp"

in elevated command prompt, Windows 8 saying that I must do it now with

"netsh int tcp set supplemental"

But that doesn't work either. All I can do with that new command is set template, but only one is available - "internet", and it's already set to it.

I want to set ctcp, ICW and minrto, but I can't, here's what me getting:

http://s10.postimage.org/jrpkudg53/suplemental.png

The syntax is right, even example doesn't work.

The problem exists in Windows 8 CP, RP and in this build.

Sorry for my English. Thanks in advance.



IT'S WORKING!
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,01,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,01,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

Only those values I entered by hand


June 10th, 2013 6:45pm

Hi folks,

Sorry for my late entry to this thread but I wanted to clear up some confusion.  In Windows 8 we introduced TCP templates to configure TCP settings and deprecated some of the old netsh ways of doing things. There are 4 main templates: Automatic, Internet, Datacenter and Custom.

The Internet template is the default on all Windows 8 client machines and this is not configurable.  One misconception I'm seeing above is that the CTCP is not the default congestion provider on Win8 machines.  By default, CTCP is set as the congestion provider on the Internet template and so it also the default on all Win8 machines.  You can see this by checking the Internet template in PowerShell by running, Get-NetTcpSetting. Next, run, Get-NetTcpConnection, to see that the Internet template is in fact the 'Applied Setting' on your connections. In Win7, it was not the default so I can see why people would continue to think that it was the same in Win8.

You are correct that ECN is disabled by default on the Internet template.  This decision was made because incompatible networking equipment still exists on the core internet and this can cause issues with Windows machines.  Although if you choose to turn it on, you do not have to resort to changing the registry.  It is a global setting and is still configurable, even on clients, through netsh by running, netsh int tcp set global ecn=enable.  On Windows Server 2012, you can change this setting through the custom template or netsh.

I know this is all a little confusing but I hope this helps!  Feel free to ask me any other questions you may have!

Free Windows Admin Tool Kit Click here and download it now
June 11th, 2013 3:26am

gsilva stated:  "One misconception I'm seeing above is that the CTCP is not the default congestion provider on Win8 machines.  By default, CTCP is set as the congestion provider on the Internet template and so it also the default on all Win8 machines."

There's an excellent reason for this "misconception."  If one types netsh int tcp show global the display indicates that the Congestion Control Provider is in the "none" state!!!!

So if, as you claim, CTCP is set as the congestion control provider in the Windows 8 default Internet template, please explain why the display referenced above says that the CTCP state is "none!"

Also, I've spent the last five hours trying to figure out how to manipulate the CTCP state on my Windows 8 laptop and have ended up precisely nowhere.  As I understand, the default TCP template is the Internet template, and that is read only and cannot be modified.  Okay, fine.  As I understand it, I can switch between templates depending on my needs.  One of those templates is called Custom, and that would be the template for me if I want to toggle or otherwise manipulate CTCP, correct?

But then I bump into another problem.  As I understand it, in order set a particular TCP template as the current active template one types netsh int tcp set supplemental followed by the particular desired template.

For example, if I want to load the Internet template, I type netsh int tcp set supplemental internet.

Well, I'm bumping into another problem.  When I type netsh int tcp set supplemental custom I get ungatz, nada.  All I get is the message "Set supplemental command failed to set the global default template."

It's almost as if my laptop is missing all the templates but the Internet one.  I tried a few of the others, like datacenter and so on; same results.

Just so you know, the reason why I wish to alter the CTCP state is because my Windows 7 laptop is getting an average 8000 kps download speed on my Sprint LTE connection but my Windows 8 laptop is getting an average 2000 kps download speed.  Clearly SOMETHING is wrong on my Windows 8 box, and I'm theorizing that turning on the congestion provider may fix the issue, unless you have other ideas.



June 28th, 2013 2:17pm

When I type netsh int tcp set supplemental custom I get ungatz, nada.  All I get is the message "Set supplemental command failed to set the global default template."

It's almost as if my laptop is missing all the templates but the Internet one.  I tried a few of the others, like datacenter and so on; same results.

Does it work anywhere?  If it does a practical alternative for trying to understand your symptom, e.g. an attempt to prove your hypothesis, is to run ProcMon in the two scenarios and compare the traces for their essential differences.   Filter with Process & Thread first to see where the traces diverge and then refine the filtering with Operation Begins with Reg (e.g. after adding Registry events to the trace just before the divergence.)   Running ProcMon without a second trace could be useful too but just harder to analyze unless you get lucky with some patterns in the registry Path.

 
Good luck

Free Windows Admin Tool Kit Click here and download it now
June 28th, 2013 6:10pm

GSilva could you layout process of changing templates and setting TCP parameters in a complete manner so we could navigate the new system and configure it ourselves?  I just installed 8.1 and it keeps telling me I can only do that on server version and I don't see the cmdlet to much less get on the Custom, InternetCustom, or DatacenterCustom template much less set-nettcpsetting change any of the parameters.  Do you actually have full knowledge of this and if so where did you learn this?  Having trouble finding anything that I would deem a userful forum about powershell(they exist but I mean useful).  I mean if they are going to start integrating powershell to this degree you would think someone would give us some documentation so we could use it, but HA WHO am I kidding? It's microsoft the kings of no fm to rt.
July 3rd, 2013 9:51pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics