陳勇+徐釗+蔡陽(yáng)波+許云龍
摘 要:針對(duì)網(wǎng)絡(luò)流量識(shí)別問(wèn)題,提出一種基于支持向量機(jī)(SVM)的網(wǎng)絡(luò)流量識(shí)別模型。首先通過(guò)流量特征提取模塊,提取適合在支持向量機(jī)中識(shí)別網(wǎng)絡(luò)流量的6個(gè)主要特征。對(duì)數(shù)據(jù)進(jìn)行清洗、預(yù)處理以及訓(xùn)練和學(xué)習(xí),從而實(shí)現(xiàn)整個(gè)基于SVM的網(wǎng)絡(luò)流量識(shí)別系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,經(jīng)過(guò)交叉檢驗(yàn)選擇參數(shù)后,再用支持向量機(jī)模型進(jìn)行訓(xùn)練和學(xué)習(xí),可以取得較好的分類效果。
關(guān)鍵詞:網(wǎng)絡(luò)流量;支持向量機(jī);流量識(shí)別
DOIDOI:10.11907/rjdk.162818
中圖分類號(hào):TP393
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2017)007-0162-03
0 引言
網(wǎng)絡(luò)流量識(shí)別一直以來(lái)都是業(yè)界研究的重點(diǎn)[1]。目前,網(wǎng)絡(luò)流量分類和識(shí)別主要分為4種類型:基于端口識(shí)別、基于應(yīng)用協(xié)議特征字識(shí)別、行為特征的啟發(fā)式識(shí)別、基于機(jī)器學(xué)習(xí)方法的分類和識(shí)別[2-3]。隨著端口跳變、信息隱藏等技術(shù)的廣泛采用,基于特征端口的識(shí)別方法已經(jīng)不再適用于網(wǎng)絡(luò)流量的識(shí)別與檢測(cè)[4];基于應(yīng)用協(xié)議特征字的識(shí)別雖然準(zhǔn)確率比較高,但由于需要獲取分組的應(yīng)用層負(fù)載,對(duì)處理效率的影響較為嚴(yán)重,并且涉及到隱私保護(hù)等法律問(wèn)題,故不被廣泛采用[5];基于行為特征的啟發(fā)式識(shí)別是綜合利用流的屬性、統(tǒng)計(jì)特性以及流的行為特征,按照啟發(fā)式負(fù)責(zé)對(duì)流量進(jìn)行分析,達(dá)到對(duì)網(wǎng)絡(luò)流量分類和識(shí)別的目的,但其分類和識(shí)別結(jié)果不確定,而是基于概率的結(jié)果,因此識(shí)別方法的精度取決于網(wǎng)絡(luò)流量應(yīng)用特征的顯著程度和啟發(fā)式規(guī)則對(duì)這種特征的覆蓋能力[6]。近年來(lái),基于機(jī)器學(xué)習(xí)的網(wǎng)絡(luò)流量識(shí)別方法表現(xiàn)出了較高的準(zhǔn)確率,因此得到越來(lái)越多研究者的青睞[7-8]。
本文所討論的網(wǎng)絡(luò)流量識(shí)別問(wèn)題,其本質(zhì)上就是一個(gè)二分類問(wèn)題,考慮到SVM在解決二分類問(wèn)題中的卓越性能,以及其具有的學(xué)習(xí)能力,故采用它來(lái)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中正常流量和異常流量的初步識(shí)別。
基于以上觀點(diǎn),本文提出一種基于SVM的網(wǎng)絡(luò)流量二分類識(shí)別方法,與只采用特征值匹配的識(shí)別網(wǎng)絡(luò)流量方法相比,大大減少了特征值匹配模塊的工作量,提高了網(wǎng)絡(luò)流量識(shí)別系統(tǒng)效率。
1 基于SVM的流量識(shí)別系統(tǒng)
本文首先通過(guò)流量特征提取模塊,提取適合在支持向量機(jī)中識(shí)別的網(wǎng)絡(luò)流量的6個(gè)主要特征。接著,對(duì)數(shù)據(jù)進(jìn)行清洗和預(yù)處理,通過(guò)對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練和學(xué)習(xí),從而實(shí)現(xiàn)整個(gè)基于SVM的網(wǎng)絡(luò)流量識(shí)別系統(tǒng)。
1.1 流量特征提取模塊C和Υ
本模塊采用了開(kāi)源軟件Winpcap進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的捕獲分析,選取數(shù)據(jù)包在特定時(shí)間(W秒)間隔內(nèi)本機(jī)連接出去的IP數(shù)、端口數(shù)、包長(zhǎng)、包數(shù)、上行速度和下行速度6大特征信息。
1.2 基于SVM的P2P流量識(shí)別模塊
本模塊主要對(duì)圖1中提取出的流量統(tǒng)計(jì)特征信息進(jìn)行整理,剔除冗余數(shù)據(jù),并將其轉(zhuǎn)換為特征向量形式,采用支持向量機(jī)的方法將其交給SVM進(jìn)行訓(xùn)練,訓(xùn)練后得到一組支持向量,即今后的預(yù)測(cè)模型。將預(yù)測(cè)模型與預(yù)處理過(guò)的待預(yù)測(cè)特征向量共同代入SVM的決策函數(shù)中,從而判別出該網(wǎng)絡(luò)流量是否為P2P流。
1.2.1 預(yù)處理
對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,即對(duì)數(shù)據(jù)進(jìn)行縮放的目的在于:
① 避免部分特征值范圍過(guò)大而另一部分特征值范圍過(guò)?。?/p>
② 避免訓(xùn)練時(shí)為了計(jì)算核函數(shù)而計(jì)算內(nèi)積時(shí)引起數(shù)值計(jì)算困難。
因此通常將數(shù)據(jù)縮放到[-1,1]或者是[0,l]之間,本文采用默認(rèn)縮放范圍[-1,1]。
1.2.2 尋找最優(yōu)參數(shù)C、Υ
數(shù)據(jù)預(yù)處理后,便可以利用網(wǎng)格搜索法來(lái)交叉驗(yàn)證尋找核函數(shù)RBF對(duì)于訓(xùn)練數(shù)據(jù)集的最優(yōu)參數(shù)C和Υ[9]。為了識(shí)別出好的(C,Υ),以便分類器能準(zhǔn)確地預(yù)測(cè)未知數(shù)據(jù)。
1.2.3 模型訓(xùn)練
最優(yōu)參數(shù)(C,Υ)確定后就可開(kāi)始對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)練以獲取支持向量機(jī)模型[10]。同樣地,LIBSVM提供了一個(gè)訓(xùn)練函數(shù)svm-train.c。其主要功能是讀取訓(xùn)練文件,調(diào)用模型訓(xùn)練函數(shù)svm_train訓(xùn)練模型,并調(diào)用svm_save_model保存模型到文件。程序基本流程圖如圖3所示。
2 實(shí)驗(yàn)分析
本文在VC++6.0環(huán)境下開(kāi)發(fā)了基于SVM的P2P流量識(shí)別系統(tǒng),并對(duì)該系統(tǒng)進(jìn)行測(cè)試,驗(yàn)證其效率和準(zhǔn)確性。
2.1 實(shí)驗(yàn)過(guò)程
2.1.1 數(shù)據(jù)捕獲
選擇用于檢測(cè)流量的網(wǎng)卡設(shè)備作為監(jiān)控對(duì)象,然后使用混雜模式打開(kāi)該網(wǎng)卡,以便獲取所有數(shù)據(jù)。同時(shí),設(shè)置過(guò)濾器,使WinPcap僅捕獲TCP包和UDP包。最后,利用WinPcap開(kāi)發(fā)包提供的非回調(diào)方法捕獲數(shù)據(jù)包,然后利用while循環(huán)實(shí)現(xiàn)不斷偵聽(tīng)網(wǎng)卡所檢測(cè)到的網(wǎng)絡(luò)流量,同時(shí)對(duì)被監(jiān)控的網(wǎng)絡(luò)節(jié)點(diǎn)的流量情況進(jìn)行統(tǒng)計(jì)。
如此,隨著while循環(huán)不斷執(zhí)行,數(shù)據(jù)包被不斷捕獲,直到W秒時(shí)間到,統(tǒng)計(jì)得到的6個(gè)流量特征值就是一組訓(xùn)練樣本值,為了后續(xù)數(shù)據(jù)處理更為方便,程序在最后將其以LIBSVM的訓(xùn)練數(shù)據(jù)格式存儲(chǔ)到一個(gè)文本文件中。隨后,本文應(yīng)用SVM支持向量機(jī)對(duì)上述數(shù)據(jù)進(jìn)行預(yù)處理、訓(xùn)練以及預(yù)測(cè)操作。
2.1.2 預(yù)處理
其縮放規(guī)則被保存以備使用,如表1所示。
表1中,-1與1即為設(shè)定的lower和upper值。第一列為6個(gè)特征標(biāo)號(hào),其后的值分別為其對(duì)應(yīng)的轉(zhuǎn)換前上下限特征值。
2.1.3 尋找最優(yōu)參數(shù)(C,Υ)
利用網(wǎng)格搜索法搜索后得到最優(yōu)的(C,Υ)對(duì)和交叉驗(yàn)證的精度如表2所示。
2.1.4 模型訓(xùn)練
本次訓(xùn)練共迭代了49次,nu為參數(shù)v的值,即v=0.060 784,obj為SVM轉(zhuǎn)化為二次規(guī)劃求解得到的最小值,其值為-46.145 696,而rho=0.412 394為判決函數(shù)常數(shù)項(xiàng)b的值。nSV為支持向量數(shù)40,nBSV為邊界上的支持向量數(shù)34,Total nSV即為總支持向量數(shù)40。endprint
訓(xùn)練得到的模型保存到data.model文件中,由該文件可以得到以下信息,訓(xùn)練采用的SVM類型是C_SVC,核函數(shù)為徑向基函數(shù)RBF,Υ值為0.5,nr_class表示此次為二分類,總支持向量數(shù)為40,判決函數(shù)常數(shù)項(xiàng)b的值為0.412394,二分類的標(biāo)記為-1與1,且每種類型的支持向量數(shù)分別為20、20。
2.2 數(shù)據(jù)預(yù)測(cè)結(jié)果分析與比較
訓(xùn)練結(jié)束后得到模型就可以用于SVM預(yù)測(cè)了。LIBSVM的預(yù)測(cè)函數(shù)為svm-predict。函數(shù)的功能是讀取待預(yù)測(cè)文件、模型文件,然后調(diào)用predict函數(shù)預(yù)測(cè),并將結(jié)果輸出到文件。
(1)經(jīng)過(guò)交叉檢驗(yàn)數(shù)據(jù)。由此得到其預(yù)測(cè)的精度為96.3528%,預(yù)測(cè)結(jié)果保存在out.result中。
(2)未進(jìn)行交叉驗(yàn)證的數(shù)據(jù)結(jié)果。如在選取最優(yōu)參數(shù)(C,Υ)時(shí),不采用網(wǎng)格搜索的交叉驗(yàn)證方法,而采用系統(tǒng)默認(rèn)值,即取默認(rèn)值1,Υ取默認(rèn)值1/6= 0.166 667, 按照上述方法進(jìn)行訓(xùn)練,通過(guò)得到的模型預(yù)測(cè)未知的數(shù)據(jù)newdata.scale,得到其預(yù)測(cè)精度為94.741 3%。可見(jiàn),通過(guò)最優(yōu)參數(shù)(C,Υ)的選擇,可以使得結(jié)果預(yù)測(cè)精度有所提高。
(3)多次訓(xùn)練和學(xué)習(xí)。為了體現(xiàn)SVM的學(xué)習(xí)過(guò)程,進(jìn)行了5次實(shí)驗(yàn),通過(guò)不斷地捕獲數(shù)據(jù),分別對(duì)捕獲的數(shù)據(jù)進(jìn)行預(yù)處理、訓(xùn)練、預(yù)測(cè)。隨著不斷地學(xué)習(xí),預(yù)測(cè)精度不斷提升,分別為92.196 8%、94.741 3%、95.674 3%、95.843 9%、96.352 8%,精度不斷增加??梢?jiàn)通過(guò)多次學(xué)習(xí),有利于分類判斷。不過(guò)需要指出的是,學(xué)習(xí)過(guò)程也需要有一定控制,過(guò)度學(xué)習(xí)會(huì)給分類帶來(lái)負(fù)面影響。
3 結(jié)語(yǔ)
本文從數(shù)據(jù)包捕獲、預(yù)處理、識(shí)別、學(xué)習(xí)和訓(xùn)練這幾個(gè)部分展開(kāi),詳細(xì)說(shuō)明了如何利用LIBSVM對(duì)數(shù)據(jù)包不斷地學(xué)習(xí)、訓(xùn)練,最終得到一個(gè)比較可靠的模型,并通過(guò)這個(gè)模型對(duì)網(wǎng)絡(luò)中的未知數(shù)據(jù)進(jìn)行預(yù)測(cè),從而證明其可靠程度。由此可見(jiàn),基于SVM的網(wǎng)絡(luò)流量識(shí)別方法是可行的,并且識(shí)別效果較好。
參考文獻(xiàn):
[1]YE W,CHO K.Hybrid P2P traffic classification with heuristic rules and machine learning[J].Soft Computing,2014,18(9):1815-1827.
[2]徐鵬,劉瓊,林森.改進(jìn)的對(duì)等網(wǎng)絡(luò)流量傳輸層識(shí)別方法[J].計(jì)算機(jī)研究與發(fā)展,2015,45(5):794-802.
[3]ZAREI R,MONEMI A,MARSONO M N.Automated dataset generation for training peer-to-peer machine learning classifiers[J].Journal of Network and Systems Management,2015,23(1):89-110.
[4]NGUYEN T T,ARMITAGE G,BRANCH P,et al.Timely and continuous machine-learning-based classification for interactive IP traffic[J].IEEE/ACM Transactions on Networking (TON),2012,20(6):1880-1894.
[5]TAYSI Z C,KARSLIGIL M E,YAVUZ A G,et al.Machine learning based IP traffic classfication[C].Proceedings of the Signal Processing and Communications Applications Conference (SIU),2013:1-4.
[6]顧彬,鄭關(guān)勝,王建東.增量和減量式標(biāo)準(zhǔn)支持向量機(jī)的分析[J].Journal of Software,2013,24(7):65-69.
[7]JAMIL H,ZAREI R,F(xiàn)ADLELSSIED N O,et al.Analysis of features selection for P2P traffic detection using support vector machine[C].Proceedings of the Information and Communication Technology (ICoICT),2013 International Conference of,IEEE,2013:116-121.
[8]ANG H H,GOPALKRISHNAN V,HOI S C,et al.Classification in P2P networks with cascade support vector machines[J].ACM Transactions on Knowledge Discovery from Data (TKDD),2013,7(4):20.
[9]JING GONG Z W,ZHIXIN SUN.An improved SVM kernel function parameter optimization method in network traffic monitoring[J].Journal of Computational Information Systems,2015,11(16):5937-5946.
[10]JIANFEN P,YAJIAN Z,CONG W,et al.A novel method of P2P traffic classification based on TCP flow analysis[M].Affective Computing and Intelligent Interaction.Springer.2012:521-528.endprint