
使用 uTorrent 時,DNS 會定期停止回應。
這個問題似乎與頻寬使用過多無關(從路由器到電腦),但可能與路由器提供的某種形式的洪水保護有關(到路由器的傳入連接多於 Windows 可接受的連接)。
如何讓網路正常運作(當然,同時仍然能夠使用 uTorrent)?
答案1
比特流客戶端積極與同行建立聯繫……有些路由器將此解釋為 syn-flood。
開啟連接
當 uTorrent 載入且上傳/下載暫停(未停止)時,它會與您的同伴保持開放連線。同時,大量的網路同行仍然會嘗試與您聯繫,以了解您是否擁有他們想要的資訊。
最終,您將達到作業系統施加的開放連線限制(在 Windows 7 中為 10 個連線),來自新用戶端的連線將開始在您的路由器上排隊。
排隊的客戶端將積極檢查連線是否空閒。這種激進的輪詢可能被解釋為路由器的 syn-flood 攻擊。
解決方案
- 將 Bittorent 軟體中的半開連線限制降低到作業系統施加的連線限制以下
- 停用路由器/數據機上的 IP 泛洪保護。
頻寬飽和度
此外,當 uTorrent(或任何大容量流量)連接不受限制地運行時,上傳(可能還包括下載)管道會達到完全使用,迫使一些「維護」流量退居二線,最終降低網路實用性。
這是一個例子:
- 高速下載(torrent 或其他方式)使下游連結飽和。
- 使用者嘗試瀏覽最近未造訪過的網站。電腦產生所需網站的 DNS 資訊請求。向 DNS 伺服器的請求「上傳」成功(上游管道存取不受挑戰)。
- DNS 伺服器回應(或嘗試回應),但回應在嘗試到達使用者電腦時被掛起,因為下載管道已被下載內容飽和,並且由於必須刪除某些內容,並且下載會積極保持速度,因此DNS 回應被丟棄(在到達本機路由器之前的某個時刻)。
如果上傳不受限制,也會發生同樣的情況。隨著上傳飽和,稱為 TCP-ACK 的封包(以「嘿,我成功收到封包 xyz」類型回應的形式發送)被掛起,導致下載停止,導致網頁瀏覽變得非常不穩定。
解決方案
- 弄清楚連線的最大能力是多少(分別向上和向下),並將批量傳輸客戶端的最大速度設定為不使用超過該速度的 80% 左右。這將為 DNS 和 TCP-ACK 封包等內容留下“空間”,以繞過大量流量並快速處理。
- 使用可以處理流量整形的路由器,以便某些流量(DNS、IMCP Ping、TCP-ACK)可以優先於其他形式的流量,並且可以取消某些形式的流量(特別是 torrent)的優先權。這是我的首選方法。這可以提供額外的好處,即當較高優先級流量不對其提出挑戰時,允許完整的上行和下行管道可用於 torrent 流量。
- 使用 1 和 2 的某種組合來抑制「行為不當」的流量。
答案2
當我有這樣的事情時,Wireshark是我最好的朋友。
但首先最好先認識以下三件事:
ping 工作正常並不意味著 DNS(或任何其他服務)運作正常,反之亦然。
這是因為 ping 在完全不同的網路模型層級上使用完全不同的協定(ICMP,而 DNS 使用 IP 以及 UDP 和 TCP 的組合)。從您的個人防火牆到路由器數量,再到運行服務的實際主機,任何東西都可能被配置為丟棄其中一個而不是另一個(無論是管理員的偏執還是某些失敗情況),儘管它通常發生在ICMP 上而不是其他人上
一般來說,最好弄清楚是您的 (DNS) 請求還是回覆遺失了。
好吧,您使用的特定程式應該會讓您清楚這一點,但作為一般規則,您自己在 Wireshark GUI 中看到它會更容易:)
正如我所提到的,DNS 通常使用 UDP 作為傳遞請求和回應內容的方式。
與它的兄弟 TCP 相比,UDP 的定義方式是:沒有保證 資料包將被傳送,並且路由器不必(也不可以)做任何事情來讓您知道失敗。 (這是對UDP 另一個功能的犧牲:它的速度快得令人難以置信。路由器不必保留有關發送者或數據包順序的任何信息,它們只是快速傳遞並忘記它。它們甚至可以相當安全地給予它們比TCP。
通常我要做的第一件事是:
- 啟動 Wireshark
- 按一下捕獲選項
- 對於擷取過濾器,設定
host 1.2.3.4
為確保您僅擷取您與 1.2.3.4 之間的流量 - 開始捕捉
- 一旦你以這種方式全部啟動,請嘗試你的命令
然而,根據您上次的更新:我不知道這個軟體,但我肯定懷疑 uTorrent 用戶端。應用程式可能會發送過多的 UDP,例如,您的家庭路由器達到了某些限制,並且它開始丟棄 UDP 封包。
答案3
我會嘗試GRC 的 DNS 基準工具。它測試您配置使用的 DNS 伺服器以及許多其他 DNS 伺服器。它不僅測試它們的速度,還測試它們的可靠性。它是免費的,不需要安裝(儘管它僅適用於 Windows)。這些頁面上也有很多有關 DNS 的好資訊。