Windows TCP Window Auto-tuning
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
normal | scale factor 8 | Set the TCP receive window to grow to accommodate almost all scenarios. | |
disabled | Set the TCP receive window at its default value. | ||
restricted | scale factor 4 | Set the TCP receive window to grow beyond its default value, but limit such growth in some scenarios. | |
highrestricted | scale factor 2 | Set the TCP receive window to grow beyond its default value, but do so very conservatively. | |
experimental | scale factor 14 |
|
100Mbps± 라인에서는 64bytes의 윈도우 사이즈로 어떻게든 다 커버가 되지만,
레이턴시가 높은 환경이나, 10G 환경에서는 적절히 조절할 필요가 있어보인다.