An Update on Windows TCP AutoTuningLevel

Daniel Havey, Praveen Balasubramanian

Like all modern operating systems Windows has receive window auto-tuning to dynamically adjust the receive buffer size to the throughput and latency of the link. Disabling this feature will definitely limit your Internet speeds. Auto-tuning is consistent throughout all variants of TCP and present in all modern operating systems.   In the modern Internet the range of latencies and throughput speeds that must be accommodated is simply too large to manage statically and must be adjusted dynamically. If you have changed your AutoTuningLevel to disabled, please reset it to  normal in order to restore your Internet speeds using the following commands in an elevated command prompt:

PS C:\WINDOWS\system32> netsh int tcp set global autotuninglevel=normal

PS C:\WINDOWS\system32> netsh interface tcp show global
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
TCP Fast Open                        : enabled

Some of the confusion may have originated from a misinterpretation of a blog post which suggests disabling heuristics with the following command:

netsh interface tcp set heuristics disabled

Heuristics is a feature that can interfere with auto-tuning and disabling it can improve Internet speeds and in fact heuristics have already been disabled in Windows 8.1 and greater. Auto-Tuning on the other hand should NEVER be disabled.