王 达
说起BT下载,相信许多人都曾听说过,但又相信并不是很多人明白到底是怎么一回事。它早在去年3月就在国内风靡一时,成为各大媒体议论的焦点,经过几个月的沉淀后,仍然有很多人使用BT,今天再回过头来看看BT时,虽然存在种种不足,但仍不失为一种优秀的下载软件。要全面了解BT,我们还是从BT的基本原理谈起。
1.BT下载的原理
BT的全名叫“BitTorrent”, 它的作者是Bram Cohen。相信各位早已听说了BT下载的特殊性,那就是下载的人越多,下载速度反而越快。这与我们平常所进行的下载完全不一样。我们知道,平常下载软件最怕在下载高峰期,因为那时下载的人非常多,而储存下载软件的服务器带宽有限,人数一多,每人所分得的带宽就越小,下载速度自然就越慢。而BT下载却是越在高峰期下载速度越快,反而在人少时下载速度非常慢,甚至根本下载不了。是什么原因呢?那是因为传统的下载,各下载用户都向存放相应软件的下载服务器提出下载请求,即C/S(客户机/服务器)模式。服务器的带宽有限,自然同时下载的人数越多(不仅指下载同一软件的用户),每个用户所分得的带宽就越小,所以上网高峰期热门下载网站的下载速度明显下降。
BT下载不是这种C/S模式,而是一种对等模式,即所有下载用户既是客户端,又是服务器端,因为他们在下载的同时还需向其他用户提供下载服务,BT服务器把文件的下载任务分配到各个用户之中,并不是像传统下载那样承担所有的下载任务。正因如此,当下载用户多时,可以为自己提供下载服务的服务器就越多,这么多服务器同时向自己提供下载服务,速度当然就快了,最终的速度就取决于自己网络的带宽了。当然在接受他人提供下载服务的同时,自己也向其他用户提供下载服务,真正实现“人人为我,我为人人”的宗旨。当没有其他用户下载时,就很可能无法下载。
谈到BT就不能不联想起早几年前就出现的P2P软件。BT与P2P不完全相同,它是对P2P的扩展。下载原理却有着质的区别,主要表现在以下几个方面(BT下载的原理图如图1所示):
(1) BT下载仍需要中间的BT服务器,但它的作用不是用来提供BT下载软件,而是提供BT软件的文件信息(称为“Torrent文件”),如文件大小、存放物理地址、文件分块情况等。这个文件需要在用户真正下载前下载;
(2)BT不再是P2P的两个终端之间的相互操作,而是所有正在下载,甚至已经下载完此文件的用户共同参与,从而实现一对多(上传)、多对一(下载)的共享服务;
(3)下载用户越多,下载速度越快。因为BT文件下载可来自许多用户的文件上传,而不是单点传输。其下载速度取决于当时下载用户的多少和用户自己带宽的高低,而不是取决于对方的当前可利用带宽。
BT的下载方法其实并不复杂。它同许多下载软件一样,也是分块搬运,只不过其它软件分的块都放在服务器,不管服务器有多忙、访问人潮有多大,都得挤上去一点一点地搬,省不了力也偷不了懒。而BT则像一个合作组织,如果谁先搬回某块,那么后来人就不必全挤到服务器上去重复搬,只需就近从已搬回某块的那家复制过来即可,这样就使每一个下载者身兼两职:既下载又做下载服务。不难推测,如果下载者足够多,则意味着“服务器”同样足够多,在拥有比较合理的“服务器”选择和分布算法的前提下,每一个下载者都达到速度极限并长时间保持是完全可能的,这也得到了实践的证实。这也是本文为什么取名——众人拾柴火焰高的原因了。
整个BT下载的过程可以简化分为以下几步(为了方便说明,在此仍把下载软件主机端称之为“A”,而提供BT软件下载的主机称之“B”,已经下载或正在下载此软件的其他用户分别为“C”、“D”、“E”……,参照图1。具体过程将在本文后面详细介绍):
第1步,需下载某BT类软件的A用户到某个提供存放相应软件的B主机上下载,此时提供下载服务的B首先把相应BT类软件的有关信息文件(Torrent文件,不是BT类软件本身)下载到A主机中。这个Torrent信息文件是由BT发布工具根据待发布资源的信息产生的。它记录了该资源的各种属性,如大小、存放地址、分块情况和已经或正在下载的此软件的C、D、E等用户地址信息等,以便在后面的下载中,不同部分可以向不同用户同时获取,以加快下载速度,通常只有几十到几百KB。
第2步,A分析所下载的BT软件信息文件中信息,并进行空间分配。同时查找信息文件中所包括的已经或正在下载此软件的C、D、E等用户信息,根据提供的地址,只由BT软件本身向这些地址的用户发出连接请求,并要求提供软件未下载部分的下载服务;
第3步,正在下载或已经下载的C、D、E等用户接到请求后会立即响应,根据对方的地址信息建立信任连接,然后把自己已下载,而A未下载的部分上传到对方主机上。而如果自己也正在下载此软件,也可以把未下载部分,而A已下载的部分向A发出下载请求,请求A把相应部分上传到自己的主机上。
以上就是BT下载的原理,下面介绍有关BT下载的使用方法。
2.BT下载的方法
BT下载就是用来下载BT类软件或文件的方法,当然首先需要在本机上安装BitTorrent客户端软件,不过由于它像LINUX系统一样,是源代码公开的,所以现在有多种BitTorrent客户端软件。也正如此,我们可能会在网上发现许多版本号相差很远的BitTorrent客户端软件,官方BitTorrent最新版本为3.3,其官方版下载网址为:http://bitconjurer.org/BitTorrent/index.html,非官方的有BitTorrent++、the Experimental Client,而有一家非官方BitTorrent版本版本号则达到了5.8.7,文件也大许多。这些软件还可在许多网站上下载,如华军软件园、天空软件站等,而且都是全免费的。
任意安装一种BitTorrent客户端软件后,在各大BT资源网站上单击扩展名为“.Torrent”的文件后即可以下载了,否则系统会弹出没有相应的关联程序。不过首先下载的不是客户要下载的BitTorrent文件本身,而是一个上面介绍到的Torrent信息文件。因为它很小,所以在下载时你可能会感到非常奇怪,明明有几百MB,为什么进度条这么快就扫过去了,而下面显示的下载速率(Download rate)和上传速率(Upload rate)却没有任何显示,如图2所示。
Torrent信息文件下载后即弹出如图3所示的复合对话框,首先要求确定文件下载在本机上存储的位置,选择好后,单击“确定”按钮,即开始下载,开始速度非常慢,随后动作慢慢加快,并开始出现上传速率,如图6所示。
因为这类BT之类的文件通常比较大,少则几百MB,多则1GB以上,如果采用普通文件下载往往要几小时,甚至几十小时,但通过BT下载,速度明显快了许多。下载完后,如图4所示进程框中的“Cancle”按钮就变为“Finish”了,如果用户在文件下载后不单击这个按钮,关闭BitTorrent,那么BitTorrent将会继续向其他用户发送文件,这样的计算机称为“种子”(Seed)。
3.BT文件的发布
前面我们已经介绍到,BT下载方式可以使普通用户也把自己的资料放在网上供别人下载(当然不是像原来那样自己建立网站了),即发布BT资源,它的方法如何呢?
普通用户发布BT资源,首先就要下载安装一个名为“completedir.exe”的发布工具软件,也可以到BitTorrent的官方网站http://bitconjurer.org/BitTorrent/index.html上或华军软件园、天空软件站上下载。目前最新的版本为1.0.1。
下载后双击这个可执行文件即完成安装,安装好completedir.exe后,在“程序”组中生成一个“completedir”程序项,可以通过单击这个程序项运行这个BT发布工具软件,也可以在要发布的资源文件上单击右键,然后在“发送到”快捷菜单中选择,如图5所示。其中“Make .torrent file wizard”菜单项是一个创建BT发布文件向导,而“Make .torrent file”则是一个命令执行选项,但打开的对话框一样,如图6所示。
它可以分别对单独文件、单个目录或者指定目录下所有文件和子目录三种模式来制作。如果要把单个文件制作成BT发布文件,则要选择“standalone file”单选项;如果要对单个文件夹制作BT发布文件,则要选择“standalone firectory”单选项;而如果要对某个文件夹下的所有子目录文件都一起制作成BT发布文件,则要选择“all subitem directory”单选项。要发布的文件或目录是通过单击“Select”按钮,打开资源管理器选择的,当然也可自己直接在“target to build”文本框中输入要发布的文件或文件路径。
“announce url”文本框中是要指明BT文件发布的目的地址(也称存放BT文件的tracker服务器),你如果自己有确定的tracker服务器地址,可删除程序安装后提供的BitTorrent官方tracker服务器,如果没有,则直接采用好了,把自己想供别人共享下载的BT资源文件发布到BitTorrent的官方tracker服务器上。
“Piece size”是用来设置文件的分块信息的,按系统默认即可。
所有选项确认好后,单击“Make”按钮,即开始制作“.torrent”文件了, 一个“.torrent”约20~50k,任务完成后,可以结束completedir程序。此时.torrent文件已经制作成功,弹出如图7所示提示对话框。
到此并没有结束文件的发布,双击刚才所制作的.torrent文件,即可弹出如图3类似的复合对话框,不同的只是此处对话框标题显示的是“choose file to save as …”,是要选择存放此BT发布文件夹目标路径。此时不能把路径搞混,应该选择你刚选的源文件,将.torrent文件的目标地址指向你刚才共享的位置。选择好后,单击“保存”按钮即开始上传文件到所设置的trcaker服务器上,此时你必须与互联网连接畅通。发布完后不要单击对话框中的“Finish”,不关闭这个窗口就正式作了种子(seed)提供上传服务了。
通过以上步骤,普通用户就能把自己的文件发布在互联网上,供其他用户共享下载了。
4.BT下载存在的问题
最后我们来谈一下BT下载存在的问题,这也是目前为什么BT下载有些降温的原因。
(1)尽管BT下载克服了像P2P下载那样的文件版权集中的问题,但仍不是最终的解决办法。
(2) 另外一个问题也是BT下载的优点带来的,如果在某一时刻没有人下载,或者没有用户为自己提供想需的某块文件,则没有人为自己提供下载服务了,也就不能下载了。这在很多时候还不如传统下载方式,虽然慢点,但不至于下载不了。还有,在BT下载时,得同时给别人提供下载服务,这样也就有一部分带宽要分配给其他用户使用了,也就不能尽全力为自己下载服务了,影响了效率。
(3)安全问题也是BT下载的最严重问题之一,因为BT下载时,同时要为其他用户提供下载服务,别人可以到自己硬盘中找需要的文件块,这样就带来了许多安全隐患。对于一些别有用心的人来说,给你安装一个什么病毒、木马之类的破坏性程序是完全可能的。而且你保存在计算机中的信息完全可以被别人“看”个精光。因为BT下载对用户基本上没有任何身份验证过程。
以上仅是几个主要方面,其实还有许多问题仍没解决,总之,目前使用BT下载的国内环境还不完全成熟,无论从效率,还是从安全角度来说都还有待进一步提高。