2006年10月1日星期日

关于迅雷的一些看法

其实很久之前就想写一篇关于迅雷的文章,主要是我发现我周围使用迅雷的人实在太多了,我一直不明白为什么会出现这种现象,我个人对于迅雷是极其反感的。后来经过调查,大部分人使用的原因是下载速度快。不过迅雷的高速是有原因的,下面简单地说一下。

一、原理

迅雷的下载原理其实和国外的一个叫Shareaza的软件的原理很相象。
迅雷会收集互联网上的所有下载地址和装了迅雷的电脑的资料.
1.其实收集互联网上的服务器的下载地址,很多软件都会这样做.如网际快车等,但网际快车不会收集在下载地址里包涵了用户名和密码的下载地址,为什么?因为网际快车的程序员知道,下载地址里有用户名和密码,就是不想让所有人都使用.但迅雷的程序员可不理你,一样收集,然后供其它人使用.说白了,就是我们站长最恨的"盗链".
例:包涵用户名的下载地:ftp://Thund:Issue@202.154.123.218/0718/
这个下载地址里的Thund:Issue就是用户名和密码了
2.上面说到的,只是提供下载的站长利益受损,下载的用户好像说,关我什么事?我下载快,就行了.
嘿嘿,天下可没那么便宜的事.如果网上就那么几个网站的下载点,作用也不是很大,人家站长也不是傻的,让你迅雷一直的盗链.那有什么办法增加下载点呢?不就是那个用过迅雷下载的人喽
迅雷一装好后,以后你系统启动,在你的系统背后,都会启动两个线程(迅雷的),Thunder.exe和Issue.exe,但你在系统的右下角的工具栏里是看不到迅雷已经悄悄的启动了.只有在线程里才能看到.
这两个线程有什么用呢?就是要像BT那样,共享你硬盘上的文件,让其它人下载.所以,局域网的网管可就辛苦了,找死你也找不出,为什么你的网里面的流量那么大.
从以上看出来,迅雷的程序员是很清楚用户是不想共享自己电脑上的文件给其它人下载的,所以他在系统后面悄悄启动迅雷的两个线程,而让你不发觉.
所以就算你不在下载,你上网也会慢得要死.硬盘不用多久就可以丢进垃圾桶里.
3.在迅雷的客户端上,还能通过搜索,找到不同的东西下载.如搜win2003,就会搜到win2003的下载点.但这些下载点可不是在迅雷服务器上的,但这个不要面的,却通过这种方式,让迅雷的用户觉得迅雷提供了速度快的下载点.
这种行为,我相信会得到众多的普通迅雷用户的支持.但这种盗链,严重影响到一个网站生存.再有,每个迅雷用户也不一定同意自己每天一开电脑,就给别人上传.
迅雷下载速度快的原因和工作原理 迅雷比其它下载工具快,是因为他是P2SP机制,说白了,就是BT的升级:
例:当有一个用户在一个电影网站上,得到一个下载地址(A),然后用迅雷下载,这个下载地址就会收集到迅雷的服务器上.
在地求的另一个地方又有一个用户在另一个网站上下载同一部电影,而得到另一个下载地址(B),就又会给迅雷服务器收集.
然后迅雷服务器就会把相同文件的下载地址(A,B)集合在一起,形成一个资源.那两个用迅雷下载这两个电影的用户也算上.就会有四个下载点了.
而又有用户在别的地方准备下载相同的电影的时候,迅雷就会在数据库里比较,找出相同的资源(其它下载点,也就是上面收集到的),提供给那个准备下载的用户下载,那这个用户就会同时有多个下载点来下载,而达到速度的提升.而这个用户当然也不可能只是享受高速的下载,他同时也会上传了他下载的那部份数据(BT原理).
所以,当一个用户用迅雷下载时,就会连上迅雷服务器,查找资源,如果是热门的文件,迅雷就能返回大量的下载点,供这个用户下载.从而达到下载速度的提升.

二、安全性

不过迅雷这种技术十分的不成熟,这也是为什么许多用户和网站反映用迅雷下载会下载到带病毒的版本。其原因基本如下:某些病毒发布者利用迅雷会搜索与下载文件相同的源的这一特点,将病毒的文件名改为某些下载量很大的软件的文件名等方法,使迅雷将其添加到下载列表中。

我本人十分不明白为什么这种做法可以成功。

1.重新编译过的带病毒的可执行文件的大小一般都和源文件不同,迅雷难道不检测文件大小的吗?
2.即使大小相同,只要用对比sha128/256、md5、crc32等数据加密码就可以判断是否和源文件一致,这么低级的错误那么多个版本都没有修正。
3.或者有另一种可能性,迅雷进行查询的是下载链接的说明信息,如果是这种那就绝对是失败中的失败,用这种方法估计就算下载到的是正常文件也不是需要的文件,因此应该不是使用这种方法来判定。

三、隐私

我个人严重怀疑迅雷有收集用户隐私信息的行为,要证明的话装个带有详细网络连接记录功能的防火墙就可以了。至于广告之类的就不多说了,中国软件的通病,这个就见仁见智了。

以上就是我对迅雷的一些看法,欢迎拍砖。



没有评论: