傳統的文件下載服務基于客戶端/服務器模型,將下載的文件放置在服務器上,而用戶登錄到服務器以在本地下載文件。在文件下載過程中,傳輸文件的源與目的地不同,并且服務器僅在一個方向上將文件傳輸到客戶端。
這種傳統軟件下載模型的缺點很明顯,整個系統的瓶頸位于服務器上。由于服務器的處理能力,互聯網訪問鏈接帶寬和其他環境限制,當下載量很大時,服務器通常不堪重負。用戶完成下載后,就無法與服務器聯系,其他用戶也無法從該用戶下載的先前版本獲得任何幫助。
隨著Internet技術的不斷發展,點對點(P2P)技術已逐漸成為一種成熟的文件交換和下載技術。 P2P技術發揚了互聯網的“自由,平等,互助和共享”精神。
最早的P2P技術是音樂交換軟件Napster,最受歡迎的P2P文件交換技術是BT(BitTorrent)。越來越多的人使用BT共享和下載軟件,Internet提供了一個“種子”網站,并且BT客戶端軟件隨處可見,但是Internet上大多數關于為Windows平臺安裝BT服務器的信息,并且通常不涉及BT。原則上,這使得希望使用Unix / Linux平臺架設BT服務器,并提供“種子”下載的管理員不知道如何啟動。本文從用戶的角度討論了BT的原理,并詳細說明了如何在Unix / Linux平臺下設置BT服務器并提供“種子”下載服務。
BT原理
BT是BitTorrent(BitTorrent)的縮寫。 BitTorrent的特點是用戶可以同時下載,還可以為其他用戶提供上傳,因此它不會像FTP服務器那樣隨著用戶數量的增加而導致下載速度的提高。相反,對于BT下載,下載的人越多,速度就越快。
傳統的文件共享服務(例如FTP,HTTP等)的工作如圖1所示。這種方式隨著用戶數量的增加,對帶寬的需求也增加了,太多的用戶會產生瓶頸,因此下載量很大網站具有并發用戶限制和下載速度限制。
BT首先在第一個共享端下載(或稱為Downloader),將文件分為N個部分,A用戶可以從Downloader中隨機下載M部分,B用戶可以從Downloader服務器中隨機下載K部分。用戶A的BT客戶端下載程序將根據情況從用戶B下載KTH部分。類似地,用戶B也可以從用戶A下載M部分。這樣,可以減輕服務器端的負擔,并可以加快用戶的下載速度。
從構建BT服務器的角度來看,整個BT系統包括四個部分。
1、BT客戶
BT客戶端是安裝在用戶PC機上的客戶端軟件,目前有很多BT客戶端可用,這里推薦BitComet()。它是BT下載客戶端軟件的類似FlashGet界面,易于使用。BitComet負責在下載的同時與其他用戶共享下載的內容,該過程完全不需要用戶參與。如果您不知道如何使用BitComet客戶端下載,請安裝BitComet來訪問BT China網站,嘗試了解如何使用。
2、 BT“種子”文件
bittorrent“種子”文件是a.torrent文件,它是第一個文件共享用戶基于源文件制作的源文件的指紋。 “種子”文件很小,范圍從數十KB到數百KB,并且包含文件所在的BT端的地址信息和目標文件的校驗和。當BT用戶獲取“種子”后,直接在BT客戶端軟件中運行“種子”文件,BT軟件將根據“種子”文件中包含的信息自動找到該文件的所有可用下載源,然后進行下載。
3、追蹤器
您無需指定服務器即可使用BT服務,盡管BT服務中仍然存在服務器的概念,但使用BT服務的人無需關心服務器的位置。跟蹤器是一種在服務器上運行的程序,可跟蹤同時下載文件的人數。當BT客戶端連接到Tracker時,它將獲得下載人員列表,根據該列表,BT客戶端將自動連接到網絡中的其他節點進行下載。
4、種子
BT服務將提供完整文件的用戶節點稱為“種子”,將要下載該文件的用戶稱為“客戶端”。現在可以查看特定文件中有多少個“種子”和多少個“客戶端”。只要有一個“種子”就可以安全地下載。當然,種子越多,文件下載的客戶就越多。
如果發現“種子”數字為0,則無需嘗試。用戶完成下載后,如果其他人未選擇關閉,他們可以繼續從該用戶下載。因此,當更多的人下載時,通常“種子”的數量也會增加,下載速度會更快。
|