專利名稱::一種應(yīng)用層協(xié)議特征的提取方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于互聯(lián)網(wǎng)
技術(shù)領(lǐng)域:
,具體地說(shuō),是涉及一種采用數(shù)據(jù)挖掘的思想和方法提取出應(yīng)用層的協(xié)議特征的方法。
背景技術(shù):
:隨著互聯(lián)網(wǎng)的逐步發(fā)展,網(wǎng)上用戶和業(yè)務(wù)流量在不斷增長(zhǎng),除傳統(tǒng)數(shù)據(jù)業(yè)務(wù)外,P2P、網(wǎng)絡(luò)游戲、IPTV等新興業(yè)務(wù)占用了互聯(lián)網(wǎng)的大部分帶寬,一方面使得運(yùn)營(yíng)商的服務(wù)質(zhì)量出現(xiàn)問(wèn)題,另一方面也使得運(yùn)營(yíng)商的基礎(chǔ)網(wǎng)絡(luò)建設(shè)陷入了"擁塞_擴(kuò)容_再擁塞"的非正常局面,盈利能力相應(yīng)降低。在同一網(wǎng)絡(luò)內(nèi),如果某些用戶嚴(yán)重占用帶寬進(jìn)行網(wǎng)游、BT下載等活動(dòng),就會(huì)影響別人對(duì)網(wǎng)絡(luò)資源的正常使用,或者對(duì)他人的工作造成影響。畢竟現(xiàn)在互聯(lián)網(wǎng)的發(fā)展,已經(jīng)使很多工作都要求在網(wǎng)絡(luò)上交互和完成。應(yīng)用層軟件造成的帶寬擁塞問(wèn)題已經(jīng)引起了中小型企業(yè),多分支機(jī)構(gòu)企業(yè)和網(wǎng)絡(luò)運(yùn)營(yíng)商的注意,而他們就是促使網(wǎng)絡(luò)帶寬產(chǎn)品不斷發(fā)展的最大推動(dòng)者。隨著市場(chǎng)的不斷發(fā)展,網(wǎng)絡(luò)帶寬控制產(chǎn)品具有極大的市場(chǎng)潛力,而且市場(chǎng)份額也越來(lái)越大。目前,國(guó)內(nèi)的主要帶寬管理和流量控制產(chǎn)品包括Panabit、P2P終結(jié)者、聚生網(wǎng)管等。但是,這些產(chǎn)品只從網(wǎng)絡(luò)流量控制方面給用戶提供流量控制方面的應(yīng)用。當(dāng)然普通用戶也不會(huì)關(guān)心其內(nèi)部的識(shí)別原理和方法,更不用說(shuō)應(yīng)用層的協(xié)議特征了。但另一方面,一些應(yīng)用和分析應(yīng)用層協(xié)議的企業(yè)和公司,提出了分析應(yīng)用層協(xié)議和獲取相應(yīng)協(xié)議特征的需求,而現(xiàn)有的網(wǎng)絡(luò)流量控制產(chǎn)品只提供了流量控制的功能,并沒(méi)有提供應(yīng)用層協(xié)議提取和分析功能的方法和接口。而且如果聘請(qǐng)專門(mén)人員手動(dòng)分析應(yīng)用層協(xié)議特征,將會(huì)影響工作效率和進(jìn)度,并給企業(yè)和公司帶來(lái)人力資源的負(fù)擔(dān)。當(dāng)前,最流行的流量監(jiān)測(cè)技術(shù)為DPI(De印PacketInspection)深度包檢測(cè)技術(shù),相對(duì)于傳統(tǒng)的基于端口、協(xié)議類型的流量檢測(cè)技術(shù),DPI增加了應(yīng)用層分析功能,是一種基于應(yīng)用層的流量檢測(cè)和控制技術(shù),它通過(guò)深入讀取IP包載荷的內(nèi)容來(lái)對(duì)0SI7層網(wǎng)絡(luò)模型中的應(yīng)用層信息進(jìn)行重組,從而得到整個(gè)應(yīng)用層協(xié)議的內(nèi)容,然后按照系統(tǒng)定義的管理策略對(duì)流量進(jìn)行整形操作,通過(guò)識(shí)別各種應(yīng)用層的內(nèi)容達(dá)到高效地識(shí)別出網(wǎng)絡(luò)上的各種應(yīng)用協(xié)議的目的。數(shù)據(jù)挖掘技術(shù)作為一種數(shù)據(jù)信息處理的關(guān)鍵技術(shù),其主要特點(diǎn)是對(duì)數(shù)據(jù)庫(kù)中的海量數(shù)據(jù)進(jìn)行抽取、轉(zhuǎn)換、分析和其他模型化處理,從中提取關(guān)鍵性和決策性的數(shù)據(jù)。將數(shù)據(jù)挖掘技術(shù)運(yùn)用到網(wǎng)絡(luò)流量分析,在極度膨脹地網(wǎng)絡(luò)帶寬需求中,根據(jù)用戶的網(wǎng)絡(luò)帶寬使用情況、實(shí)時(shí)地對(duì)帶寬進(jìn)行分配,從占據(jù)帶寬重要比重的應(yīng)用層軟件中提取和挖掘出應(yīng)用層協(xié)議的重要識(shí)別特征,以分析出影響網(wǎng)絡(luò)帶寬的軟件和用戶,具有重大的意義。很多學(xué)者從數(shù)據(jù)挖掘的角度對(duì)DPI技術(shù)進(jìn)行了理論和科學(xué)實(shí)驗(yàn)研究。但是,隨著網(wǎng)絡(luò)流量分析和特征提取工程應(yīng)用需求的增加,對(duì)理論研究轉(zhuǎn)換成實(shí)際工程應(yīng)用提出了市場(chǎng)需求。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種適于實(shí)際工程應(yīng)用的應(yīng)用層協(xié)議特征提取方法,從數(shù)據(jù)挖掘角度出發(fā)對(duì)協(xié)議特征的提取過(guò)程進(jìn)行完善設(shè)計(jì),從而加快了協(xié)議特征的提取速度,為分析應(yīng)用層協(xié)議提供了依據(jù)。為解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn)—種應(yīng)用層協(xié)議特征的提取方法,包括以下步驟(1)捕獲待監(jiān)聽(tīng)的流量數(shù)據(jù)包;(2)提取流量數(shù)據(jù)包中的頻繁1項(xiàng)集,所述頻繁1項(xiàng)集的長(zhǎng)度設(shè)定為2的整數(shù)倍;(3)采用如下合并過(guò)程將頻繁k項(xiàng)集合并成候選k+1項(xiàng)集,k>1:、=Lines[x]+Lines[y].substring(Lines[y].length()_1,Lines[y].length());b2=Lines[y]+Lines[x].substring(Lines[x].length()_1,Lines[x].length());其中,Lines[x]、Lines[y]分別為第x個(gè)和第y個(gè)頻繁k項(xiàng)集,頻繁k項(xiàng)集的長(zhǎng)度為L(zhǎng)EN;substring(p,q)表示提取從序列的第p位開(kāi)始到第q位的子序列,^和b2為得到的候選k+1項(xiàng)集,其長(zhǎng)度為L(zhǎng)EN+2;(4)計(jì)算候選k+1項(xiàng)集的支持度su卯ort,提取滿足支持度條件support>minimum_sup的候選k+1項(xiàng)集,作為頻繁k+1項(xiàng)集;所述minimum_sup為頻繁項(xiàng)集支持度的最小閾值;(5)在頻繁k項(xiàng)集中,刪除頻繁k+1項(xiàng)集包含的項(xiàng)集;由步驟(3)、(4)、(5)獲取的各個(gè)頻繁項(xiàng)集即構(gòu)成應(yīng)用層的協(xié)議特征集合。為了加快產(chǎn)生頻繁項(xiàng)集的過(guò)程,在所述步驟(2)的頻繁l項(xiàng)集提取過(guò)程中,可以采用BloomFilter算法對(duì)重復(fù)出現(xiàn)的頻繁1項(xiàng)集進(jìn)行判斷,進(jìn)而將重復(fù)的頻繁1項(xiàng)集刪除,以達(dá)到加快協(xié)議特征提取速度的設(shè)計(jì)目的。為了得到更優(yōu)的應(yīng)用層協(xié)議特征集合并將冗余的應(yīng)用層協(xié)議特征刪除,本發(fā)明還設(shè)計(jì)了刪除冗余的應(yīng)用層協(xié)議特征的過(guò)程,即在完成頻繁k+1項(xiàng)集的提取過(guò)程后,緊接著進(jìn)行刪除冗余的頻繁k項(xiàng)集的過(guò)程令fz為一個(gè)頻繁k+1項(xiàng)集;fx和fy為兩個(gè)頻繁k項(xiàng)集,且fx=fz.substring(1,fz.length()-2),fy=fz.substring(3,fz.length()),那么刪除頻繁k項(xiàng)集fx和fy。進(jìn)一步的,在所述步驟(2)之前包括以下建立流量數(shù)據(jù)包的頻繁項(xiàng)集數(shù)據(jù)模型的過(guò)程令I(lǐng)=i2,....id},每個(gè)項(xiàng)ig(g=1到d)由兩位十六進(jìn)制數(shù)組成,是應(yīng)用層流量數(shù)據(jù)包的最小單位;T={tpt2,....td}為所有數(shù)據(jù)包的集合,ti={I的子集構(gòu)成的序列},為一個(gè)應(yīng)用層協(xié)議信息數(shù)據(jù)包;令S=substring(ti),S表示應(yīng)用層協(xié)議信息數(shù)據(jù)包ti的一個(gè)子序列,為I的項(xiàng)集;頻繁項(xiàng)集的支持度support=P(S)/T);若support>minimum_sup,則應(yīng)用層流量數(shù)據(jù)包ti的子序列S為該應(yīng)用層的協(xié)議特征。優(yōu)選的,所述頻繁1項(xiàng)集的長(zhǎng)度取值為2的整數(shù)倍,且大于等于4。為了進(jìn)一步加快頻繁項(xiàng)集的提取速度,在所述步驟(2)和(4)的頻繁1項(xiàng)集和頻繁k+1項(xiàng)集的提取過(guò)程中,還包括刪除不產(chǎn)生頻繁1項(xiàng)集和頻繁k+1項(xiàng)集的應(yīng)用層協(xié)議信息數(shù)據(jù)包的過(guò)程,使其在后面的頻繁項(xiàng)集挖掘過(guò)程中不再進(jìn)行頻繁項(xiàng)集的計(jì)算和挖掘。優(yōu)選的,所述頻繁項(xiàng)集支持度的最小閾值minimum_sup在0.2到0.8之間取值。又進(jìn)一步的,在所述步驟(1)中還包括對(duì)捕獲到的流量數(shù)據(jù)包進(jìn)行預(yù)處理的過(guò)程,即將捕獲到流量數(shù)據(jù)包進(jìn)行上行網(wǎng)絡(luò)流量和下行網(wǎng)絡(luò)流量的分流,只保留上行網(wǎng)絡(luò)流量。并且將捕獲到的每一個(gè)流量數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層、傳輸層的頭文件信息去除,只保留應(yīng)用層數(shù)據(jù)信息,進(jìn)而形成應(yīng)用層協(xié)議信息數(shù)據(jù)包供后續(xù)步驟使用。再進(jìn)一步的,在所述對(duì)捕獲到的流量數(shù)據(jù)包進(jìn)行預(yù)處理的過(guò)程中還包括根據(jù)設(shè)定的應(yīng)用層協(xié)議信息數(shù)據(jù)包長(zhǎng)度閾值L對(duì)應(yīng)用層協(xié)議信息數(shù)據(jù)包進(jìn)行限制和截取的過(guò)程,使得每個(gè)應(yīng)用層協(xié)議信息數(shù)據(jù)包只保留長(zhǎng)度為L(zhǎng)的數(shù)據(jù)信息。更進(jìn)一步的,在所述步驟(5)之后還包括對(duì)提取出的應(yīng)用層的協(xié)議特征集合進(jìn)行優(yōu)化的過(guò)程,即刪除協(xié)議特征集合中不具代表性的協(xié)議特征和應(yīng)用層通用的協(xié)議特征。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)和積極效果是本發(fā)明從工程應(yīng)用角度提出了一套較完整的應(yīng)用層協(xié)議特征提取方法,豐富了應(yīng)用層協(xié)議特征提取在工程中的應(yīng)用。該應(yīng)用層協(xié)議特征提取方法從數(shù)據(jù)挖掘的角度提出了一套智能化的提取算法,克服了手動(dòng)分析的不足,促進(jìn)了企業(yè)和公司應(yīng)用層協(xié)議分析工作的信息化和智能化,為企業(yè)和公司減輕了人力資源的負(fù)擔(dān),提高了工作效率。將提取到的應(yīng)用層協(xié)議特征保存在特征數(shù)據(jù)庫(kù)中,并對(duì)特征數(shù)據(jù)庫(kù)進(jìn)行周期性更新,以不斷豐富應(yīng)用層特征數(shù)據(jù)庫(kù)的內(nèi)容,這樣可以為后續(xù)的應(yīng)用層協(xié)議識(shí)別提供指導(dǎo),提高協(xié)議識(shí)別的準(zhǔn)確率。結(jié)合附圖閱讀本發(fā)明實(shí)施方式的詳細(xì)描述后,本發(fā)明的其他特點(diǎn)和優(yōu)點(diǎn)將變得更加清楚。圖1是本發(fā)明所提出的應(yīng)用層協(xié)議特征提取方法的一種實(shí)施例的流程圖;圖2是基于圖1所示協(xié)議特征提取方法所設(shè)計(jì)的應(yīng)用層協(xié)議特征提取系統(tǒng)的一種實(shí)施例的系統(tǒng)架構(gòu)示意圖。具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)地描述。本發(fā)明針對(duì)現(xiàn)有應(yīng)用層協(xié)議特征提取方法在工程應(yīng)用中的不足,及其企業(yè)和公司提出用智能方法(即自動(dòng)分析方法)分析應(yīng)用層協(xié)議的需求,提出了一種適于工程應(yīng)用的應(yīng)用層協(xié)議特征提取方法。將數(shù)據(jù)挖掘的思想和方法實(shí)際應(yīng)用到應(yīng)用層協(xié)議特征的提取過(guò)程中,并根據(jù)應(yīng)用層協(xié)議流量數(shù)據(jù)量大的特點(diǎn),從應(yīng)用層協(xié)議數(shù)據(jù)包的有效包長(zhǎng)、有效流量和無(wú)用流量等角度出發(fā),提出了對(duì)流量數(shù)據(jù)包進(jìn)行限制預(yù)處理的策略。下面通過(guò)一個(gè)具體的實(shí)施例來(lái)詳細(xì)闡述所述應(yīng)用層協(xié)議特征提取方法的具體設(shè)計(jì)過(guò)程以及基于該設(shè)計(jì)思想所構(gòu)建的應(yīng)用層協(xié)議特征提取系統(tǒng)的具體組建結(jié)構(gòu)。實(shí)施例一,參見(jiàn)圖1所示,本實(shí)施例的應(yīng)用層協(xié)議特征提取方法主要由以下步驟設(shè)計(jì)實(shí)現(xiàn)St印l、設(shè)置使用權(quán)限,對(duì)系統(tǒng)的安全使用進(jìn)行管理;出于對(duì)系統(tǒng)使用的安全性考慮,本實(shí)施例優(yōu)選在系統(tǒng)正常運(yùn)行前,對(duì)登錄用戶的合法身份進(jìn)行驗(yàn)證,即要求用戶輸入用戶名和密碼,進(jìn)行身份驗(yàn)證,進(jìn)而根據(jù)事先保存的權(quán)限信息驗(yàn)證用戶輸入的用戶名和密碼是否正確,如果用戶名和密碼與保存的權(quán)限信息相符,則用戶通過(guò)驗(yàn)證,進(jìn)入系統(tǒng);如果用戶名或密碼錯(cuò)誤,則提醒用戶確認(rèn)輸入的用戶名或密碼是否正確,并重新要求用戶輸入用戶名和密碼,直到身份驗(yàn)證通過(guò)后,再執(zhí)行后續(xù)步驟。St印2、捕獲待監(jiān)聽(tīng)的流量數(shù)據(jù)包;用戶在選擇啟動(dòng)應(yīng)用層協(xié)議特征提取功能時(shí),首先選擇需要監(jiān)聽(tīng)的網(wǎng)卡,并設(shè)置流量數(shù)據(jù)包的過(guò)濾條件,然后啟動(dòng)流量捕獲功能,開(kāi)始捕獲待監(jiān)聽(tīng)網(wǎng)卡的流量數(shù)據(jù)包。所述流量捕獲功能可以直接應(yīng)用現(xiàn)有的Pcap功能函數(shù)庫(kù)進(jìn)行軟件開(kāi)發(fā)應(yīng)用,對(duì)應(yīng)用層協(xié)議的網(wǎng)絡(luò)流量進(jìn)行實(shí)時(shí)捕獲。在調(diào)用該函數(shù)庫(kù)時(shí),輸入捕獲網(wǎng)絡(luò)流量數(shù)據(jù)包的過(guò)濾條件,比如捕獲全部網(wǎng)絡(luò)數(shù)據(jù)包、捕獲TCP數(shù)據(jù)包和捕獲UDP數(shù)據(jù)包等,即可獲得滿足過(guò)濾條件的流量數(shù)據(jù)包。根據(jù)經(jīng)驗(yàn)獲悉應(yīng)用層的協(xié)議特征主要存在于協(xié)議進(jìn)行連接時(shí)的前幾個(gè)數(shù)據(jù)包中,而在下載時(shí)的流量數(shù)據(jù)包包含的協(xié)議特征信息較少,甚至沒(méi)有。因此,只需要提取應(yīng)用協(xié)議在連接時(shí)的流量數(shù)據(jù)包的特征,即可以達(dá)到很好的特征提取和識(shí)別效果。對(duì)下載時(shí)的流量數(shù)據(jù)包進(jìn)行特征提取,反而會(huì)增加數(shù)據(jù)處理的難度。基于此,本實(shí)施例在設(shè)計(jì)應(yīng)用層協(xié)議特征提取方法的過(guò)程中,只捕獲應(yīng)用協(xié)議連接時(shí)的流量數(shù)據(jù)包。在流量數(shù)據(jù)包捕獲結(jié)束后,將捕獲到的流量數(shù)據(jù)包另存為.pc即文件,傳輸至St印3進(jìn)行預(yù)處理。St印3、對(duì)捕獲到的流量數(shù)據(jù)包進(jìn)行預(yù)處理;本步驟是為了提高后續(xù)協(xié)議特征提取的準(zhǔn)確率和速度而設(shè)計(jì)的,主要做以下三步流量預(yù)處理(1)對(duì)網(wǎng)絡(luò)流量進(jìn)行上行網(wǎng)絡(luò)流量和下行網(wǎng)絡(luò)流量的分流。通過(guò)步驟St印l捕獲到的網(wǎng)絡(luò)流量數(shù)據(jù)包括上行網(wǎng)絡(luò)流量和下行網(wǎng)絡(luò)流量。將捕獲到的網(wǎng)絡(luò)流量進(jìn)行上行網(wǎng)絡(luò)流量和下行網(wǎng)絡(luò)流量的分流,上行網(wǎng)絡(luò)流量是用戶端向服務(wù)器端發(fā)送請(qǐng)求服務(wù)等功能(一般為T(mén)CP數(shù)據(jù)包)和上傳相關(guān)數(shù)據(jù)信息(一般為UDP數(shù)據(jù)包)的流量數(shù)據(jù)包,其中的發(fā)送請(qǐng)求服務(wù)等功能的流量數(shù)據(jù)包包括極其有用的和有效的應(yīng)用層協(xié)議特征;而下行網(wǎng)絡(luò)流量是服務(wù)器向客戶端確認(rèn)請(qǐng)求(一般為T(mén)CP數(shù)據(jù)包)并發(fā)送請(qǐng)求數(shù)據(jù)(一般為UDP數(shù)據(jù)包)的流量數(shù)據(jù)包,其中的確認(rèn)請(qǐng)求數(shù)據(jù)包雖然也包括一些有效的應(yīng)用層協(xié)議特征,但是很多數(shù)據(jù)包都只包含簡(jiǎn)單的建立連接響應(yīng)的內(nèi)容,并不包含明顯的協(xié)議特征。因此,此處對(duì)網(wǎng)絡(luò)流量進(jìn)行上行和下行網(wǎng)絡(luò)流量的分流,只保留上行的網(wǎng)絡(luò)流量供后續(xù)步驟使用。可以以客戶端的IP地址實(shí)現(xiàn)分流,即如果客戶端的IP為源IP地址,那么該流量為上行網(wǎng)絡(luò)流量;如果客戶端的IP為目的IP地址,那么該流量為下行網(wǎng)絡(luò)流量。(2)提取應(yīng)用層數(shù)據(jù)信息。上行網(wǎng)絡(luò)流量包括了0SI7層模型的全部數(shù)據(jù),而只有應(yīng)用層部分的網(wǎng)絡(luò)數(shù)據(jù)對(duì)我們研究應(yīng)用層協(xié)議特征有用。所以,在該數(shù)據(jù)預(yù)處理階段對(duì)捕7獲到的流量數(shù)據(jù)包(即.pcap文件)進(jìn)行應(yīng)用層協(xié)議信息的提取,即將捕獲到的每一個(gè)流量數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層、傳輸層的頭文件信息去除,只保留應(yīng)用層協(xié)議數(shù)據(jù),進(jìn)而形成應(yīng)用層協(xié)議信息數(shù)據(jù)包供后續(xù)步驟使用。(3)對(duì)應(yīng)用層協(xié)議信息數(shù)據(jù)包的大小進(jìn)行限制。應(yīng)用層協(xié)議信息數(shù)據(jù)包由兩部分組成控制信息+數(shù)據(jù)。當(dāng)前應(yīng)用層協(xié)議的有用信息基本集中在控制信息部分,而數(shù)據(jù)部分基本是下載時(shí)的數(shù)據(jù)信息,提供特征的信息較少。所以,在流量預(yù)處理階段可以根據(jù)協(xié)議的定義或者特點(diǎn)設(shè)置一個(gè)閾值L,以對(duì)應(yīng)用層協(xié)議信息數(shù)據(jù)包的大小進(jìn)行限制和截取,使得每個(gè)應(yīng)用層協(xié)議信息數(shù)據(jù)包只保留從數(shù)據(jù)包開(kāi)始到長(zhǎng)度為L(zhǎng)的數(shù)據(jù)信息,并保存到.txt文件中。其中,閾值L的大小范圍是根據(jù)各應(yīng)用層協(xié)議的定義而確定的,不同的應(yīng)用層協(xié)議其控制信息的有效長(zhǎng)度L也是不一樣。一般來(lái)講,L在200byte到400byte之間取值即可滿足控制信息的提取要求,比如L=380byte。St印4、應(yīng)用層協(xié)議特征提取過(guò)程;為了實(shí)現(xiàn)應(yīng)用層協(xié)議特征的準(zhǔn)確、快速提取,本實(shí)施例對(duì)現(xiàn)有的Apriori頻繁模式挖掘算法進(jìn)行改進(jìn),提出了一種基于Apriori的數(shù)據(jù)挖掘算法,并命名為AC(AprioriFrequentSignatureandConstraint)算法,以完善應(yīng)用層協(xié)議特征的提取設(shè)計(jì)。Apriori算法作為數(shù)據(jù)挖掘中關(guān)聯(lián)規(guī)則挖掘算法的典型代表,由Agrawal等人在1993年提出。Apriori算法分為兩部分頻繁項(xiàng)集產(chǎn)生+關(guān)聯(lián)規(guī)則挖掘。頻繁項(xiàng)集產(chǎn)生過(guò)程用于挖掘海量數(shù)據(jù)中頻繁出現(xiàn)的數(shù)據(jù)項(xiàng),為關(guān)聯(lián)規(guī)則的建立提供數(shù)據(jù)對(duì)象。頻繁模式挖掘算法的基本原理如下頻繁模式挖掘是關(guān)聯(lián)規(guī)則挖掘里的一個(gè)重要內(nèi)容,挖掘待研究事務(wù)的頻繁項(xiàng)集,是產(chǎn)生關(guān)聯(lián)規(guī)則的重要前提和保證。應(yīng)用關(guān)聯(lián)規(guī)則里產(chǎn)生頻繁項(xiàng)集的方法來(lái)提取應(yīng)用層流量數(shù)據(jù)包中的協(xié)議特征。其基本思想是不考慮流量數(shù)據(jù)的結(jié)構(gòu)信息,只關(guān)注流量數(shù)據(jù)的內(nèi)容,而內(nèi)容具體含義事先也不考慮,在這種模糊的條件下,提取流量數(shù)據(jù)包的頻繁子串,并作為待考慮的應(yīng)用層協(xié)議特征。頻繁項(xiàng)集挖掘的數(shù)據(jù)集和支持度定義頻繁模式挖掘的數(shù)據(jù)集定義如下令I(lǐng)=Upi2,....id}是數(shù)據(jù)中所有項(xiàng)的集合,T=&,t2,....td}是所有事務(wù)的集合,每個(gè)事務(wù)ti包含的項(xiàng)集都是I的子集,包含O個(gè)或多個(gè)項(xiàng)的集合S被稱為項(xiàng)集。如果一個(gè)項(xiàng)集S包含k個(gè)項(xiàng),則稱它為k項(xiàng)集。項(xiàng)集S在事務(wù)中的出現(xiàn)頻率用支持度support來(lái)描述,support=P&(S)/T),分子ti(S)表示項(xiàng)集S在事務(wù)中出現(xiàn)的次數(shù),分母T表示事務(wù)個(gè)數(shù)。給定一個(gè)支持度的最小閾值minimum—sup,若support>minimum_sup,那么項(xiàng)集S為頻繁項(xiàng)集。頻繁項(xiàng)集挖掘過(guò)程頻繁項(xiàng)集挖掘過(guò)程都是根據(jù)原創(chuàng)性算法Apriori衍生出來(lái)的,因此他們的總體挖掘過(guò)程都大同小異。Apriori算法使用一種逐層搜索的迭代方法,用k項(xiàng)集探索(k+1)項(xiàng)集。第一次迭代挖掘所有長(zhǎng)度為1且支持度support大于等于最小支持度minimum—sup的項(xiàng)集作為頻繁1項(xiàng)集。第二次迭代挖掘長(zhǎng)度為2的頻繁2項(xiàng)集。在第二次迭代過(guò)程8中,算法會(huì)基于第一次迭代的結(jié)果來(lái)生成長(zhǎng)度為2的候選2項(xiàng)集,然后計(jì)算每個(gè)候選2項(xiàng)集的支持度su卯ort,將滿足su卯ort>minimum_sup的候選2項(xiàng)集選出來(lái)作為頻繁2項(xiàng)集。重復(fù)第二次迭代過(guò)程可以挖掘大小分別為3、4、5...的頻繁項(xiàng)集,直到?jīng)]有滿足最小支持度條件support>minimum_sup的項(xiàng)集產(chǎn)生為止。本實(shí)施例所提出的應(yīng)用層協(xié)議特征提取方法采用AC算法實(shí)現(xiàn),AC算法定義的應(yīng)用層流量數(shù)據(jù)包的頻繁項(xiàng)集數(shù)據(jù)模型為令I(lǐng)={ipi2,....ij,每個(gè)項(xiàng)ig(g二l到d)由兩位十六進(jìn)制數(shù)組成,是應(yīng)用層流量數(shù)據(jù)包的最小單位;T={、,t2,....td}為所有數(shù)據(jù)包的集合,ti={I的子集構(gòu)成的序列},為一個(gè)應(yīng)用層協(xié)議信息數(shù)據(jù)包;令S=substring(ti),S表示應(yīng)用層協(xié)議信息數(shù)據(jù)包ti的一個(gè)子序列,為I的項(xiàng)集;頻繁項(xiàng)集的支持度su卯ort=P(ti(S)/T);若su卯ort>minimum—sup,那么應(yīng)用層流量數(shù)據(jù)包^的子序列S為該應(yīng)用層的協(xié)議特征。AC算法相比其它算法的獨(dú)特之處體現(xiàn)在以下兩個(gè)方面—、引入BloomFilter函數(shù)改進(jìn)Apriori算法,產(chǎn)生頻繁1項(xiàng)集,以加快產(chǎn)生頻繁項(xiàng)集的過(guò)程。引入BloomFilter算法對(duì)Apriori算法進(jìn)行改進(jìn),BloomFilter算法用多個(gè)哈希函數(shù)(即Hash函數(shù))提高識(shí)別頻繁項(xiàng)的準(zhǔn)確性。BloomFilter算法最初是由FangHao等人提出來(lái)的,目的是加快對(duì)頻繁項(xiàng)集的提取。AC算法引入BloomFilter的思想對(duì)Apriori算法產(chǎn)生頻繁1項(xiàng)集的過(guò)程進(jìn)行改進(jìn),在執(zhí)行效率和精確度方面都有了很大的提高。二、在AC算法中引入產(chǎn)生協(xié)議特征即頻繁項(xiàng)集的限制條件,以加快應(yīng)用協(xié)議特征的提取過(guò)程。By皿g-ChulPark等人提出LASER(IXS-based(Longestcommonsubsequence)ApplicationSignatureExtRactionalgorithm)算法,艮卩基于最長(zhǎng)公共子序列的應(yīng)用特征提取算法,來(lái)提取應(yīng)用層特征。在LASER算法產(chǎn)生應(yīng)用層特征的過(guò)程中,引入最小子串長(zhǎng)度的限制條件算法將要產(chǎn)生的特征的最小長(zhǎng)度進(jìn)行限制。AC算法在沿用最小子串長(zhǎng)度的限制條件,即協(xié)議特征長(zhǎng)度的限制條件的基礎(chǔ)上,再提出了兩個(gè)限制條件屏蔽不提供協(xié)議特征的應(yīng)用層協(xié)議信息數(shù)據(jù)包和刪除冗余的應(yīng)用層協(xié)議特征,從而加快協(xié)議特征的提取過(guò)程和優(yōu)化提取得到的應(yīng)用層協(xié)議特征。下面對(duì)將AC算法應(yīng)用于應(yīng)用層協(xié)議特征提取過(guò)程的具體實(shí)現(xiàn)步驟闡述如下(1)導(dǎo)入經(jīng)過(guò)步驟St印3預(yù)處理后的應(yīng)用層協(xié)議信息數(shù)據(jù)包,即.txt文件。(2)設(shè)定頻繁1項(xiàng)集的長(zhǎng)度len。由于流量數(shù)據(jù)包是按原始捕獲的流量數(shù)據(jù)格式即十六進(jìn)制的格式保存的,每?jī)蓚€(gè)十六進(jìn)制符號(hào)表示一個(gè)十進(jìn)制ASCII碼字符,因此,頻繁1項(xiàng)集的長(zhǎng)度取值應(yīng)該為2的整數(shù)倍。此處引入?yún)f(xié)議特征長(zhǎng)度的限制條件在頻繁項(xiàng)集的產(chǎn)生過(guò)程中,前面的項(xiàng)集的產(chǎn)生是為后面項(xiàng)集的產(chǎn)生服務(wù)的,但是這些前面的項(xiàng)集往往是些過(guò)渡項(xiàng)集,對(duì)最終項(xiàng)集的產(chǎn)生很少或不產(chǎn)生影響。如果在產(chǎn)生頻繁l項(xiàng)集時(shí),項(xiàng)集的大小|S|=2,產(chǎn)生頻繁2項(xiàng)集時(shí),項(xiàng)集的大小|S|=4...,那么將會(huì)影響后續(xù)項(xiàng)集的遞增處理效率,而且協(xié)議特征過(guò)短沒(méi)有實(shí)際意義和參考價(jià)值。因此,本實(shí)施例通過(guò)對(duì)頻繁1項(xiàng)集的長(zhǎng)度len進(jìn)行限制,從而對(duì)協(xié)議特征最小長(zhǎng)度進(jìn)行限制,使其不產(chǎn)生過(guò)短的沒(méi)有實(shí)際意義的協(xié)議特征。這樣不但可以提高提取效率,也為最終產(chǎn)生更高質(zhì)量的協(xié)議特征提供重要保障。基于此,本實(shí)施例提出將頻繁1項(xiàng)集的長(zhǎng)度len設(shè)定為2的整數(shù)倍,最好為大于等于4的值,優(yōu)選len=4。(3)提取頻繁1項(xiàng)集。即提取應(yīng)用層協(xié)議信息數(shù)據(jù)包中滿足支持度條件support>minimum_sup的頻繁項(xiàng)集。在頻繁l項(xiàng)集的提取過(guò)程中,引入BloomFilter算法來(lái)判斷重復(fù)頻繁項(xiàng)集,以提高產(chǎn)生頻繁1項(xiàng)集的效率。BloomFilter算法提取頻繁1項(xiàng)集的原理和過(guò)程為BloomFilter是一個(gè)M位的二進(jìn)制字符串,每位初始為0。為每個(gè)候選1項(xiàng)集設(shè)定h個(gè)哈希函數(shù),h個(gè)哈希函數(shù)的值與BloomFilter的二進(jìn)制字符串的位置相對(duì)應(yīng)。當(dāng)判斷一個(gè)候選1項(xiàng)集是否已經(jīng)為頻繁1項(xiàng)集時(shí),只要計(jì)算這h個(gè)Hash函數(shù)的值,然后根據(jù)得到的函數(shù)值去尋找BloomFilter二進(jìn)制字符串的對(duì)應(yīng)位,如果h個(gè)對(duì)應(yīng)位的值都為l,則說(shuō)明該候選1項(xiàng)集已經(jīng)為頻繁1項(xiàng)集,這樣BloomFilter就將其過(guò)濾掉,而不用做進(jìn)一步的支持度計(jì)算來(lái)判斷該候選1項(xiàng)集是否為頻繁1項(xiàng)集;如果h個(gè)對(duì)應(yīng)位的值只要有一位不為l,則說(shuō)明要做進(jìn)一步的支持度計(jì)算才能判斷該候選1項(xiàng)集是否為頻繁1項(xiàng)集。BloomFilter算法過(guò)濾候選1項(xiàng)集的準(zhǔn)確度和錯(cuò)誤率由Hash函數(shù)的個(gè)數(shù)h決定,F(xiàn)angHao等人已證明h=6時(shí)BloomFilter算法過(guò)濾的錯(cuò)誤率已接近極小化。BloomFilter算法使用的Hash函數(shù)定義為假設(shè)候選1項(xiàng)集為C=(Q,C2,...,Ck),根據(jù)以下的哈希函數(shù)計(jì)算候選1項(xiàng)集C所有長(zhǎng)度為k(k>1)的子集的哈希值。假設(shè)一個(gè)素?cái)?shù)q,則第一個(gè)長(zhǎng)度為k的子集的哈希函數(shù)為&=Ciqk—^(^qk—2+...+Ck—iq+Ck(ModM)其中,M為BloomFilter的二進(jìn)制字符串的長(zhǎng)度;第二個(gè)長(zhǎng)度為k的子集的哈希函數(shù)為H2=C2qk—^Qqk—2++Ckq+Ck+1(ModM)。最小支持度閾值minimum—sup的取值范圍根據(jù)具體的應(yīng)用而定,不同的應(yīng)用層協(xié)議數(shù)據(jù)其最小支持度閾值也不同,根據(jù)實(shí)驗(yàn)經(jīng)驗(yàn)可知minimUm_SUp的取值范圍優(yōu)選為0.2<minimum—sup<0.8。此處引入限制條件屏蔽不提供協(xié)議特征的應(yīng)用層協(xié)議信息數(shù)據(jù)包。如果已提取的頻繁1項(xiàng)集沒(méi)有一個(gè)包含在一個(gè)應(yīng)用層協(xié)議信息數(shù)據(jù)包中,那么該應(yīng)用層協(xié)議數(shù)據(jù)包被認(rèn)為是不包含頻繁1項(xiàng)集的數(shù)據(jù)包,則在以后的頻繁項(xiàng)集的挖掘過(guò)程中,該應(yīng)用層協(xié)議信息數(shù)據(jù)包也不會(huì)包含頻繁項(xiàng)集。因此,將不提供協(xié)議特征的應(yīng)用層協(xié)議信息數(shù)據(jù)包屏蔽,在后面的頻繁項(xiàng)集挖掘過(guò)程中不再進(jìn)行頻繁項(xiàng)集的計(jì)算和挖掘。(4)由頻繁k項(xiàng)集提取候選k+1項(xiàng)集。假設(shè)Lines[x]、Lines[y]分別為第x個(gè)和第y個(gè)頻繁k項(xiàng)集,頻繁k項(xiàng)集的長(zhǎng)度為L(zhǎng)EN。substring(p,q)表示提取從序列的第p位開(kāi)始到第q位的子序列,h和b2為得到的候選k+1項(xiàng)集,其長(zhǎng)度為L(zhǎng)EN+2。我們知道流量數(shù)據(jù)包的內(nèi)容是一個(gè)有序序列,各項(xiàng)間的順序和位置是固定的。因此,不能簡(jiǎn)單地像集合一樣合并各k項(xiàng)集,來(lái)產(chǎn)生候選(k+1)項(xiàng)集。而候選k+l項(xiàng)集是由頻繁k項(xiàng)集間合并生成的,且在頻繁k項(xiàng)集的基礎(chǔ)上增加2個(gè)十六進(jìn)制字符,即候選k+1項(xiàng)集的長(zhǎng)度為L(zhǎng)EN+2。根據(jù)頻繁項(xiàng)集產(chǎn)生的先驗(yàn)原理如果一個(gè)項(xiàng)集是頻繁的,那么它的所有子集一定也是頻繁的。由此,我們知道候選k+1項(xiàng)集長(zhǎng)度為L(zhǎng)EN的子序列必為頻繁k項(xiàng)集,艮卩Lines[x].substring(1,Lines[x].length-2)禾口Lines[x].substring(3,Lines[x].length)必為頻繁k項(xiàng)集。因此,我們可以通過(guò)以下方式由頻繁k項(xiàng)集合并為候選k+l項(xiàng)集如果Lines[x]頻繁k項(xiàng)集從第3個(gè)字符開(kāi)始到最后一個(gè)字符結(jié)束的子序列與Lines[y]頻繁k項(xiàng)集的從第1個(gè)字符開(kāi)始到倒數(shù)第三個(gè)字符結(jié)束的子序列相等,艮卩Lines[x].substring(3,Lines[x].length0)=Lines[y].substring(1,Lines[y].length()_2),那么Lines[x]和Lines[y]用以下方式合并為候選k+1項(xiàng)集:、=Lines[x]+Lines[y].substring(Lines[y].length()_1,Lines[y].length());如果Lines[x]頻繁k項(xiàng)集從第1個(gè)字符開(kāi)始到倒數(shù)第3個(gè)字符結(jié)束的子序列與Lines[y]頻繁k項(xiàng)集的從第3個(gè)字符開(kāi)始到最后一個(gè)字符結(jié)束的子序列相等,即Lines[x].substring(1,Lines[x].length0_2)=Lines[y].substring(3,Lines[y].length()),那么Lines[x]和Lines[y]用以下方式合并為候選k+1項(xiàng)集:b2=Lines[y]+Lines[x].substring(Lines[x].length()_1,Lines[x].length());HongHan等人提出該合并過(guò)程并應(yīng)用于病毒特征的提取過(guò)程中,他們提出當(dāng)產(chǎn)生頻繁2項(xiàng)集時(shí),直接由頻繁1項(xiàng)集間的合并產(chǎn)生,因?yàn)榇藭r(shí)的頻繁1項(xiàng)集為項(xiàng)集的最小單位;當(dāng)產(chǎn)生頻繁3項(xiàng)集開(kāi)始以后的項(xiàng)集時(shí),根據(jù)項(xiàng)集間子序列的相等性來(lái)合并頻繁k項(xiàng)集為候選k+1項(xiàng)集。當(dāng)產(chǎn)生頻繁3項(xiàng)集以后項(xiàng)集的方法對(duì)AC算法產(chǎn)生長(zhǎng)度為2的頻繁項(xiàng)集時(shí)已經(jīng)開(kāi)始適用,因?yàn)楸緦?shí)施例定義的應(yīng)用層流量數(shù)據(jù)包的最小單位長(zhǎng)度為2,而AC算法初始設(shè)定頻繁1項(xiàng)集的長(zhǎng)度len—般大于等于4,因此此時(shí)頻繁1項(xiàng)集不是項(xiàng)集的最小單位,由頻繁1項(xiàng)集生成候選2項(xiàng)集,可直接應(yīng)用以上合并過(guò)程。(5)由候選k+l項(xiàng)集產(chǎn)生頻繁k+l項(xiàng)集。計(jì)算候選k+1項(xiàng)集的支持度su卯ort,將滿足支持度條件su卯ort>minimum_sup的候選k+1項(xiàng)集提取出來(lái),作為頻繁k+1項(xiàng)集。(6)根據(jù)頻繁k+1項(xiàng)集,刪除頻繁k項(xiàng)集中的項(xiàng)集。此處引入限制條件刪除冗余的應(yīng)用層協(xié)議特征。根據(jù)提取得到的頻繁k+1項(xiàng)集刪除頻繁k+1項(xiàng)集中已經(jīng)挖掘的頻繁k項(xiàng)集。為了得到更優(yōu)的應(yīng)用層協(xié)議特征集合并將冗余的應(yīng)用層協(xié)議特征刪除,本實(shí)施例根據(jù)頻繁項(xiàng)集產(chǎn)生的先驗(yàn)原理如果一個(gè)項(xiàng)集是頻繁的,那么它的所有子集一定也是頻繁的,設(shè)計(jì)了刪除冗余的應(yīng)用層協(xié)議特征的過(guò)程,即在完成頻繁K+1項(xiàng)集的提取過(guò)程后,緊接著進(jìn)行刪除冗余的頻繁K項(xiàng)集的刪除過(guò)程。因?yàn)轭l繁k+1項(xiàng)集是由頻繁k項(xiàng)集挖掘產(chǎn)生的,那么每個(gè)頻繁k+1項(xiàng)集的子序列,一定也包含在頻繁k項(xiàng)集中,頻繁k+1項(xiàng)集已經(jīng)包含了其對(duì)應(yīng)的頻繁k項(xiàng)集的挖掘項(xiàng)集。相反的,頻繁k項(xiàng)集不一定都包含在頻繁k+1項(xiàng)集中,因?yàn)橛深l繁k項(xiàng)集產(chǎn)生的候選k+1項(xiàng)集并不一定能成為頻繁k+1項(xiàng)集。因此在頻繁k項(xiàng)集中刪除頻繁k+1項(xiàng)集包含的項(xiàng)集,即如果滿足以下條件,那么對(duì)應(yīng)的頻繁k項(xiàng)集將被刪除fz為一個(gè)頻繁k+l項(xiàng)集;fx和fy為兩個(gè)頻繁k項(xiàng)集,且fx=fz.substring(1,fz.length()-2),fy=fz.substring(3,fz.length()),那么刪除頻繁k項(xiàng)集fx和fy。在這個(gè)過(guò)程中,刪除了頻繁k項(xiàng)集中重復(fù)出現(xiàn)的頻繁k+l項(xiàng)集的子序列,且保留了頻繁k項(xiàng)集中不產(chǎn)生頻繁k+1項(xiàng)集的項(xiàng)集。(7)如此反復(fù)執(zhí)行步驟(4)、(5)和(6),直到?jīng)]有新的頻繁項(xiàng)集產(chǎn)生為止。通過(guò)以上步驟獲取的各個(gè)頻繁項(xiàng)集即構(gòu)成應(yīng)用層的協(xié)議特征集合。St印5、對(duì)獲取的應(yīng)用層的協(xié)議特征集合進(jìn)行優(yōu)化處理。在此步驟中,包括刪除協(xié)議特征集合中不具代表性的協(xié)議特征和應(yīng)用層通用的協(xié)議特征,使得到更優(yōu)的協(xié)議特征集合。St印6、將經(jīng)過(guò)優(yōu)化處理后的協(xié)議特征結(jié)果以圖表或者文字等形式進(jìn)行展示。St印7、將經(jīng)過(guò)優(yōu)化處理后的協(xié)議特征與特征數(shù)據(jù)庫(kù)中已保存的協(xié)議特征進(jìn)行比較,以不斷更新特征數(shù)據(jù)庫(kù),進(jìn)而為應(yīng)用層協(xié)議的準(zhǔn)確識(shí)別提供支持?;谏鲜鰬?yīng)用層協(xié)議特征提取方法,本實(shí)施例又提出了一種應(yīng)用層協(xié)議特征提取系統(tǒng),參見(jiàn)圖2所示,具體包括以下主要組成部分權(quán)限管理模塊提供系統(tǒng)的用戶、用戶組的定義及其各自權(quán)限的管理,保證數(shù)據(jù)庫(kù)的安全訪問(wèn),即完成St印l的功能。其中,用戶管理,用于定義系統(tǒng)的用戶及相應(yīng)的用戶權(quán)限;用戶組管理,用于定義系統(tǒng)的用戶組及相應(yīng)的權(quán)限。設(shè)置的各權(quán)限數(shù)據(jù)保存在權(quán)限數(shù)據(jù)庫(kù)中。流量捕獲模塊捕獲待監(jiān)聽(tīng)的網(wǎng)絡(luò)流量數(shù)據(jù)包,即完成St印2的功能。應(yīng)用層協(xié)議流量預(yù)處理模塊根據(jù)流量數(shù)據(jù)包的特點(diǎn)對(duì)流量數(shù)據(jù)包進(jìn)行預(yù)處理,去掉無(wú)用或不相關(guān)的流量數(shù)據(jù),即完成St印3的功能。應(yīng)用層協(xié)議特征提取模塊為本系統(tǒng)的關(guān)鍵模塊,應(yīng)用數(shù)據(jù)挖掘AC算法實(shí)現(xiàn)對(duì)應(yīng)用層協(xié)議特征的提取,即完成St印4的功能。在此模塊中還可以包括數(shù)據(jù)挖掘算法的選擇、數(shù)據(jù)挖掘算法的實(shí)現(xiàn)與應(yīng)用模塊等。此模塊提供一個(gè)公用的接口支持?jǐn)?shù)據(jù)挖掘算法的擴(kuò)展。參數(shù)配置模塊提供應(yīng)用層協(xié)議特征提取數(shù)據(jù)挖掘算法的參數(shù),如特征長(zhǎng)度len、支持度最小閾值minimUm_SUp以及選擇的特征提取數(shù)據(jù)挖掘算法的其他各相關(guān)參數(shù)等。應(yīng)用層協(xié)議特征優(yōu)化模塊優(yōu)化應(yīng)用層協(xié)議特征提取模塊提取得到的協(xié)議特征,將冗余的協(xié)議特征刪除,使得到更優(yōu)的協(xié)議特征集合,即完成St印5的功能。應(yīng)用層協(xié)議特征提取結(jié)果展示模塊將經(jīng)過(guò)優(yōu)化后的協(xié)議特征及其支持度(支持度=協(xié)議特征在流量數(shù)據(jù)包中出現(xiàn)的次數(shù)/捕獲流量中總的數(shù)據(jù)包個(gè)數(shù))以圖形、表格等方式輸出展示,即完成St印6的功能。應(yīng)用層協(xié)議特征周期性更新模塊實(shí)現(xiàn)最新協(xié)議特征數(shù)據(jù)庫(kù)更新。將最新提取得到的協(xié)議特征與特征數(shù)據(jù)庫(kù)相應(yīng)協(xié)議特征進(jìn)行比較,如果有新的協(xié)議特征產(chǎn)生,則將該新特征更新到特征數(shù)據(jù)庫(kù),即完成St印7的功能。下面結(jié)合圖1、圖2,以提取PPStream應(yīng)用軟件在應(yīng)用層中的特征為例對(duì)本實(shí)施例的協(xié)議特征提取方法進(jìn)行詳細(xì)的說(shuō)明。以PPStream應(yīng)用層軟件為實(shí)例,提取與PPstream軟件相關(guān)的應(yīng)用層協(xié)議的特征。12在實(shí)驗(yàn)主機(jī)上必須首先打開(kāi)PPStream軟件。1、用戶登錄系統(tǒng)用戶輸入用戶名和密碼,系統(tǒng)從權(quán)限數(shù)據(jù)庫(kù)查找相應(yīng)的用戶登錄信息,并進(jìn)行用戶驗(yàn)證。用戶驗(yàn)證通過(guò),則允許用戶進(jìn)入系統(tǒng),否則提醒用戶再次輸入用戶名和密碼。2、流量捕獲在應(yīng)用層協(xié)議流量捕獲模塊中,選擇應(yīng)用層協(xié)議提取功能,并選擇當(dāng)前需要監(jiān)聽(tīng)的網(wǎng)卡RealtekRTL8139/810xFamilyFastEthernetNIC,輸入流量數(shù)據(jù)包過(guò)濾條件"TCP&¬smb&¬nbss",即捕獲TCP數(shù)據(jù)包,開(kāi)始捕獲應(yīng)用層協(xié)議流量數(shù)據(jù)包。流量捕獲結(jié)束后,可隨時(shí)點(diǎn)擊"停止流量捕獲"按鈕,最后將捕獲的流量數(shù)據(jù)包另存為PPStream.pc即文件。3、應(yīng)用層協(xié)議流量預(yù)處理將PPStream.pc即文件導(dǎo)入應(yīng)用層協(xié)議流量預(yù)處理模塊,設(shè)置預(yù)處理參數(shù)截取流量數(shù)據(jù)包大小L=380byte。分流出PPStream.pcap流量數(shù)據(jù)包的上行網(wǎng)絡(luò)流量,并提取該上行網(wǎng)絡(luò)流量的應(yīng)用層協(xié)議信息數(shù)據(jù)包,并對(duì)每個(gè)應(yīng)用層協(xié)議信息數(shù)據(jù)包進(jìn)行截取,只保留L長(zhǎng)度的數(shù)據(jù)信息。然后,將流量數(shù)據(jù)預(yù)處理后的結(jié)果以PPStream.txt文件的形式發(fā)送給應(yīng)用層協(xié)議特征提取模塊。進(jìn)行預(yù)處理后,流量數(shù)據(jù)包的格式為(每個(gè)流量數(shù)據(jù)包用#號(hào)隔開(kāi))#474554202F766F642F696D616765732F2E30362544302541312543392546322544312546342543392545442542432544422542312541392544352543373630302542312542362542372541322543412543342542322542422543352544372543362544452E6A706720485454502F312E31ODOA486F73743A20706C2E7070732E7476ODOA4163636570743A202A2F2AODOA557365722D4167656E743A20505053747265616D2D436C69656E742F312E30ODOAOD#474554202F766F642F2E30362544302541312543392546322544312546342543392545442542432544422542312541392544352543373630302542312542362542372541322543412543342542322542422543352544372543362544452E786D6C20485454502F312E31ODOA486F73743A20706C2E7070732E7476ODOA4163636570743A202A2F2AODOA557365722D4167656E743A20505053747265616D2D436C6965i6E'74:2F312E30ODOAODOA#474554202F6368616E6E656C5F6C6973742F6C6973742F303230362544302541312543392546322544312546342543392545442542432544422542312541392544352543373630302542312542362542372541322543412543342542322542422543352544372543362544452E68746D6C20485454502F312E31ODOA4163636570743A202A2F2AODOA4163636570742D4C616E67756167653A207A682D636EOD0A55412D4350553A20783836ODOA416363657013<table>tableseeoriginaldocumentpage14</column></row><table>..............................4.應(yīng)用層協(xié)議特征提取選擇AC算法,配置AC算法的參數(shù)頻繁l項(xiàng)集長(zhǎng)度len=6,最小支持度閾值minimum_sup=0.2。啟動(dòng)應(yīng)用層協(xié)議特征提取模塊的分析功能,從PPStream.txt文件中提取出PPStream軟件的特征,并將提取得到的協(xié)議特征集合輸出到應(yīng)用層協(xié)議特征優(yōu)化模塊。表1是提取得到的PPStream軟件的協(xié)議特征及其支持度<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>表l5、PPStream軟件特征優(yōu)化應(yīng)用層協(xié)議特征優(yōu)化模塊接收應(yīng)用層協(xié)議特征提取模塊送來(lái)的協(xié)議特征集合,對(duì)協(xié)議特征集合進(jìn)行優(yōu)化處理,刪除多余的、不具代表性的和應(yīng)用層通用的協(xié)議特征。表2是優(yōu)化后的PPStream軟件的協(xié)議特征及其支持度<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>表26、將經(jīng)過(guò)優(yōu)化處理后的協(xié)議特征傳送給應(yīng)用層協(xié)議特征提取結(jié)果展示模塊,以圖表和文字的形式展示提取得到的協(xié)議特征結(jié)果。7、將協(xié)議特征結(jié)果發(fā)送給應(yīng)用層協(xié)議特征周期性更新模塊,通過(guò)應(yīng)用層協(xié)議特征周期性更新模塊對(duì)提取得到的協(xié)議特征與特征數(shù)據(jù)庫(kù)的協(xié)議特征進(jìn)行比較和更新。本發(fā)明的應(yīng)用層協(xié)議特征提取方法可以充分滿足實(shí)際工程應(yīng)用的需求,提高了網(wǎng)絡(luò)協(xié)議分析處理的效率和進(jìn)度,為網(wǎng)絡(luò)運(yùn)營(yíng)商實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)資源、解決網(wǎng)絡(luò)擁堵問(wèn)題提供了技術(shù)上的支持。當(dāng)然,以上所述僅是本發(fā)明的一種優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出的是,對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。權(quán)利要求一種應(yīng)用層協(xié)議特征的提取方法,包括以下步驟(1)捕獲待監(jiān)聽(tīng)的流量數(shù)據(jù)包;(2)提取流量數(shù)據(jù)包中的頻繁1項(xiàng)集,所述頻繁1項(xiàng)集的長(zhǎng)度設(shè)定為2的整數(shù)倍;(3)采用如下合并過(guò)程將頻繁k項(xiàng)集合并成候選k+1項(xiàng)集,k≥1b1=Lines[x]+Lines[y].substring(Lines[y].length()-1,Lines[y].length());b2=Lines[y]+Lines[x].substring(Lines[x].length()-1,Lines[x].length());其中,Lines[x]、Lines[y]分別為第x個(gè)和第y個(gè)頻繁k項(xiàng)集,頻繁k項(xiàng)集的長(zhǎng)度為L(zhǎng)EN;substring(p,q)表示提取從序列的第p位開(kāi)始到第q位的子序列,b1和b2為得到的候選k+1項(xiàng)集,其長(zhǎng)度為L(zhǎng)EN+2;(4)計(jì)算候選k+1項(xiàng)集的支持度support,提取滿足支持度條件support≥minimum_sup的候選k+1項(xiàng)集,作為頻繁k+1項(xiàng)集;所述minimum_sup為頻繁項(xiàng)集支持度的最小閾值;(5)在頻繁k項(xiàng)集中,刪除頻繁k+1項(xiàng)集包含的項(xiàng)集;由步驟(3)、(4)、(5)獲取的各個(gè)頻繁項(xiàng)集即構(gòu)成應(yīng)用層的協(xié)議特征集合。2.根據(jù)權(quán)利要求1所述的應(yīng)用層協(xié)議特征的提取方法,其特征在于在所述步驟(2)的頻繁1項(xiàng)集提取過(guò)程中,采用BloomFilter算法來(lái)判斷重復(fù)頻繁1項(xiàng)集,并將重復(fù)的頻繁l項(xiàng)集刪除。3.根據(jù)權(quán)利要求1所述的應(yīng)用層協(xié)議特征的提取方法,其特征在于在完成頻繁k+1項(xiàng)集的提取過(guò)程后,緊接著進(jìn)行刪除冗余的頻繁k項(xiàng)集的過(guò)程令fz為一個(gè)頻繁k+1項(xiàng)集;fx和fy為兩個(gè)頻繁k項(xiàng)集,且fx=fz.substring(1,fz.length()-2),fy=fz.substring(3,fz.length()),那么刪除頻繁k項(xiàng)集fx和fy。4.根據(jù)權(quán)利要求1所述的應(yīng)用層協(xié)議特征的提取方法,其特征在于在所述步驟(2)之前包括建立流量數(shù)據(jù)包的頻繁項(xiàng)集數(shù)據(jù)模型的過(guò)程令I(lǐng)=Upi2,....id},每個(gè)項(xiàng)ig(g=1到d)由兩位十六進(jìn)制數(shù)組成,是應(yīng)用層流量數(shù)據(jù)包的最小單位;T={tpt2,....td}為所有數(shù)據(jù)包的集合,ti={I的子集構(gòu)成的序列},為一個(gè)應(yīng)用層協(xié)議信息數(shù)據(jù)包;令S=substring(ti),S表示應(yīng)用層協(xié)議信息數(shù)據(jù)包ti的一個(gè)子序列,為I的項(xiàng)集;頻繁項(xiàng)集的支持度support=P&(S)/T);若support>minimum_sup,則應(yīng)用層流量數(shù)據(jù)包ti的子序列S為該應(yīng)用層的協(xié)議特征。5.根據(jù)權(quán)利要求1所述的應(yīng)用層協(xié)議特征的提取方法,其特征在于所述頻繁1項(xiàng)集的長(zhǎng)度為2的倍數(shù),且大于等于4。6.根據(jù)權(quán)利要求2所述的應(yīng)用層協(xié)議特征的提取方法,其特征在于在所述步驟(2)和(4)的頻繁項(xiàng)集的提取過(guò)程中,包括刪除不產(chǎn)生頻繁項(xiàng)集的流量數(shù)據(jù)包的過(guò)程。7.根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的應(yīng)用層協(xié)議特征的提取方法,其特征在于在所述步驟(1)中還包括對(duì)捕獲到的流量數(shù)據(jù)包進(jìn)行預(yù)處理的過(guò)程將捕獲到流量數(shù)據(jù)包進(jìn)行上行網(wǎng)絡(luò)流量和下行網(wǎng)絡(luò)流量的分流,只保留上行網(wǎng)絡(luò)流8.根據(jù)權(quán)利要求7所述的應(yīng)用層協(xié)議特征的提取方法,其特征在于在所述對(duì)捕獲到的流量數(shù)據(jù)包進(jìn)行預(yù)處理的過(guò)程中還包括對(duì)上行網(wǎng)絡(luò)流量的每一個(gè)流量數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層、傳輸層的頭文件信息去除,只保留應(yīng)用層數(shù)據(jù)信息,形成應(yīng)用層協(xié)議信息數(shù)據(jù)包供后續(xù)步驟使用的過(guò)程。9.根據(jù)權(quán)利要求8所述的應(yīng)用層協(xié)議特征的提取方法,其特征在于在所述對(duì)捕獲到的流量數(shù)據(jù)包進(jìn)行預(yù)處理的過(guò)程中還包括根據(jù)設(shè)定的應(yīng)用層協(xié)議信息數(shù)據(jù)包長(zhǎng)度閾值L對(duì)應(yīng)用層協(xié)議信息數(shù)據(jù)包進(jìn)行限制和截取的過(guò)程,使得每個(gè)應(yīng)用層協(xié)議信息數(shù)據(jù)包只保留長(zhǎng)度為L(zhǎng)的數(shù)據(jù)信息。10.根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的應(yīng)用層協(xié)議特征的提取方法,其特征在于在所述步驟(5)之后還包括對(duì)提取出的應(yīng)用層的協(xié)議特征集合進(jìn)行優(yōu)化的過(guò)程刪除協(xié)議特征集合中不具代表性的協(xié)議特征和應(yīng)用層通用的協(xié)議特征。全文摘要本發(fā)明公開(kāi)了一種應(yīng)用層協(xié)議特征的提取方法,從工程應(yīng)用角度出發(fā)將數(shù)據(jù)挖掘的思想和方法實(shí)際應(yīng)用到應(yīng)用層協(xié)議特征的提取過(guò)程中,提出了一套基于Apriori算法的數(shù)據(jù)挖掘AC算法,并在此基礎(chǔ)上根據(jù)應(yīng)用層協(xié)議流量數(shù)據(jù)量大的特點(diǎn),從應(yīng)用層協(xié)議數(shù)據(jù)包的有效包長(zhǎng)、有效流量和無(wú)用流量等角度出發(fā),提出了對(duì)流量數(shù)據(jù)包進(jìn)行限制預(yù)處理的策略,從而克服了手動(dòng)分析的不足,促進(jìn)了企業(yè)和公司應(yīng)用層協(xié)議分析工作的信息化和智能化,為企業(yè)和公司減輕了人力資源的負(fù)擔(dān),提高了工作效率和協(xié)議識(shí)別的準(zhǔn)確率。文檔編號(hào)H04L29/08GK101753622SQ20091026010公開(kāi)日2010年6月23日申請(qǐng)日期2009年12月25日優(yōu)先權(quán)日2009年12月25日發(fā)明者劉榮燁申請(qǐng)人:青島朗訊科技通訊設(shè)備有限公司