高速下載大檔案時無線流量停止:封包遺失(Linksys WRT120N 路由器)

高速下載大檔案時無線流量停止:封包遺失(Linksys WRT120N 路由器)

問題

注意:首先我想了解為什麼會發生這種情況。當然,如果有一個解決方案也很好。 :)

當透過 HTTP 高速下載大檔案時,我的無線流量基本上停止:我無法開啟網頁,下載本身也會暫停。它在啟動後幾乎立即暫停;有時為 800 KB,有時為幾 MB。一段時間後,下載(和其他流量)恢復,但在同一下載過程中問題不斷重複出現。

透過同一路由器 (Linskys WRT120N) 使用有線連接時不會出現此問題。另請注意,連接是不是發生這種情況時掉落。只是流量停止,無法瀏覽網頁等(發送了SYN資料包但沒有收到任何內容等)

使用 Wireshark 檢查顯示發生以下情況:

  1. 伺服器發送資料包並得到客戶端的確認
  2. 伺服器發送資料包,但 SEQ 指示某些資料包遺失(一次出現 6 個資料包)。
  3. 伺服器發送更多資料包,客戶端使用「選擇性確認」來確認這些資料包
  4. 伺服器停止發送資料一段時間(因為遺失的資料包沒有被確認)或者路由器停止轉發它們?
  5. 最終,伺服器進行「重傳」並且流量恢復正常。

當發生資料包遺失時,這對我來說似乎是正常行為。讓我困惑的是在一次大型高速下載過程中持續出現的資料包遺失。

什麼可能導致這種情況?

我自己的想法如下:我的互聯網速度非常快(100 mbps),因此當開始大文件下載時,路由器會緩衝傳入的數據(因為無線會引入一些輕微的延遲/速度較低,部分原因是其他網路) ,但是緩衝區溢位並且路由器丟棄資料包以調節流量(並且因為它別無選擇)。

但怎麼會發生這種事呢? TCP 視窗大小不會限制未確認的資料量嗎?那麼,如果只有 64 KB 等待確認,路由器的緩衝區怎麼會溢位呢?

筆記:我已經透過netsh選項停用了 TCP 視窗縮放和動態視窗大小,試圖解決此問題,但這似乎並不重要。

也,Wireshark 顯示伺服器發送 2 個資料包(1514 位元組)並且客戶端發送 ACK 的模式,那麼這是否排除了可能的緩衝區溢位?還有一些後續資料包已收到...

我在這裡不知所措。感謝您的任何見解。

(可能)不是原因/我已經嘗試過的事情

  • 瀏覽器
  • Windows 7 中的各種 TCP 選項(netsh等)
  • 路由器設置,例如 MTU、信標間隔、UPnP...

答案1

解決方案

解決方案就是簡單地停用 WMM 支援在路由器設定中。顯然,出於某種原因,Linksys WRT120N WMM 支援在 Windows 7 無線系統中無法很好地發揮作用。

更多細節

通常,當問題發生時,流量最終會恢復(對於同一連接),就像封包在路由器排隊一段時間一樣。這些停頓通常會持續 40 秒或更長時間。說實話,我仍然感到困惑。

在此期間,無法建立其他(TCP)連線:當嘗試瀏覽網頁等時,筆記型電腦會發送SYN資料包,但不會有任何回應。但是,DNS 和 ARP 請求處理正常。

相關內容