BT協(xié)議具體分析_第1頁
BT協(xié)議具體分析_第2頁
BT協(xié)議具體分析_第3頁
BT協(xié)議具體分析_第4頁
BT協(xié)議具體分析_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、支持BT協(xié)議的P2P應(yīng)用程序很多,如BitBuddy、FlashBT、BitComet和BitSpirit等,這里以應(yīng)用程序BT為例來分析BT協(xié)議。本文中的BT,如其后沒有“協(xié)議”兩字,表示的是BT應(yīng)用程序。 BT由如下幾部分組成:.torrent文件、種子提供站點(diǎn)、目錄服務(wù)器和內(nèi)容發(fā)布者/下載者。.torrent文件是一個(gè)文本文件,包含了 tracker信息和文件信息兩部分。tracker信息主要是BT下載中需要用到的tracker服務(wù)器的地址和針對(duì)tracker服務(wù)器的設(shè)置;文件信息是指將目標(biāo)文件計(jì)算處理后再根據(jù)BT協(xié)議的B編碼規(guī)則網(wǎng)編碼后得到的信息。BT的主要原理是把提供下載的文件虛擬分

2、成大小相等的塊,塊大小必須為 2Kbyte的整數(shù)次方(由于是虛擬分塊,硬盤上并不產(chǎn)生各個(gè)塊文件),并把每個(gè)塊的索引信息和Hash驗(yàn)證碼寫入.torrent文件中,所以.torrent文件就是被下載文件的“索引”。種子提供站點(diǎn)也就是.torrent文件的提供站點(diǎn),為下載者提供.torrent文件下載服務(wù)。目錄服務(wù) 器記錄被下載的文件的索引信息及下載該文件的用戶的信息(主要是IP地址及端口號(hào))。早期的BT協(xié)議只支持tracker(種子發(fā)布站)服務(wù)器,這種目錄服務(wù)器是集中式目錄與分布式查詢的混合型;在BT協(xié)議的升級(jí)版本中,增加了對(duì)DHT(分布式Hash表)網(wǎng)絡(luò)的支持,該網(wǎng)絡(luò)中目錄服務(wù)器是分布式的。本

3、文的討論只涉及 tracker服務(wù)器。內(nèi)容發(fā)布者/下載者是BT網(wǎng)絡(luò)的主體,最終的下載由它們完成。構(gòu)成BT網(wǎng)絡(luò)的這幾部分的相互關(guān)系如圖1所示。 圖1 BT覆蓋網(wǎng)絡(luò)的結(jié)構(gòu)根據(jù)BT的工作原理,為了分析BT協(xié)議的交互過程,本文重點(diǎn)關(guān)注本地BT客戶機(jī)的運(yùn)行過程。圖2顯示了BT協(xié)議的測試環(huán)境,其中BT客戶機(jī)的IP地址是 ,使用Wireshark俘獲BT協(xié)議分組的交互過程,Wireshark版本號(hào)為 。它們與因特網(wǎng)相連,BT服務(wù)器位于因特網(wǎng),BT版本號(hào)為。BT協(xié)議的測試環(huán)境 BT協(xié)議主要包括3個(gè)部分:.torrent文件的格式(現(xiàn)已加密,對(duì)非支持BT協(xié)議的軟件透明)、trackerHTTP/HTTPS協(xié)議和

4、Bittorrent協(xié)議。其中 trackerHTTP/HTTPS協(xié)議是BT客戶機(jī)與tracker服務(wù)器之間的通信協(xié)議,Bittorrent協(xié)議是BT客戶機(jī)之間的通信協(xié)議。下面介紹一下trackerHTTP/HTTPS協(xié)議。BT客戶機(jī)依次向.torrent中的tracker服務(wù)器發(fā)送連接請(qǐng)求,以獲得正在下載該文件的對(duì)等方列表(主要是IP地址和監(jiān)聽端口)。如果連接成功獲得列表,就關(guān)閉連接,嘗試與列表中的對(duì)等方建立連接;如果不成功,嘗試下一個(gè)tracker服務(wù)器。由下圖知本次測試環(huán)境第一次向服務(wù)器tracker地址為,結(jié)果沒有找到,BT客戶機(jī)與BT服務(wù)器的交互過程下圖所示。 BT客戶機(jī)與BT服務(wù)器

5、的交互過程分析這些分組,易知分組197、198、199是建立TCP連接的三次握手。BT客戶機(jī)通過200號(hào)分組向tracker服務(wù)器發(fā)出獲取對(duì)等方列表的請(qǐng)求,202、203(重復(fù))號(hào)是對(duì)分組為應(yīng)答。204是對(duì)203號(hào)分組的應(yīng)答,205-218號(hào)分組是雙方互相關(guān)閉TCP連接并復(fù)位的過程。下面重點(diǎn)分析200號(hào)分 組。200號(hào)分組中的HTTP部分內(nèi)容如圖所示,使用*號(hào)代替空格以便于分析。圖200號(hào)分組中的HTTP部分內(nèi)容(沒有找到)最后,(用隨機(jī)網(wǎng)絡(luò)的路由算法)向地址為的服務(wù)器發(fā)出請(qǐng)求,經(jīng)過2090、2501、2502建立了TCP連接,如:BT客戶機(jī)與BT服務(wù)器的交互過程,第一個(gè)握手分組2504(帶O

6、ptions 12字節(jié))如下所示:帶Options選項(xiàng)的不帶Options選項(xiàng)的其中一些成分的含義如下:SHA1 Hash of info dictionary:.torrent文件中的文件夾得FQDN下的絕對(duì)路徑的Shal值。tracker服務(wù)器通過它在發(fā)布列表中找到對(duì)應(yīng)的記錄。peer_id:BT客戶機(jī)的惟一性標(biāo)志,在客戶機(jī)啟動(dòng)時(shí)產(chǎn)生,共20bit。在BTV1.0中沒有規(guī)定產(chǎn)生peer_id的算法,只要求能夠保證惟一性即可。雖然該機(jī)器上有這一個(gè)文件,但由于種種原因,它獲得不了其資源,于是就有了分組4116, BitTorrent continuation data 的回應(yīng)。然后,再有了分組

7、4119,continuation data 的回應(yīng)。分組5956,發(fā)出handshark-TCP-Retransmission請(qǐng)求,繼續(xù)尋找資源。這個(gè)5647分組也是continuation data。也就用這種方式對(duì)等節(jié)點(diǎn)間建立連接。當(dāng)建立TCP后,對(duì)等方之間的交互過程如下圖所示:包括以下幾步:(1)首先,10.80.120請(qǐng)求與25建立TCP連接,如分組3547、3838(重復(fù))、4328(重復(fù))、4355、4356(2)握手,通過Handshake分組實(shí)現(xiàn)。在本例中通過分組4370來實(shí)現(xiàn)。(3)互換所擁有的資源的情況。通過Bitfield分組實(shí)現(xiàn)。該例中,對(duì)等

8、方B尚未下載任何資源,故公布資源擁有情況的只有對(duì)等方A。對(duì)等方A通過分組4443公布自己的資源擁有情況。并互通對(duì)資源的意愿情況,包括interested、notinterested、choke、unchoke等4種目前不能提供資源。雙方連接斷開。但20依舊詢問25能不能提供資源。如果能的話就可以用TCP方式傳輸數(shù)據(jù)。下面看一個(gè)比較完整的交互過程。首先,20與47建立TCP連接如分組18781、19648(重傳)、19723、19724。然后20與47握手,Handshake分組19738、19789、19801、19836實(shí)現(xiàn)。最后20發(fā)出對(duì)47資源感興趣的分組19850。47用分組19905做出回應(yīng),并用19928詢問需要的資源。20用19932分組進(jìn)行回應(yīng),并請(qǐng)求資源:其中需要的參數(shù)有piece index(片標(biāo)志)、beginoffset of piece(片起始偏移地址)、piece length(片長度)。告 (data in piece中的內(nèi)容),如下圖:可以開始下載所需資源。數(shù)據(jù)的傳輸過程:用的是UDP,212249-21309是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論