博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

BT,emule和迅雷下载软件的下载原理

Posted on 2009-06-19 19:31  Anna Yang  阅读(867)  评论(1编辑  收藏  举报

转自:http://www.verycd.com/groups/eMuleBeta/186538.topic

BT的下载原理

BT是一种共享软件(不是“变态”),全名叫BitTorrent。
一般来讲,下载是把文件由服务器端传送到客户端,例如FTP,HTTP,PUB等等。 但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多
的不便。
但BT就不同,用BT下载反而是用户越多,下载越快,这是为什么呢?因为BT用的是一种传销的方式来达到共享的。BT首先在上传者端把一个文件分成了Z个部分,甲在服务器随机下载了第N各部分,乙在服务器随机下载了第M个部分,这样甲的BT就会根据情况到乙的电脑上去拿乙已经下载好的M部分,乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的N部分,这样就不但减轻了服务器端得负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去拿就快得多了。所以说用的人越多,下载的人越多,大家也就越快,BT的优越性就在这里。而且,在你下载的同时,你也在上传(别人从你的电脑上拿那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。

电骡emule下载原理

电骡是建立在点对点(peer2peer)技术上的文件共享软件。它与传统文件共享的区别是:共享文件不是在集中的服务器上等待用户端来下载,而是分散在所有参与者的硬盘上。所有参与者组成一个虚拟网络,每个用户端都可以从这个虚拟网络里的任何一个人的机器里下载文件!同时每个人也可以把自己的文件共享给任何人。 在"中国电骡"体系里有一些服务器,不过这些服务器不再存放文件,而是存放这些共享文件的目录或地址。每个用户端从服务器处得到或搜索到共享文件的地址,然后自动从别的客户端处进行下载,参与的客户端越多,下载的速度越快。

2. 下载原理
当你在搜索列表中选取了你要的文件并开始下载后,电骡会记录下这个文件的大小,文件名以及另一个叫做hash的特殊值。说得更确切一些,是一个MD4的hash值。这个值是根据你要下载的文件本身的内容计算得来,它可以让你知道你正在下载的文件是不是就是你所想要的。尤其是在文件的其他属性被更改之后(如名称等)这个值就更显得重要。电骡软件得到了这个信息后,会向所有添加的服务器发出请求,要求得到有相同hash值的文件。而服务器则返回持有这个文件的用户信息。这样我们的客户端就可以直接的和拥有那个文件的用户沟通,看看是不是可以从他那里下载所需的文件。而电骡最棒的部分就在于:你不是只在一个用户那里下载文件,而是同时从许多个用户那里下载文件。如果另一个用户仅仅只有你要的文件的一个小小片断,他也会自动地把这个片断分享个大家,而你就可以从这个用户的机器上下载这个片断。当然你也是一样。只要你得到了一个文件片断,系统就会把这个片断共享给大家。

迅雷的工作原理


迅雷会收集互联网上的所有下载地址和装了迅雷的电脑的资料.
1.其实收集互联网上的服务器的下载地址,很多软件都会这样做.如网际快车等,但网际快车不会收集在下载地址里包涵了用户名和密码的下载地址,为什么?因为网际快车的程序员知道,下载地址里有用户名和密码,就是不想让所有人都使用.但迅雷的程序员可不理你,一样收集,然后供其它人使用.说白了,就是网站站长最恨的"盗链".

例:包涵用户名的下载地:ftp://Thund:Issue@202.154.123.218/0718/世界大战.rmvb

这个下载地址里的Thund:Issue就是用户名和密码了


2.上面说到的,只是提供下载的站长利益受损,下载的用户好像说,关我什么事?我下载快,就行了.

嘿嘿,天下可没那么便宜的事.如果网上就那么几个网站的下载点,作用也不是很大,人家站长也不是傻的,让你迅雷一直的盗链.那有什么办法增加下载点呢?不就是那个用过迅雷下载的人喽

迅雷一装好后,以后你系统启动,在你的系统背后,都会启动两个线程(迅雷的),Thunder.exe和Issue.exe,但你在系统的右下角的工具栏里是看不到迅雷已经悄悄的启动了.只有在线程里才能看到.

这两个线程有什么用呢?就是要像BT那样,共享你硬盘上的文件,让其它人下载.所以,局域网的网管可就辛苦了,找死你也找不出,为什么你的网里面的流量那么大.

从以上看出来,迅雷的程序员是很清楚用户是不想共享自己电脑上的文件给其它人下载的,所以他在系统后面悄悄启动迅雷的两个线程,而让你不发觉.

所以就算你不在下载,你上网也会慢得很.硬盘不用多久就可以丢进垃圾桶里.

3.在迅雷的客户端上,还能通过搜索,找到不同的东西下载.如搜win2003,就会搜到win2003的下载点.但这些下载点可不是在迅雷服务器上的,但这个不要面的,却通过这种方式,让迅雷的用户觉得迅雷提供了速度快的下载点.

这种行为,我相信会得到众多的普通迅雷用户的支持.但这种盗链,严重影响到一个网站的生存.再有,每个迅雷用户也不一定同意自己每天一开电脑,就给别人上传.