TCP Optimizer version 3.0.2 released (Windows 7/Vista support !)
I'd like to announce the release of TCP Optimizer version 3.0.2 today, including Windows 7/Vista/Server 2008 support, as well as continued support for older Windows versions (9x/XP/2000/2k3 Server) and many minor improvements/fixes.
This version 3.0.2 is now the latest stable release.
It can be downloaded from the same location as previous releases:
Please post bug reports, comments and feedback about the release in this thread.
For any personal questions, help with tuning your connection, please start a new thread with your current settings and enough information so we can help you.
The online documentation is not yet updated with all new settings, but available here: TCP Optimizer Documentation
The documentation includes a changelog as well.
You can view previous updates and past issues with the program in the following threads:
version 3.0/3.0.1
version 2.0.3
version 2.0.2 final version 2.0.2 RC2 version 2.0.2 RC1 version 2.0.2 beta
version 2.0.1 final
version 2.0.0 final version 2 beta
Changes from version 3.0.1:
- added "Dynamic port allocation" (MaxUserPort, TcpTimedWaitDelay) for Windows XP/2003
- added "Checksum Offloading" (DisableTaskOffload) setting for Windows 7/Vista/2008/XP/2k3
- added a "Copy current settings" option to the File menu for easy sharing of current settings (forum posting, etc.)
- fixed incorrect error message under Chinese versions of Windows 7 x86.
Windows 7 64 bit and netsh
Update: July21, 2010
Not comfortable with double posting so I will just tack this on here.
Bug Report:
Verified that Windows 7 x64 ((traced with Sysinternals SysMon) executes from as a 32-bit Administrator - "C:\Windows\SysWOW64\netsh.exe with the following Result "FAST IO DISALLOWED" i.e. it is not being allowed to enter kernel-mode to make changes to the persistent settings, only changing current settings. Upon a reboot reverts to stored settings.
Its my opinion that this is due to changes Microsoft made to the Windows 7 and Server2008 R2 Kernel see:
Removal of Windows Registry Reflection
Platform
Clients - Windows 7
Servers - Windows Server 2008 R2
This bug will not effect any previous versions of Windows XP, Vista, or the 32 bit version of Windows 7 x86.
Possible solutions can be found at this Windows Developer page.
As far as my verification goes, I can only say for sure that it effects my two Windows 7 Ultimate x64 machines, and my Virtual Test Server 2008 R2 Standard. The work around I suggest elsewhere in this post should correct any problems until a fix is available.
(Original Post) below:
Hi I am new to the forum, so first off let me thank those responsible for bringing this program to life.
When you try and update windows 64 bit, for some reason it is executing the netsh commands from a 32 bit command prompt. In essence what is happening is that when you execute the set global command, it is changing the ip4v settings but unable to update the active ipv6 settings or the persistent store at all.
The results can be reproduced by executing the commands in an x86 administrator Powershell session. If you go to a x64 administrator powershell or an administrator command prompt (cmd.exe from the system32 directory run as administrator) you can run the following commands successfully and have no further problems.
netsh int tcp set global chimney=enable
netsh int tcp set global ecncapability=enabled
netsh int tcp set global congestionprovider=ctcp
If you need to edit any of the other parameters read the Windows 7, Vista, 2008 Tweaks article by Philip it explains everything.
Below is the netsh help for set global for reference:
Usage: set global
[[rss=]disabled|enabled|default]
[[chimney=]disabled|enabled|default]
[[autotuninglevel=]disabled|highlyrestricted|restricted|normal|experimental]
[[congestionprovider=]none|ctcp|default]
[[netdma=]disabled|enabled|default]
[[dca=]disabled|enabled|default]
[[ecncapability=]disabled|enabled|default]
[[timestamps=]disabled|enabled|default]
Parameters:
Tag Value
rss - One of the following values:
disabled: Disable receive-side scaling.
enabled : Enable receive-side scaling.
default : Restore receive-side scaling state to the system default.
chimney - One of the following values:
disabled: Disable Chimney offload.
enabled : Enable Chimney offload.
automatic: Enable Chimney offload with performance heuristics.
default : Restore Chimney offload state to the system default (automatic).
autotuninglevel - One of the following values:
disabled: Fix the receive window at its default value.
highlyrestricted: Allow the receive window to grow beyond its default value, but do so very conservatively.
restricted: Allow the receive window to grow beyond its default value, but limit such growth in some scenarios.
normal: Allow the receive window to grow to accomodate almost all scenarios.
experimental: Allow the receive window to grow to accomodate extreme scenarios.
congestionprovider - One of the following values:
none: Use the built-in standard congestion control algorithm.
ctcp: Use the add-on Compound TCP congestion control algorithm.
default: Restore the selected provider to the system default.
netdma - One of the following values:
disabled: Disable use of NetDMA by TCP/IP.
enabled : Enable use of NetDMA by TCP/IP.
default : Restore state to the system default (enabled).
dca - One of the following values:
disabled: Disable Direct Cache Access when using NetDMA.
enabled : Enable Direct Cache Access when using NetDMA.
default : Restore state to the system default (disabled).
ecncapability - One of the following values:
disabled: Disable ECN Capability.
enabled : Enable ECN Capability.
default : Restore state to the system default.
timestamps - One of the following values:
disabled: Disable RFC 1323 timestamps.
enabled: Enable RFC 1323 timestamps.
default: Restore state to the system default.
Remarks: Sets TCP parameters that affect all connections.
Example:
set global enabled enabled normal
set global rss=enabled chimney=enabled autotuninglevel=normal
Philip is looking into it.
No that is not exactly what I am saying. It does not work at the moment but it should be able to with a bit of modification. Specifically if you look at the reference for Wow64 best practices. Windows 7 and Server 2008 Kernel was modified and certain things have changed. To compensate for those changes a new command is available Sysnative, which allows a 32 bit caller on 64 bit hardware. In other words it allows the 64 bit commands to be executed from C:\Windows\System32. It is on page 9 of the document.
Philip is looking in to it and I am confident that he will have a solution soon.