windows server 2012R2發起建立TCP連接特別慢的原因





windows server 2012R2發起建立TCP連接,有時會特別慢。下載一個http頁面需要9秒多。


通過網絡抓包,可以發現,建立連接前重發了三次[SYN, ECN, CWR],每次3秒正好9秒,然後改用標準的[SYN, ACK],很快就收到迴應。

258 12.389716000 192.168.1.7 61.135.162.10 TCP 66 59114→80 [SYN, ECN, CWR] Seq=0 Win=8192 Len=0 MSS=1464 WS=256 SACK_PERM=1
337 15.393902000 192.168.1.7 61.135.162.10 TCP 66 [TCP Retransmission] 59114→80 [SYN, ECN, CWR] Seq=0 Win=8192 Len=0 MSS=1464 WS=256 SACK_PERM=1
449 21.390862000 192.168.1.7 61.135.162.10 TCP 62 [TCP Retransmission] 59114→80 [SYN] Seq=0 Win=8192 Len=0 MSS=1464 SACK_PERM=1
450 21.417300000 61.135.162.10 192.168.1.7 TCP 62 80→59114 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1440 SACK_PERM=1
451 21.417341000 192.168.1.72 61.135.162.10 TCP 54 59114→80 [ACK] Seq=1 Ack=1 Win=64800 Len=0

原來,2012默認是啓用ecn,如果我們把2012當作臺式機上網,即便訪問的網站支持ecn,但我們上網設備(寬帶路由器等)大多不支持ecn,
就會導致每次都要重試三次。

解決辦法也很簡單,執行下面命令禁止即可。

netsh interface tcp set global ecncapability=disabled


但是對於託管在機房的服務器,則不建議禁止,因爲對於服務器一般不需要主動發起連接,
即便發起連接也是經過機房的路由器大多支持ecn。

ecn可以在網絡發生擁堵時,改善網絡利用率。詳細可見

https://technet.microsoft.com/en-us/library/bb878122.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章