- Poor intermittent network performance.
- Slow network loading.
- Unable to open and load some websites or webpages using Internet Explorer or Firefox, where the blue loading bar keeps running for a long time, but the pages fail to load.
- Java applets fail to download and open.
- Cannot receive email or download from POP3 mail server by email clients such as Thunderbird. No mail arrived although users may see the message “receiving 1 of 3 messages”, and eventually the receiving process will time out with the error number 0x800CCC19 timeout.
- Slow email sending or retrieval using Thunderbird and other clients.
The symptoms exist due to the new re-written TCP stack introduced since Windows Vista that aims to take full advantage of hardware advances such as gigabit networking. Among the new feature in Windows TCP/IP is Receive Window Auto-Tuning Level for TCP connections. TCP AutoTuning enables TCP window scaling by default and automatically tunes the TCP receive window size for each individual connection based on the bandwidth delay product (BDP) and the rate at which the application reads data from the connection, and no longer need to manually change TcpWindowSize registry key value which applies to all connection. Theoretically, with TCP auto-tuning, network connection throughput in Windows should be improved for best performance and efficiency, without registry tweak or hack. However, this is not always the case, and may cause some Internet related issues and problems.
The workaround or solution to the above problem is to disable the TCP/IP AutoTuning in Windows. Disabling auto tuning of TCP Windows Size should not cause any negative effects, only that TCP Window Size will always at default value without ability to optimization to each connection. Anyway, if there is any side effect after turn off auto tuning, simply re-enable back it.
Check the State or Current Setting of TCP Receive Window Auto-Tuning
- Open elevated command prompt with administrator’s privileges.
- Type the following command and press Enter:
netsh interface tcp show global
The system will display the following text on screen, where you can check on the Auto-Tuning setting:
Querying active state…
TCP Global Parameters
———————————————-
Receive-Side Scaling State : enabled
Chimney Offload State : disabled
NetDMA State : disabled
Direct Cache Access (DCA) : disabled
Receive Window Auto-Tuning Level : normal
Add-On Congestion Control Provider : none
ECN Capability : disabled
RFC 1323 Timestamps : disabled
Initial RTO : 3000
Receive Segment Coalescing State : disabled
Non Sack Rtt Resiliency : disabled
Max SYN Retransmissions : 2Note: Some earlier versions of Windows such as Windows Vista may be missing some parameters.
Disable TCP Receive Windows Auto-Tuning
- Open elevated command prompt with administrator’s privileges.
- Type the following command and press Enter:
netsh interface tcp set global autotuning=disabled
Enable TCP Receive Windows Auto-Tuning
- Open elevated command prompt with administrator’s privileges.
- Type the following command and press Enter:
netsh interface tcp set global autotuning=normal
** The above autotuninglevel setting is the result of Windows Scaling heuristics overriding any local/policy configuration on at least one profile.
Both “restricted” or “highlyrestricted” settings limit the ability of receive window to grow beyond its default value.
Check and view the TCP Window Scaling Heuristics Parameters
netsh interface tcp show heuristics
Disable TCP Window Scaling Heuristics
netsh interface tcp set heuristics disabled
The trick works in most Windows versions, including Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 and later.
The same settings can also potentially increases the download speed.