通常,我在论坛上将下列情况归纳为“迅雷影响网络性能”(虽然不准确,但是用户经常如此理解)的问题反馈。

1、启动、使用迅雷后出现的与网络有关的任何问题(QQ掉线、网页无法打开或打开缓慢、网络延迟增加等等问题)

现象简单,以至于其他有类似现象的用户看到有其他人反馈这个问题时,往往会说“我也是这个问题”。但事实上这类问题的原因错综复杂,在定位这类问题的过程中,感觉就像探索一座孤岛,遇到各种奇怪的环境。

下面就跟各位讲述所遇到的各种与“迅雷影响网络性能”问题有关的案例,供各位参考。

1、DNS限制查询频率

问题现象:使用迅雷下载时无法打开网页,进行其它需要进行域名解析的操作失败

问题背景:这个案例还是较为常见的,我们首次发现此问题是在一所学校的网络中,该用户描述使用迅雷进行下载时,无法打开网页,最初我们以为是下载过程中连接数过多导致的网络设备性能问题。但在问题定位过程中发现,在无法打开网页时,仍然可以通过QQ进行远程协助,收发消息。在正常时发起了ping请求,当出现无法打开网页问题时,ping值没有明显上升。因此网络是正常的,在发生无法打开网页的问题时,重新发起ping请求,返回域名解析失败。

问题定位:根据现象,我们怀疑是DNS解析服务器的问题,我们认为这应该是一种限制逻辑,因此猜测可能的条件是“DNS解析请求的发起频率”,因为迅雷在下载时,会搜索候选资源,候选资源中有较多的server资源时,每个server资源的连接都需要进行一次DNS解析,任务刚开始时,DNS解析的频率是比较高的。因此,将一个下载任务的属性改为“仅从原始地址下载”这样将不搜索候选资源。进行任务就未发生DNS拒绝解析的问题了。但是不查询候选资源,下载成功率和下载速度会严重受影响。

解决方案:好在这并非是一种非常普遍的限制,更换了DNS服务器地址,问题解决。

2、带宽不足或路由器或ADSL终端等设备性能不足

问题现象:使用迅雷下载时打开网页缓慢,网络延迟上升

问题背景:这个案例是最原始的,可以说凡是下载软件都会遇到。

这里需要分2块讲

(1)、连接数

低端的家用路由器或ADSL终端一般最多支持100-200个连接,而迅雷下载1个普通任务的时候,一般会建立50-80个连接,下载BT、eMule等任务时往往会建立4倍以上的连接。很显然,这些连接数超出了这些网络设备的性能范围。导致网页打开缓慢,延迟上升。

(2)、带宽

当下载速度接近带宽极限时,用于传输文件的数据包的收发会非常频繁,此时由其他网络操作发起的数据包收发会产生延迟。并且下行带宽也不足,导致网页打开缓慢,延迟上升。

问题定位:

(1)、连接数

根据现象我们只需要适度的限制下载核心发起新连接的频率和总量就可以解决此问题。但会进而引发其它问题。

例如:

1、设备性能参差不齐,限制如果一成不变,无法适应各种环境

2、限制连接时可能会影响到用户的下载速度

(2)、带宽

同样,只需要根据当前的带宽,稍微限制下载速度,留出一部分带宽,就可以优化此问题。但难点是“如何始终准确的知道用户的带宽?”

问题解决:

下载核心的同事们花费了大量时间开发并不断改进智能限速模块,设置了多种判断逻辑,对用户当前的网络状态,环境进行判断,并得出限制方案。此功能推出后,确实解决了不少问题。(虽然有些情况下还有问题,但是优化仍在继续进行)

3、局域网封杀

问题现象:启动迅雷后,没进行任何下载任务,就掉线。

问题背景:我曾与某个用户远程协助时发现此问题,启动迅雷网络就断了。关了迅雷要等5分钟才能恢复,如果换个局域网IP,就会马上恢复。这种情况很明显,迅雷没有下载任务,也就不会对网络造成负担。

问题定位:

因此我们判断局域网网络中存在限制,检测到迅雷的某个网络IO操作时,就封某个局域网IP。

问题解决:

这个问题后来并没有解决,因为这个用户是在公司的局域网网络中使用的迅雷,而他们公司规定上班不能用迅雷,这样与规定冲突,也不能与管理者交涉,是没办法的事情。