專(zhuān)利名稱(chēng):文件級(jí)p2p網(wǎng)絡(luò)流量識(shí)別方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種文件級(jí)P2P(Peer-to-Peer)網(wǎng)絡(luò)流量識(shí)別方法,屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域。
背景技術(shù):
近年來(lái),隨著P2P網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步,各種P2P應(yīng)用的流行程度越來(lái)越高?;ヂ?lián) 網(wǎng)上P2P流量的比例從2004年起就已經(jīng)超過(guò)了 HTTP應(yīng)用的流量,成為了互聯(lián)網(wǎng)流量的主 體。德國(guó)一家權(quán)威機(jī)構(gòu)Ipoque在2008-2009年的一份互聯(lián)網(wǎng)調(diào)研報(bào)告中稱(chēng),P2P流量已經(jīng) 達(dá)到互聯(lián)網(wǎng)整體流量的60%以上。P2P在給互聯(lián)網(wǎng)使用模式帶來(lái)根本性變革的同時(shí)也給網(wǎng)絡(luò)管理和安全帶來(lái)了巨大 的挑戰(zhàn)。其危害表現(xiàn)在①P2P應(yīng)用通常采用多條并發(fā)連接進(jìn)行數(shù)據(jù)傳輸,加劇了核心網(wǎng)和 接入網(wǎng)的擁塞,使得其它重要業(yè)務(wù)得不到保障,直接影響到用戶的服務(wù)質(zhì)量級(jí)別。②P2P網(wǎng) 絡(luò)的對(duì)等傳輸方式帶來(lái)了網(wǎng)絡(luò)流量模式的改變,接入網(wǎng)的上行流量大幅增加,使以ADSL為 代表的傳統(tǒng)非對(duì)稱(chēng)網(wǎng)絡(luò)接入方式越來(lái)越不受到用戶的認(rèn)可,給網(wǎng)絡(luò)運(yùn)營(yíng)商帶來(lái)了更多的額 外開(kāi)銷(xiāo)。③P2P網(wǎng)絡(luò)提供了方便的共享和快速的選路機(jī)制,為某些網(wǎng)絡(luò)病毒、木馬提供了更 好的入侵機(jī)會(huì),波及范圍大,覆蓋面廣,造成的損失會(huì)很大。④P2P應(yīng)用的繁榮加劇了盜版 媒體的分發(fā),使得mp3、影視等侵權(quán)問(wèn)題日益嚴(yán)重,增加了知識(shí)產(chǎn)權(quán)保護(hù)的難度。網(wǎng)絡(luò)運(yùn)營(yíng)商和企業(yè)網(wǎng)絡(luò)管理部門(mén)要想對(duì)P2P網(wǎng)絡(luò)流量進(jìn)行有效管理,就一定要攻 克其瓶頸技術(shù)——P2P流量的識(shí)別?,F(xiàn)有的P2P流量識(shí)別技術(shù)主要有三大類(lèi)方法(1)基于端口號(hào)的識(shí)別方法基于端口號(hào)的識(shí)別方法具體為將獲取的網(wǎng)絡(luò)數(shù)據(jù)流的端口號(hào)與P2P應(yīng)用的默認(rèn) 端口號(hào)進(jìn)行匹配,如果匹配成功,則認(rèn)為該網(wǎng)絡(luò)數(shù)據(jù)流為P2P流量。其缺點(diǎn)是識(shí)別的精確 度較低。主要原因有隨著P2P應(yīng)用的發(fā)展,大多數(shù)P2P應(yīng)用允許用戶手動(dòng)選擇來(lái)設(shè)置默 認(rèn)的端口號(hào);此外,許多新出現(xiàn)的P2P應(yīng)用都采用隨機(jī)的端口號(hào),這就使得其端口號(hào)不可預(yù) 測(cè);目前還存在另外一種現(xiàn)象,P2P應(yīng)用開(kāi)始使用一些其他常規(guī)服務(wù)的默認(rèn)端口號(hào),比如用 80端口來(lái)偽裝自己的功能端口。(2)深層數(shù)據(jù)包檢測(cè)技術(shù)(De印 Packet Inspection, DPI)深層數(shù)據(jù)包檢測(cè)技術(shù)通過(guò)對(duì)數(shù)據(jù)包應(yīng)用層協(xié)議的檢測(cè)發(fā)現(xiàn)P2P應(yīng)用。這種技術(shù)使 用一個(gè)特征庫(kù)存儲(chǔ)有效載荷特征信息,符合有效載荷特征的數(shù)據(jù)包即視為P2P數(shù)據(jù)包。這 種方法識(shí)別的精確度較高、易于理解、升級(jí)方便、維護(hù)簡(jiǎn)單,是目前運(yùn)用最普遍的方法。但 是,目前的深層數(shù)據(jù)包檢測(cè)技術(shù)僅能夠做到流(flow)級(jí)別的識(shí)別,還沒(méi)有做到文件級(jí)別的 識(shí)別,即識(shí)別出P2P流傳輸?shù)木唧w文件信息。(3)基于流量特征的識(shí)別方法P2P應(yīng)用作為一種充分利用客戶端資源的新型應(yīng)用,它在傳輸層表現(xiàn)出來(lái)的流量 特征相對(duì)于其它應(yīng)用,如HTTP、FTP、DNS等有許多不同的地方?;诹髁刻卣鞯淖R(shí)別方法 是通過(guò)檢測(cè)出新的流量特征來(lái)發(fā)現(xiàn)P2P應(yīng)用。其缺點(diǎn)有①由于傳輸層流量特征一般不能明確指示應(yīng)用層協(xié)議類(lèi)型,所以這種方法對(duì)P2P應(yīng)用分類(lèi)的能力較弱,而應(yīng)用分類(lèi)對(duì)于 QoS(Quality of Servic,服務(wù)質(zhì)量)的實(shí)施非常重要。②由于不對(duì)稱(chēng)路由和丟包、重傳現(xiàn) 象的存在,導(dǎo)致無(wú)法精確確定流量特征,從而有可能對(duì)P2P流量檢測(cè)的精確度造成影響。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服已有技術(shù)存在的不足,在現(xiàn)有深層數(shù)據(jù)包檢測(cè)技術(shù)的基 礎(chǔ)上,提出一種文件級(jí)P2P網(wǎng)絡(luò)流量識(shí)別方法。本發(fā)明在準(zhǔn)確識(shí)別P2P流的基礎(chǔ)上,深入到 文件級(jí)別,進(jìn)而識(shí)別出P2P流傳輸?shù)木唧w文件信息。本發(fā)明的目的是通過(guò)下述技術(shù)方案實(shí)現(xiàn)的。一種文件級(jí)P2P網(wǎng)絡(luò)流量識(shí)別方法,其具體操作步驟如下步驟1 建立一張網(wǎng)絡(luò)流表,該表的結(jié)構(gòu)包括,但不限于以下字段數(shù)據(jù)包的源IP、 源端口、目的IP、目的端口和文件哈希信息;步驟2 本步驟可與步驟1同步操作建立一個(gè)P2P特征庫(kù),其僅包含與文件相關(guān) 的P2P有效載荷特征信息;該P(yáng)2P特征庫(kù)的結(jié)構(gòu)包括以下字段P2P協(xié)議類(lèi)型、有效載荷特 征。步驟3 對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行解析,獲得此數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型、 源IP、源端口、目的IP、目的端口 ;步驟4 判斷該數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型是否為T(mén)CP,如果是則執(zhí)行步驟5 ;否則 轉(zhuǎn)向步驟3 ;步驟5 在步驟1建立的網(wǎng)絡(luò)流表中查詢是否存在一條記錄,其源IP、源端口、目的 IP、目的端口分別與步驟3接收到的數(shù)據(jù)包的源IP、源端口、目的IP、目的端口相同,或者其 源IP、源端口、目的IP、目的端口分別與步驟3接收到的數(shù)據(jù)包的目的IP、目的端口、源IP、 源端口相同;如果存在這樣的一條記錄,則將步驟3中接收到的數(shù)據(jù)包標(biāo)識(shí)為P2P應(yīng)用,然 后轉(zhuǎn)向步驟3 ;否則執(zhí)行步驟6 ;步驟6 依次將步驟2建立的P2P特征庫(kù)中的有效載荷特征字段與步驟3接收到 的數(shù)據(jù)包的有效載荷進(jìn)行匹配,如果匹配成功,則將該數(shù)據(jù)包標(biāo)識(shí)為P2P特征庫(kù)中匹配成 功的有效載荷特征所對(duì)應(yīng)的P2P協(xié)議類(lèi)型,然后執(zhí)行步驟7 ;否則轉(zhuǎn)向步驟3 ;步驟7 根據(jù)步驟6對(duì)該數(shù)據(jù)包所標(biāo)識(shí)的P2P協(xié)議類(lèi)型,從該數(shù)據(jù)包的有效載荷中 提取文件哈希信息,并將該數(shù)據(jù)包的源IP、源端口、目的IP、目的端口和文件哈希信息作為 一條新的記錄,添加到網(wǎng)絡(luò)流表,然后轉(zhuǎn)到步驟3。所述P2P特征庫(kù)包括但不限于以下與文件相關(guān)的P2P有效載荷特征信息,其P2P 協(xié)議類(lèi)型字段和對(duì)應(yīng)的有效載荷特征字段分別為①P2P協(xié)議類(lèi)型字段JitTorrent協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有 效載荷以"0xl3BitTorrent protocol,,開(kāi)頭;②P2P協(xié)議類(lèi)型字段^Donkey/eMule協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的 有效載荷以“ 0xe3 ”開(kāi)頭并且第6個(gè)字節(jié)是“ 0x47 ”,或者以“ 0xc5 ”開(kāi)頭并且第6個(gè)字節(jié)是 “0x81”;③P2P協(xié)議類(lèi)型字段Gnutella協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有效 載荷以 “GET/uri-res/N2R ? urn shal ” 開(kāi)頭;
④P2P協(xié)議類(lèi)型字段Fast Track協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有效載荷以“GET/, hash=”開(kāi)頭;⑤P2P協(xié)議類(lèi)型字段=Direct Connect協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的 有效載荷以“$ADCGET file TTH/”開(kāi)頭;⑥P2P協(xié)議類(lèi)型字段=Ares協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有效載荷 以 “GET shal:” 開(kāi)頭;優(yōu)選的,步驟7中所述從數(shù)據(jù)包的有效載荷中提取文件哈希信息的方法為如果該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為BitTorrent,則從該數(shù)據(jù)包的有效載荷的 第29位開(kāi)始,提取20位字符串作為文件哈希信息;如果該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為 eDonkey/eMule,則從該數(shù)據(jù)包的有效載荷的第7位開(kāi)始,提取16位字符串作為文件哈希信 息;如果該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為Gnutella,則從該數(shù)據(jù)包的有效載荷的第27位開(kāi) 始,提取32位字符串作為文件哈希信息;如果該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為Fast Track, 則從該數(shù)據(jù)包的有效載荷的第12位開(kāi)始,提取40位字符串作為文件哈希信息;如果該數(shù)據(jù) 包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為Direct Connect,則從該數(shù)據(jù)包的有效載荷的第18位開(kāi)始,提取 39位字符串作為文件哈希信息;如果該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為Ares,則從該數(shù)據(jù)包 的有效載荷的第10位開(kāi)始,提取28位字符串作為文件哈希信息。有益效果與已有識(shí)別方法相比,本發(fā)明的一種文件級(jí)P2P網(wǎng)絡(luò)流量識(shí)別方法由于提取了 P2P流傳輸?shù)木唧w文件信息,識(shí)別的粒度更細(xì)。使用本發(fā)明提供的方法,網(wǎng)絡(luò)管理者能采取 更有效的措施來(lái)管理P2P流量;此外,本發(fā)明方法識(shí)別出來(lái)的文件信息還能用于判斷該文 件合法性,分析資源的關(guān)注程度和用戶的下載行為等趨勢(shì)。
具體實(shí)施例方式下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。實(shí)施例中,先后接收到的5個(gè)數(shù)據(jù)包,分別為①源IP 60. 25. 8. 92,源端口 1409,目的 IP 119. 6. 8. 234,目的端口 7678,上層 傳輸協(xié)議類(lèi)型UDP,有效載荷(十六進(jìn)制)01 Ie 60 21 d3 Ie 6122 91 3b 7a 2f 9b 00 00 el 16 05②源IP :58. 247. 204. 241,源端 口 2399,目的 IP 114. 223. 152. 51,目的端 口 80,上層傳輸協(xié)議類(lèi)型TCP,有效載荷(十六進(jìn)制)13 42 69 7454 6f 72 72 65 6e 74 20 70 72 6f 74 6f 63 6f 6c 00 00 00 00 00 10 00 052c la ad 34 85 6e 44 a3 de fb df 7c fc e6 45 cl Ie 46 f3 66 4d 36 2d 332d 30 2d 2d 4d 42 6e bO 08 30 02 3a 05 If③源IP :89. 134. 31. 170,源端口 =1563,目的 IP :86· 106. 112. 163,目的端口 22417,上層傳輸協(xié)議類(lèi)型TCP,有效載荷(十六進(jìn)制)e3 29 00 0000 58 07 8d da 14 0b f6 c8 6e 6a d3 45 b5 a5 e7 23 b2 00 20 Ie 08 00 f020 08 00 cO 23 08 00 fO 20 08 00 cO 23 08 00 90 26 08④源IP : 114. 223. 152. 51,源端口 80,目的 IP :58. 247. 204. 241,目的端口 2399,上層傳輸協(xié)議類(lèi)型TCP,有效載荷00 00 00 01 02
⑤源IP :210. 51. 188. 91,源端口 3680,目的 IP 61. 147. 114. 9,目的端口 4163, 上層傳輸協(xié)議類(lèi)型TCP,有效載荷15 00 00 00 03 ae b3 ad 4b0c 00 00 00 00 80 01 00 00 20 00 00 36 d4 ac 4b本發(fā)明方法的具體步驟為 步驟1 建立一張網(wǎng)絡(luò)流表,其結(jié)構(gòu)包括數(shù)據(jù)包的源IP、源端口、目的IP、目的端 口和文件哈希信息;該表初始狀態(tài)為空表。步驟2 本步驟可與步驟1同步操作建立一個(gè)P2P特征庫(kù),包含與文件相關(guān)的P2P 有效載荷特征信息,其P2P協(xié)議類(lèi)型和對(duì)應(yīng)的有效載荷特征分別為①BitTorrent協(xié)議,數(shù)據(jù)包的有效載荷以“0xl3BitTorrent protocol”開(kāi)頭;②eDonkey/eMule協(xié)議,數(shù)據(jù)包的有效載荷以“0xe3”開(kāi)頭并且第6個(gè)字節(jié)是 “0x47”,或者以“0XC5”開(kāi)頭并且第6個(gè)字節(jié)是“0x81” ;③Gnutella 協(xié)議,數(shù)據(jù)包的有效載荷以 “GET/uri_res/N2R ? urn:shal:” 開(kāi)頭;④Fast Track協(xié)議,數(shù)據(jù)包的有效載荷以“GET/, hash =”開(kāi)頭;⑤Direct Connect協(xié)議,數(shù)據(jù)包的有效載荷以“$ADCGET file TTH/”開(kāi)頭;⑥Ares協(xié)議,數(shù)據(jù)包的有效載荷以“GET shal:”開(kāi)頭。步驟3 接收到①號(hào)數(shù)據(jù)包,對(duì)該數(shù)據(jù)包的包頭進(jìn)行解析,獲得此數(shù)據(jù)包的上層傳 輸協(xié)議類(lèi)型為UDP、源IP為60. 25. 8. 92、源端口為1409、目的IP為119. 6. 8. 234、目的端口 為 7678。步驟4 判斷出此數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型不為T(mén)CP,轉(zhuǎn)向步驟3。步驟3 接收到②號(hào)數(shù)據(jù)包,獲得此數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型為T(mén)CP、源IP為 58. 247. 204. 241、源端口為 2399、目的 IP 為 114. 223. 152. 51、目的端口為 80 ;步驟4 判斷出此數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型為T(mén)CP,轉(zhuǎn)向步驟5 ;步驟5 在步驟1建立的網(wǎng)絡(luò)流表中查詢是否存在一條記錄,其源IP、源端口、目的 IP和目的端口與步驟3接收到的數(shù)據(jù)包的源IP、源端口、目的IP和目的端口相同,或者其 源IP、源端口、目的IP和目的端口與步驟3接收到的數(shù)據(jù)包的目的IP、目的端口、源IP和 源端口相同;由于此時(shí)網(wǎng)絡(luò)流表為空,所以不存在這樣的記錄,轉(zhuǎn)向步驟6;步驟6 依次將步驟2建立的P2P特征庫(kù)中的有效載荷特征碼與②號(hào)數(shù)據(jù)包的有 效載荷進(jìn)行匹配,②號(hào)數(shù)據(jù)包的有效載荷以十六進(jìn)制字符串13 42 69 74 546f 72 72 65 6e 74 20 70 72 6f 74 6f 63 6f 6c開(kāi)頭,符合BitTorrent協(xié)議的特征,標(biāo)定該數(shù)據(jù)包為 BitTorrent應(yīng)用,轉(zhuǎn)向步驟7 ;步驟7 根據(jù)步驟6對(duì)②號(hào)數(shù)據(jù)包所標(biāo)識(shí)的P2P協(xié)議類(lèi)型為BitTorrent,從②號(hào)數(shù) 據(jù)包有效載荷的第29位開(kāi)始,提取20位字符串2c la ad 34 85 6e 44a3 de fb df 7c fc e6 45 cl Ie 46 f3 66作為文件哈希信息,并將該數(shù)據(jù)包的源IP、源端口、目的IP、目的端 口和文件哈希信息作為一條新的記錄,添加到網(wǎng)絡(luò)流表,然后轉(zhuǎn)向步驟3。步驟3 對(duì)接收到的③號(hào)數(shù)據(jù)包的包頭進(jìn)行解析,獲得此數(shù)據(jù)包的上層傳輸協(xié)議 類(lèi)型為 TCP、源 IP 為 89. 134.31. 170、源端口為 1563、目的 IP 為 86. 106. 112. 163、目的端口 為 22417 ;步驟4 判斷出此數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型為T(mén)CP,轉(zhuǎn)向步驟5 ;步驟5 在步驟1建立的網(wǎng)絡(luò)流表中查詢是否存在一條記錄,其源IP、源端口、目的IP和目的端口與步驟3接收到的數(shù)據(jù)包的源IP、源端口、目的IP和目的端口相同,或者其 源IP、源端口、目的IP和目的端口與步驟3接收到的數(shù)據(jù)包的目的IP、目的端口、源IP和 源端口相同;此時(shí)不存在這樣的記錄,轉(zhuǎn)向步驟6 ;步驟6 依次將步驟2建立的P2P特征庫(kù)中的有效載荷特征碼與②號(hào)數(shù)據(jù)包的有 效載荷進(jìn)行匹配,③號(hào)數(shù)據(jù)包的有效載荷以十六進(jìn)制字符e3開(kāi)頭第6個(gè)字節(jié)為十六進(jìn)制字 符47,符合eDonkey/eMule協(xié)議的特征,標(biāo)定該數(shù)據(jù)包為eDonkey/eMule應(yīng)用,轉(zhuǎn)向步驟7 ;步驟7 根據(jù)步驟6對(duì)③號(hào)數(shù)據(jù)包所標(biāo)識(shí)的P2P協(xié)議類(lèi)型為eDonkey/eMule,從③號(hào)數(shù)據(jù)包有效載荷的第7位開(kāi)始,提取16位字符串07 8d da 14 Ob f6 c86e 6a d3 45 b5 a5 e7 23 b2作為文件哈希信息,并將該數(shù)據(jù)包的源IP、源端口、目的IP、目的端口和文件哈 希信息作為一條新的記錄,添加到網(wǎng)絡(luò)流表,轉(zhuǎn)向步驟3。步驟3 對(duì)接收到的④號(hào)數(shù)據(jù)包的包頭進(jìn)行解析,獲得此數(shù)據(jù)包的上層傳輸協(xié)議 類(lèi)型為 TCP、源 IP 為 114. 223. 152. 51、源端口為 80、目的 IP 為 58. 247. 204. 241、目的端口 為 2399 ;步驟4 判斷出此數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型為T(mén)CP,轉(zhuǎn)向步驟5 ;步驟5 在步驟1建立的網(wǎng)絡(luò)流表中查詢是否存在一條記錄,其源IP、源端口、目的 IP和目的端口與步驟3接收到的數(shù)據(jù)包的源IP、源端口、目的IP和目的端口相同,或者其 源IP、源端口、目的IP和目的端口與步驟3接收到的數(shù)據(jù)包的目的IP、目的端口、源IP和 源端口相同;此時(shí)存在這樣的一條記錄,標(biāo)定④號(hào)數(shù)據(jù)包為P2P應(yīng)用,轉(zhuǎn)向步驟3;步驟3 對(duì)接收到的⑤號(hào)數(shù)據(jù)包的包頭進(jìn)行解析,獲得此數(shù)據(jù)包的上層傳輸協(xié)議 類(lèi)型為T(mén)CP、源IP為210. 51. 188. 91,源端口為3680,目的IP為61. 147. 114.9,目的端口為 4163 ;步驟4 判斷出此數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型為T(mén)CP,轉(zhuǎn)向步驟5 ;步驟5 在步驟1建立的網(wǎng)絡(luò)流表中查詢是否存在一條記錄,其源IP、源端口、目的 IP和目的端口與步驟3接收到的數(shù)據(jù)包的源IP、源端口、目的IP和目的端口相同,或者其 源IP、源端口、目的IP和目的端口與步驟3接收到的數(shù)據(jù)包的目的IP、目的端口、源IP和 源端口相同;此時(shí)不存在這樣的記錄,轉(zhuǎn)向步驟6 ;步驟6 依次將步驟2建立的P2P特征庫(kù)中的有效載荷特征碼與⑤號(hào)數(shù)據(jù)包的有 效載荷進(jìn)行匹配,⑤號(hào)數(shù)據(jù)包的有效載荷15 00 00 00 03 ae b3 ad 4b OcOO 00 00 00 80 01 00 00 20 00 00 36 d4 ac 4b不符合預(yù)定義的文件相關(guān)的P2P有效載荷特征庫(kù),轉(zhuǎn)
向步驟3。由上述實(shí)施例可見(jiàn),本發(fā)明的這種文件級(jí)P2P網(wǎng)絡(luò)流量識(shí)別方法能準(zhǔn)確識(shí)別出多 種P2P應(yīng)用,并且發(fā)現(xiàn)P2P流傳輸?shù)木唧w文件信息。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人 員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn),或者對(duì)其中部分技術(shù)特征進(jìn) 行等同替換,這些改進(jìn)和替換也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種文件級(jí)P2P網(wǎng)絡(luò)流量識(shí)別方法,其特征在于其具體操作步驟如下步驟1建立一張網(wǎng)絡(luò)流表,該表結(jié)構(gòu)包括但不限于以下字段數(shù)據(jù)包的源IP、源端口、目的IP、目的端口和文件哈希信息;步驟2本步驟可與步驟1同步操作建立一個(gè)P2P特征庫(kù),其僅包含與文件相關(guān)的P2P有效載荷特征信息;該P(yáng)2P特征庫(kù)的結(jié)構(gòu)包括以下字段P2P協(xié)議類(lèi)型、有效載荷特征;步驟3對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行解析,獲得此數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型、源IP、源端口、目的IP、目的端口;步驟4判斷該數(shù)據(jù)包的上層傳輸協(xié)議類(lèi)型是否為T(mén)CP,如果是則執(zhí)行步驟5;否則轉(zhuǎn)向步驟3;步驟5在步驟1建立的網(wǎng)絡(luò)流表中查詢是否存在一條記錄,其源IP、源端口、目的IP、目的端口分別與步驟3接收到的數(shù)據(jù)包的源IP、源端口、目的IP、目的端口相同,或者其源IP、源端口、目的IP、目的端口分別與步驟3接收到的數(shù)據(jù)包的目的IP、目的端口、源IP、源端口相同;如果存在這樣的一條記錄,則將步驟3中接收到的數(shù)據(jù)包標(biāo)識(shí)為P2P應(yīng)用,然后轉(zhuǎn)向步驟3;否則執(zhí)行步驟6;步驟6依次將步驟2建立的P2P特征庫(kù)中的有效載荷特征字段與步驟3接收到的數(shù)據(jù)包的有效載荷進(jìn)行匹配,如果匹配成功,則將該數(shù)據(jù)包標(biāo)識(shí)為P2P特征庫(kù)中匹配成功的有效載荷特征所對(duì)應(yīng)的P2P協(xié)議類(lèi)型,然后執(zhí)行步驟7;否則轉(zhuǎn)向步驟3;步驟7根據(jù)步驟6對(duì)該數(shù)據(jù)包所標(biāo)識(shí)的P2P協(xié)議類(lèi)型,從該數(shù)據(jù)包的有效載荷中提取文件哈希信息,并將該數(shù)據(jù)包的源IP、源端口、目的IP、目的端口和文件哈希信息作為一條新的記錄,添加到網(wǎng)絡(luò)流表,然后轉(zhuǎn)到步驟3。
2.如權(quán)利要求1所述的一種文件級(jí)P2P網(wǎng)絡(luò)流量識(shí)別方法,其特征在于所述P2P特 征庫(kù)包括但不限于以下與文件相關(guān)的P2P有效載荷特征信息,其P2P協(xié)議類(lèi)型字段和對(duì)應(yīng) 的有效載荷特征字段分別為①P2P協(xié)議類(lèi)型字段=BitTorrent協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有效載 荷以"0xl3BitTorrent protocol,,開(kāi)頭;②P2P協(xié)議類(lèi)型字段^Donkey/eMule協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有 效載荷以“0xe3”開(kāi)頭并且第6個(gè)字節(jié)是“0x47”,或者以“0xc5”開(kāi)頭并且第6個(gè)字節(jié)是 “0x81”;③P2P協(xié)議類(lèi)型字段=Gnutella協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有效載荷 以 “GET/uri-res/N2R ? urn shal ” 開(kāi)頭;④P2P協(xié)議類(lèi)型字段FastTrack協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有效載荷 以 “GET/· hash =” 開(kāi)頭;⑤P2P協(xié)議類(lèi)型字段=DirectConnect協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有效 載荷以 “$ADCGET file TTH/” 開(kāi)頭;⑥P2P協(xié)議類(lèi)型字段=Ares協(xié)議;對(duì)應(yīng)的有效載荷特征字段數(shù)據(jù)包的有效載荷以 "GET shal:” 開(kāi)頭。
3.如權(quán)利要求1或2所述的一種文件級(jí)P2P網(wǎng)絡(luò)流量識(shí)別方法,其特征在于優(yōu)選的, 步驟7中所述從數(shù)據(jù)包的有效載荷中提取文件哈希信息的方法為如果該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為BitTorrent,則從該數(shù)據(jù)包的有效載荷的第29位開(kāi)始,提取20位字符串作為文件哈希信息;如果該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為eDonkey/eMule,則從該數(shù)據(jù)包的有效載荷的第7位開(kāi)始,提取16位字符串作為文件哈希信息;如果 該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為Gnutella,則從該數(shù)據(jù)包的有效載荷的第27位開(kāi)始,提取 32位字符串作為文件哈希信息;如果該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為Fast Track,則從該 數(shù)據(jù)包的有效載荷的第12位開(kāi)始,提取40位字符串作為文件哈希信息;如果該數(shù)據(jù)包標(biāo)識(shí) 的P2P協(xié)議類(lèi)型為Direct Connect,則從該數(shù)據(jù)包的有效載荷的第18位開(kāi)始,提取39位字 符串作為文件哈希信息;如果該數(shù)據(jù)包標(biāo)識(shí)的P2P協(xié)議類(lèi)型為Ares,則從該數(shù)據(jù)包的有效 載荷的第10位開(kāi)始,提取28位字符串作為文件哈希信息。
全文摘要
本發(fā)明涉及一種文件級(jí)P2P網(wǎng)絡(luò)流量識(shí)別方法,屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域。本發(fā)明在現(xiàn)有深層數(shù)據(jù)包檢測(cè)技術(shù)的基礎(chǔ)上,根據(jù)對(duì)數(shù)據(jù)包所標(biāo)識(shí)的P2P協(xié)議類(lèi)型,從該數(shù)據(jù)包的有效載荷中提取文件哈希信息。本發(fā)明方法由于提取了P2P流傳輸?shù)木唧w文件信息,識(shí)別的粒度更細(xì)。使用本發(fā)明提供的方法,網(wǎng)絡(luò)管理者能采取更有效的措施來(lái)管理P2P流量;此外,本發(fā)明方法識(shí)別出來(lái)的文件信息還能用于判斷該文件合法性,分析資源的關(guān)注程度和用戶的下載行為等趨勢(shì)。
文檔編號(hào)H04L29/08GK101867601SQ20101017548
公開(kāi)日2010年10月20日 申請(qǐng)日期2010年5月14日 優(yōu)先權(quán)日2010年5月14日
發(fā)明者周舟, 嵩天, 賈云得 申請(qǐng)人:北京理工大學(xué)