對BitTorrent通信協(xié)議的分析與檢測_第1頁
對BitTorrent通信協(xié)議的分析與檢測_第2頁
對BitTorrent通信協(xié)議的分析與檢測_第3頁
對BitTorrent通信協(xié)議的分析與檢測_第4頁
對BitTorrent通信協(xié)議的分析與檢測_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

1、對BitTorrent通信協(xié)議的分析與檢測C 2007年1月30日 11:00電信科學(xué) 作者:程磊 陳鳴 周駿 風(fēng)靡一時的應(yīng)用程序BitTorrent(BT)曾在短期內(nèi)改變了因特網(wǎng)的流量構(gòu)成,對IP網(wǎng)絡(luò)的運營、維護和治理產(chǎn)生了巨大阻礙。 本文建立了分析BT協(xié)議的環(huán)境,通過俘獲BT分組并對比BT協(xié)議規(guī)范,分析了BT通信協(xié)議的交互過程,并據(jù)此配合BT的特征字符串、特征端口及行為特征,提出了一種檢測通信流中存在BT通信的方法。 1、概述 傳統(tǒng)的因特網(wǎng)服務(wù)如Web、FTP、DNS等均使用客戶機/服務(wù)器(C/S)模式進行通信。在通信過程中,提供服務(wù)的程序稱為服務(wù)器,請求服務(wù)的程序稱為客戶機。因此,在復(fù)雜

2、通信的過程中,一個服務(wù)器專門可能在另一次通信中變?yōu)榭蛻魴C,反之亦然。C/S模式的特征是:服務(wù)器是總是打開的主機,具有永久的IP地址,并可擴展為服務(wù)器池;客戶機與服務(wù)器直接通信,能夠間歇地與服務(wù)器連接,能夠具有動態(tài)的IP地址,同時客戶機彼此之間不直接通信。C/S模式的最大特點是服務(wù)和資源集中,所有對服務(wù)請求的處理通常是由服務(wù)器完成的。 對等方到對等方(peer-to-peer,P2P)是近年來流行起來的通信模式,但實際上因特網(wǎng)正是基于這種理念建立起來的。隨著因特網(wǎng)用戶和服務(wù)的增多,服務(wù)器面臨的壓力越來越大,P2P又重新回到了人們的視線中。在P2P模式中,無總是打開的應(yīng)用服務(wù)器,任意的端系統(tǒng)之間可

3、直接通信,對等方間歇地連接,并可改變IP地址。P2P模式的特征是:服務(wù)和資源分布化,資源不集中存儲在某些設(shè)備上,而是分散存儲在運行P2P程序的設(shè)備上,每一個對等方都能夠為其他對等方提供服務(wù)。例如,主機A要從網(wǎng)上下載一個文件a,假如以P2P模式工作,那么它工作的差不多過程是:定位具有文件a的對等方,向?qū)Φ确教岢鱿螺d請求,并獲得該文件。值得注意的是,主機A在下載文件a的同時,可能也在為其他用戶提供文件(包括文件a)下載。依照定位文件a的方式不同,可將P2P應(yīng)用方式分為3類:集中式目錄、分布式查詢和結(jié)合這兩者的混合方式1。集中式目錄模式屬于第一代P2P應(yīng)用,使用一臺大型服務(wù)器(或服務(wù)器場)來提供目錄

4、服務(wù),其代表是Napster2,缺點是存在單點故障、性能瓶頸和侵犯版權(quán)等問題。分布式查詢將目錄服務(wù)完全分布在覆蓋網(wǎng)絡(luò)的所有對等方中,每一個對等方負(fù)責(zé)維護一部分目錄內(nèi)容。系統(tǒng)采納洪泛查詢(queryflooding)算法使用戶獲得文件信息,收到該報文的主機向它們的所有鄰居轉(zhuǎn)發(fā)該報文,這些鄰居又依次向它們的所有鄰居轉(zhuǎn)發(fā)該報文等,其代表是Gnutella3。第3種方式是前兩種方式的結(jié)合,其中一種實現(xiàn)方法是將覆蓋網(wǎng)絡(luò)中的對等方劃分為若干小組,每個小組選取一個具有高帶寬連接和高因特網(wǎng)連接性的成員作為組長,組長負(fù)責(zé)治理組內(nèi)成員及與其他組長通信。在小組內(nèi)使用集中式目錄服務(wù),服務(wù)器確實是該組的組長。各組長之間

5、使用分布式的目錄服務(wù)?;旌戏绞侥壳霸赑2P應(yīng)用中使用最為廣泛,其代表是KaZaA、BitTorrent(BT)4。 由于BT使用廣泛,其通信協(xié)議引起的流量巨大,BT對因特網(wǎng)的運營、維護和治理具有重要阻礙。為此,參考文獻5對BT的一般工作原理進行了介紹,參考文獻6在分析BT工作原理的基礎(chǔ)上,比較了BT與C/S模式應(yīng)用程序的特點,提出了一種BT改進建議,但這些文獻都沒有詳細(xì)地分析BT通信協(xié)議(簡稱BT協(xié)議)原理和交互過程。為此本文深入分析了BT通信協(xié)議和其交互過程,研究了BT通信的特點,并由此提出了一種檢測通信流中存在BT通信的方法。 2、建立BT的分析環(huán)境 支持BT協(xié)議的P2P應(yīng)用程序?qū)iT多,如

6、BitBuddy、FlashBT、BitComet和BitSpirit等,那個地點以應(yīng)用程序BT為例來分析BT協(xié)議。本文中的BT,如其后沒有“協(xié)議”兩字,表示的是BT應(yīng)用程序。 BT由如下幾部分組成:.torrent文件、種子提供站點、目錄服務(wù)器和內(nèi)容公布者/下載者。.torrent文件是一個文本文件,包含了tracker信息和文件信息兩部分。tracker信息要緊是BT下載中需要用到的tracker服務(wù)器的地址和針對tracker服務(wù)器的設(shè)置;文件信息是指將目標(biāo)文件計算處理后再依照BT協(xié)議的B編碼規(guī)則網(wǎng)編碼后得到的信息。BT的要緊原理是把提供下載的文件虛擬分成大小相等的塊,塊大小必須為2Kb

7、yte的整數(shù)次方(由因此虛擬分塊,硬盤上并不產(chǎn)生各個塊文件),并把每個塊的索引信息和Hash驗證碼寫入.torrent文件中,因此.torrent文件確實是被下載文件的“索引”。種子提供站點也確實是.torrent文件的提供站點,為下載者提供.torrent文件下載服務(wù)。目錄服務(wù)器記錄被下載的文件的索引信息及下載該文件的用戶的信息(要緊是IP地址及端口號)。早期的BT協(xié)議只支持tracker服務(wù)器,這種目錄服務(wù)器是集中式目錄與分布式查詢的混合型;在BT協(xié)議的升級版本中,增加了對DHT(分布式Hash表)網(wǎng)絡(luò)的支持,該網(wǎng)絡(luò)中目錄服務(wù)器是分布式的。本文的討論只涉及tracker服務(wù)器。內(nèi)容公布者/

8、下載者是BT網(wǎng)絡(luò)的主體,最終的下載由它們完成。構(gòu)成BT網(wǎng)絡(luò)的這幾部分的相互關(guān)系如圖1所示。 圖1 BT覆蓋網(wǎng)絡(luò)的結(jié)構(gòu) 依照BT的工作原理,為了分析BT協(xié)議的交互過程,本文重點關(guān)注本地BT客戶機的運行過程。圖2顯示了BT協(xié)議的測試環(huán)境,其中BT客戶機的IP地址是79,使用ActivePorts工具獵取BT使用的端口號,ActivePorts的版本號為1.4。使用協(xié)議分析儀Ethereal俘獲BT協(xié)議分組的交互過程,運行Ethereal協(xié)議分析儀的IP地址是79,Ethereal版本號為0.10.14。它們通過路由器與因特網(wǎng)相連,BT服務(wù)器位于因特網(wǎng),BT版本號為4.20.2。BT協(xié)議的測試環(huán)境

9、3、BT協(xié)議的工作過程 BT協(xié)議要緊包括3個部分:.torrent文件的格式、trackerHTTP/HTTPS協(xié)議和Peerwire協(xié)議(使用TCP)。其中trackerHTTP/HTTPS協(xié)議是BT客戶機與tracker服務(wù)器之間的通信協(xié)議,Peer wire協(xié)議是BT客戶機之間的通信協(xié)議。 使用Ethereal跟蹤分析下載一個文件的過程中BT協(xié)議的具體交互過程,結(jié)合BT協(xié)議規(guī)范,繪制了BT協(xié)議各組件的工作時序圖(參見圖3)。 圖3 BT協(xié)議各組件的工作時序 3.1.torrent文件的結(jié)構(gòu) 圖4是下載中使用的.torrent文件的一段要緊內(nèi)容,采納了B編碼。B編碼是一種簡潔的數(shù)據(jù)組織方式

10、,支持4種數(shù)據(jù)類型:bytestrings、integers、lists和egers、lists和dictionaries類型分不以字母i、l、d作為首定界符,以字母e作為尾定界符。bytestrings類型不使用首/尾定界符,其格式為:,如4:spam表示字符串“spam”。這4種數(shù)據(jù)類型嵌套使用構(gòu)成了.torrent文件的內(nèi)容。其中,用*號代替空格以便于分析。 圖4.torrent文件的內(nèi)容 其中的一些要緊成份如下: announce:tracker服務(wù)器的URL,本例中為http:/:8080/announce。 announce-list:可選。備用tracker服務(wù)器的URL列表,本

11、例中為:8080/announce,:6969/announce等。 creationdate:可選。.torrent文件的創(chuàng)建日期,使用標(biāo)準(zhǔn)的UNIX時刻,本例中為1152105243。 comment:可選。.torrent文件制作者添加的任意格式的講明。 createdby:可選。制作.torrent文件的工具,本例中使用的制作工具是BitComet/0.67。 encoding:可選。公布的資源使用的編碼方式,在本例中使用的是GBK。 info:公布的文件的信息。有兩種格式,單文件格式和多文件格式。單文件格式包括length、md5sum(可選)、name、piecelength、pi

12、eces;多文件格式包括files、name、piecelength、pieces,其中files包括length、path、md5sum(可選),每一個文件都有單獨的length、path、md5sum(可選)。本例使用多文件格式,共有兩個文件,分不是“LoveUndercover .txt”和“影視帝國().新扎師妹 3.國語DVDSCR中字.rmvhe”,piece長度為262144byte.piece個數(shù)為34780。 .torrent文件中還包括其他一些可選項,只要它們遵循B編碼方式就能夠被客戶機識不,那個地點不再累述。 3.2trackerHTTP/HTTPS協(xié)議 BT客戶機依次向

13、.torrent中的tracker服務(wù)器發(fā)送連接請求,以獲得正在下載該文件的對等方列表(要緊是IP地址和監(jiān)聽端口)。假如連接成功獲得列表,就關(guān)閉連接,嘗試與列表中的對等方建立連接;假如不成功,嘗試下一個tracker服務(wù)器。 服務(wù)器的IP地址為39,的IP地址為14,BT客戶機與BT服務(wù)器的交互過程如圖5所示。 圖5 BT客戶機與BT服務(wù)器的交互過程 分析這些分組,易知分組702、748(分組702的重傳)、750、752是建立TCP連接的三次握手。BT客戶機通過753號分組向tracker服務(wù)器發(fā)出獵取對等方列表的請求,754號、755號分組為應(yīng)答。757-760號分組為關(guān)閉連接的交互過程。

14、下面重點分析753號、754號和755號分組。 753號分組中的HTTP部分內(nèi)容如圖6所示,使用*號代替空格以便于分析。 圖6 753號分組中的HTTP部分內(nèi)容 其中一些成分的含義如下: info_hash:.torrent文件中的info部分的Shal校驗碼,共20byte。tracker服務(wù)器通過它在公布列表中找到對應(yīng)的記錄。 peer_id:BT客戶機的惟一性標(biāo)志,在客戶機啟動時產(chǎn)生,共20bit。在BTV1.0中沒有規(guī)定產(chǎn)生peer_id的算法,只要求能夠保證惟一性即可。 port:提供上傳的端口號,亦即常講的監(jiān)控端口,那個地點是6641(可自行設(shè)定)。 key:可選。一個擴展的惟一性

15、標(biāo)志,即使改變了IP地址,也能夠使用該字段標(biāo)志該BT客戶機。 uploaded/downloaded:上傳/下載的字節(jié)數(shù)(從客戶機向tracker服務(wù)器發(fā)送“started”開始計算),服務(wù)器能夠用它來做流量分析。 left:還需要下載的字節(jié)數(shù)。 compact:壓縮標(biāo)志。假如值為1表示同意壓縮格式的對等方列表,即用6byte表示一個對等方(前4byte表示IP地址,后2byte表示端口號);值為0表示不同意。 event:表明客戶機的狀態(tài),只能是started、completed、stopped等3種中的一種。 除了上面這些例子中包含的參數(shù)外,可選的參數(shù)還有: ip:可選。IP地址,沒有的話

16、服務(wù)器會自己找到。 numwant:可選??蛻魴C希望從tracker服務(wù)器得到的對等方的數(shù)目。 trackerid:可選。假如在之前的announce中包含了trackerid,將其值設(shè)置在該處。 服務(wù)器中有個track程序來治理這些請求,得到這一串代碼后就會用info_hash來查找列表,若找到就能夠下載。接著它會反連(NatCheck)客戶機的IP地址和端口來推斷它是內(nèi)網(wǎng)用戶依舊公網(wǎng)用戶(像10.10.10.x如此的地址。是無法連通的)。接下來服務(wù)器返回現(xiàn)在正在下載那個文件的所有公網(wǎng)用戶的IP地址和端口(包含在分組754、755中,因為返回的數(shù)據(jù)比較多,因此被分片返回)。HTTP之上的部分

17、數(shù)據(jù)如圖7所示。 圖7 HTTP之上的部分?jǐn)?shù)據(jù) 其中“1998:”及其之前的部分使用的是ASCII字符集,“1998:”之后的部分是用16進制表示的二進制數(shù)。從分組內(nèi)容能夠看出interval的值為1800。也確實是BT客戶機最多每隔1800個時刻單位就與tracker服務(wù)器重新聯(lián)系一次:peers部分共有1998 byte。對753號分組的分析可知,BT客戶機支持對對等方列表的壓縮,因此在754、755號分組返回的對等方列表是用壓縮方式存儲的,即6 byte表示一個對等方,例如da40 91 e8 41 af表示的對等方是32:16815,dd ea 3b 9f 7a 2f表示的對等方是49

18、:31279。對等方列表的長度為1 998 byte,也確實是講返回的對等方個數(shù)為333個。 3.3Peerwire協(xié)議 BT客戶機會嘗試與返回的對等方列表中的部分對等方建立連接,下面以對等方列表中的49:31279為例,分析一下對等方之間的交互過程。如圖8所示,只分析TCP之上的部分。約定對等方A指的是49:31279,對等方B指的是79:1504。 圖8 對等方間通信過程 建立TCP連接之后,對等方之間的交互過程包括以下幾步: (1)握手,通過Handshake分組實現(xiàn)。在本例中通過分組2480和2481實現(xiàn)。 (2)互換所擁有的資源的情況。通過Bitfield分組實現(xiàn)。該例中,對等方B尚

19、未下載任何資源,故公布資源擁有情況的只有對等方A。對等方A通過分組2487公布了自己的資源擁有情況。 (3)互通對資源的意愿情況,包括interested、notinterested、choke、unchoke等4種。本例中通過分組2490、2493實現(xiàn)。 (4)互相請求資源,通過requestpiece、piece分組實現(xiàn),例如本例中的分組2495、2503、2696。 (5)斷開連接。因Peerwire協(xié)議使用了TCP方式,對等方A與對等方B斷開連接時,只需要斷開它們之間的TCP連接即可。 分組2495是一個requestpiece分組,其結(jié)構(gòu)如圖9所示,其中需要的參數(shù)有pieceinde

20、x(片標(biāo)志)、beginoffset of piece(片起始偏移地址)、piece length(片長度)。分組2696是一個answer piece分組(也稱為piece分組),其結(jié)構(gòu)如圖10所示,其中包括piece index(片標(biāo)志)、begin offset of piece(片起始偏移地址)、date(數(shù)據(jù))。 圖9 requestpiece分組的結(jié)構(gòu) 圖10 piece分組的結(jié)構(gòu) 4、一種檢測BT流量的方法 經(jīng)分析,BT應(yīng)用程序的工作過程歸納如下: 資源公布者制作.torrent文件并上載到種子公布站點,將客戶機連入BT網(wǎng)絡(luò)并在tracker服務(wù)器上公布信息。默認(rèn)情況下,BT的監(jiān)

21、聽端口為6881-6889,也可由使用者指定;tracker服務(wù)器的監(jiān)聽端口要緊有8080、8000、6969和2710,它們采取的連接方式差不多上TCP。 BT客戶機(下載者)獵取.torrent文件,并向.torrent文件中提供的tracker服務(wù)器依次發(fā)起連接請求,直至與其中之一建立TCP連接并獵取對等方列表。使用Ethereal抓包分析,發(fā)覺這些連接請求被同意的可能性比較小,一般不到10%。 BT客戶機(下載者)獵取.torrent文件,并向.torrent文件中提供的tracker服務(wù)器依次發(fā)起連接請求,直至與其中之一建立TCP連接并獵取對等方列表。使用Ethereal抓包分析,發(fā)覺這些連接請求被同意的可能性比較小,一般不到10%。 BT客戶機隨機地向列表中的對等方發(fā)起連接請求,因為對等方列表中對等方個數(shù)比較多,因此在短時刻內(nèi)發(fā)出大量TCP連接請求分組。這些分組的源地址相同,源端口號相鄰,目的地址端口號不同,同時有相當(dāng)一部分的目的端口號為6881-6889。 假如連接建立成功,BT對等方之間進行握手,握手過程中使用特征字符串“BitTorrent

溫馨提示

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

最新文檔

評論

0/150

提交評論