Page 3 of 4
Posted: Tue Jun 26, 2018 2:21 am
by Djfe
Might be, though I've selected only one of them, after all (in the dialogue above)
The output:

Posted: Wed Jul 11, 2018 2:50 am
by Philip
We found a typo with applying the LargeSendOffload, it's been corrected in the latest TCP Optimizer version.
Posted: Wed Jul 11, 2018 5:15 am
by Djfe
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?
Posted: Wed Jul 11, 2018 12:05 pm
by Philip
"Default" applies the command as described in the MS documentation, some settings have "enabled/disabled/default" option. Will check RSS. Glad Lso is working as intended now.
Posted: Wed Jul 11, 2018 5:53 pm
by Philip
RSS at program start is read from:
netsh int tcp show global
Receive-Side Scaling State: enabled
Posted: Wed Jul 11, 2018 10:28 pm
by ukue
Still getting blank space in RSS and RSC current values
Posted: Thu Jul 12, 2018 12:43 am
by Philip
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.
Posted: Thu Jul 12, 2018 2:49 am
by Ashdaw
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?
The attachment Net.108.jpg is no longer available
Posted: Thu Jul 12, 2018 10:49 am
by ukue
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.

Posted: Thu Jul 12, 2018 11:53 am
by Djfe
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)
Posted: Thu Jul 12, 2018 12:15 pm
by Philip
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?
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.
Posted: Thu Jul 12, 2018 12:25 pm
by Philip
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)
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.
Posted: Fri Jul 13, 2018 9:18 am
by Ashdaw
Thanks Philip, I will do that.

Posted: Sat Jul 14, 2018 1:17 am
by Philip
ukue and Djfe, can you please try the following command in command prompt (not PowerShell):
chcp 437 && netsh int tcp show global
Does it show the results in English?
Thanks.
Posted: Mon Jul 16, 2018 2:52 pm
by ukue
Nope, It doesn't. It is in the OS language ( spanish in my case)
Posted: Tue Jul 17, 2018 1:07 am
by Djfe
I can confirm that.
It still displays the message in German for me
Posted: Wed Jul 18, 2018 11:58 pm
by Philip
What about when executed as two separate commands, i.e.
chcp 437 [ENTER]
netsh int tcp show global
If that doesn't work, I am afraid we'd have to parse the output for different languages to get it to display properly on program start :/
Posted: Thu Jul 19, 2018 1:57 am
by Djfe
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
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.
Are there infos you can't get with powershell/WMI right now?
There are lots of available APIs
Code: Select all
Get-NetAdapter
Get-NetAdapterRsc
Get-NetAdapterRss
Get-NetOffloadGlobalSetting
Get-NetTCPSetting
Get-NetIPInterface
Especially
Get-NetOffloadGlobalSetting
seems to be ideal for getting global rss and rsc
Posted: Thu Jul 19, 2018 2:12 am
by Philip
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.
Posted: Thu Jul 19, 2018 3:03 am
by Djfe
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
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!
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)
Posted: Thu Jul 19, 2018 3:12 am
by Djfe
Posted: Fri Jul 20, 2018 3:10 pm
by Philip
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.
Posted: Mon Jul 23, 2018 2:49 pm
by Philip
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.
Posted: Tue Jul 24, 2018 1:28 am
by Djfe
yes, it works

Posted: Tue Jul 24, 2018 4:58 am
by ukue
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.
It works now! thank you so much for your work!!
Posted: Tue Jul 24, 2018 11:35 am
by Philip
Thanks for the feedback, glad it's working now

Posted: Tue Jul 24, 2018 6:45 pm
by MagikMark
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"
Posted: Tue Jul 24, 2018 11:59 pm
by Ashdaw
The new version works really well Philip.

Posted: Thu Jul 26, 2018 10:53 am
by Philip
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"
Not all adapters support LSO.. What is the ouput of this PowerShell cmdlet in your system?
Get-NetAdapterLso -Name *
Posted: Fri Jul 27, 2018 7:42 pm
by MagikMark
I disabled it for now
Posted: Sun Jul 29, 2018 11:01 am
by Philip
MagikMark wrote:
I disabled it for now
Mark, this should be read correctly. In order for us to troubleshoot it further, can you please copy the command output and paste it into a text file, then email it to me ( philip @ sg ) ? Thanks.
Posted: Sat Sep 15, 2018 7:08 pm
by erpguy2
one minor problem with latest version of TCP Optimizer. It seems to "mis-identify" Windows 10 Pro v1803 as "Windows 10 Enterprise build 17134" on one of my computers
it should be updated to correctly recognize the proper edition of Win10 v1803 RS4 version
Posted: Sun Sep 16, 2018 9:45 am
by Philip
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
Posted: Sun Sep 16, 2018 4:01 pm
by Philip
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.
Posted: Tue Dec 18, 2018 5:46 pm
by horseshoe
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.
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?
Posted: Tue Dec 18, 2018 6:29 pm
by Djfe
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

Posted: Tue Dec 18, 2018 6:55 pm
by horseshoe
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
Thanks. That worked. Now to test the program. Should any visible changes be noticed?
Posted: Wed Dec 19, 2018 9:43 am
by Philip
horseshoe wrote:Thanks. That worked. Now to test the program. Should any visible changes be noticed?
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.
Posted: Fri Dec 21, 2018 3:33 pm
by vgchat
Hey there, this tool needs upgrading... since it can only optimize for up to 100 mbps. What about those of us on 1GB speeds?
Posted: Sat Dec 22, 2018 9:39 am
by Philip
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.