迅雷的工作原理探讨

| | Comments (0)
迅雷现在很流行,风头早已超过了flashget和netants等等多线程下载工具。大多数情况下,它的下载速度确实比较快,具体为什么会有比较快的下载速度呢。下面将做一些探讨。
迅雷声称自己的是P2SP的下载技术。P当然是用户peer,SP是资源的提供商service provider.下面是迅雷官方给出的介绍:

技术特点
迅雷使用的多资源超线程技术基于网格原理,能够将网络上存在的服务器和计算机资源进行有效的整合,构成独特的迅雷网络,通过迅雷网络各种数据文件能够以最快的速度进行传递。
多资源超线程技术还具有互联网下载负载均衡功能,在不降低用户体验的前提下,迅雷网络可以对服务器资源进行均衡,有效降低了服务器负载。
功能列表
全新的多资源超线程技术,显著提升下载速度;
功能强大的任务管理功能,可以选择不同的任务管理模式;
智能磁盘缓存技术,有效防止了高速下载时对硬盘的损伤;
智能的信息提示系统,根据用户的操作提供相关的提示和操作建议;
独有的错误诊断功能,帮助用户解决下载失败的问题;
病毒防护功能,可以和杀毒软件配合保证下载文件的安全性;
自动检测新版本,提示用户及时升级;
提供多种皮肤,用户可以根据自己的喜好进行选择;

为了说明迅雷的工作原理,再给一个迅雷的官方工具给大家,以更清晰的讨论迅雷的下载原理。在迅雷的官方论坛里面有个顶置帖子:
http://bbs.xunlei.com/phpwind/read.php?tid=69234&fpage=1,里面有一个测试工具,是测试客户端与迅雷的官方服务器的连接速度。

图中可以看出,使用到了三台服务器:一台是资源服务器,两台注册服务器(tcp和udp)
帖子中还给出了一个调查:
投票主题:关于端口被封的调查!
3076端口被封(将找不到多资源)56 票
5200端口被封(将无法进行雷区注册)67 票
6200端口被封(会隔一段时间就会掉下雷区,需要重新登陆)70 票

由此可以看出,资源服务器负责提供下载的资源情况,使用3076端口。这台资源服务器到底提供的是什么资源呢?在迅雷5中,可以查看当前下载的文件连接的资源是哪些。有服务器地址也有单独的peer。当然很明显,peer的连接没有服务器连接稳定。
原理分析
当用户需要下载资源时,例如要下载“http://www.abc.com/file.exe”这个文件,那么一方面直接向“www.abc.com”这个服务器发送一个HTTP请求,要GET到“/”目录下“file.exe”这个文件;另外也向资源服务器(迅雷5中为hub5t.sandi.net)发送一个请求,查找资源服务器列表中与当前下载的文件的属性信息(如名字一样、大小等)完全相同的资源,因为可能有别的网站也提供这个文件资源;另外,也有另外一种可能,别的“雷友”也在下载或者有你正在下载的这个文件,就可以分享出他下载到的部分。这就有点p2p的share files的意味了。
下载速度
因为不仅仅从一个资源提供者那里获取资源,速度当然会比较快。可是如果你下载的资源是在网上没有多少服务器提供,那么你的速度就不会很快。这个时候,迅雷也就只相当于一个普通的多线程下载工具。
资源服务器
资源服务器上那些文件信息从哪里获得的?我认为一个方面是从每个下载者那里提供的,每次都会查询资源,当然也就得提供你当前是哪个网站获得这个资源的,说明你下载的这个网站肯定是有这个资源的。另外一个方面,迅雷也可以通过搜索引擎的spider去定点搜索国内的那些大型的软件下载网站中的文件信息,不过这一点不容易做,因为大部分的软件下载站都有反盗链技术,有反向链接的控制。
补充
迅雷声称自己是一个超线程的下载工具,本人就不太清楚,它的超线程是体现在哪里?是在它的服务器上吗?这跟用户有什么关系?或者有可能迅雷的下载客户端可以支持超线程,但是在大多数电脑的CPU都还不是HT的时候,说这个好像没有太大的实际意义。

References:
[1]迅雷官方网站http://www.xunlei.com
[2]迅雷官方论坛http://bbs.xunlei.com

点击这里下载本文的PDF版本,PDF中有文中提到的图

Leave a comment

About this Entry

This page contains a single entry by 空空 published on December 11, 2005 7:58 PM.

CuteProxy用户手册 was the previous entry in this blog.

DJGPP的使用方法 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.01