uTorrent 偶尔会导致 DNS 停止工作

uTorrent 偶尔会导致 DNS 停止工作

使用 uTorrent 时,DNS 会定期停止响应。

该问题似乎与带宽使用过多无关(从路由器到计算机都如此),但可能与路由器提供的某种形式的防洪保护有关(路由器的传入连接数超过 Windows 所能接受的数量)。

我如何使网络正常工作(当然,同时仍然能够使用 uTorrent)?

答案1

bittorent 客户端积极与同伴建立联系... 一些路由器将其解释为 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 流量时,整个上行和下行管道可用于 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(在欧洲很流行,这就是为什么很难用英语谷歌搜索到某些东西)。

相关内容