Windows Server 2019 TCP連線很慢

2021-03-12

原因

因為Explicit Congestion Notification(ECN)預設開啟

解決辦法

Windows

檢查ECN狀態

1
netsh int tcp show global

關閉ECN

1
netsh interface tcp set global ecncapability=disabled

開啟ECN

1
netsh interface tcp set global ecncapability=enabled

Linux

檢查ECN狀態

1
cat /proc/sys/net/ipv4/tcp_ecn

開啟/關閉ECN

1
sudo sysctl -w net.ipv4.tcp_ecn=0
  • 0 : 禁用ECN,不發起也不接受
  • 1 : 啟用ECN,當傳入連接請求時,並也在傳出連接時嘗試請求ECN
  • 2 : (預設)傳入連接請求時啟用ECN,但不在傳出連接上請求ECN

Reference

[1] Explicit Congestion Notification

[2] https://www.bufferbloat.net/projects/cerowrt/wiki/Enable_ECN/