TCP Optimizer 4 (Windows 7 / 8 / 10 / 2012/2019 Server are all supported)
Thx, I can confirm that it's working now
Have you looked at RSS as well?
I'm ready to provide any info you need for fixing the bug, that prevents your tool from reading out RSS values.
Get-NetAdapterRss shows "enabled true" after all ^^
Setting rss to false in the tool -> Get-NetAdapterRss still shows "enabled true" (after reboot)
EDIT:
Setting ecn to enabled/disabled works
"Default" just keeps the value as it is. (true or false)
Is that intended?
Have you looked at RSS as well?
I'm ready to provide any info you need for fixing the bug, that prevents your tool from reading out RSS values.
Get-NetAdapterRss shows "enabled true" after all ^^
Setting rss to false in the tool -> Get-NetAdapterRss still shows "enabled true" (after reboot)
EDIT:
Setting ecn to enabled/disabled works
"Default" just keeps the value as it is. (true or false)
Is that intended?
Can you post a screenshot of command prompt: netsh int tcp show global
If it doesn't have lines for "Receive-Side Scaling State", or "Receive Segment Coalescing State" they will not show at program start. This is likely OS-version, or NIC dependent.
The program should still apply the settings, if available.
If it doesn't have lines for "Receive-Side Scaling State", or "Receive Segment Coalescing State" they will not show at program start. This is likely OS-version, or NIC dependent.
The program should still apply the settings, if available.
Philip wrote:Can you post a screenshot of command prompt: netsh int tcp show global
If it doesn't have lines for "Receive-Side Scaling State", or "Receive Segment Coalescing State" they will not show at program start. This is likely OS-version, or NIC dependent.
The program should still apply the settings, if available.
Ashdaw, I would put your advertised connection speed in the TCP Optimizer. With Windows 10, it won't make much difference. As to "Cubic" vs "CTCP" they are the two best choices currently, both are good, you can use either.Ashdaw wrote:I just downloaded the latest 4.08 and I am wondering if I should be changing the CTCP to Cubic?
One other thing, would it be advantageous to change the connection speed to 100Mbps?
Linux is user friendly, it's just picky about its friends...
Disclaimer: Please use caution when opening messages, my grasp on reality may have shaken loose during transmission (going on rusty memory circuits). I also eat whatever crayons are put in front of me.
๑۩۞۩๑
Disclaimer: Please use caution when opening messages, my grasp on reality may have shaken loose during transmission (going on rusty memory circuits). I also eat whatever crayons are put in front of me.
๑۩۞۩๑
The program reads them in your native Windows language, it shows empty if it does not recognize the setting. It will still apply the settings correctly, it just wont read the RSS/RSC on program start because of the language difference. We may add those translations in the next version, thanks for the screenshots.Djfe wrote:For me those settings are the first two entries (I think)
I'm not sure whether your programm gets them in english or german though (when relying on powershell)
Doesn't make any difference sadly
seems like MS kinda screwed up there for netsh
And you definitely aren't the only one puzzled by that
Even this doesn't work:
https://itworldjd.wordpress.com/2013/11 ... -language/
(I found lots of stackoverflow threads and stuff like that
Even the go language had to work around it haha
https://github.com/golang/go/issues/14859
https://go-review.googlesource.com/c/go/+/20865
https://go-review.googlesource.com/c/go/+/21195)
But they don't seem to be willing to change it's functionality anymore.
https://docs.microsoft.com/en-us/window ... etsh/netsh
There are lots of available APIs
Especially
Get-NetOffloadGlobalSetting
seems to be ideal for getting global rss and rsc
seems like MS kinda screwed up there for netsh
And you definitely aren't the only one puzzled by that
Even this doesn't work:
https://itworldjd.wordpress.com/2013/11 ... -language/
(I found lots of stackoverflow threads and stuff like that
Even the go language had to work around it haha
https://github.com/golang/go/issues/14859
https://go-review.googlesource.com/c/go/+/20865
https://go-review.googlesource.com/c/go/+/21195)
But they don't seem to be willing to change it's functionality anymore.
https://docs.microsoft.com/en-us/window ... etsh/netsh
Are there infos you can't get with powershell/WMI right now?It is recommended that you use Windows PowerShell to manage networking technologies in Windows Server 2016 and Windows 10 rather than Network Shell. Network Shell is included for compatibility with your scripts, however, and its use is supported.
There are lots of available APIs
Code: Select all
Get-NetAdapter
Get-NetAdapterRsc
Get-NetAdapterRss
Get-NetOffloadGlobalSetting
Get-NetTCPSetting
Get-NetIPInterface
Get-NetOffloadGlobalSetting
seems to be ideal for getting global rss and rsc
Do the Powershell variants display their results in English?
Get-NetOffloadGlobalSetting
Get-NetAdapterRsc
Get-NetAdapterRss
The reason we were using netsh for some of the commands is backwards compatibility with Windows 7/8, there are different Powershell cmdlet implementation levels/bugs for each OS.
Get-NetOffloadGlobalSetting
Get-NetAdapterRsc
Get-NetAdapterRss
The reason we were using netsh for some of the commands is backwards compatibility with Windows 7/8, there are different Powershell cmdlet implementation levels/bugs for each OS.
Linux is user friendly, it's just picky about its friends...
Disclaimer: Please use caution when opening messages, my grasp on reality may have shaken loose during transmission (going on rusty memory circuits). I also eat whatever crayons are put in front of me.
๑۩۞۩๑
Disclaimer: Please use caution when opening messages, my grasp on reality may have shaken loose during transmission (going on rusty memory circuits). I also eat whatever crayons are put in front of me.
๑۩۞۩๑
I think I found the "solution" urgh (for netsh anyways)
Microsoft saves all those strings in the corresponding ressource files, the dlls
in this case probably "netshell.dll"
How did I find this out?
First things I found out
https://u-tools.com/help/RemoteMgmtServer.asp
https://social.technet.microsoft.com/Fo ... erversetup
https://docs.microsoft.com/de-de/previo ... t_grouping
https://docs.microsoft.com/de-de/previo ... oup-string
https://stackoverflow.com/questions/423 ... ect-string
https://books.google.de/books?id=2u-34S ... gs&f=false
All interesting but not about netsh, yet.
But it's likely that it will work this way with netsh as well.
The relevant links (to solving this problem) tl;dr
https://blogs.msdn.microsoft.com/oldnew ... 00/?p=8243
https://blogs.msdn.microsoft.com/oldnew ... /?p=40813/
https://docs.microsoft.com/de-de/window ... edirection
https://docs.microsoft.com/de-de/window ... ed-strings
searching with regedit for "netshell.dll,-" also reveals what some of the localized strings are (String and id); but also some ids for icons
(the relevant strings don't seem to be duplicated in the registry, but you could use the code described in above scripts to find the ids you need)
maybe relevant(?)
http://www.jasinskionline.com/windowsap ... angid.html
https://xpdll.nirsoft.net/netshell_dll.html (maybe xp didn't include the relevant strings, yet? apart from that important table!)
YESSSS! SUCCESSS!!! Found the sneaky bastard.
https://www.win7dll.info/netiohlp_dll.html
Or the newer dll (Win10): http://windows10dll.nirsoft.net/netiohlp_dll.html
ID:4478
If you need backwards compatibility to older OSes, then you should use the commands from above to get the localized string from netiohlp.dll (to be able to parse, in which line which result is printed)
I just saw, that you answered already, here's what it looks like:
seems like my network adapters don't support rsc (it's enabled globally in the OS though)
Microsoft saves all those strings in the corresponding ressource files, the dlls
in this case probably "netshell.dll"
How did I find this out?
First things I found out
https://u-tools.com/help/RemoteMgmtServer.asp
https://social.technet.microsoft.com/Fo ... erversetup
https://docs.microsoft.com/de-de/previo ... t_grouping
https://docs.microsoft.com/de-de/previo ... oup-string
https://stackoverflow.com/questions/423 ... ect-string
https://books.google.de/books?id=2u-34S ... gs&f=false
All interesting but not about netsh, yet.
But it's likely that it will work this way with netsh as well.
The relevant links (to solving this problem) tl;dr
https://blogs.msdn.microsoft.com/oldnew ... 00/?p=8243
https://blogs.msdn.microsoft.com/oldnew ... /?p=40813/
https://docs.microsoft.com/de-de/window ... edirection
https://docs.microsoft.com/de-de/window ... ed-strings
searching with regedit for "netshell.dll,-" also reveals what some of the localized strings are (String and id); but also some ids for icons
(the relevant strings don't seem to be duplicated in the registry, but you could use the code described in above scripts to find the ids you need)
maybe relevant(?)
http://www.jasinskionline.com/windowsap ... angid.html
https://xpdll.nirsoft.net/netshell_dll.html (maybe xp didn't include the relevant strings, yet? apart from that important table!)
YESSSS! SUCCESSS!!! Found the sneaky bastard.
https://www.win7dll.info/netiohlp_dll.html
Or the newer dll (Win10): http://windows10dll.nirsoft.net/netiohlp_dll.html
ID:4478
Code: Select all
---------------------------------------------- Receive-Side Scaling State : %1!s! Chimney Offload State : %2!s! NetDMA State : %7!s! Direct Cache Acess (DCA) : %8!s! Receive Window Auto-Tuning Level : %3!s! Add-On Congestion Control Provider : %4!s! ECN Capability : %5!s! RFC 1323 Timestamps : %6!s!
I just saw, that you answered already, here's what it looks like:
seems like my network adapters don't support rsc (it's enabled globally in the OS though)
We may have to change the way the program reads RSS and RSC at startup, we just have to test which OSes are compatible (and correctly display) Get-NetOffloadGlobalSetting.
Some Windows versions/builds had discrepancies in what is returned with netsh vs PowerShell cmdlets for some of the settings, hence the mixture of methods used by the program. We will likely resort to using PowerShell, at least for newer OS variants.
Some Windows versions/builds had discrepancies in what is returned with netsh vs PowerShell cmdlets for some of the settings, hence the mixture of methods used by the program. We will likely resort to using PowerShell, at least for newer OS variants.
The TCP Optimizer has been updated to version 4.0.9.
It now reads RSS and RSC at startup via PowerShell. We also changed the way they are applied to the global PowerShell setting. The recommended optimal RSC setting was changed to "disabled" as well, as it is better disabled for gaming/latency and Wi-Fi adapters.
Djfe and ukue, please confirm if it now correctly reads RSS and RSC on startup with your international Windows variants? Thanks in advance.
It now reads RSS and RSC at startup via PowerShell. We also changed the way they are applied to the global PowerShell setting. The recommended optimal RSC setting was changed to "disabled" as well, as it is better disabled for gaming/latency and Wi-Fi adapters.
Djfe and ukue, please confirm if it now correctly reads RSS and RSC on startup with your international Windows variants? Thanks in advance.
It works now! thank you so much for your work!!Philip wrote:The TCP Optimizer has been updated to version 4.0.9.
It now reads RSS and RSC at startup via PowerShell. We also changed the way they are applied to the global PowerShell setting. The recommended optimal RSC setting was changed to "disabled" as well, as it is better disabled for gaming/latency and Wi-Fi adapters.
Djfe and ukue, please confirm if it now correctly reads RSS and RSC on startup with your international Windows variants? Thanks in advance.
Not all adapters support LSO.. What is the ouput of this PowerShell cmdlet in your system?MagikMark wrote:Philip,
Can we also check the LSO. In my case it doesn't read it right in Windows 10 PRO x64. Tried experimenting with it. Enabled it using poweshell and the app still reads it as "disabled"
Get-NetAdapterLso -Name *
Thanks for the info. The build number is correct (17134.254), just the "Enterprise" wording is incorrect.
Seems this is a Microsoft omission. Reading from the Windows Registry, the 32-bit location of "ProductName" shows the correct "Windows 10 Pro" wording, while the 64-bit equivalent shows "Windows 10 Enteprise" :
32-bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
64-bit: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\ProductName
Seems this is a Microsoft omission. Reading from the Windows Registry, the 32-bit location of "ProductName" shows the correct "Windows 10 Pro" wording, while the 64-bit equivalent shows "Windows 10 Enteprise" :
32-bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
64-bit: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\ProductName
My download of this tool has the apply link greyed out. My Optimizer looks like the ones already posted with the apply link greyed out. Is this supposed to be that color, or should this novice click elsewhere?Philip wrote:It has been updated to properly read "Pro" instead of "Enterprise", if you re-download the exe from our site. There are no functionality changes, so the program version was not changed from 4.0.9.
You need to choose settings first
by selecting checkboxes at the bottom of the program
Optimal is a profile that selects the values of which the author of this program thinks that they are more optimal than the default ones of windows
Custom allows you to set each variable to values that you prefer
you can also do optimal first, then apply it and then customize it afterwards
by selecting checkboxes at the bottom of the program
Optimal is a profile that selects the values of which the author of this program thinks that they are more optimal than the default ones of windows
Custom allows you to set each variable to values that you prefer
you can also do optimal first, then apply it and then customize it afterwards
Thanks. That worked. Now to test the program. Should any visible changes be noticed?Djfe wrote:You need to choose settings first
by selecting checkboxes at the bottom of the program
Optimal is a profile that selects the values of which the author of this program thinks that they are more optimal than the default ones of windows
Custom allows you to set each variable to values that you prefer
you can also do optimal first, then apply it and then customize it afterwards
How visible the changes are depends on your line. Problematic connections, older OSes, in the presence of packet loss, etc. will have a more visible change right away. Fast, working connections, close to the advertised speed limit will only see visible difference in connections to more distant servers even though the connection is better optimized on your end.horseshoe wrote:Thanks. That worked. Now to test the program. Should any visible changes be noticed?
Hello vgchat,
It is 100+ Mbps, including 1GBps. The same settings are applied for 100Mbps and up. The only difference would be bumping the TCP Window auto-tuning algorithm even higher (from "normal" to "experimental"), nut we've found that it makes PCs unstable in high-speed transfers, as it can consume too much memory unnecessarily, and it also causes issues with local LAN shares transfers.
It is 100+ Mbps, including 1GBps. The same settings are applied for 100Mbps and up. The only difference would be bumping the TCP Window auto-tuning algorithm even higher (from "normal" to "experimental"), nut we've found that it makes PCs unstable in high-speed transfers, as it can consume too much memory unnecessarily, and it also causes issues with local LAN shares transfers.
Linux is user friendly, it's just picky about its friends...
Disclaimer: Please use caution when opening messages, my grasp on reality may have shaken loose during transmission (going on rusty memory circuits). I also eat whatever crayons are put in front of me.
๑۩۞۩๑
Disclaimer: Please use caution when opening messages, my grasp on reality may have shaken loose during transmission (going on rusty memory circuits). I also eat whatever crayons are put in front of me.
๑۩۞۩๑