When Windows operating system is connected to high speed broadband Internet connection, there may be some incompatibilities and conflict problem or error such as the following:

  • 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

  1. Open elevated command prompt with administrator’s privileges.
  2. 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 : 2

    Note: Some earlier versions of Windows such as Windows Vista may be missing some parameters.

Disable TCP Receive Windows Auto-Tuning

  1. Open elevated command prompt with administrator’s privileges.
  2. Type the following command and press Enter:
    netsh interface tcp set global autotuning=disabled

Enable TCP Receive Windows Auto-Tuning

  1. Open elevated command prompt with administrator’s privileges.
  2. Type the following command and press Enter:
    netsh interface tcp set global autotuning=normal
Note
If you’re getting the following message when querying TCP Global Parameters, it means that Windows Scaling heuristics configuration is enabled and “restricted” or “highlyrestricted” value been applied to Receive Window Auto-Tuning Level setting indirectly.

** 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.