資源描述:
《BT協(xié)議具體分析.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、BT協(xié)議分析支持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ò)
3、中目錄服務(wù)器是分布式的。本文的討論只涉及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é)議的測(cè)試環(huán)境,其中BT客戶機(jī)的IP地址是10.10.80.120,使用Wireshark俘獲BT協(xié)議分組的交互過程,Wireshark版本號(hào)為1.4.1。它們與因特網(wǎng)相連,BT服務(wù)器位于因特網(wǎng),BT版本號(hào)為1.24。BT協(xié)議的測(cè)試環(huán)境???BT協(xié)議主要包括3個(gè)部分:.torrent文件的格式(現(xiàn)
4、已加密,對(duì)非支持BT協(xié)議的軟件透明)、trackerHTTP/HTTPS協(xié)議和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ù)器。由下圖知本次測(cè)試環(huán)境第一次向服務(wù)器tracker地
5、址為204.152.198.236發(fā)出請(qǐng)求,結(jié)果沒有找到,BT客戶機(jī)與BT服務(wù)器的交互過程下圖所示。????BT客戶機(jī)與BT服務(wù)器的交互過程?分析這些分組,易知分組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)容(沒有找到)最后,10.10.80.120以
6、迭代的方式(用隨機(jī)網(wǎng)絡(luò)的路由算法)向地址為123.110.87.2的服務(wù)器發(fā)出請(qǐng)求,經(jīng)過2090、2501、2502建立了TCP連接,如:BT客戶機(jī)與BT服務(wù)器的交互過程,第一個(gè)握手分組2504(帶Options12字節(jié))如下所示:帶Options選項(xiàng)的不帶Options選項(xiàng)的其中一些成分的含義如下:●SHA1Hashofinfodictionary:.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
7、的算法,只要求能夠保證惟一性即可。雖然該機(jī)器上有這一個(gè)文件,但由于種種原因,它獲得不了其資源,于是就有了分組4116,BitTorrentcontinuationdata的回應(yīng)。然后,再有了分組4119,continuationdata的回應(yīng)。然后10.10.80.120再次向175.180.186.26請(qǐng)求資源分組5956,發(fā)出handshark-TCP-Retransmission請(qǐng)求,繼續(xù)尋找資源。這個(gè)5647分組也是continuati