Windows-Server-2008

排查大量 TCP 重傳/dup ack/段失去

  • March 15, 2016

我遇到了 RDC 緩慢爬行或完全斷開連接的問題。客戶端是帶 RDC 6 的 XP SP3,伺服器是 Win 2k8 R2。兩者都經過徹底掃描,發現沒有病毒。

我在客戶端電腦上下載並安裝了 Wireshark,並在 RDC 會話期間執行了數據包擷取。日誌顯示在正常使用期間每分鐘至少有 10-20 次重新傳輸/重複確認/分段失去。然後,當我斷開連接時,它每秒會飆升到幾十個。

僅供參考,我對 Wireshark 工具或如何對這個問題進行全面分析知之甚少。

** 編輯 **

關於我的網路架構的一點:

客戶 -

  • 12 Mb 向下,1Mb 向上
  • 1 台筆記型電腦直接連接到調製解調器 - 或 - 通過 Linksys DSL 電話盒插入(我已經嘗試過這種方式,沒有任何變化)
  • 位於以色列。那裡的電信服務分為基礎設施和ISP,基礎設施由HOT提供,ISP由Netvision提供。

伺服器 -

  • 5 Mb 向下,5 Mb 向上
  • 中型網路/數據/應用託管網路,使用 Allied Telesyn AR410 路由
  • 位於加利福尼亞州(美國)。ISP 是 Call America。

其他遠端客戶端連接到伺服器沒有問題(速度或斷開連接)。在客戶端位置使用了其他幾台筆記型電腦,以驗證這不是硬體問題。電纜調製解調器也已更換。

可能沒有足夠的資訊,但這裡有一些一般性指導:

如果其他遠端客戶端都正常且沒有出現此症狀,則問題可能與伺服器無關。它可能是該客戶端的連接。

重傳通常意味著數據包未被確認,因此數據包擷取中通常不會出現實際的“錯誤”。這意味著一端正在發送數據包,而另一端未得到確認。您可能希望從兩端執行擷取,以確定重傳是單向還是雙向。

如果從客戶端 ping 主機,響應時間是多少?如果超過 150 毫秒,則您的連接可能欠佳。

應該禁用大型發送解除安裝的伺服器網路適配器設置。Windows 應該足夠聰明,知道它不能向不同子網上的機器發送大數據包,但遺憾的是,情況並非總是如此。如果您的伺服器是 hyper-v 來賓,這幾乎肯定是問題所在。

MTU。一般來說,當您不在同一個子網時遠端訪問伺服器,MTU 應該始終是兩個端點之間的最小 MTU。這通常意味著客戶。對於通過 VPN 連接的遠端客戶端,MTU 為 1400 甚至更低的情況並不少見。將伺服器 MTU 設置為與最低 MTU 匹配可能是有益的,以避免無法正確發現 MTU 的問題(有時稱為黑洞路由器)。要查找連接的 MTU,您可以從客戶端輸入以下命令:

ping -f -l xxxx <server ip>

其中 xxxx 是 MTU 大小。從 1400 開始。如果有效,則增加它,直到顯示消息“數據包需要分段但 DF 已設置”。如果 1400 不起作用,請減少它直到它起作用。有效的最高數字是您的有效負載大小。將 28 添加到有效負載大小,這就是您的 MTU。

您可以在以下系統資料庫​​位置設置伺服器 MTU:

HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\{guid of the network adapter}  

僅供參考 - RDP 數據包總是在設置“不分片”位的情況下發送。

引用自:https://serverfault.com/questions/340223