複製鏈接
請複製以下鏈接發送給好友

BT種子

鎖定
一種電腦“.torrent”文件,裝有BT(BitTorrent)下載必須的文件信息,作用相當於HTTP下載裏的URL鏈接。
一個用户要利用BitTorrent協議下載文件之前,先要從某個網站下載一個包含該文件相關信息的“.torrent”文件。
該種子文件包含一個稱為“追蹤器(tracker)”的服務器節點(因特網上有很多追蹤器)的地址,該追蹤器負責維護參與一個特定文件分發的所有對等方的信息。 [1] 
中文名
BT種子
外文名
bit torrent seed
類    型
下載內鏈
擴展名
.torrent
大    小
10-200KB
發明者
布萊姆·科恩(Bram Cohen)

BT種子相關概念

P2P
Peer to Peer點對點網絡,簡稱 P2P,是指網絡用户之間可以直接通信的網絡結構。簡單的説,P2P直接將人們聯繫起來,讓人們通過互聯網直接交互。使得網絡上的溝通變得容易、更直接共享和交互,真正地消除中間環節。P2P使用户可以直接連接到其他用户的計算機,而不是像過去那樣連接到服務器去瀏覽與下載。P2P另一個重要特點是改變互聯網現在的以大網站為中心的狀態,重返“非中心化”,把權力交還給用户。 [2] 
BitTorrent協議
BitTorrent(簡稱 BT,比特洪流)是一個多點下載的的 P2P文件共享軟件。它由程序員 Bram Cohen使用 Python語言編寫,並且還是代碼開源的專利軟件,可以自由地下載和傳播。它採用高效的軟件分發系統和點對點技術共享大體積文件(如一部電影或電視節目),使多個用户同時下載一個文件的時候,他們之間互相為對方提供自己所擁有的文件部分的下載。這樣就把文件下載的帶寬開銷分攤到每個用户那裏,理論上 BT下載可以支持無限多個用户來下載同一個文件。因此,BT被人們稱之為“羣集、散佈、集中”的文件傳輸協議。目前,各種支持 BT下載的軟件層出不窮,BT技術已經被廣泛的應用於文件下載中。
一般來説一個BT文件發佈系統由以下幾個部分組成:
(1)一個普通的web 服務器;
(2)一個靜態元信息文件,即BT種子文件( 以.torrent 結尾, 包含了文件的基本屬性);
(3)一個追蹤器(Tracker);Tracker實際上是一台服務器,它負責幫助peer之間相互建立連接;
(4)BT客户端(peer,系統的核心部分,用於實現下載策略);
(5)一個被下載文件的擁有者(seed)。 [3] 

BT種子簡介

種子是一個形象的比喻。BT下載的原理從某種意義上説就像春天種下一粒種子,到了秋天就會收穫萬粒稻菽一樣的滾雪球般的越來越大。於是人們就把發出的下載文件叫做種子。而種子文件就是記載下載文件的存放位置、大小、下載服務器的地址、發佈者的地址等數據的一個索引文件。這個種子文件並不是你最終要下載的東西(如電影,軟件等等),但是有了種子文件,你就能高速下載到你需要的文件。種子文件的擴展名是:*.torrent。
BT種子可稱為比特流種子,主要是因為很多下載軟件解析種子後下載速度很快。
BT首先在上傳者端把一個文件分成了Z個部分,甲在服務器隨機下載了第N個部分,乙在服務器隨機下載了第M個部分,這樣甲的BT就會根據情況到乙的電腦上去拿乙已經下載好的M部分,乙的BT就會根據情況去到甲的電腦上去拿甲已經下載好的N部分,這樣就不但減輕了服務器端的負荷,也加快了用户方(甲乙)的下載速度,效率也提高了,更同樣減少了地域之間的限制。比如説丙要連到服務器去下載的話可能才幾K,但是要是到甲和乙的電腦上去拿就快得多了。所以説用的人越多,下載的人越多,大家也就越快,BT的優越性就在這裏。而且,在你下載的同時,你也在上傳(別人從你的電腦上拿那個文件的某個部分),所以説在享受別人提供的下載的同時,你也在貢獻。
BT把提供完整文件的檔案稱為種子(SEED),正在下載的人稱為客户(Client),某一個文件有多少種子多少客户是可以看到的,只要有一個種子,就可以放心地下載,一定能抓完。當然,種子越多、客户越多的文件抓起來的速度會越快,下載以後的種子可能會因目標文件不存在而失效。
BT 是通過BT種子文件進行下載部署的,BT種子文件放在一個普通的網絡服務器上,它包含了要共享的文件的信息,包括文件名、大小、文件的分塊信息和一個指向追蹤器的超級鏈接Url。被下載文件的擁有者也可以看成這個文件的“原始”下載者。要求文件下載的用户通過BT客户端軟件分解.torrent 文件,取得文件的信息和指向追蹤器服務器的 Url,同 Tracker進行通訊。 [4] 

BT種子文件結構

BT種子文件(.torrent)的具體文件結構如下: [4] 
全部內容必須都為Bencoding編碼類型。整個文件為一個字典結構,包含如下關鍵字:
announce: tracker 服務器的 URL(字符串);
announce-list(可選):備用 tracker 服務器列表(列表);
creation date(可選):種子創建的時間,Unix 標準時間格式,從 1970 1 月1 日 00:00:00 到創建時間的秒數(整數);
comment(可選):備註(字符串) created by(可選):創建人或創建程序的信息(字符串);
info:一個字典結構,包含文件的主要信息。分為二種情況,單文件結構或多文件結構。
單文件info結構如下:
length:文件長度,單位字節(整數);
md5sum(可選):長 32 個字符的文件的 MD5 校驗和,BT 不使用這個值,只是為了兼容一些程序所保留!(字符串);
name:文件名(字符串);
piece length:每個塊的大小,單位字節(整數), 塊長一般來説是 2 的權值;
pieces:每個塊的 20 個字節的 SHA1 Hash 的值(二進制格式)。
多文件info結構如下:
files:一個字典結構;
length:文件長度,單位字節(整數);
md5sum(可選):與單文件結構中相同;
path:文件的路徑和名字,是一個列表結構,如\test\test。txt 列表為l4:test8test。txte;
name:最上層的目錄名字(字符串);
piece length:與單文件結構中相同;
pieces:與單文件結構中相同。

BT種子使用方法

BT種子下載資源

首先,客户端用户訪問BT發佈站點,通過站點上的信息找到想要的資源文件。其中Bt發佈站點上顯示共享文件的信息和每個文件的共享用户信息,併為每個文件提供一個種子文件的下載鏈接。
客户端下載了該種子後,與BT種子文件中的跟蹤服務器(Tracker)通訊。跟蹤服務器首先記錄該客户端的用户信息,同時將其它共享用户的信息提供給該客户端,該客户端根據這些信息與其他共享用户的客户端軟件發生通訊,從其中找出下載速率最快的40~50個客户端進行下載;其中每個客户端都按照種子文件中的規定對文件進行分塊。文件的上傳和下載都是按塊進行的。
當客户端軟件完成一個文件分塊的下載後,就可以進行該塊的上傳。
隨着參與下載的用户數量的增加,下載速度加速。
完成整個共享文件的下載後客户端就只上傳,不下載,成為共享文件的種子;在一些人氣很旺的下載中,原始下載者經常可以在較短的時間內退出上傳,由其它已經下載到整個文件的下載者繼續提供上傳。
圖1 通信連接過程 圖1 通信連接過程
部分完成的用户開始退出,當某個種子的所有用户均結束下載或上傳後,該種子可用生命期結束。
Tracker即時接收所有peer信息,並且給每個peer一份隨機的peers列表。Tracker通過 HTTP GET參數獲得信息,然後返回一個Bencoding編碼後的信息。peer每隔一段時間連一次Tracker,告知自己的進度,並和那些已經直接連接上的peer進行數據的上傳下載。這些連接遵循BitTorrent peer協議,通過TCP協議進行通信。seed和tracker,peers之間通訊連接的步驟如圖1。 [5] 

BT種子發佈資源

上面講過,同一個資源,下載的人越多,下載的速度也就越快。經常用BT下載的電腦,一般都默認共享了不止一個資源,因此想辦法讓擁有你想要的資源的那些電腦連入網絡,就是很有必要的。具體辦法就是發佈一個大家也都需要的資源,這也充分體現了BT下載模式最重要的精神——分享。
要想發佈一個資源,要經過2個步驟:製作種子文件、傳播種子文件。當然還要把該種子文件對應的資源所在電腦開機連入網絡一段時間,具體時間不定,主要看該種子下載的情況,最好至少要保證有一部分人下載成功。
用户發佈一個 BT 種子文件的具體步驟如下:
(1)選擇一個BT發佈站點,這個站點運行普通的網絡服務器端程序,如 Apache、IIS 等。通過網站幫助信息找到Tracer的Url。
(2)用要發佈的完整文件和Tracker的URL創建一個種子文件(.torrent 文件);
(3)將種子文件上傳到網絡服務器上;
(4)在網絡服務器的網頁上發佈種子文件(.torrent 文件)鏈接和對這個文件的一些簡單的描述;
(5)發佈用户(seed)提供完整的文件。 [5] 
參考資料