Windows TCP Window Auto-tuning

(Last Updated On: May 31, 2020)

TCP autotuning
Windows 운영체제에서는 64bytes(65535)의 윈도우사이즈가 고정되어 사용되어졌다. 그래서 네트워크의 throughput이 제한될 수 있다? autotuning을 사용하면 이 문제를 해결할 수 있나?

윈도우 사이즈는 64KB 밖에 지원하지 않아, 이대로라면 100Mbps 박게 나오지 못 할 것이다. 그래서 RFC 1323 에서 생긴 Scale Factor 개념으로 64KB를 더 늘린다

TCP Throughput

Total achievable throughput in bytes = TCP receive window size in bytes * (1 / connection latency in seconds)

Command

netsh interface tcp set global autotuninglevel=<level>

Auto-tuning Level

normalscale factor 8Set the TCP receive window to grow to accommodate almost all scenarios.
disabledSet the TCP receive window at its default value.
restrictedscale factor 4Set the TCP receive window to grow beyond its default value, but limit such growth in some scenarios.
highrestrictedscale factor 2Set the TCP receive window to grow beyond its default value, but do so very conservatively.
experimentalscale factor 14
Set the TCP receive window to grow to accommodate extreme scenarios.

 

100Mbps± 라인에서는 64bytes의 윈도우 사이즈로 어떻게든 다 커버가 되지만,
레이턴시가 높은 환경이나, 10G 환경에서는  적절히 조절할 필요가 있어보인다.