專利名稱:一種點對點流量深度監(jiān)測方法和設備的制作方法
技術(shù)領域:
本發(fā)明涉及流量監(jiān)測技術(shù),特別涉及一種點對點(P2P, Point to Point)流 量深度監(jiān)測方法和設備。
背景技術(shù):
比特流(BT, BitTorrent)協(xié)議是一種基于P2P技術(shù)的文件分發(fā)協(xié)議,通過 統(tǒng)一資源定位符(URL, Uniform Resource Locator)識別內(nèi)容并且和網(wǎng)絡無縫 結(jié)合。BT協(xié)議基于超文本傳輸協(xié)議(HTTP, Hypertext Transfer Protocol)平臺 實現(xiàn),其特點在于文件下載者在下載文件的同時,還可以不斷地相互上傳數(shù)據(jù), 以使得文件源在有限的負載增加情況下,能夠支持大量下載者同時下載。
一個BT式文件分發(fā)通常需要以下實體 一個普通網(wǎng)絡服務器,如個人計 算機(PC, Personal Computer); —個靜態(tài)元信息文件; 一個BT跟蹤服務器 (Tracker); —個"原始"下載者,即提供種子的用戶;網(wǎng)絡終端瀏覽者;網(wǎng)絡 終端下載者。
假設理想情況下, 一個文件有多個下載者,那么現(xiàn)有技術(shù)中,架設一個BT 服務器的步驟如下
開始運行Tracker (已運行的跳過這一步);開始運行網(wǎng)絡服務器端程 序(已運行的跳過這一步);在網(wǎng)絡服務器上將元信息文件(.torrent文件) 關(guān)聯(lián)到Mimetype類型application/x-bittorrent (已關(guān)聯(lián)的跳過這一步);用 要發(fā)布的完整文件和Tracker的URL創(chuàng)建一個.torrent文件;將.torrent文件 放置在網(wǎng)絡服務器上;在網(wǎng)頁上發(fā)布.torrent文件鏈接;原始下載者提供完 整的文件(原本)。上述過程中的網(wǎng)絡服務器是指發(fā)布種子信息的服務器, 即發(fā)布種子信息的網(wǎng)站所在的網(wǎng)絡服務器,而Tracker是指實際保存種子信
息及對應的文件的服務器,用戶是看不見的。也就是說,對于用戶來說,只 知道通過網(wǎng)頁瀏覽,從某一網(wǎng)站下載種子信息以及與該種子對應的文件,但
實際上,與該種子對應的文件是存儲在Tracker上的。 用戶通過客戶端進行BT下載的步驟如下
安裝BT客戶端程序(已安裝的跳過這一步);上網(wǎng);點擊一個鏈接 到.torrent文件的鏈接;選擇本地存儲路徑,選定需要下載的文件;等待下 載完成;用戶退出下載。在退出下載之前,用戶不停地上傳數(shù)據(jù)。
在客戶端下載期間,整個網(wǎng)絡的連接狀況如下
網(wǎng)站正常提供靜態(tài)文件連接;用戶啟動客戶端上的BT程序。Tracker 即時接收所有下載者信息,并且給每個下載者一份隨機的對等方(peer)列 表,即下載者可以連接的其它客戶端的信息。下載者每隔一段時間連接一次 Tracher,以告知Tracher自己的進度,比如,已經(jīng)下載了多少信息,還有多 少信息沒有下載等,并和已經(jīng)直接連接上的peer進行數(shù)據(jù)的上傳下載。這 些連4姿均遵循BitTorrent peer協(xié)i義,通過傳豐#控制協(xié)議(TCP, Transfer Control Protocol)進行通信。其中,原始下載者,即提供種子的用戶只上傳不下載, 他擁有整個文件,所以需要向網(wǎng)絡傳輸文件的所有部分。但在一些人氣很旺 的下載中,原始下載者可以在較短的時間內(nèi)退出上傳,由其它已經(jīng)下載到整 個文件的下載者繼續(xù)提供上傳。
現(xiàn)有技術(shù)中,支持BT協(xié)議的P2P應用程序很多,比如,比特伙伴 (BitBuddy)、變態(tài)快車(FlashBT )、比特彗星(BitComet)以及比特精 靈(BitSpirit)等。
基于上述介紹,現(xiàn)有4支術(shù)中,BT應用程序的工作過程可歸納為以下步
驟
1 )種子提供者將torrent文件上載到種子發(fā)布站點,并在tracker服務器 上發(fā)布信息。默認情況下,BT協(xié)議的監(jiān)聽端口為6881-6889,也可由使用者 指定;tracker服務器的監(jiān)聽端口主要有8080、 8000、 6969和2710'它們采 取的連接方式都是TCP。
2 )下載者所在客戶端獲取.torrent文件,并向.torrent文件中提供的tracker 服務器依次發(fā)起連接請求,直至與其中之一建立TCP連接并獲取Peer列表, 即獲取下載者所在客戶端可以連接的其它客戶端信息。
3 )下載者所在客戶端隨機地向Peer列表中的Peer發(fā)起連接請求分組, 因為Peer列表中Peer個數(shù)比較多,所以在短時間內(nèi)會發(fā)出大量TCP連接請 求分組。這些連接請求分組的源地址相同,源端口號相鄰,目的地址/端口 號不同,并有相當一部分的目的端口號在6881-6889之間。
4) 如果連接建立成功,BTPeer之間進行握手,握手過程中使用特征字 符串"BitTorrent protocol",然后使用感興趣(interested )、不感興趣(not interested)、抑制(choke)和暢通(unchoke )等4種分組互通對資源的意 愿情況,之后通過請求分塊(Request Piece )和Piece分組傳輸資源。
5) 資源傳輸完畢,關(guān)閉TCP連接。
現(xiàn)有技術(shù)中,在很多情況下,需要對P2P流量進行識別,即對網(wǎng)絡通信 過程中的哪些數(shù)據(jù)包為BT數(shù)據(jù)包進行識別,并根據(jù)識別結(jié)果進行后續(xù)處理, 比如,分析、取證等。現(xiàn)有技術(shù)中常用的識別方式為端口識別方式以及單關(guān) 鍵字識別方式。由于通常情況下,BT協(xié)議傳輸使用的端口為6881 - 6889, 所以通過識別當前數(shù)據(jù)包的端口是否為6881 - 6889之間的某個端口 ,即可 確定該數(shù)據(jù)包是否為BT數(shù)據(jù)包?;蛘?,通過解析數(shù)據(jù)包中是否攜帶有某個 關(guān)鍵字,比如"BitTorrent protocol",來確定當前數(shù)據(jù)包是否為BT數(shù)據(jù)包。
采用上述兩種方式雖然能夠在一定程度上識別出BT數(shù)據(jù)包,但采用上 述兩種方式識別BT數(shù)據(jù)包的準確率都比較低。因為,如果用戶使用的端口 不是6881-6889中的一個,而是用戶自己定義的一個端口 ;或者,當BT 協(xié)議版本升級時,BT數(shù)據(jù)包格式中可能不再攜帶"BitTorrent protocol"這 一關(guān)鍵字,那么采用上述方式就不能正確識別出當前數(shù)據(jù)包是否為BT數(shù)據(jù) 包。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種點對點流量深度監(jiān)測方法,能夠準確地識別出 BT數(shù)據(jù)包。
本發(fā)明實施例同時提供一種點對點流量深度監(jiān)測設備,能夠準確地識別 出BT數(shù)據(jù)包。
本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的
一種點對點流量深度監(jiān)測方法,該方法包括
實時捕獲數(shù)據(jù)包,并放入緩存中;
從所述緩存中提取數(shù)據(jù)包,通過預先設置的兩種以上比特流BT數(shù)據(jù)包 識別方式中的一種,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果是,則發(fā)布判 斷結(jié)果,并結(jié)束流程;
否則,通過所述預先設置的兩種以上BT數(shù)據(jù)包識別方式中其它未使用 的BT數(shù)據(jù)包識別方式,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果通過所有 BT數(shù)據(jù)包識別方式均判定所述數(shù)據(jù)包不是BT數(shù)據(jù)包,則結(jié)束流程。
一種點對點流量深度監(jiān)測設備,該設備包括數(shù)據(jù)包捕獲單元、應用協(xié) 議及內(nèi)容分析單元以及結(jié)果發(fā)布單元;
所述數(shù)據(jù)包捕獲單元,用于實時捕獲數(shù)據(jù)包,并放入緩存中;
所述應用協(xié)議及內(nèi)容分析單元,用于從所述緩存中提取數(shù)據(jù)包,通過預 先設置的兩種以上BT數(shù)據(jù)包識別方式中的一種,判斷所述數(shù)據(jù)包是否為BT 數(shù)據(jù)包,如果是,則將所述判斷結(jié)果發(fā)送給所述結(jié)果發(fā)布單元;如果不是, 則通過所述預先設置的兩種以上BT數(shù)據(jù)包識別方式中其它未使用的BT數(shù) 據(jù)包識別方式,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果通過所有BT數(shù)據(jù) 包識別方式均判定所述數(shù)據(jù)包不是BT數(shù)據(jù)包,則可以確定所述數(shù)據(jù)包不是 BT數(shù)據(jù)包;
所述結(jié)果發(fā)布單元,用于將接收自所述應用協(xié)議及內(nèi)容分析單元的判斷 結(jié)果進行發(fā)布。
可見,采用本發(fā)明實施例的技術(shù)方案,實時捕獲數(shù)據(jù)包,并放入緩存中; 從緩存中提取數(shù)據(jù)包,通過預先設置的兩種以上BT數(shù)據(jù)包識別方式中的一 種,判斷該數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果是,則發(fā)布判斷結(jié)果;否則,通 過所述預先設置的兩種以上BT數(shù)據(jù)包識別方式中其它未使用的方式判斷該 數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果通過所有方式均判定該數(shù)據(jù)包不是BT數(shù)據(jù) 包,則結(jié)束流程。與現(xiàn)有技術(shù)相比,本發(fā)明實施例所述方案中通過多種方式 來判斷當前數(shù)據(jù)包是否為BT數(shù)據(jù)包,從而提高了 BT數(shù)據(jù)包的識別準確度。
圖1為本發(fā)明方法實施例的流程圖。
圖2為本發(fā)明設備實施例的組成結(jié)構(gòu)示意圖。
具體實施例方式
針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明實施方式中提出 一種P2P流量深度 監(jiān)測方案,即實時捕獲數(shù)據(jù)包,并放入緩存中;從緩存中提取數(shù)據(jù)包,通 過預先設置的兩種以上BT數(shù)據(jù)包識別方式中的一種,判斷該數(shù)據(jù)包是否為 BT數(shù)據(jù)包,如果是,則發(fā)布判斷結(jié)果信息,包括該數(shù)據(jù)包的源和目的IP地 址及端口、捕獲時間以及數(shù)據(jù)包長度等;否則,通過預先設置的兩種以上
如果通過所有方式均判定該數(shù)據(jù)包不是BT數(shù)據(jù)包,則認為該數(shù)據(jù)包不是BT
數(shù)據(jù)包。
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實 施例,對本發(fā)明作進一步地詳細說明。
圖1為本發(fā)明方法實施例的流程圖。在實際應用中,本發(fā)明實施例所述方 法可通過設置在某一局域網(wǎng)的匯聚網(wǎng)處的識別設備來實現(xiàn)。如圖1所示,包括 以下步驟
步驟101:進行初始化。
本步驟具體包括讀取配置信息,裝載發(fā)現(xiàn)策略以及讀取歷史關(guān)聯(lián)鏈表中
的記錄。其中,讀取配置信息是指獲取預先設置的配置信息,比如,需要監(jiān)控 的端口、識別結(jié)果存放在哪里以及是否需要將識別結(jié)果導出等信息。裝載發(fā)現(xiàn)
策略即指獲取預先設置的BT數(shù)據(jù)包識別方式,這里所提到的BT數(shù)據(jù)包識別方 式通常為兩種以上。歷史關(guān)聯(lián)鏈表為預先設置的、用于記載之前已經(jīng)確定為BT 數(shù)據(jù)包的數(shù)據(jù)包相關(guān)信息,如源IP地址和端口 ,目的IP地址和端口等。
步驟102:開啟三個線程,即數(shù)據(jù)包捕獲線程、應用協(xié)議及內(nèi)容分析線程 以及結(jié)果發(fā)布線程。
其中,數(shù)據(jù)包捕獲線程,用于從網(wǎng)卡中實時捕獲數(shù)據(jù)包,并放入緩存中; 應用協(xié)議及內(nèi)容分析線程,用于從緩存中實時提取數(shù)據(jù)包,進行協(xié)議分析以及 內(nèi)容分析;結(jié)果發(fā)布線程,用于將分析結(jié)果通過Web技術(shù)進行發(fā)布,比如,發(fā) 布到多臺監(jiān)測人員所使用的客戶端上,以便監(jiān)測人員根據(jù)分析結(jié)果進行后續(xù)處 理。
步驟103:數(shù)據(jù)包捕荻線程從網(wǎng)卡中實時捕獲數(shù)據(jù)包,并放入緩存,形成 隊列。
步驟104:應用協(xié)議及內(nèi)容分析線程從緩存中快速提取出數(shù)據(jù)包進行分析, 即進行IP協(xié)議報文的解封裝,如去掉幀頭等,提取出其中攜帶的源和目的IP 地址及端口 ,找到TCP或是用戶數(shù)據(jù)4艮協(xié)議(UDP, User Datagram Protocol) 報文內(nèi)容的起始位置,提取出數(shù)據(jù)報文。
其中,解封裝的方式與現(xiàn)有^l術(shù)中相同,不再贅述。
步驟105:將步驟104中提取出的源和目的IP地址以及端口與預先設置的 歷史關(guān)聯(lián)鏈表中記錄的信息進行比較,即判斷提取出的源和目的IP地址以及端 口是否已經(jīng)被記錄在了歷史關(guān)聯(lián)鏈表中,如果是,則判定當前的數(shù)據(jù)包為BT 數(shù)據(jù)包,并結(jié)束流程;否則,判定當前數(shù)據(jù)包不是BT數(shù)據(jù)包,并執(zhí)行步驟106。
依據(jù)之前的介紹可知,歷史關(guān)聯(lián)鏈表中記錄的信息為已經(jīng)判定為BT數(shù)據(jù) 包的數(shù)據(jù)包相關(guān)信息,所以本步驟中,通過將當前數(shù)據(jù)包中提取的信息與記錄 的數(shù)據(jù)包相關(guān)信息進行比較,即可判定當前的數(shù)據(jù)包是否為BT數(shù)據(jù)包。
步驟106:分析步驟104中提取出的數(shù)據(jù)報文,判斷其中是否同時攜帶 有關(guān)鍵字"GET" 、 ""HTTP/1.1" 、 ".torrent";如果有,則判定當前的 數(shù)據(jù)包為BT數(shù)據(jù)報,并結(jié)束流程;如果沒有,則執(zhí)行步驟107。
本步驟中,如果判斷出數(shù)據(jù)報文中同時攜帶有關(guān)鍵字"GET"、 ""HTTP/1.1" 以及".torrent",則說明該數(shù)據(jù)包為元信息文件下載包,其 中含有BT的文件名稱,那么,則需要進一步解析出該BT文件名稱。具體 解析方式為本領域公知。比如,本發(fā)明實施例中,可以調(diào)用一個預先設置的 用于解析該情況下的BT文件名稱的函數(shù)handle—tornt—from—http來進行解 析。并且,可以將解析出的BT文件名稱發(fā)送給結(jié)果發(fā)布線程,由結(jié)果發(fā)布 線程將接收到的BT文件名稱進行發(fā)布,具體發(fā)布方式可以只指存儲到磁盤 上或者顯示到監(jiān)測人員所在客戶端的屏幕上等。
另外,本步驟中,在判斷出當前數(shù)據(jù)包為BT數(shù)據(jù)包后,還需要判斷當 前數(shù)據(jù)包的源和目的IP地址以及端口是否已經(jīng)存在于預先設置的歷史關(guān)聯(lián) 鏈表中,如果沒有,則將當前數(shù)據(jù)包的源和目的IP地址以及端口添加到歷 史關(guān)聯(lián)鏈表中,以便之后再次捕獲到該數(shù)據(jù)包時,可以通過步驟105所述方 式判斷該數(shù)據(jù)包是否為BT數(shù)據(jù)包。以下步驟中如果判斷出當前數(shù)據(jù)包為BT 數(shù)據(jù)包時,也要執(zhí)行上述判斷及添加流程,后續(xù)類似情況時將不再贅述。
步驟107:分析步驟104中提取出的數(shù)據(jù)報文,判斷其中是否攜帶有關(guān) 鍵字"通知(announce)";如果有,則判定當前的數(shù)據(jù)包為BT數(shù)據(jù)報, 并結(jié)束流程;如果沒有,則執(zhí)行步驟108。
本步驟中,如果判斷出數(shù)據(jù)報文中攜帶有關(guān)鍵字"announce",那么則 說明該數(shù)據(jù)包為客戶端向Tracker發(fā)送的消息,并且其中攜帶有BT的文件 名稱。那么,則需要進一步解析出該BT文件名稱?,F(xiàn)有技術(shù)中,對于客戶 端向Tracker發(fā)送的消息,通常會采用B編碼方式,所以本步驟中,需要對 B編碼的數(shù)據(jù)報文進行解析,獲取其中攜帶的BT報文名稱。
其中,B編碼的具體規(guī)則為
字符串表示為十進制數(shù)的既定字符串長度加冒號再加原字符串,如 4: spam就相當于'spam'。
整型數(shù)據(jù)表示為前面加'i'后面加'e'中間是十進制數(shù),如i3e就相當于3, i-3e就相當于-3;整型數(shù)據(jù)沒有長度限制;i-0e表示無效,所有以'i0'開頭的 除了代表0的iOe外,其它也都無效。
列表編碼以一個'l'開頭,后面跟它所包含的項目(已經(jīng)編碼過),最后 力口一個'e', 比如14:spam4:eggse就相當于['spam', 'eggs'〗。
字典編碼以一個'd'開頭,后面跟一個交替關(guān)鍵字(key)及其對應值的 歹'J表,最后力口一個'e'; 如d3:cow3:moo4:spam4:eggse相當于('cow': 'moo', 'spam': 'eggs'} , d4:spam11 :al:bee相當于{'spam': ['a', 'b']}。
關(guān)鍵字必須是處理過的字符串,該字符串用原始字符串編碼,而且不能 是數(shù)字字母混合編碼的。通常情況下,元信息文件就是采用B編碼的具有以 下關(guān)鍵字的字典
通知 (announce ) :tracker 月良務器的 URL ,如 http :
〃tracker.cnxp.com:8080/announce;
通知列表(announce-list):可選,備用tracker服務器的URL列表; 創(chuàng)建日期(creation date ):可選,.torrent文件的創(chuàng)建日期,使用標準
的UNIX時間(從起始時間開始計時到當前時間所過去的秒數(shù));
說明(comment):可選,.torrent文件制作者添加的任意格式的說明; 創(chuàng)建工具(created by ): 可選,制作.torrent文件的工具,例如
BitComet/0.67;
編碼(encoding):可選,發(fā)布的資源使用的編碼方式,例如中文編碼 擴展國際標準(GBK);
信息(info):發(fā)布的文件的信息,通常有兩種格式,即單文件格式和 多文件格式;其中,單文件格式中包括文件長度(length)、有可能采用的 編碼方式(md5s腿)(可選)、文件名稱(name )、分塊長度(piece length )、 分塊個數(shù)(pieces);多文件格式中包括文件(files) 、 name、 piece length 、 pieces, 其中files中包括length、路徑(path) 、 md5sum (可選),每一個
文件老卩有單獨的length、 path、md5sum (可選)。
Info信息中的單文件或多文件格式中所包括的各關(guān)鍵字的具體含義為 本領域公知,不再贅述。通常情況下,files、 path或name等關(guān)鍵字中都可 能攜帶有BT文件名稱,所以,本步驟中對B編碼數(shù)據(jù)報文進行解析并獲取 其中攜帶的BT報文名稱,就是指找到數(shù)據(jù)報文中的files、 path、 name等關(guān) 鍵字,然后根據(jù)編碼規(guī)則把緊跟其后的內(nèi)容取出?;谏鲜鼋榻B,本領域技 術(shù)人員可以較為容易地獲知如何實現(xiàn)解析,不再贅述。比如,本實施例中可 以采用 一 個預先設置的用于解析該情況下的BT文件名稱的函數(shù) handle—file—from—bcod來進行解析。之后,可以將解析出的BT文件名稱發(fā) 送給結(jié)果發(fā)布線程,由結(jié)果發(fā)布線程將接收到的BT文件名稱進行發(fā)布。
步驟108:將步驟104中提取出的源IP地址和端口 ,或目的IP地址和端口 與預先設置的歷史關(guān)聯(lián)鏈表中記錄的信息進行比較,即判斷提取出的源IP地址 和端口 ,或者目的IP地址和端口是否已經(jīng)被記錄在了歷史關(guān)聯(lián)鏈表中,如果是, 則判定當前的數(shù)據(jù)包為BT數(shù)據(jù)包,并結(jié)束流程;否則,判定當前數(shù)據(jù)包不是 BT數(shù)據(jù)包,并執(zhí)行步驟109。
本步驟的判斷方式中,只要判斷出通信雙方有一方是已確定的BT數(shù)據(jù) 包傳輸者,則將當前數(shù)據(jù)包判定為BT數(shù)據(jù)包。
步驟109:分析步驟104中提取出的源或目的IP端口的端口號是否在 6881 ~ 6889的范圍之內(nèi),如果是,則判定當前的數(shù)據(jù)包為BT數(shù)據(jù)報,并結(jié) 束流程;否則,執(zhí)行步驟110 。
步驟110:分析步驟104中提取出的數(shù)據(jù)報文中是否攜帶有關(guān)鍵字 "BitTorrent protocol",如果是,則判定當前的數(shù)據(jù)包為BT數(shù)據(jù)報,并結(jié) 束流程;否則,判定當前的數(shù)據(jù)包不是BT數(shù)據(jù)包,結(jié)束流程。
步驟109以及110的判斷方式為現(xiàn)有技術(shù),不再贅述。
可見,采用本發(fā)明實施例的技術(shù)方案,對于某一數(shù)據(jù)包,由于可以采用 多關(guān)鍵字方式判斷其是否為BT數(shù)據(jù)包,所以識別結(jié)果更為準確,而且,能 夠獲取其中攜帶的文件屬性信息,如BT文件名稱等。
需要說明的是,圖1所示實施例僅用于舉例說明,并不用于限制本發(fā)明 的技術(shù)方案。比如,在實際應用中,并不是一定要先執(zhí)行步驟105,然后才
能執(zhí)行106、 107或108等步驟,這些步驟之前并沒有嚴格的先后順序。換 句話說,對于本發(fā)明實施例中提供的幾種BT數(shù)據(jù)包識別方式,可以先采用 其中的任何一種方式進行BT數(shù)據(jù)包識別,當采用這種方式判斷出當前數(shù)據(jù) 包不是BT數(shù)據(jù)包時,再釆用剩余方式中的任何一種進行判斷。在實際應用 中,可以根據(jù)實際需要設置這些BT數(shù)據(jù)包識別方式的執(zhí)行順序。而且,實 際應用中,并不限于采用以上幾種BT數(shù)據(jù)包識別方式,對于其它已知的BT 數(shù)據(jù)包識別方式,也應包含在本發(fā)明實施例的保護范圍之內(nèi)。
基于上述方法,圖2為本發(fā)明設備實施例的組成結(jié)構(gòu)示意圖。如圖2所 示,該設備包括數(shù)據(jù)包捕獲單元201、應用協(xié)議及內(nèi)容分析單元202以及 結(jié)果發(fā)布單元203;
數(shù)據(jù)包捕獲單元201,用于實時捕獲數(shù)據(jù)包,并放入緩存中;
應用協(xié)議及內(nèi)容分析單元202,用于從緩存中提取數(shù)據(jù)包,通過預先設 置的兩種以上BT數(shù)據(jù)包識別方式中的一種,判斷該數(shù)據(jù)包是否為BT數(shù)據(jù) 包,如果是,則將判斷結(jié)果發(fā)送給結(jié)果發(fā)布單元203;如果不是,則通過預 先設置的兩種以上BT數(shù)據(jù)包識別方式中其它未使用的方式判斷該數(shù)據(jù)包是 否為BT數(shù)據(jù)包,如果通過所有方式均判定該數(shù)據(jù)包不是BT數(shù)據(jù)包,則從 緩存中提取下一個數(shù)據(jù)包,并重新執(zhí)行自身功能;
結(jié)果發(fā)布單元203,用于將接收自應用協(xié)議及內(nèi)容分析單元202的判斷 結(jié)果進行發(fā)布。
其中,所述預先設置的兩種以上BT數(shù)據(jù)包識別方式可以為以下方式中 的任意兩種以上的組合
提取數(shù)據(jù)包的源IP地址和端口 ,以及目的IP地址和端口 ;判斷提取出 的源IP地址和端口以及目的IP地址和端口是否已經(jīng)記錄在預先設置的歷史 關(guān)聯(lián)鏈表中,如果是,則判定該數(shù)據(jù)包為BT數(shù)據(jù)包;
提取數(shù)據(jù)包中的數(shù)據(jù)報文,判斷其中是否同時攜帶有關(guān)鍵字"GET"、"HTTP/1.1"以及".torrent",如果是,則判定該數(shù)據(jù)包為BT數(shù)據(jù)包; 提取數(shù)據(jù)包中的數(shù)據(jù)報文,判斷其中是否攜帶有關(guān)鍵字"announce",
如果是,則判定該數(shù)據(jù)包為BT數(shù)據(jù)包;
提取數(shù)據(jù)包的源IP地址和端口 ,以及目的IP地址和端口 ;判斷提取出
的源IP地址和端口或目的IP地址和端口是否已經(jīng)記錄在預先設置的歷史關(guān)
聯(lián)鏈表中,如果是,則判定該數(shù)據(jù)包為BT數(shù)據(jù)包;
提取數(shù)據(jù)包的源IP端口和目的IP端口 ;判斷源IP端口或目的IP端口
的端口號是否在6881 - 6889的范圍之內(nèi),如果是,則判定該數(shù)據(jù)包為BT
數(shù)據(jù)包;
提取數(shù)據(jù)包中的數(shù)據(jù)報文,判斷其中是否攜帶有關(guān)鍵字"BitTorrent protocol",如果是,則判定該數(shù)據(jù)包為BT數(shù)據(jù)包。
上述應用協(xié)議及內(nèi)容分析單元202可進一步用于,解析并獲取BT數(shù)據(jù) 包中的攜帶的BT文件名稱,并將獲取到的BT文件名稱發(fā)送給結(jié)果發(fā)布單 元203進行發(fā)布。
總之,本發(fā)明實施例的技術(shù)方案中,通過采用多關(guān)鍵字識別技術(shù)進行是 否為BT數(shù)據(jù)包的識別,提高了識別準確度;能夠從鏈路層到應用層對協(xié)議 進行深度分析,自動識別同一種應用協(xié)議使用不同傳輸層協(xié)議進行通訊時的 情況。并且,對于一數(shù)據(jù)包,可以利用多關(guān)鍵字識別技術(shù)提取其中的文件屬 性信息,為后續(xù)實施音視頻監(jiān)管提供了專用技術(shù)和專用設備的支持。也就是 說,采用本發(fā)明實施例的技術(shù)方案,后續(xù)過程中,可以對識別結(jié)果進行輸出 存儲,以用于后期的分析、取證工作;而且,可以按照要求建立或更新監(jiān)測 規(guī)則,支持在線升級;提供靈活的協(xié)議可擴展接口,通過接口模板定義新協(xié) 議,以實現(xiàn)系統(tǒng)對新協(xié)議的監(jiān)測支持。
綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的 保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改 進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種點對點流量深度監(jiān)測方法,其特征在于,該方法包括實時捕獲數(shù)據(jù)包,并放入緩存中;從所述緩存中提取數(shù)據(jù)包,通過預先設置的兩種以上比特流BT數(shù)據(jù)包識別方式中的一種,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果是,則發(fā)布判斷結(jié)果,并結(jié)束流程;否則,通過所述預先設置的兩種以上BT數(shù)據(jù)包識別方式中其它未使用的BT數(shù)據(jù)包識別方式,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果通過所有BT數(shù)據(jù)包識別方式均判定所述數(shù)據(jù)包不是BT數(shù)據(jù)包,則結(jié)束流程。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過預先設置的兩 種以上BT數(shù)據(jù)包識別方式中的一種,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包為提取所述數(shù)據(jù)包的源IP地址和端口 ,以及目的IP地址和端口 ; 判斷所述源IP J也址和端口以及所述目的IP地址和端口是否已經(jīng)記錄在 預先設置的歷史關(guān)聯(lián)鏈表中,如果是,則判定所述數(shù)據(jù)包為BT數(shù)據(jù)包。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過預先設置的兩 種以上BT數(shù)據(jù)包識別方式中的一種,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包為提取所述數(shù)據(jù)包中的數(shù)據(jù)報文,判斷其中是否同時攜帶有關(guān)鍵字 "GET" 、 "HTTP/1.1"以及".torrent",如果是,則判定所述數(shù)據(jù)包為BT 數(shù)據(jù)包。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過預先設置的兩 種以上BT數(shù)據(jù)包識別方式中的一種,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包為提取所述數(shù)據(jù)包中的數(shù)據(jù)報文,判斷其中是否攜帶有關(guān)鍵字 "announce",如果是,則判定所述數(shù)據(jù)包為BT數(shù)據(jù)包。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過預先設置的兩 種以上BT數(shù)據(jù)包識別方式中的一種,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包為提取所述數(shù)據(jù)包的源IP地址和端口 ,以及目的IP地址和端口 ;判斷所述源IP地址和端口或所述目的IP地址和端口是否已經(jīng)記錄在預 先設置的歷史關(guān)聯(lián)鏈表中,如果是,則判定所述數(shù)據(jù)包為BT數(shù)據(jù)包。
6、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過預先設置的兩種以上BT數(shù)據(jù)包識別方式中的一種,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包為 提取所述數(shù)據(jù)包的源IP端口和目的IP端口 ;判斷所述源IP端口或目的IP端口的端口號是否在6881 - 6889的范圍之內(nèi),如果是,則判定所述數(shù)據(jù)包為BT數(shù)據(jù)包;或者,提取所述數(shù)據(jù)包中的數(shù)據(jù)報文,判斷其中是否攜帶有關(guān)鍵字 "BitTorrent protocol",如果是,則判定所述數(shù)據(jù)包為BT數(shù)據(jù)包。
7、 根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述判定所述數(shù)據(jù) 包為BT數(shù)據(jù)包之后,進一步包括解析并獲取所述BT數(shù)據(jù)包中攜帶的BT文件名稱,并將所述獲取到的 BT文件名稱進行發(fā)布。
8、 一種點對點流量深度監(jiān)測設備,其特征在于,該設備包括數(shù)據(jù)包 捕獲單元、應用協(xié)議及內(nèi)容分析單元以及結(jié)果發(fā)布單元;所述數(shù)據(jù)包捕獲單元,用于實時捕獲數(shù)據(jù)包,并放入緩存中; 所述應用協(xié)議及內(nèi)容分析單元,用于從所述緩存中提取數(shù)據(jù)包,通過預 先設置的兩種以上BT數(shù)據(jù)包識別方式中的 一種,判斷所述數(shù)據(jù)包是否為BT 數(shù)據(jù)包,如果是,則將所述判斷結(jié)果發(fā)送給所述結(jié)果發(fā)布單元;如果不是, 則通過所述預先設置的兩種以上BT數(shù)據(jù)包識別方式中其它未使用的BT數(shù) 據(jù)包識別方式,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果通過所有BT數(shù)據(jù) 包識別方式均判定所述數(shù)據(jù)包不是BT數(shù)據(jù)包,則可以確定所述數(shù)據(jù)包不是 BT數(shù)據(jù)包;所述結(jié)果發(fā)布單元,用于將接收自所述應用協(xié)議及內(nèi)容分析單元的判斷 結(jié)果進行發(fā)布。
9、 根據(jù)權(quán)利要求8所述的設備,其特征在于,所述預先設置的兩種以 上BT數(shù)據(jù)包識別方式為以下各方式中的任意兩種以上的組合提取所述數(shù)據(jù)包的源IP地址和端口 ,以及目的IP地址和端口;判斷所 述源IP地址和端口以及所述目的IP地址和端口是否已經(jīng)記錄在預先設置的歷史關(guān)聯(lián)鏈表中,如果是,則判定所述數(shù)據(jù)包為BT數(shù)據(jù)包;提取所述數(shù)據(jù)包中的數(shù)據(jù)報文,判斷其中是否同時攜帶有關(guān)鍵字 "GET" 、 "HTTP/1.1"以及".torrent",如果是,則判定所述數(shù)據(jù)包為BT 數(shù)據(jù)包;提取所述數(shù)據(jù)包中的數(shù)據(jù)報文,判斷其中是否攜帶有關(guān)鍵字 "announce",如果是,則判定所述數(shù)據(jù)包為BT數(shù)據(jù)包;提取所述數(shù)據(jù)包的源IP地址和端口 ,以及目的IP地址和端口;判斷所 述源IP地址和端口或所述目的IP地址和端口是否已經(jīng)記錄在預先設置的歷 史關(guān)聯(lián)鏈表中,如果是,則判定所述數(shù)據(jù)包為BT數(shù)據(jù)包;提取所述數(shù)據(jù)包的源IP端口和目的IP端口 ;判斷所述源IP端口或目 的IP端口的端口號是否在6881 ~ 6889的范圍之內(nèi),如果是,則判定所述數(shù) 據(jù)包為BT數(shù)據(jù)包;提取所述數(shù)據(jù)包中的數(shù)據(jù)報文,判斷其中是否攜帶有關(guān)鍵字"BitTorrent protocol",如果是,則判定所述數(shù)據(jù)包為BT數(shù)據(jù)包。
10、根據(jù)權(quán)利要求9所述的設備,其特征在于,所述應用協(xié)議及內(nèi)容分 析單元進一步用于,解析并獲取BT數(shù)據(jù)包中攜帶的BT文件名稱,并將所 述獲取到的BT文件名稱發(fā)送給所述結(jié)果發(fā)布單元進行發(fā)布。
全文摘要
本發(fā)明實施例公開了一種點對點流量深度監(jiān)測方法,包括實時捕獲數(shù)據(jù)包,并放入緩存中;從所述緩存中提取數(shù)據(jù)包,通過預先設置的兩種以上比特流(BT)數(shù)據(jù)包識別方式中的一種,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果是,則發(fā)布判斷結(jié)果,并結(jié)束流程;否則,通過所述預先設置的兩種以上BT數(shù)據(jù)包識別方式中其它未使用的BT數(shù)據(jù)包識別方式,判斷所述數(shù)據(jù)包是否為BT數(shù)據(jù)包,如果通過所有BT數(shù)據(jù)包識別方式均判定所述數(shù)據(jù)包不是BT數(shù)據(jù)包,則結(jié)束流程。本發(fā)明實施例同時公開了一種點對點流量深度監(jiān)測設備。應用本發(fā)明實施例所述的方法和設備,能夠準確地識別出BT數(shù)據(jù)包。
文檔編號H04L12/26GK101184002SQ20071017961
公開日2008年5月21日 申請日期2007年12月14日 優(yōu)先權(quán)日2007年12月14日
發(fā)明者勇 夏, 楊顯鋒, 敏 袁, 爽 馬 申請人:國家廣播電影電視總局廣播科學研究院