• Sign in to Neowin Faster!

    Create an account on Neowin to contribute and support the site.

Sign in to follow this  

Set-NetTCPSetting still incomplete code in windows 10?

Recommended Posts

Chrysalis    13

So prior to windows 7, network configuration was done between the registry and the netsh int commands.

In windows 8 microsoft moved some of this to Set-NetTCPSetting but a lot of it was locked down as readonly I assume due to it been feature incomplete.

I thought surely years later in windows 10 this very important code would be operational but seems it is still locked down :(

So adjustments include enabling/disabling nagle algorithm
adjusting congestion window type
enabling custom template (to even use these settings)
adjust initial congestion window (quite important for performance)
adjust delayed ack delay
adjust slow start on recovery behaviour

Some of these were not adjustable at all in windows 7, but the ones that were did work, competing operating systems such as linux allow full adjustment.

According to microsoft docum,entation all these can be adjusted however their documentation seems out of sync with the code.

References here

http://powershell.org/wp/forums/topic/how-to-change-delayedackfrequencys-value/
https://technet.microsoft.com/en-us/library/hh826132(v=wps.630).aspx
http://www.speedguide.net/articles/windows-8-10-2012-server-tcpip-tweaks-5077
 

Now I cannot even change to the custom template see here output
PS C:\WINDOWS\system32> netsh int tcp set supplemental template=Compat
Ok.
PS C:\WINDOWS\system32> netsh int tcp show supplemental
The TCP global default template is compat
PS C:\WINDOWS\system32> netsh int tcp set supplemental template=Internet
Ok.
PS C:\WINDOWS\system32> netsh int tcp show supplemental
The TCP global default template is internet
PS C:\WINDOWS\system32> netsh int tcp set supplemental template=InternetCustom
The parameter is incorrect.

InternetCustom is a valid template and is what should be used when using non defaults, but the code rejects it. Internet and Compat are read only templates with hard coded values.

To view template settings run this command (I wont paste output here as is very large) 'Get-NetTCPConnection' it will show all templates and the values for the templayes, only templates ending in Custom are not read only or at least should be.  However most of the values are read only in the custom templates, see examples here.

This is a value that isnt locked as read only that works.

PS C:\WINDOWS\system32> Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider CTCP
PS C:\WINDOWS\system32>

However lets try enabling DCTCP the setting thats used in the Datacenter template.

PS C:\WINDOWS\system32> Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider DCTCP
Set-NetTCPSetting : Property CongestionProvider is read-only

Woooh, suddenly its read only?

Likewise cannot change it to Default which is used in the Compat template (default = newreno).

PS C:\WINDOWS\system32> Set-NetTCPSetting -SettingName InternetCustom -CongestionProvider Default
Set-NetTCPSetting : Property CongestionProvider is read-only

Cannot disable nagle :(

PS C:\WINDOWS\system32> Set-NetTCPSetting -SettingName InternetCustom -DelayedAckFrequency 1
Set-NetTCPSetting : Property DelayedAckFrequency is read-only

However if we set the current value suddenly its not read only.

PS C:\WINDOWS\system32> Set-NetTCPSetting -SettingName InternetCustom -DelayedAckFrequency 2
PS C:\WINDOWS\system32>

To prove it isnt just accepting current values, I try to modify the read only Internet template.

PS C:\WINDOWS\system32> Set-NetTCPSetting -SettingName Internet -DelayedAckFrequency 2
Set-NetTCPSetting : Only the custom templates InternetCustom and DatacenterCustom can be modified.
At line:1 char:1

So unless I have got something wrong (not according to microsoft documentation) it seems we have another unfinished feature out in the wild :(

Has been raised via enterprise support channels, so will see what microsoft do.

  • Like 1

Share this post


Link to post
Share on other sites
Chrysalis    13

Ok the response is they locked it down on desktop versions of the OS.

They are considering partially unlocking it for the pro version but they said it would be just partial support, they are also considering changing the defaults of the initial congestion window from 4 to 10 packets to suit faster broadband connections but leaving it as 4 on the compat template.

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.