王 達(dá)
說起B(yǎng)T下載,相信許多人都曾聽說過,但又相信并不是很多人明白到底是怎么一回事。它早在去年3月就在國內(nèi)風(fēng)靡一時,成為各大媒體議論的焦點(diǎn),經(jīng)過幾個月的沉淀后,仍然有很多人使用BT,今天再回過頭來看看BT時,雖然存在種種不足,但仍不失為一種優(yōu)秀的下載軟件。要全面了解BT,我們還是從BT的基本原理談起。
1.BT下載的原理
BT的全名叫“BitTorrent”, 它的作者是Bram Cohen。相信各位早已聽說了BT下載的特殊性,那就是下載的人越多,下載速度反而越快。這與我們平常所進(jìn)行的下載完全不一樣。我們知道,平常下載軟件最怕在下載高峰期,因?yàn)槟菚r下載的人非常多,而儲存下載軟件的服務(wù)器帶寬有限,人數(shù)一多,每人所分得的帶寬就越小,下載速度自然就越慢。而BT下載卻是越在高峰期下載速度越快,反而在人少時下載速度非常慢,甚至根本下載不了。是什么原因呢?那是因?yàn)閭鹘y(tǒng)的下載,各下載用戶都向存放相應(yīng)軟件的下載服務(wù)器提出下載請求,即C/S(客戶機(jī)/服務(wù)器)模式。服務(wù)器的帶寬有限,自然同時下載的人數(shù)越多(不僅指下載同一軟件的用戶),每個用戶所分得的帶寬就越小,所以上網(wǎng)高峰期熱門下載網(wǎng)站的下載速度明顯下降。
BT下載不是這種C/S模式,而是一種對等模式,即所有下載用戶既是客戶端,又是服務(wù)器端,因?yàn)樗麄冊谙螺d的同時還需向其他用戶提供下載服務(wù),BT服務(wù)器把文件的下載任務(wù)分配到各個用戶之中,并不是像傳統(tǒng)下載那樣承擔(dān)所有的下載任務(wù)。正因如此,當(dāng)下載用戶多時,可以為自己提供下載服務(wù)的服務(wù)器就越多,這么多服務(wù)器同時向自己提供下載服務(wù),速度當(dāng)然就快了,最終的速度就取決于自己網(wǎng)絡(luò)的帶寬了。當(dāng)然在接受他人提供下載服務(wù)的同時,自己也向其他用戶提供下載服務(wù),真正實(shí)現(xiàn)“人人為我,我為人人”的宗旨。當(dāng)沒有其他用戶下載時,就很可能無法下載。
談到BT就不能不聯(lián)想起早幾年前就出現(xiàn)的P2P軟件。BT與P2P不完全相同,它是對P2P的擴(kuò)展。下載原理卻有著質(zhì)的區(qū)別,主要表現(xiàn)在以下幾個方面(BT下載的原理圖如圖1所示):
(1) BT下載仍需要中間的BT服務(wù)器,但它的作用不是用來提供BT下載軟件,而是提供BT軟件的文件信息(稱為“Torrent文件”),如文件大小、存放物理地址、文件分塊情況等。這個文件需要在用戶真正下載前下載;
(2)BT不再是P2P的兩個終端之間的相互操作,而是所有正在下載,甚至已經(jīng)下載完此文件的用戶共同參與,從而實(shí)現(xiàn)一對多(上傳)、多對一(下載)的共享服務(wù);
(3)下載用戶越多,下載速度越快。因?yàn)锽T文件下載可來自許多用戶的文件上傳,而不是單點(diǎn)傳輸。其下載速度取決于當(dāng)時下載用戶的多少和用戶自己帶寬的高低,而不是取決于對方的當(dāng)前可利用帶寬。
BT的下載方法其實(shí)并不復(fù)雜。它同許多下載軟件一樣,也是分塊搬運(yùn),只不過其它軟件分的塊都放在服務(wù)器,不管服務(wù)器有多忙、訪問人潮有多大,都得擠上去一點(diǎn)一點(diǎn)地搬,省不了力也偷不了懶。而BT則像一個合作組織,如果誰先搬回某塊,那么后來人就不必全擠到服務(wù)器上去重復(fù)搬,只需就近從已搬回某塊的那家復(fù)制過來即可,這樣就使每一個下載者身兼兩職:既下載又做下載服務(wù)。不難推測,如果下載者足夠多,則意味著“服務(wù)器”同樣足夠多,在擁有比較合理的“服務(wù)器”選擇和分布算法的前提下,每一個下載者都達(dá)到速度極限并長時間保持是完全可能的,這也得到了實(shí)踐的證實(shí)。這也是本文為什么取名——眾人拾柴火焰高的原因了。
整個BT下載的過程可以簡化分為以下幾步(為了方便說明,在此仍把下載軟件主機(jī)端稱之為“A”,而提供BT軟件下載的主機(jī)稱之“B”,已經(jīng)下載或正在下載此軟件的其他用戶分別為“C”、“D”、“E”……,參照圖1。具體過程將在本文后面詳細(xì)介紹):
第1步,需下載某BT類軟件的A用戶到某個提供存放相應(yīng)軟件的B主機(jī)上下載,此時提供下載服務(wù)的B首先把相應(yīng)BT類軟件的有關(guān)信息文件(Torrent文件,不是BT類軟件本身)下載到A主機(jī)中。這個Torrent信息文件是由BT發(fā)布工具根據(jù)待發(fā)布資源的信息產(chǎn)生的。它記錄了該資源的各種屬性,如大小、存放地址、分塊情況和已經(jīng)或正在下載的此軟件的C、D、E等用戶地址信息等,以便在后面的下載中,不同部分可以向不同用戶同時獲取,以加快下載速度,通常只有幾十到幾百KB。
第2步,A分析所下載的BT軟件信息文件中信息,并進(jìn)行空間分配。同時查找信息文件中所包括的已經(jīng)或正在下載此軟件的C、D、E等用戶信息,根據(jù)提供的地址,只由BT軟件本身向這些地址的用戶發(fā)出連接請求,并要求提供軟件未下載部分的下載服務(wù);
第3步,正在下載或已經(jīng)下載的C、D、E等用戶接到請求后會立即響應(yīng),根據(jù)對方的地址信息建立信任連接,然后把自己已下載,而A未下載的部分上傳到對方主機(jī)上。而如果自己也正在下載此軟件,也可以把未下載部分,而A已下載的部分向A發(fā)出下載請求,請求A把相應(yīng)部分上傳到自己的主機(jī)上。
以上就是BT下載的原理,下面介紹有關(guān)BT下載的使用方法。
2.BT下載的方法
BT下載就是用來下載BT類軟件或文件的方法,當(dāng)然首先需要在本機(jī)上安裝BitTorrent客戶端軟件,不過由于它像LINUX系統(tǒng)一樣,是源代碼公開的,所以現(xiàn)在有多種BitTorrent客戶端軟件。也正如此,我們可能會在網(wǎng)上發(fā)現(xiàn)許多版本號相差很遠(yuǎn)的BitTorrent客戶端軟件,官方BitTorrent最新版本為3.3,其官方版下載網(wǎng)址為:http://bitconjurer.org/BitTorrent/index.html,非官方的有BitTorrent++、the Experimental Client,而有一家非官方BitTorrent版本版本號則達(dá)到了5.8.7,文件也大許多。這些軟件還可在許多網(wǎng)站上下載,如華軍軟件園、天空軟件站等,而且都是全免費(fèi)的。
任意安裝一種BitTorrent客戶端軟件后,在各大BT資源網(wǎng)站上單擊擴(kuò)展名為“.Torrent”的文件后即可以下載了,否則系統(tǒng)會彈出沒有相應(yīng)的關(guān)聯(lián)程序。不過首先下載的不是客戶要下載的BitTorrent文件本身,而是一個上面介紹到的Torrent信息文件。因?yàn)樗苄?,所以在下載時你可能會感到非常奇怪,明明有幾百M(fèi)B,為什么進(jìn)度條這么快就掃過去了,而下面顯示的下載速率(Download rate)和上傳速率(Upload rate)卻沒有任何顯示,如圖2所示。
Torrent信息文件下載后即彈出如圖3所示的復(fù)合對話框,首先要求確定文件下載在本機(jī)上存儲的位置,選擇好后,單擊“確定”按鈕,即開始下載,開始速度非常慢,隨后動作慢慢加快,并開始出現(xiàn)上傳速率,如圖6所示。
因?yàn)檫@類BT之類的文件通常比較大,少則幾百M(fèi)B,多則1GB以上,如果采用普通文件下載往往要幾小時,甚至幾十小時,但通過BT下載,速度明顯快了許多。下載完后,如圖4所示進(jìn)程框中的“Cancle”按鈕就變?yōu)椤癋inish”了,如果用戶在文件下載后不單擊這個按鈕,關(guān)閉BitTorrent,那么BitTorrent將會繼續(xù)向其他用戶發(fā)送文件,這樣的計算機(jī)稱為“種子”(Seed)。
3.BT文件的發(fā)布
前面我們已經(jīng)介紹到,BT下載方式可以使普通用戶也把自己的資料放在網(wǎng)上供別人下載(當(dāng)然不是像原來那樣自己建立網(wǎng)站了),即發(fā)布BT資源,它的方法如何呢?
普通用戶發(fā)布BT資源,首先就要下載安裝一個名為“completedir.exe”的發(fā)布工具軟件,也可以到BitTorrent的官方網(wǎng)站http://bitconjurer.org/BitTorrent/index.html上或華軍軟件園、天空軟件站上下載。目前最新的版本為1.0.1。
下載后雙擊這個可執(zhí)行文件即完成安裝,安裝好completedir.exe后,在“程序”組中生成一個“completedir”程序項(xiàng),可以通過單擊這個程序項(xiàng)運(yùn)行這個BT發(fā)布工具軟件,也可以在要發(fā)布的資源文件上單擊右鍵,然后在“發(fā)送到”快捷菜單中選擇,如圖5所示。其中“Make .torrent file wizard”菜單項(xiàng)是一個創(chuàng)建BT發(fā)布文件向?qū)?,而“Make .torrent file”則是一個命令執(zhí)行選項(xiàng),但打開的對話框一樣,如圖6所示。
它可以分別對單獨(dú)文件、單個目錄或者指定目錄下所有文件和子目錄三種模式來制作。如果要把單個文件制作成BT發(fā)布文件,則要選擇“standalone file”單選項(xiàng);如果要對單個文件夾制作BT發(fā)布文件,則要選擇“standalone firectory”單選項(xiàng);而如果要對某個文件夾下的所有子目錄文件都一起制作成BT發(fā)布文件,則要選擇“all subitem directory”單選項(xiàng)。要發(fā)布的文件或目錄是通過單擊“Select”按鈕,打開資源管理器選擇的,當(dāng)然也可自己直接在“target to build”文本框中輸入要發(fā)布的文件或文件路徑。
“announce url”文本框中是要指明BT文件發(fā)布的目的地址(也稱存放BT文件的tracker服務(wù)器),你如果自己有確定的tracker服務(wù)器地址,可刪除程序安裝后提供的BitTorrent官方tracker服務(wù)器,如果沒有,則直接采用好了,把自己想供別人共享下載的BT資源文件發(fā)布到BitTorrent的官方tracker服務(wù)器上。
“Piece size”是用來設(shè)置文件的分塊信息的,按系統(tǒng)默認(rèn)即可。
所有選項(xiàng)確認(rèn)好后,單擊“Make”按鈕,即開始制作“.torrent”文件了, 一個“.torrent”約20~50k,任務(wù)完成后,可以結(jié)束completedir程序。此時.torrent文件已經(jīng)制作成功,彈出如圖7所示提示對話框。
到此并沒有結(jié)束文件的發(fā)布,雙擊剛才所制作的.torrent文件,即可彈出如圖3類似的復(fù)合對話框,不同的只是此處對話框標(biāo)題顯示的是“choose file to save as …”,是要選擇存放此BT發(fā)布文件夾目標(biāo)路徑。此時不能把路徑搞混,應(yīng)該選擇你剛選的源文件,將.torrent文件的目標(biāo)地址指向你剛才共享的位置。選擇好后,單擊“保存”按鈕即開始上傳文件到所設(shè)置的trcaker服務(wù)器上,此時你必須與互聯(lián)網(wǎng)連接暢通。發(fā)布完后不要單擊對話框中的“Finish”,不關(guān)閉這個窗口就正式作了種子(seed)提供上傳服務(wù)了。
通過以上步驟,普通用戶就能把自己的文件發(fā)布在互聯(lián)網(wǎng)上,供其他用戶共享下載了。
4.BT下載存在的問題
最后我們來談一下BT下載存在的問題,這也是目前為什么BT下載有些降溫的原因。
(1)盡管BT下載克服了像P2P下載那樣的文件版權(quán)集中的問題,但仍不是最終的解決辦法。
(2) 另外一個問題也是BT下載的優(yōu)點(diǎn)帶來的,如果在某一時刻沒有人下載,或者沒有用戶為自己提供想需的某塊文件,則沒有人為自己提供下載服務(wù)了,也就不能下載了。這在很多時候還不如傳統(tǒng)下載方式,雖然慢點(diǎn),但不至于下載不了。還有,在BT下載時,得同時給別人提供下載服務(wù),這樣也就有一部分帶寬要分配給其他用戶使用了,也就不能盡全力為自己下載服務(wù)了,影響了效率。
(3)安全問題也是BT下載的最嚴(yán)重問題之一,因?yàn)锽T下載時,同時要為其他用戶提供下載服務(wù),別人可以到自己硬盤中找需要的文件塊,這樣就帶來了許多安全隱患。對于一些別有用心的人來說,給你安裝一個什么病毒、木馬之類的破壞性程序是完全可能的。而且你保存在計算機(jī)中的信息完全可以被別人“看”個精光。因?yàn)锽T下載對用戶基本上沒有任何身份驗(yàn)證過程。
以上僅是幾個主要方面,其實(shí)還有許多問題仍沒解決,總之,目前使用BT下載的國內(nèi)環(huán)境還不完全成熟,無論從效率,還是從安全角度來說都還有待進(jìn)一步提高。