uTorrent 偶爾會導致 DNS 停止運作

uTorrent 偶爾會導致 DNS 停止運作

使用 uTorrent 時,DNS 會定期停止回應。

這個問題似乎與頻寬使用過多無關(從路由器到電腦),但可能與路由器提供的某種形式的洪水保護有關(到路由器的傳入連接多於 Windows 可接受的連接)。

如何讓網路正常運作(當然,同時仍然能夠使用 uTorrent)?

答案1

比特流客戶端積極與同行建立聯繫……有些路由器將此解釋為 syn-flood。


開啟連接

當 uTorrent 載入且上傳/下載暫停(未停止)時,它會與您的同伴保持開放連線。同時,大量的網路同行仍然會嘗試與您聯繫,以了解您是否擁有他們想要的資訊。

最終,您將達到作業系統施加的開放連線限制(在 Windows 7 中為 10 個連線),來自新用戶端的連線將開始在您的路由器上排隊。

排隊的客戶端將積極檢查連線是否空閒。這種激進的輪詢可能被解釋為路由器的 syn-flood 攻擊。

解決方案

  • 將 Bittorent 軟體中的半開連線限制降低到作業系統施加的連線限制以下
  • 停用路由器/數據機上的 IP 泛洪保護。

頻寬飽和度

此外,當 uTorrent(或任何大容量流量)連接不受限制地運行時,上傳(可能還包括下載)管道會達到完全使用,迫使一些「維護」流量退居二線,最終降低網路實用性。

這是一個例子:

  1. 高速下載(torrent 或其他方式)使下游連結飽和。
  2. 使用者嘗試瀏覽最近未造訪過的網站。電腦產生所需網站的 DNS 資訊請求。向 DNS 伺服器的請求「上傳」成功(上游管道存取不受挑戰)。
  3. DNS 伺服器回應(或嘗試回應),但回應在嘗試到達使用者電腦時被掛起,因為下載管道已被下載內容飽和,並且由於必須刪除某些內容,並且下載會積極保持速度,因此DNS 回應被丟棄(在到達本機路由器之前的某個時刻)。

如果上傳不受限制,也會發生同樣的情況。隨著上傳飽和,稱為 TCP-ACK 的封包(以「嘿,我成功收到封包 xyz」類型回應的形式發送)被掛起,導致下載停止,導致網頁瀏覽變得非常不穩定。

解決方案

  • 弄清楚連線的最大能力是多少(分別向上和向下),並將批量傳輸客戶端的最大速度設定為不使用超過該速度的 80% 左右。這將為 DNS 和 TCP-ACK 封包等內容留下“空間”,以繞過大量流量並快速處理。
  • 使用可以處理流量整形的路由器,以便某些流量(DNS、IMCP Ping、TCP-ACK)可以優先於其他形式的流量,並且可以取消某些形式的流量(特別是 torrent)的優先權。這是我的首選方法。這可以提供額外的好處,即當較高優先級流量不對其提出挑戰時,允許完整的上行和下行管道可用於 torrent 流量。
  • 使用 1 和 2 的某種組合來抑制「行為不當」的流量。

如果對 Linux/BSD 發行版流量整形的更多資訊感興趣,單一牆工控警察兩者都有一些很好的資訊。

答案2

當我有這樣的事情時,Wireshark是我最好的朋友。

但首先最好先認識以下三件事:

  • ping 工作正常並不意味著 DNS(或任何其他服務)運作正常,反之亦然。

    這是因為 ping 在完全不同的網路模型層級上使用完全不同的協定(ICMP,而 DNS 使用 IP 以及 UDP 和 TCP 的組合)。從您的個人防火牆到路由器數量,再到運行服務的實際主機,任何東西都可能被配置為丟棄其中一個而不是另一個(無論是管理員的偏執還是某些失敗情況),儘管它通常發生在ICMP 上而不是其他人上

  • 一般來說,最好弄清楚是您的 (DNS) 請求還是回覆遺失了。

    好吧,您使用的特定程式應該會讓您清楚這一點,但作為一般規則,您自己在 Wireshark GUI 中看到它會更容易:)

  • 正如我所提到的,DNS 通常使用 UDP 作為傳遞請求和回應內容的方式。

    與它的兄弟 TCP 相比,UDP 的定義方式是:沒有保證 資料包將被傳送,並且路由器不必(也不可以)做任何事情來讓您知道失敗。 (這是對UDP 另一個功能的犧牲:它的速度快得令人難以置信。路由器不必保留有關發送者或數據包順序的任何信息,它們只是快速傳遞並忘記它。它們甚至可以相當安全地給予它們比TCP。

通常我要做的第一件事是:

  1. 啟動 Wireshark
  2. 按一下捕獲選項
  3. 對於擷取過濾器,設定host 1.2.3.4為確保您僅擷取您與 1.2.3.4 之間的流量
  4. 開始捕捉
  5. 一旦你以這種方式全部啟動,請嘗試你的命令

然而,根據您上次的更新:我不知道這個軟體,但我肯定懷疑 uTorrent 用戶端。應用程式可能會發送過多的 UDP,例如,您的家庭路由器達到了某些限制,並且它開始丟棄 UDP 封包。

答案3

我會嘗試GRC 的 DNS 基準工具。它測試您配置使用的 DNS 伺服器以及許多其他 DNS 伺服器。它不僅測試它們的速度,還測試它們的可靠性。它是免費的,不需要安裝(儘管它僅適用於 Windows)。這些頁面上也有很多有關 DNS 的好資訊。

答案4

我找到了解決方案,雖然我不完全理解它,如果有人可以正確解釋它,請將其作為答案發布,我將給予他賞金,因為其他答案沒有幫助。

正如我在問題附錄中提到的,uTorrent 與問題相關,因為關閉 uTorrent 解決了問題。我決定找出如何修復它而不需要關閉 uTorrent。在這個線程這個(這非常相關,因為那裡的人有相同的 ISP 和路由器)我發現了我應該禁用的建議IP泛洪防護在我的路由器上,它成功了!這個問題和解決方案很奇特,可能特定於路由器 Cisco EPC3925,甚至特定於特定 ISP(在歐洲流行,這就是為什麼很難用英語谷歌搜尋某些內容)。

相關內容