[精品]BitTorrent協(xié)議詳解

[精品]BitTorrent協(xié)議詳解

ID:46291403

大小:80.00 KB

頁數(shù):6頁

時間:2019-11-22

[精品]BitTorrent協(xié)議詳解_第1頁
[精品]BitTorrent協(xié)議詳解_第2頁
[精品]BitTorrent協(xié)議詳解_第3頁
[精品]BitTorrent協(xié)議詳解_第4頁
[精品]BitTorrent協(xié)議詳解_第5頁
資源描述:

《[精品]BitTorrent協(xié)議詳解》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、BitTrrent(簡稱BT,比特洪流)是一個文件分發(fā)協(xié)議,它通過URL識別內(nèi)容并且和網(wǎng)絡(luò)無縫結(jié)合。它在HTTP平臺上的優(yōu)勢在于,同時下在一個文件的下載者在下載的同時不斷互相上傳數(shù)據(jù),使文件源可以在很有限的負(fù)載增加的情況下支持大量下載者同時下載。一個BT式文件分發(fā)需要以下實體:?一個普通網(wǎng)絡(luò)服務(wù)器?一個靜態(tài)元信息文件?一個BTTracker?一個“原始”下載者?網(wǎng)絡(luò)終端瀏覽者?網(wǎng)絡(luò)終端下載者這里假設(shè)理想情況下一個文件有多個下載者。架設(shè)一個BT服務(wù)器步驟如下:1.開始運(yùn)行Tracker(已運(yùn)行的跳過這一步);2.開始運(yùn)行普通網(wǎng)絡(luò)服務(wù)器端程序,如Apache,已運(yùn)行

2、的跳過這一步;3.在網(wǎng)絡(luò)服務(wù)器上將.torrent文件關(guān)聯(lián)到Mimctypc類型application/x-bittorrcnt(已關(guān)聯(lián)的跳過這一步);4.用要發(fā)布的完整文件和Tracker的URL創(chuàng)建-一個元信息文件(.torrent文件);5.將元信息文件放置在網(wǎng)絡(luò)服務(wù)器上;6.在網(wǎng)頁上發(fā)布元信息文件(.grrem文件)鏈接;7.原始下載者提供完整的文件(原本)。通過BT下載步驟如下:1.安裝BT客戶端程序(已安裝的跳過這一步);2.上網(wǎng);3.點(diǎn)擊一個鏈到.torrent文件的鏈接;4.選擇本地存儲路徑,選定需要下載的文件(對冇選擇下載功能的BT客戶端用戶)

3、;5.等待下載完成;6.用戶退岀下載(之前下載者不停止上傳)。連接狀況如下:?網(wǎng)站正常提供靜態(tài)文件連接,并且啟動客戶端上的BT程序;?Tracker即時接收所有下載者信息,并且給每個下載者一份隨機(jī)的peer列表。通過HTTP或HTTPS協(xié)議實現(xiàn);?下載者每隔一段時間連一次Tracher,告知口己的進(jìn)度,并和那些已經(jīng)直接連接上的peer進(jìn)行數(shù)據(jù)的上傳下載。這些連接遵循BitTorrentpeer協(xié)議,通過TCP協(xié)議進(jìn)行通信。?原始下載者只上傳不下載,他擁有整個文件,所以很必要向網(wǎng)絡(luò)中傳輸完文件的所有部分。在一些人氣很旺的下載中,原始下載者經(jīng)??梢栽谳^短的時間內(nèi)退出

4、上傳,由其它已經(jīng)下載到整個文件的下載者繼續(xù)提供上傳。元信息文件和Tracker的回應(yīng)信息都以一種簡單高效可擴(kuò)展的格式(Bencoding,B編碼)傳送。B編碼過的信息就是以包含字符串和整型數(shù)據(jù)的字典和列表的嵌套(像在Python屮一樣),可擴(kuò)展性是指可以通過減少字典忽略的關(guān)鍵值來添加新的特性。B編碼規(guī)則如下:?字符串表示為十進(jìn)制數(shù)的既定字符串長度加冒號再跟原字符串。如4:spam就相當(dāng)于'spam'o?整型數(shù)據(jù)表示成前面加丫后面加0中間是十進(jìn)制數(shù),如i3e就相當(dāng)于3,i-3e就是-3。整型數(shù)據(jù)沒有長度限制。i?0c無效,所有以詢開頭的除了代表0的iOe,其它都無

5、效。?列表編碼為一個T開頭后面跟它所包含的項目(已經(jīng)編碼過)最后加一個0,比如14:spam4:eggse就等于['spam;'eggs']。?字典編碼為一個d開頭后面跟一個交替關(guān)鍵值(key)及其對應(yīng)值的列表最后加一個0。如:d3:cow3:moc>4:spam4:eggse相當(dāng)丁{'cow':'moo;'spam':'eggs1}d4:spamll:al:bee相當(dāng)于{'spam':['a','b*J)關(guān)鍵值必須是處理過的字符串(用原始字符串編碼的,而且不是數(shù)字字母混合編碼的)。元信息文件就是B編碼的冇以下關(guān)鍵值的字典:announce(聲明)Tracker

6、的URL。info(信息)此關(guān)鍵值對應(yīng)一個字典包含以卜描述的關(guān)鍵值:關(guān)鍵值name對應(yīng)一個字符串,代表默認(rèn)的下載文件或存成冃錄的名字。它是純粹建議性的。關(guān)鍵值piecelength(塊長)對應(yīng)文件分割成的塊的字節(jié)數(shù)。出于傳輸需要,文件被分割成大小相等的塊,除了最后-?塊通常會小一些。塊長一?般來說是2的權(quán)值,人部分設(shè)塊長為256K(2的18次幕)。關(guān)鍵值pieces(塊)對應(yīng)一個字符此字符冷長度是20的倍數(shù)。它可以再分成每20字節(jié)—段的多個字符串,分別對應(yīng)塊在索引中的SHA1校驗碼(hash)。還有關(guān)鍵值length(長度)和files(文件),它們不能同時出現(xiàn)

7、也不能都不出現(xiàn)。當(dāng)length出現(xiàn)說明這個元信息文件只是單文件下載,否則說明是多文件的II錄結(jié)構(gòu)下載。單文件情況下‘length對應(yīng)文件長度的字節(jié)數(shù)。多文件情況被看作是把許多單文件按文件列表中的順序連成一個大文件下載,而關(guān)鍵值files就對應(yīng)文件列表,是一個字典的列表,其屮每個字典又包含以下關(guān)鍵值:length(長度)文件氏度的字節(jié)數(shù)。path(路徑)一個包含字符串的列表,字符串就是了目錄名,最示一項的字符串是文件名。(一個長度為零的length表單是錯誤的。)在單文件情況下,關(guān)鍵值name是文件名;多文件情況下,它就成了冃錄名。Tracker質(zhì)詢是雙向的。Tr

8、ackci?通過HTTP

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。