專利名稱::一種網(wǎng)絡(luò)流量分類模型的建立方法及相應(yīng)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及網(wǎng)絡(luò)流量分類,特別涉及在網(wǎng)絡(luò)流量分類中分類模型的建立方法及相應(yīng)系統(tǒng)。
背景技術(shù):
:近幾年來,隨著因特網(wǎng)技術(shù)的飛速發(fā)展,不斷涌現(xiàn)出新型的協(xié)議及應(yīng)用軟件,如P2P(Peer-To-Peer)、VOIP(VoiceOverInternetProtocol)等。新業(yè)務(wù)的不斷增加使得出口網(wǎng)絡(luò)帶寬利用率居高不下,甚至引起網(wǎng)絡(luò)擁塞,對于企業(yè)或者校園網(wǎng)絡(luò)來說尤為明顯,因此,在實(shí)際應(yīng)用中需要對網(wǎng)絡(luò)流量進(jìn)行控制。此外,通過不安全的網(wǎng)絡(luò)環(huán)境獲得的應(yīng)用程序,也可能會造成病毒和惡意代碼的入侵,為網(wǎng)絡(luò)安全帶來隱患。在上述的網(wǎng)絡(luò)流量控制和網(wǎng)絡(luò)安全中,都涉及到如何快速準(zhǔn)確地識別應(yīng)用,即如何對網(wǎng)絡(luò)流量進(jìn)行分類,將一段網(wǎng)絡(luò)流量劃分到特定的應(yīng)用中。早期的網(wǎng)絡(luò)流量分類方法是基于端口的分類方法,即根據(jù)網(wǎng)絡(luò)流量所通過的端口區(qū)別不同的網(wǎng)絡(luò)應(yīng)用。這種方法具有簡單、高效的優(yōu)點(diǎn),但是隨著因特網(wǎng)應(yīng)用的不斷發(fā)展,尤其是P2P等業(yè)務(wù)的不斷發(fā)展,很多應(yīng)用開始使用動態(tài)端口,甚至使用常用Web服務(wù)的80端口來偽裝其他應(yīng)用。因此,基于端口的分類方法誤判率逐漸提高,對于采用類似P2P應(yīng)用的動態(tài)端口特性的應(yīng)用變得難以識別。為了解決基于端口分類方法的缺點(diǎn),本領(lǐng)域的技術(shù)人員又提出了基于特征字段分析的方法。但是這種方法也存在自身的缺點(diǎn)第一,僅僅能識別那些特征字符串可見的應(yīng)用,但是特征字符串的獲得非常困難,對一些非公開的協(xié)議尤其困難,如Skype;第二,識別處理過程變得復(fù)雜并需要一定的內(nèi)存,需要保存大量數(shù)據(jù)包的Payload,影響流量識別的實(shí)時性。上述的基于端口和特征字段分析的網(wǎng)絡(luò)流量分類方法都是根據(jù)應(yīng)用層的信息來實(shí)現(xiàn)網(wǎng)絡(luò)流量的分類,在本領(lǐng)域中,還存在根據(jù)傳輸層統(tǒng)計信息對網(wǎng)絡(luò)流量進(jìn)行分類的方法。此類方法依賴于不同應(yīng)用在連接網(wǎng)絡(luò)過程中表現(xiàn)出來的不同行為特征。例如,在一些P2P應(yīng)用中,BitTorren的連接具有持久性和數(shù)據(jù)傳輸?shù)碾p向性,而FTP的數(shù)據(jù)傳輸連接不具有持久性,并且是單方向的發(fā)送數(shù)據(jù),通過這兩個特征就可以區(qū)分BitTorrent和FTP。在實(shí)際應(yīng)用中,包括發(fā)送數(shù)據(jù)包的總個數(shù)、連接持續(xù)時間和平均包大小在內(nèi)的傳輸層統(tǒng)計信息都可以作為區(qū)別特征。但是這些特征往往只能在流結(jié)束之后才能獲得,因此這些基于行為特征的網(wǎng)絡(luò)流量識別方法只適用于歷史分析,而不能用于在線實(shí)時識別。McGregor等人提出針對流量傳輸層的某些屬性,比如數(shù)據(jù)包的大小、到達(dá)時間間隔、字節(jié)數(shù)、連接持續(xù)時間等,把這些指標(biāo)混合作為一個指標(biāo)使用EM(ExpectationMaximization)算法來進(jìn)行流量識別。但是作者沒有驗(yàn)證這種分類方法的準(zhǔn)確率如何,也沒有說明哪個屬性可以得到最好的結(jié)果。Zander等人提出的基于AutoClass的EM算法是對前一種算法的拓展,該算法利用客戶端發(fā)向服務(wù)器端數(shù)據(jù)流的數(shù)據(jù)包長度作為分類的屬性,具有識別率較高的優(yōu)點(diǎn),但是EM算法在學(xué)習(xí)過程中需要花費(fèi)很多的時間。JeffreyErman等人提出了一種在速度上優(yōu)于AutoClass算法的基于數(shù)據(jù)挖掘算法K-means的流量分類方法(請見參考文獻(xiàn)1:TrafficClassificationUsingClusteringAlgorithms;JeffreyErman,MartinArlitt,AnirbanMahanti;UniversityofCalgary,2500UniversityDriveNW,Calgary,AB,Canada)。通過實(shí)-驗(yàn)得出K-means算法在對應(yīng)用層協(xié)議的識別率上高于AutoClass算法。這種方法通過對傳輸層協(xié)i義TCP的連接的某些指標(biāo)(如數(shù)據(jù)包個數(shù)、數(shù)據(jù)包大小的均值、除去數(shù)據(jù)包包頭信息的負(fù)載大小的均值、傳輸字節(jié)的個數(shù)和數(shù)據(jù)包的平均到達(dá)時間等)進(jìn)行特征聚類,K-means算法把具有相同特征連接的指標(biāo)進(jìn)行分簇,然后再從分好的簇內(nèi)提取出特征來進(jìn)行在線的流量分類。這種方法存在三點(diǎn)不足第一,釆用的指標(biāo)基本上是流統(tǒng)計指標(biāo),需要流結(jié)束后才能得到,所以不適用于在線實(shí)時識別;第二,沒有說明哪種指標(biāo)可以產(chǎn)生較好的結(jié)果;第三,使用的K-means算法在初始化簇中心的選擇和簇數(shù)目的確定上都存在缺陷,對分簇的結(jié)果以及提取的特征有很大影響,實(shí)驗(yàn)結(jié)果識別率較低。由于JeffreyErman的工作存在著一些不足,LaurentBernaille等人提出一種觀察TCP連接的前5個數(shù)據(jù)包長度來識別流量(請見參考文獻(xiàn)2:TrafficClassificationOnTheFly;LaurentBernaille,RenataTeixeira,IsmaelAkodjenouAugustinSoule,KaveSalamatian;LIP6,Universit'ePierreetMarieCurie,ThomsonParisLab;Paris,FRANCE)。文章通過實(shí)驗(yàn)分析得出200810103622.1說明書第3/12頁不同應(yīng)用的TCP連接的前5個數(shù)據(jù)包的長度和方向具有一定特征,并且可以進(jìn)行有效流量識別。雖然文章在流統(tǒng)計的指標(biāo)選取上有所改進(jìn),但是對于K-means算法所存在簇中心的初始化和簇數(shù)目確定的缺陷并無說明如何改進(jìn)。
發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有的網(wǎng)絡(luò)流量分類方法在簇中心的初始化和簇數(shù)目的確定上所存在的缺陷,從而提供一種網(wǎng)絡(luò)流量分類方法以及應(yīng)用于網(wǎng)絡(luò)流量分類方法的網(wǎng)絡(luò)流量分類模型的建立方法。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種網(wǎng)絡(luò)流量分類模型的建立方法,包括步驟1)、從所捕獲的網(wǎng)絡(luò)流量的流數(shù)據(jù)包中選擇和提取識別指標(biāo);步驟2)、根據(jù)步驟l)所得到的識別指標(biāo),在所設(shè)定的多個簇數(shù)目下,選擇所捕獲網(wǎng)絡(luò)流量的初始化簇中心;步驟3)、在所設(shè)定的多個簇數(shù)目下,分別根據(jù)步驟2)所得到的初始化簇中心,對所述的識別指標(biāo)進(jìn)行分簇操作,并根據(jù)分簇后的結(jié)果重新計算所捕獲網(wǎng)絡(luò)流量中的新的簇中心點(diǎn);步驟4)、在所設(shè)定的多個簇數(shù)目下,分別計算步驟3)所得到的各個分簇操作結(jié)果的標(biāo)準(zhǔn)化互信息值,根據(jù)所述的標(biāo)準(zhǔn)化互信息值從所設(shè)定的多個簇數(shù)目中選擇一個作為最佳簇數(shù)目;步驟5)、根據(jù)步驟4)所得到的最佳簇數(shù)目,從步驟3)所得到的結(jié)果中選擇該最佳簇數(shù)目下的分簇操作結(jié)果和新的簇中心點(diǎn)作為網(wǎng)絡(luò)流量分類模型。上述技術(shù)方案中,所述的識別指標(biāo)為所捕獲的網(wǎng)絡(luò)流量中的TCP連接中的前4個數(shù)據(jù)包的長度和方向,所捕獲網(wǎng)絡(luò)流量中的所有識別指標(biāo)形成數(shù)據(jù)集。上述技術(shù)方案中,所述的識別指標(biāo)的選擇和提取包括步驟1-1)、在所述網(wǎng)絡(luò)流量的流數(shù)據(jù)包中,去除不屬于TCP連接的數(shù)據(jù)包;步驟l-2)、在剩余的數(shù)據(jù)包中,去除那些在應(yīng)用開始連接之前所生成的TCP連4矣;步驟i_4)、從TCP連接建立的前4個數(shù)據(jù)包中提取數(shù)據(jù)包的長度和方向作為識別指標(biāo)。上述技術(shù)方案中,所述的步驟2)包括步驟2-1)、從所述數(shù)據(jù)集中隨機(jī)選擇一個點(diǎn)作為簇中心;步驟2-2)、計算所述數(shù)據(jù)集中與當(dāng)前簇中心離散性最強(qiáng)的點(diǎn),將該點(diǎn)作為下一個簇中心;步驟2-3)、重復(fù)上述的步驟2-2),直至所得到的簇中心的數(shù)目與所設(shè)定的簇數(shù)目相同。上述技術(shù)方案中,所述數(shù)據(jù)集為所捕獲網(wǎng)絡(luò)流量中的所有TCP連接的識別指標(biāo)的集合;所述數(shù)據(jù)集中的點(diǎn)為一個TCP連接中的識別指標(biāo)。上述技術(shù)方案中,在所述的步驟2-2)中,計算所述數(shù)據(jù)集中與當(dāng)前簇中心離散性最強(qiáng)的點(diǎn)通過在數(shù)據(jù)集中選擇概率p最大的點(diǎn)得到,所述概率p的計算公式如下尸_""')2其中,D(x)表示一個點(diǎn)x到當(dāng)前簇中心最短的距離;x表示數(shù)據(jù)集中任意的一個點(diǎn);x,表示數(shù)據(jù)集中任意的另外一個點(diǎn),該點(diǎn)x,將通過計算概率P來決定是否成為下一個簇中心。上述技術(shù)方案中,在所述的步驟2-2)中,所述的當(dāng)前簇中心為所有已選擇的簇中心。上述技術(shù)方案中,在所述的步驟3)中,所述分簇操作包括步驟3-l)、根據(jù)所述的初始化簇中心的值,將數(shù)據(jù)集中的數(shù)據(jù)劃分給與其距離最近的簇中心所在的簇;步驟3-2)、在各個簇中更新簇中心;步驟3-3)、根據(jù)更新后的簇中心重新對數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行所在簇的劃分,然后在各個新劃分的簇中更新簇中心;重復(fù)這一過程,直到各個簇的中心點(diǎn)不再發(fā)生變化。上述技術(shù)方案中,所述的標(biāo)準(zhǔn)化互信息值的計算包括步驟4-l)、計算一個簇在一個應(yīng)用中的概率;步驟4-2)、計算所述數(shù)據(jù)集中點(diǎn)在一個應(yīng)用中的概率,以及所述數(shù)據(jù)集中的點(diǎn)在一個簇中的概率;步驟4-3)、根據(jù)步驟4-l)和步驟4-2)的計算結(jié)果,計算標(biāo)準(zhǔn)化互信息的值,從而得到數(shù)據(jù)集中的點(diǎn)同時屬于一個蔟及一個應(yīng)用的概率。上述技術(shù)方案中,所述的根據(jù)所述的標(biāo)準(zhǔn)化互信息值從所設(shè)定的多個簇數(shù)目中選擇一個作為最佳簇數(shù)目包括選擇標(biāo)準(zhǔn)化互信息值最大的簇數(shù)目作為最佳簇數(shù)目。本發(fā)明還提供了一種建立網(wǎng)絡(luò)流量分類模型的系統(tǒng),包括識別指標(biāo)提取模塊,用于從所捕獲的網(wǎng)絡(luò)流量的的流數(shù)據(jù)包中選擇和提取識別指標(biāo);初始化簇中心選擇才莫塊,用于根據(jù)識別指標(biāo),在所設(shè)定的多個簇數(shù)目下,選擇所捕獲網(wǎng)絡(luò)流量的初始化蔟中心;分簇模塊,用于在所設(shè)定的多個簇數(shù)目下,分別根據(jù)初始化簇中心,對所述的識別指標(biāo)進(jìn)行分簇操作,并根據(jù)分簇后的結(jié)果重新計算所捕獲網(wǎng)絡(luò)流量中的新的蔟中心點(diǎn);標(biāo)準(zhǔn)化互信息值計算模塊,用于在所設(shè)定的多個簇數(shù)目下,分別計算各個分簇操作結(jié)果的標(biāo)準(zhǔn)化互信息值,根據(jù)所述的標(biāo)準(zhǔn)化互信息值從所設(shè)定的多個簇數(shù)目中選擇一個作為最佳簇數(shù)目;結(jié)果輸出模塊,用于根據(jù)所得到的最佳簇數(shù)目,從所得到的結(jié)果中選擇該最佳簇數(shù)目下的分簇操作結(jié)果和新的簇中心點(diǎn)作為網(wǎng)絡(luò)流量分類模型。本發(fā)明又提供了一種網(wǎng)絡(luò)流量分類方法,包括步驟1)、采用所述的網(wǎng)絡(luò)流量分類模型的建立方法建立網(wǎng)絡(luò)流量分類模型;步驟2)、從當(dāng)前的網(wǎng)絡(luò)上截取網(wǎng)絡(luò)流量,從該網(wǎng)絡(luò)流量中提取各個TCP連接的前4個包的包長和方向;步驟3)、將流中所提取的數(shù)據(jù)包的包長與網(wǎng)絡(luò)流量分類模型中的簇中心進(jìn)行歐式距離的計算;步驟4)、根據(jù)計算結(jié)果判定數(shù)據(jù)包所在流所屬的應(yīng)用。上述技術(shù)方案中,所述的根據(jù)計算結(jié)果判定數(shù)據(jù)包所在流所屬的應(yīng)用包括將進(jìn)行距離計算的流暫時歸屬于與其距離最近的簇;然后判斷流與暫時歸屬的簇之間的距離是否在這個簇的半徑之內(nèi),如果在,則這個流是屬于這個簇的,即i/v為這個流是屬于這個簇所包含的協(xié)議的流;如果不在,則認(rèn)為這個流屬于未知流量。本發(fā)明具有以下優(yōu)點(diǎn)1、本發(fā)明在選擇初始化簇中心時,利用特定的概率對簇中心進(jìn)行選擇,從而得到分散比較均勻的簇中心,并且算法在每次聚合后得到的結(jié)果比較穩(wěn)定,不會因?yàn)榇刂行碾S機(jī)選擇而使得結(jié)果變化較大。2、本發(fā)明通過NMI值的計算來驗(yàn)證簇數(shù)目的選擇是否合適,并通過對最佳簇數(shù)目的選擇得到較好的聚類特征,較高的識別精度。3、本發(fā)明選擇TCP連接的前4個數(shù)據(jù)包的長度和方向作為識別指標(biāo),無需等待流結(jié)束才能得到識別指標(biāo);而且連接中的前幾個數(shù)據(jù)包正好處于連接的協(xié)商階段,在這個階段消息序列都是預(yù)定義好的,不同應(yīng)用之間是不同的,理論上比較適合用來區(qū)分不同的應(yīng)用。4、本發(fā)明挖掘協(xié)i義特征以實(shí)現(xiàn)對流的識別,不像端口特征那樣容易變化,也不像基于特征字符串分析的方法那樣需要保存大量數(shù)據(jù)包的Payload,因而是一種比較穩(wěn)定,快速的應(yīng)用層流量識別方法。以下,結(jié)合附圖來詳細(xì)說明本發(fā)明的實(shí)施例,其中圖1為BT、POCO、EDONKEY三種應(yīng)用根據(jù)統(tǒng)計信息得到的前4個數(shù)據(jù)包的長度和方向;圖2為一個實(shí)施例中不同簇數(shù)目下的NMI值;圖3為本發(fā)明的網(wǎng)絡(luò)流量分類模型的建立方法的流程圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明做進(jìn)一步的說明。在對網(wǎng)絡(luò)流量進(jìn)行分類的過程中,首先截取一段網(wǎng)絡(luò)流量,然后對這段網(wǎng)絡(luò)流量進(jìn)行分析,進(jìn)而將網(wǎng)絡(luò)流量中的流劃分給具體的應(yīng)用。其中的流是指一個包括通信雙發(fā)的源IP、目的IP、源端口、目的端口和協(xié)議的五元組。在這一過程中,流所屬的應(yīng)用的可能種類是已知的,關(guān)鍵在于如何對這些流進(jìn)行分類,并劃分到相應(yīng)的應(yīng)用中。在對流進(jìn)行分類的過程中,需要采用網(wǎng)絡(luò)流量分類模型,本發(fā)明所要解決的就是如何建立網(wǎng)絡(luò)流量分類模型。網(wǎng)絡(luò)流量分類模型的建立是在對現(xiàn)有的網(wǎng)絡(luò)流量進(jìn)行分析的基礎(chǔ)上得到的,下面參考圖3,以一個具體的實(shí)例進(jìn)行說明。步驟10、捕獲并保存應(yīng)用產(chǎn)生的網(wǎng)絡(luò)流量。對應(yīng)用產(chǎn)生的網(wǎng)絡(luò)流量的捕獲和保存屬于現(xiàn)有技術(shù),在本實(shí)施例中可以采用開放的網(wǎng)絡(luò)協(xié)議分析器Ethereal對網(wǎng)絡(luò)流量進(jìn)行捕獲。假設(shè)所捕獲的一段網(wǎng)絡(luò)流量是在2007年8月17日某時段,中國科學(xué)院計算技術(shù)研究所的出口鏈路所收集到的數(shù)據(jù)包信息。該段網(wǎng)絡(luò)流量的大小約為2.51GB,總共包含有27967034個數(shù)據(jù)包,TCP連接個數(shù)為82417個。在該段網(wǎng)絡(luò)流量中,包含的應(yīng)用的種類是已知的,假設(shè)包含BT、POCO、EDONKEY三種已知的應(yīng)用,并且每個流所屬的具體應(yīng)用是已知的。步驟20、在所捕獲的網(wǎng)絡(luò)流量的流數(shù)據(jù)包中選擇和提取識別指標(biāo)。在本實(shí)施例中,要選擇和提取的識別指標(biāo)為TCP連接中的前4個數(shù)據(jù)包的長度和方向。將數(shù)據(jù)包的長度和方向作為識別指標(biāo)是因?yàn)樵诓煌瑧?yīng)用中,數(shù)據(jù)包的長度和方向通常有各自的特點(diǎn)。例如,在圖1中,描述了所述的BT、POCO、EDONKEY三種應(yīng)用根據(jù)統(tǒng)計信息得到的前4個數(shù)據(jù)包的長度和方向。在4個圖中,橫軸代表數(shù)據(jù)包的長度,縱軸代表協(xié)議,橫軸上大小為正數(shù)的表示從服務(wù)器到客戶端,大小為負(fù)數(shù)的表示從客戶端到服務(wù)器。從圖中可以看出一些數(shù)據(jù)包具有精確的長度和方向,例如,BT的前4個數(shù)據(jù)包中均存在長度為68字節(jié)的情況,POCO的第一個數(shù)據(jù)包的長度在140-200字節(jié)范圍內(nèi),Edonkey的第一個數(shù)據(jù)包的大小在10-129字節(jié)范圍內(nèi),方向由服務(wù)器到客戶端的數(shù)據(jù)包。綜合上述情況可以看出,通過使用數(shù)據(jù)包的長度和方向可以很準(zhǔn)確地區(qū)分不同的應(yīng)用。步驟30、根據(jù)步驟20中所選擇和提取的識別指標(biāo),在所設(shè)定的多個簇數(shù)目下,分別選擇初始化簇中心。由于本發(fā)明在后續(xù)的步驟中通過K-means數(shù)據(jù)挖掘算法建立網(wǎng)絡(luò)流量分類模型,因此在本步驟中需要選擇簇中心,第一次選擇得到的簇中心就是所述的初始化簇中心。在選擇初始化簇中心的過程中可采用一種名稱為WeightingD"的算法,該算法是一種基于特定的概率來選擇初始化簇中心的方法。所述的選擇初始化簇中心具體包括簇數(shù)目的選擇,以及簇中心坐標(biāo)的選擇。為了在后續(xù)的操作中可以選擇一個最佳的簇數(shù)目,因此在本步驟中要在多個簇數(shù)目下依次進(jìn)行初始化簇中心的選擇。假設(shè)用K表示簇的數(shù)目,則在本實(shí)施例中將其大小設(shè)定在5到45之間,然后分別選取上述值,實(shí)現(xiàn)簇中心初始化的操作。步驟40、根據(jù)步驟30所得到的初始化簇中心,在所設(shè)定的多個簇數(shù)目下,對網(wǎng)絡(luò)流量中的所有TCP連接的識別指標(biāo)做分簇操作,并根據(jù)分簇后的結(jié)果計算新的簇中心點(diǎn)。在本步驟中,在進(jìn)行分簇操作時采用了K-means算法進(jìn)行特征聚合,挖掘協(xié)議的特征。步驟50、采用NMI值對簇數(shù)目進(jìn)行驗(yàn)證。在前文中已經(jīng)提到,簇數(shù)目K可能有多個可能的取值,但在網(wǎng)絡(luò)流量分類模型中,簇數(shù)目K只可能采用其中的一個,因此,要在K的多個取值中選擇最合適的一個,使得所劃分簇的質(zhì)量最好,對網(wǎng)絡(luò)流量進(jìn)行分類的效果最佳。在本步驟中采用了求NMI(NormalizedMutualInformation,標(biāo)準(zhǔn)化互信息)值的方式選才奪最合適的K值。最終所得到的最佳簇數(shù)目,以及在該簇數(shù)目下所得到的分簇結(jié)果就是本發(fā)明所要求得的網(wǎng)絡(luò)流量分類模型。以上是本發(fā)明的網(wǎng)絡(luò)流量分類模型的建立方法的基本操作步驟,下面對上述操作步驟中的某些操作步驟的具體實(shí)現(xiàn)過程進(jìn)行進(jìn)一步的說明。在前述的步驟20中,在選擇和提取識別指標(biāo)之前,需要有一定的前序操作,以保證所提取識別指標(biāo)的準(zhǔn)確性。整個選擇和提取過程可以包括以下步驟步驟21、在網(wǎng)絡(luò)流量的所有數(shù)據(jù)包中,去除那些不屬于TCP連接的數(shù)據(jù)包;步驟22、在剩余的數(shù)據(jù)包中,去除那些在應(yīng)用開始連接之前所生成的TCP連接;步驟23、在TCP連接中去除所有包含控制命令的數(shù)據(jù)包,如包含有SYN、Keep-Alive、Ack(不包含數(shù)據(jù))等控制命令的數(shù)據(jù)包。此類數(shù)據(jù)包不包含與應(yīng)用相關(guān)的數(shù)據(jù),因此在本步驟中也要去除。步驟24、從TCP連接建立的前4個數(shù)據(jù)包中提取數(shù)據(jù)包的長度和方向作為識別指標(biāo)。上述過程是本發(fā)明在實(shí)現(xiàn)識別指標(biāo)的選擇和提取時的一個較佳實(shí)施例,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)了解,對上述步驟的簡單替換與修改都應(yīng)當(dāng)在本發(fā)明的保護(hù)范圍內(nèi)。在前文中,對利用Weighting02算法對初始化簇中心的過程進(jìn)行了簡要的說明,為了方便理解,在此對步驟30中簇中心初始化的操作進(jìn)行具體說明步驟31、在一個數(shù)據(jù)集S中隨機(jī)選擇一個點(diǎn)作為簇中心c,;在本步驟中,所涉及的數(shù)據(jù)集S中的一個點(diǎn)表示了一個TCP連接中的識別指標(biāo),從前面的描述中已經(jīng)知道,一個TCP連接的識別指標(biāo)包括TCP連接中的前4個數(shù)據(jù)包的長度和方向,用數(shù)值表示長度,正負(fù)表示方向,因此,所述的數(shù)據(jù)集S中的一個點(diǎn)實(shí)際上就是如{100,68,-60,68}之類的四維向量。在對數(shù)據(jù)集S中的點(diǎn)的含義進(jìn)行說明后,很容易理解,所述的數(shù)據(jù)集S是一段網(wǎng)絡(luò)流量中的所有TCP連接的識別指標(biāo)的集合。步驟32、根據(jù)當(dāng)前的簇中心選擇下一個簇中心Ci;在選擇下一個簇中心的過程中,采用概率P計算下一個簇中心Ci。其中,D(3^表示一個點(diǎn)x到被選中的簇中心最短的距離;x表示數(shù)據(jù)集中任意的一個點(diǎn);x'表示數(shù)據(jù)集中任意的另外一個點(diǎn),該點(diǎn)將通過計算概率尸來決定是否成為下一個簇中心。從上述的概率計算公式可知,對于數(shù)據(jù)集中的任意點(diǎn),公式中的分母值是一定的,分子的值則會根據(jù)數(shù)據(jù)集中不同的點(diǎn)而有所不同。因此,在選擇下一個簇中心時,選擇數(shù)據(jù)集中計算得到的概率戶最大的點(diǎn)作為下一個簇中心。在計算Z)時,所述的被選中的簇中心為當(dāng)前的簇中心,當(dāng)前簇中心根據(jù)簇中心計算的次數(shù)而有所不同。例如,隨機(jī)選擇一個點(diǎn)作為第一個簇中心后,在選擇第二個簇中心時,當(dāng)前簇中心就是第一個簇中心;但在選擇第三個簇中心時,當(dāng)前簇中心為第一和第二個簇中心,依次類推。步驟33、重復(fù)執(zhí)行上一步,直到得到第K個簇中心。上述的步驟31-33是對初始化簇中心的實(shí)現(xiàn)過程的示例性說明,對上述步驟的簡單替換或刪改都應(yīng)當(dāng)在本發(fā)明的保護(hù)范圍內(nèi)。在前述的步驟40中介紹了可采用K-means算法進(jìn)行特征聚合,從而實(shí)現(xiàn)分簇操作,其具體實(shí)現(xiàn)步驟包括步驟41、根據(jù)初始化簇中心的值,將數(shù)據(jù)集S中的數(shù)據(jù)劃分給與其距離最近的簇中心所在的簇;步驟42、在各個分簇中更新簇中心;在本步驟中,更新簇中心的的操作包括重新計算每個簇中所有數(shù)據(jù)的平均值,然后用代表平均值的點(diǎn)作為新的簇中心點(diǎn)。步驟43、根據(jù)新得到的簇中心點(diǎn),重新對數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行所在簇的劃分,然后重新計算每個簇中所有數(shù)據(jù)的平均值,得到新的簇中心點(diǎn);重復(fù)這一過程,直到各個簇的中心點(diǎn)不再發(fā)生變化。在前一個步驟中已經(jīng)提到,在采用K-means算法進(jìn)行分簇操作時,簇的數(shù)目K具有多個值,在本實(shí)施例中,K的大小在5到45之間,因此,在本步驟中重新計算蔟的中心點(diǎn)時,需要對K的各種取值情況進(jìn)行新的簇中心點(diǎn)的計算。采用NMI值對簇數(shù)目進(jìn)行驗(yàn)證從而得到網(wǎng)絡(luò)流量分類模型的具體實(shí)現(xiàn)步驟如下步驟51、計算一個簇在某一個應(yīng)用的概率;假設(shè)用X表示應(yīng)用分布的一個變量,Y是表示簇分布的一個變量,用MI表示一個簇在一個應(yīng)用中的概率,則該概率的計算公式為M/(U)=log(l)其中,其中,Ay表示一條在y簇里面的連接屬于應(yīng)用!的概率;P,表示應(yīng)用/的概率,A表示簇乂的概率。其中的A、p,、^都是根據(jù)實(shí)際分簇后的結(jié)果實(shí)際計算而得到的。步驟52、計算數(shù)據(jù)集中的點(diǎn)屬于某一個應(yīng)用的概率以及數(shù)據(jù)集中的點(diǎn)屬于某一個簇的概率/7(T入F(X)=_^>,log(A)步驟53、計算NMI的值,通過所得到的NMI值可以得到一個點(diǎn)屬于某一個簇以及某一個應(yīng)用的概率。NMI值的計算公式如下上述步驟中計算得到的MI是一種衡量若干種信息之間共享量的概念,在本方法中通過對應(yīng)用和簇的分布概率計算得到,而熵(即T/fX」和/7(Tj)解決了對信息的量化度量問題。變量的不確定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。這就說明,如果一個簇能包含的應(yīng)用是單一的,那么就是變量的不確定性比較小,熵就小,那么NMI的值就大;反之,NMI的值就小。這樣就可以通過NMI的值來反映簇質(zhì)量的高低。因此,將不同簇數(shù)目時計算得到的NMI值之間進(jìn)行比較,可以知道當(dāng)K為何值時,分簇的效果最佳。在圖2中,對本實(shí)施例中K的各種取值情況下,所得到的NMI值的情況進(jìn)行了說明,從圖中可以看出,當(dāng)簇數(shù)目K在25時,所得到的NMI值最大。因此,當(dāng)K為25時,根據(jù)步驟40所得到的最終分簇結(jié)果就是本發(fā)明的網(wǎng)絡(luò)流量分類模型。利用上述說明所得到的網(wǎng)絡(luò)流量分類模型可實(shí)現(xiàn)對網(wǎng)絡(luò)流量中數(shù)據(jù)包所屬應(yīng)用的分類。例如,在一次網(wǎng)絡(luò)流量分類的過程中,將網(wǎng)絡(luò)中的雙方向(從客戶端到服務(wù)器端和從服務(wù)器端到客戶端)的流量作為輸入,從中提取五元組(協(xié)議、源IP地址、目的IP地址、源端口和目的端口)和數(shù)據(jù)包的大??;去除不需要的連接并存儲在雙方向上每個數(shù)據(jù)包的大小,從中提取TCP連接的前4個包的包長。然后將所提取的數(shù)據(jù)包的包長與網(wǎng)絡(luò)流量分類模型中的簇中心進(jìn)行歐式距離的計算,根據(jù)計算結(jié)果判定數(shù)據(jù)包所在的流所屬的應(yīng)用。其中的歐式距離的計算公式如下"f力必,(。)12,'=i.,=1其中,力表示乂簇內(nèi)的一個點(diǎn),c;表示y'簇的簇中心。在判斷流所屬的應(yīng)用時,將進(jìn)行距離計算的流暫時歸屬于與其距離最近的簇;然后判斷流與暫時歸屬的簇之間的距離是否在這個簇的半徑之內(nèi),如果在,則這個流是屬于這個簇的,即認(rèn)為這個流是屬于這個簇所包含的協(xié)議的流;如果不在,則認(rèn)為這個流屬于未知流量。對本實(shí)施例中所截取的網(wǎng)絡(luò)流量通過本發(fā)明的網(wǎng)絡(luò)流量分類模型進(jìn)行網(wǎng)絡(luò)流量分類后,可以得到表l中的下列結(jié)果協(xié)議比例BT17.7%POCO8.1%EDONKEY22.8%表1從上表中的內(nèi)容可以知道所截取的網(wǎng)絡(luò)流量中的數(shù)據(jù)包屬于協(xié)議BT、POCO和EDONKEY的比例。在表2中,對采用本發(fā)明的網(wǎng)絡(luò)流量分類模型對本實(shí)施例中所捕獲的網(wǎng)絡(luò)流量劃分到BT、POCO、EDONKEY三種已知應(yīng)用的正確率進(jìn)行了統(tǒng)計,從中可以看出,采用本發(fā)明的網(wǎng)絡(luò)流量分類模型具有很高的識別率以及較低的誤識別率和漏識別率。<table>tableseeoriginaldocumentpage16</column></row><table>表2本發(fā)明還提供了一種與所述方法相適應(yīng)的建立網(wǎng)絡(luò)流量分類模型的系統(tǒng),包括識別指標(biāo)提取模塊,用于從所捕獲的網(wǎng)絡(luò)流量的的流數(shù)據(jù)包中選擇和提取識別指標(biāo);初始化簇中心選擇模塊,用于根據(jù)識別指標(biāo),在所設(shè)定的多個簇數(shù)目下,選擇所捕獲網(wǎng)絡(luò)流量的初始化簇中心;分簇模塊,用于在所設(shè)定的多個簇數(shù)目下,分別根據(jù)初始化簇中心,對所述的識別指標(biāo)進(jìn)行分簇操作,并根據(jù)分簇后的結(jié)果重新計算所捕獲網(wǎng)絡(luò)流量中的新的簇中心點(diǎn);標(biāo)準(zhǔn)化互信息值計算模塊,用于在所設(shè)定的多個簇數(shù)目下,分別計算各個分簇操作結(jié)果的標(biāo)準(zhǔn)化互信息值,根據(jù)所述的標(biāo)準(zhǔn)化互信息值從所設(shè)定的多個簇數(shù)目中選擇一個作為最佳簇數(shù)目;結(jié)果輸出模塊,用于根據(jù)所得到的最佳簇數(shù)目,從所得到的結(jié)果中選擇該最佳簇數(shù)目下的分簇操作結(jié)果和新的簇中心點(diǎn)作為網(wǎng)絡(luò)流量分類模型。利用上述系統(tǒng)可實(shí)現(xiàn)對網(wǎng)絡(luò)流量分類模型的建立。最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。權(quán)利要求1.一種網(wǎng)絡(luò)流量分類模型的建立方法,包括步驟1)、從所捕獲的網(wǎng)絡(luò)流量的流數(shù)據(jù)包中選擇和提取識別指標(biāo);步驟2)、根據(jù)步驟1)所得到的識別指標(biāo),在所設(shè)定的多個簇數(shù)目下,選擇所捕獲網(wǎng)絡(luò)流量的初始化簇中心;步驟3)、在所設(shè)定的多個簇數(shù)目下,分別根據(jù)步驟2)所得到的初始化簇中心,對所述的識別指標(biāo)進(jìn)行分簇操作,并根據(jù)分簇后的結(jié)果重新計算所捕獲網(wǎng)絡(luò)流量中的新的簇中心點(diǎn);步驟4)、在所設(shè)定的多個簇數(shù)目下,分別計算步驟3)所得到的各個分簇操作結(jié)果的標(biāo)準(zhǔn)化互信息值,根據(jù)所述的標(biāo)準(zhǔn)化互信息值從所設(shè)定的多個簇數(shù)目中選擇一個作為最佳簇數(shù)目;步驟5)、根據(jù)步驟4)所得到的最佳簇數(shù)目,從步驟3)所得到的結(jié)果中選擇該最佳簇數(shù)目下的分簇操作結(jié)果和新的簇中心點(diǎn)作為網(wǎng)絡(luò)流量分類模型。2、根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)流量分類模型的建立方法,其特征在于,所述的識別指標(biāo)為所捕獲的網(wǎng)絡(luò)流量中的TCP連接中的前4個數(shù)據(jù)包的長度和方向,所捕獲網(wǎng)絡(luò)流量中的所有識別指標(biāo)形成數(shù)據(jù)集。3、根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)流量分類模型的建立方法,其特征在于,在所述的步驟l)中,所述的識別指標(biāo)的選擇和提取包括步驟1-1)、在所述網(wǎng)絡(luò)流量的流數(shù)據(jù)包中,去除不屬于TCP連接的數(shù)據(jù)包;步驟l-2)、在剩余的數(shù)據(jù)包中,去除那些在應(yīng)用開始連接之前所生成的TCP連接;步驟1-3)、在TCP連接中去除所有包含控制命令的數(shù)據(jù)包;步驟i_4)、從TCP連接建立的前4個數(shù)據(jù)包中提取數(shù)據(jù)包的長度和方向作為識別指標(biāo)。4、根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)流量分類模型的建立方法,其特征在于,所述的步驟2)包括步驟2-1)、從所述數(shù)據(jù)集中隨機(jī)選擇一個點(diǎn)作為簇中心;步驟2-2)、計算所述數(shù)據(jù)集中與當(dāng)前簇中心離散性最強(qiáng)的點(diǎn),將該點(diǎn)作為下一個簇中心;步驟2-3)、重復(fù)上述的步驟2-2),直至所得到的簇中心的數(shù)目與所設(shè)定的簇數(shù)目相同。5、根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)流量分類模型的建立方法,其特征在于,所述數(shù)據(jù)集為所捕獲網(wǎng)絡(luò)流量中的所有TCP連接的識別指標(biāo)的集合;所述數(shù)據(jù)集中的點(diǎn)為一個TCP連接中的識別指標(biāo)。6、根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)流量分類模型的建立方法,其特征在于,在所述的步驟2-2)中,計算所述數(shù)據(jù)集中與當(dāng)前簇中心離散性最強(qiáng)的點(diǎn)通過在數(shù)據(jù)集中選擇概率P最大的點(diǎn)得到,所述概率P的計算公式如下<formula>formulaseeoriginaldocumentpage3</formula>其中,D(x)表示一個點(diǎn)x到當(dāng)前簇中心最短的距離;x表示數(shù)據(jù)集中任意的一個點(diǎn);x,表示數(shù)據(jù)集中任意的另外一個點(diǎn),該點(diǎn)x,將通過計算概率P來決定是否成為下一個簇中心。7、根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)流量分類模型的建立方法,其特征在于,在所述的步驟2-2)中,所述的當(dāng)前簇中心為所有已選擇的簇中心。8、根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)流量分類模型的建立方法,其特征在于,在所述的步驟3)中,所述分簇操作包括步驟3-l)、根據(jù)所述的初始化簇中心的值,將數(shù)據(jù)集中的數(shù)據(jù)劃分給與其距離最近的簇中心所在的簇;步驟3-2)、在各個簇中更新簇中心;步驟3-3)、根據(jù)更新后的簇中心重新對數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行所在蔟的劃分,然后在各個新劃分的簇中更新簇中心;重復(fù)這一過程,直到各個蔟的中心點(diǎn)不再發(fā)生變化。9、根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)流量分類模型的建立方法,其特征在于,在所述的步驟4)中,所述的標(biāo)準(zhǔn)化互信息值的計算包括步驟4-l)、計算一個簇在一個應(yīng)用中的概率;步驟4-2)、計算所述數(shù)據(jù)集中點(diǎn)在一個應(yīng)用中的概率,以及所述數(shù)據(jù)集中的點(diǎn)在一個簇中的概率;步驟4-3)、根據(jù)步驟4-l)和步驟4-2)的計算結(jié)果,計算標(biāo)準(zhǔn)化互信息的值,從而得到數(shù)據(jù)集中的點(diǎn)同時屬于一個簇及一個應(yīng)用的概率。10、根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)流量分類模型的建立方法,其特征在于,所述的根據(jù)所述的標(biāo)準(zhǔn)化互信息值從所設(shè)定的多個簇數(shù)目中選擇一個作為最佳簇數(shù)目包括選擇標(biāo)準(zhǔn)化互信息值最大的簇數(shù)目作為最佳簇數(shù)目。11、一種建立網(wǎng)絡(luò)流量分類模型的系統(tǒng),包括識別指標(biāo)提取模塊,用于從所捕獲的網(wǎng)絡(luò)流量的流數(shù)據(jù)包中選擇和提取識別指標(biāo);初始化簇中心選擇模塊,用于根據(jù)識別指標(biāo),在所設(shè)定的多個簇數(shù)目下,選擇所捕獲網(wǎng)絡(luò)流量的初始化簇中心;分簇模塊,用于在所設(shè)定的多個簇數(shù)目下,分別根據(jù)初始化簇中心,對所述的識別指標(biāo)進(jìn)行分簇操作,并根據(jù)分簇后的結(jié)果重新計算所捕獲網(wǎng)絡(luò)流量中的新的簇中心點(diǎn);標(biāo)準(zhǔn)化互信息值計算模塊,用于在所設(shè)定的多個簇數(shù)目下,分別計算各個分簇操作結(jié)果的標(biāo)準(zhǔn)化互信息值,根據(jù)所述的標(biāo)準(zhǔn)化互信息值從所設(shè)定的多個簇數(shù)目中選擇一個作為最佳簇數(shù)目;結(jié)果輸出模塊,用于根據(jù)所得到的最佳簇數(shù)目,從所得到的結(jié)果中選擇該最佳簇數(shù)目下的分簇操作結(jié)果和新的簇中心點(diǎn)作為網(wǎng)絡(luò)流量分類模型。12、一種網(wǎng)絡(luò)流量分類方法,包括步驟1)、采用權(quán)利要求1-10之一所述的網(wǎng)絡(luò)流量分類模型的建立方法建立網(wǎng)絡(luò)流量分類模型;步驟2)、從當(dāng)前的網(wǎng)絡(luò)上截取網(wǎng)絡(luò)流量,從該網(wǎng)絡(luò)流量中提取各個TCP連"l妄的前4個包的包長和方向;步驟3)、將流中所提取的數(shù)據(jù)包的包長與網(wǎng)絡(luò)流量分類模型中的簇中心進(jìn)行歐式距離的計算;步驟4)、根據(jù)計算結(jié)果判定數(shù)據(jù)包所在流所屬的應(yīng)用。13、根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)流量分類方法,其特征在于,所述的根據(jù)計算結(jié)果I,j定數(shù)據(jù)包所在流所屬的應(yīng)用包括將進(jìn)行距離計算的流暫時歸屬于與其距離最近的簇;然后判斷流與暫時歸屬的簇之間的距離是否在這個簇的半徑之內(nèi),如果在,則這個流是屬于這個簇的,即認(rèn)為這個流是屬于這個簇所包含的協(xié)議的流;如果不在,則認(rèn)為這個流屬于未知流量。全文摘要本發(fā)明提供一種網(wǎng)絡(luò)流量分類模型的建立方法,包括從所捕獲的網(wǎng)絡(luò)流量的流數(shù)據(jù)包中選擇和提取識別指標(biāo);根據(jù)識別指標(biāo),在所設(shè)定的多個簇數(shù)目下,選擇初始化簇中心;在所設(shè)定的多個簇數(shù)目下,分別根據(jù)初始化簇中心,對識別指標(biāo)進(jìn)行分簇操作,并重新計算新的簇中心點(diǎn);在所設(shè)定的多個簇數(shù)目下,分別計算各個分簇操作結(jié)果的標(biāo)準(zhǔn)化互信息值,根據(jù)標(biāo)準(zhǔn)化互信息值從所設(shè)定的多個簇數(shù)目中選擇一個作為最佳簇數(shù)目;根據(jù)所得到的最佳簇數(shù)目,選擇最佳簇數(shù)目下的分簇操作結(jié)果和新的簇中心點(diǎn)作為網(wǎng)絡(luò)流量分類模型。本發(fā)明通過NMI值的計算來驗(yàn)證簇數(shù)目的選擇是否合適,并通過對最佳簇數(shù)目的選擇得到較好的聚類特征,較高的識別精度。文檔編號H04L12/56GK101252541SQ20081010362公開日2008年8月27日申請日期2008年4月9日優(yōu)先權(quán)日2008年4月9日發(fā)明者張大方,楊建華,欣蘇,謝高崗申請人:中國科學(xué)院計算技術(shù)研究所