本發(fā)明屬于網(wǎng)絡(luò)測量分析領(lǐng)域,具體涉及一種基于支持向量機的專用網(wǎng)絡(luò)流分類方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)帶寬的迅速增加,網(wǎng)絡(luò)中的各種應(yīng)用飛速增加,每天都有新的應(yīng)用類別加入網(wǎng)絡(luò)中來,對網(wǎng)絡(luò)管理,網(wǎng)絡(luò)分析的需求越來越高。網(wǎng)絡(luò)流量分類和識別技術(shù)作為網(wǎng)絡(luò)行為分析的基礎(chǔ),不僅在網(wǎng)絡(luò)管理、分析方面,而且在網(wǎng)絡(luò)安全,網(wǎng)絡(luò)服務(wù)質(zhì)量測評等方面,都有越來越廣泛的應(yīng)用。
網(wǎng)絡(luò)流量識別分類涉及到業(yè)務(wù)行為的方方面面,每種網(wǎng)絡(luò)流量都有各自的行為特征,隨著性的網(wǎng)絡(luò)應(yīng)用及新的網(wǎng)絡(luò)應(yīng)用層協(xié)議的不斷涌現(xiàn),網(wǎng)絡(luò)流量的復(fù)雜性也不斷加強,其多變、動態(tài)、異質(zhì)的特性也變的更為明顯。目前在流量分類領(lǐng)域的研究十分活躍,目前的網(wǎng)絡(luò)流量分類主要分為以下幾類:
(1)基于端口映射的流量分類方法。主要通過早期iana和后期icann給應(yīng)用程序固定分配的固定端口來識別各種網(wǎng)絡(luò)應(yīng)用的類型,這種方式在互聯(lián)網(wǎng)出現(xiàn)的早期可以識別網(wǎng)絡(luò)上的大多數(shù)應(yīng)用,但隨著新的網(wǎng)絡(luò)應(yīng)用類型的出現(xiàn),某些應(yīng)用使用動態(tài)端口,或是非熟知端口,例如越來越多的p2p應(yīng)用和某些非法程序為了繞過防火墻和網(wǎng)絡(luò)管理程序的監(jiān)管,而使用了某些熟知端口。這些都導(dǎo)致基于端口映射的流量分類方法對網(wǎng)絡(luò)識別的能力越來越弱。
(2)基于有效負載的流量分類方法。通過對流量有效負荷的分析,形成對于有效負荷的特征,加入特征庫,在分析過程中通過提取流的應(yīng)用層內(nèi)容特征,進行比對,從而有效的對流量進行分類,這種分類方式的分類準確性比較高,但是只能分析處理已知的非加密的流量,還可能帶來安全問題。
(3)基于行為特征的流量分類方法。這種方法分析主機在傳輸層的行為特征,如tcp和udp使用順序,ip地址數(shù)目,速率變化等,從而區(qū)分不同的流量類型。但是這種方法對于一些特定應(yīng)用類型,如p2p,用戶自定義協(xié)議等無法處理。
多數(shù)的研究工作都是針對internet開展的,目標是更好的監(jiān)控和管理互聯(lián)網(wǎng),使其健康的工作,而互聯(lián)網(wǎng)上的流量類型多種多樣,其中基于tcp協(xié)議的流量占用了絕大比例,因此可以根據(jù)tcp協(xié)議的工作流程,提取其特征,通過基于行為特征的方法進行流量分類。但對于某些專用網(wǎng)絡(luò)中,例如傳感器網(wǎng)絡(luò),軍用網(wǎng)絡(luò),應(yīng)急救災(zāi)網(wǎng)等專用網(wǎng)絡(luò)中,由于通信信道帶寬,可靠性和業(yè)務(wù)特性等原因?qū)е戮W(wǎng)絡(luò)中的流量大多基于udp協(xié)議,而且上層承載的應(yīng)用層協(xié)議也大多為專用協(xié)議,多數(shù)無公開標準,同時由于網(wǎng)絡(luò)中的用戶相互獨立,相互間缺乏統(tǒng)一的協(xié)調(diào)和規(guī)劃,導(dǎo)致協(xié)議缺乏排他性,即應(yīng)用層標識字段,端口號等都可能出現(xiàn)不同協(xié)議重用的情況,同時這些網(wǎng)絡(luò)的專用性導(dǎo)致其傳輸內(nèi)容具有一定的保密需求,通常都會采用某些加密算法對傳輸內(nèi)容加以保護。上述這些特性都導(dǎo)致前三種分類方法無法在這些網(wǎng)絡(luò)中使用。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于支持向量機的專用網(wǎng)絡(luò)流分類方法,將機器學習中的支持向量機分類方法應(yīng)用于以udp業(yè)務(wù)為主的專用網(wǎng)絡(luò)中,并簡化了支持向量機由二分類向多分類的擴展問題。
實現(xiàn)本發(fā)明目的的技術(shù)方案為:一種基于支持向量機的專用網(wǎng)絡(luò)流分類方法,包括以下步驟:
步驟1,從網(wǎng)絡(luò)中抓取獨立的網(wǎng)絡(luò)分組,并把網(wǎng)絡(luò)分組按照特征區(qū)分為一個個獨立的流;
步驟2,對各個流進行特征提取,采用向量形式對每個流進行描述;
步驟3,將每類流進行分類后,生成樣本集合,然后基于樣本集合執(zhí)行支持向量機算法,對樣本進行分類,采用徑向基核函數(shù)將向量映射到高維實現(xiàn)支持向量機對樣本的二分類,使用1對n的擴展方法從二分類向多分類擴展。
與現(xiàn)有技術(shù)相比,本發(fā)明的顯著優(yōu)點為:
本發(fā)明涉及一種適用于傳輸層協(xié)議以udp協(xié)議為主的專用網(wǎng)絡(luò)流量分類方法,分類算法實現(xiàn)簡單,提高了支持向量機由二分類向多分類擴展效率,降低了支持向量維數(shù)。
附圖說明
圖1是本發(fā)明一對n多分類方法擴展示意圖。
圖2是分類算法的執(zhí)行流程圖。
具體實施方式
一種基于支持向量機的專用網(wǎng)絡(luò)流分類方法,包括以下步驟:
步驟1,從網(wǎng)絡(luò)中抓取獨立的網(wǎng)絡(luò)分組,并將網(wǎng)絡(luò)分組按照特征區(qū)分為一個個獨立的流;
步驟2,對各個流進行特征提取,采用向量形式對每個流進行描述;
步驟3,將每類流進行分類后,生成樣本集合,然后基于樣本集合執(zhí)行支持向量機算法,對樣本進行分類,采用徑向基核函數(shù)將向量映射到高維從而實現(xiàn)支持向量機對樣本的二分類,使用1對n的擴展方法從二分類向多分類擴展。
進一步的,步驟1中采用在連續(xù)時間段內(nèi)出現(xiàn)的五元組相同的分組確認為同一個流的方法,如果相鄰兩個五元組出現(xiàn)的間隔與該流中的其他分組差距大于閾值,則認為上一個流結(jié)束;其中,五元組是指<源地址、目的地址、源端口、目的端口、協(xié)議類型>。
進一步的,步驟2中選取每個分組中應(yīng)用層凈荷數(shù)據(jù)中的前n個字節(jié)作為特征統(tǒng)計對象,選取每個字節(jié)取值的均值、方差、最大值、最小值。
進一步的,1對n的擴展方法具體為:如果有m個分類,分別針對每個類建立樣本集,在任意一個類別與其它n個類別之間建立最優(yōu)超平面,n個類別為從剩余m-1個隨機選取,其中n<(k-1)/2,k為網(wǎng)絡(luò)中總的分類數(shù),然后再按照一對多的方法進行分類判別。
下面結(jié)合附圖對本發(fā)明作進一步說明。
在對網(wǎng)絡(luò)中的流量進行分類之前需要從網(wǎng)絡(luò)中抓取獨立的網(wǎng)絡(luò)分組,并把這些網(wǎng)絡(luò)分組按照一定的特征區(qū)分為一個個獨立的流,在傳統(tǒng)的互聯(lián)網(wǎng)中因為流量的傳輸層協(xié)議多為tcp協(xié)議,流量判別一般是根據(jù)tcp鏈接的建立和拆除過程來界定一個流量的邊界,根據(jù)<源地址、目的地址、源端口、目的端口、協(xié)議類型>五元組來判斷邊界內(nèi)的分組是否屬于同一個流。而對于傳輸層協(xié)議為udp的網(wǎng)絡(luò)流量,由于沒有嚴格的建鏈和拆鏈過程,因此通常無法通過分組類型界定一個流量的邊界,但是大多數(shù)的流量都是有持續(xù)時間的,因此對于這類專用網(wǎng)絡(luò)的流量歸類可以采用在連續(xù)時間段內(nèi)出現(xiàn)的五元組相同的分組確認為同一個流的方法,如果相鄰兩個五元組出現(xiàn)的間隔與該流中的其他分組差距過大,則認為上一個流結(jié)束。
當完成了流分離工作后,需要對各個流進行特征提取,用向量形式對每個流進行描述,關(guān)于樣本的維數(shù)確定,在支持向量機方法中,樣本的維數(shù)越多意味著計算量越大,在某些情況下,樣本的維數(shù)越多,分類結(jié)果越準確,但是維數(shù)過多,許多特征是無用特征,增加了計算的復(fù)雜度,對分類判別沒有幫助,在傳統(tǒng)方法中通常通過主成分分析等方法去降低特征的維數(shù),但需要大量的樣本數(shù)據(jù)進行處理和分析。andrewmoore在2004年提出了網(wǎng)絡(luò)流量的248項流量特征,這些流量特征可以描述網(wǎng)絡(luò)中各種流量的特性,但其中的多個特征都是針對傳統(tǒng)internet業(yè)務(wù),尤其是針對傳輸層協(xié)議是tcp協(xié)議的流量類型,而在一些非傳統(tǒng)網(wǎng)絡(luò),例如特定專用網(wǎng)絡(luò),網(wǎng)絡(luò)內(nèi)的業(yè)務(wù)都是基于udp協(xié)議的,缺乏建鏈過程,或是采用應(yīng)用層協(xié)議進行建鏈,因此采用新的特征建立方法,下面描述針對傳輸層協(xié)議為udp的突發(fā)類應(yīng)用的特征選定方法:
選取每個分組中應(yīng)用層凈荷數(shù)據(jù)中的前n個字節(jié)作為特征統(tǒng)計對象,每個對象有255個可能取值,選取每個字節(jié)取值的均值、方差、最大值、最小值這些統(tǒng)計特性。這樣就產(chǎn)生了4n個特征值,支持向量的維數(shù)就為4n維。其中有些維數(shù)是關(guān)鍵維,與判別密切相關(guān),但是也有某些特征對類的判別影響不大,在具體使用過程中可以通過主成分分析法進行降維處理。
將每類流進行人工分類后,生成樣本集合,樣本集合中每類流的數(shù)目不少于m個,如果總的類別數(shù)為k個,則總的類別數(shù)為mk個,然后基于樣本集合執(zhí)行支持向量機算法,對樣本進行分類,采用徑向基核函數(shù)將向量映射到高維從而實現(xiàn)支持向量機對樣本的二分類,而網(wǎng)絡(luò)中的流量遠遠不只兩類,因此需要實現(xiàn)將二分類向多分類的擴展,目前常用的支持向量機多分類實現(xiàn)方法主要有一對一和一對多兩種。
一對多方法是在任意一個單一類與其它類別的流之間進行二分類,選取分類值最大的類作為該類的歸屬類的方法,該種分類方法每個流的判定需要進行m次二分類判定,其中m為網(wǎng)絡(luò)中總得流類別數(shù),該方法會產(chǎn)生一些模糊區(qū)域,并且分類計算過程中出現(xiàn)樣本類別不均衡問題,導(dǎo)致這種方法不適合用于互聯(lián)網(wǎng)流量判別。
一對一方法是再任意兩個類之間建立起二分類關(guān)系,選取分類值最大的類作為該類的歸屬類的方法,該種分類方法每個流的判定需要進行m*(m-1)次二分類判定,其中m為網(wǎng)絡(luò)中總得流分類數(shù),該方法改進一對多方法的問題,目前的支持向量機流量判別多采用這種方法,但是該方法在分類數(shù)較多的情況下,計算量大,判別函數(shù)的計算量大。
本發(fā)明中提出了一種一對n的多分類擴展方法:
基本思路:如果有m個分類,分別針對每個類建立樣本集,在任意一個類別與其它n個類別之間建立最優(yōu)超平面,n個類別為從剩余m-1個隨機選取,其中n<(k-1)/2,然后再按照一對多的方法進行分類判別。這樣不僅避免了一對多方法的樣本類別不均衡問題,而且減小了一對一方法的計算量大的問題。
完成分類工作后將已分類數(shù)據(jù)抽取部分更新樣本庫數(shù)據(jù)或者擴展樣本庫,以便于在一定時間后更新判別函數(shù)。
如圖1、圖2所示,以網(wǎng)絡(luò)中共有4個分類流量情況下的多分類執(zhí)行過程。如圖所示,為了避免每次從流量1開始判定,導(dǎo)致流量4的計算次數(shù)最大,從而出現(xiàn)不公平問題,計算入口采用輪轉(zhuǎn)方式,即第一個流的入口從(1,n)判別開始,下一個流的判別從(2,n)判別開始,依次類推,保證各種類型的流的判別計算在統(tǒng)計上公平。
本發(fā)明是一種適用于傳輸層協(xié)議以udp協(xié)議為主的專用網(wǎng)絡(luò)流量分類方法。該方法基于支持向量機機器學習算法,在將支持向量機的二分類算法擴展到多分類時采用1到n的擴展方法,來提高分類的準確率,同時降低算法的計算量,同時采用了一種基于應(yīng)用層數(shù)據(jù)的新的特征定義方法,通過對應(yīng)用層數(shù)據(jù)中的前n個字節(jié)進行統(tǒng)計分析,形成每個流的特征,該方法避免了對原有特征中對建鏈過程的依賴,使之更好的服務(wù)于無連接協(xié)議的網(wǎng)絡(luò)流量分析。本發(fā)明解決了專用網(wǎng)絡(luò)中以無連接協(xié)議為主,目前流量分類算法適應(yīng)性不高,同時多分類擴展計算量大,準確性不高的問題,具有很好的推廣應(yīng)用前景。
下面結(jié)合實施例來詳細說明本發(fā)明。
實施例
一種基于支持向量機的專用網(wǎng)絡(luò)流分類方法,包括以下步驟:
第一、提取網(wǎng)絡(luò)中的已知類型數(shù)據(jù)流,計算流量特征,建立樣本庫,每種類型流樣本的個數(shù)都為m個。
第二、在樣本庫的基礎(chǔ)上運行svm(支持向量機)學習方法,產(chǎn)生1對n的分類函數(shù)庫,如何在二維平面無法分類的情況,需要采用核函數(shù)將各個流向量映射到高維進行分類,在本發(fā)明中推薦采用徑向基核,即rbf核,該核函數(shù)對低維、高維、小樣本、大樣本等情況都適用,是目前比較優(yōu)秀的分類依據(jù)函數(shù)。
第三、采集一定數(shù)量的新類型數(shù)據(jù)集合an。
第四、對數(shù)據(jù)集合中的數(shù)據(jù),先按照元組(源地址、目的地址、源端口號、目的端口號、協(xié)議類型)歸類,然后將多個分組界定為不同的流。
第五、對流類型先根據(jù)可判別標準進行分類??膳袆e標準是系統(tǒng)對應(yīng)用事先約定的,如限定了特定的端口號為專用,禁止其它流量使用,此時就可以根據(jù)該端口號判定某個流量的類型。
第六、對于第五步無法分類的流量,對每種流量建立流量特征,形成特征向量。
第七、按照圖1所示方法,將待分類流量特征向量帶入不同的分類函數(shù)中執(zhí)行,最終得到該流量的分類類別。
第八、對完成分類的流進行抽樣處理,選取部分流對樣本集中的流進行替換,或者為了提高分類函數(shù)的精度,增加樣本集的大小,通過后續(xù)分類的流對特征庫進行擴展。
第九、回到第三步繼續(xù)執(zhí)行后續(xù)流量的判定。