陳金富 趙 慧 常 鵬 張永錚
1(中國科學(xué)院信息工程研究所 北京 100093)2(中國科學(xué)院大學(xué) 北京 100049)3(國家計算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心 北京 100029)
P2P應(yīng)用流量的高效分類方法研究
陳金富1,2趙 慧3*常 鵬1張永錚1
1(中國科學(xué)院信息工程研究所 北京 100093)2(中國科學(xué)院大學(xué) 北京 100049)3(國家計算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心 北京 100029)
隨著互聯(lián)網(wǎng)應(yīng)用的廣泛使用,網(wǎng)絡(luò)應(yīng)用已經(jīng)呈現(xiàn)出很多類別,尤其是P2P應(yīng)用流量的暴增。傳統(tǒng)的流量分類和應(yīng)用識別方法已經(jīng)達(dá)不到穩(wěn)定可觀的應(yīng)用識別率。為了提高P2P應(yīng)用流量分類準(zhǔn)確率和穩(wěn)定性,科學(xué)管理規(guī)劃網(wǎng)絡(luò),提出WMFA(滑動窗口多流關(guān)聯(lián))分類算法,使用P2P應(yīng)用流量統(tǒng)計特征,通過降低流統(tǒng)計特征維數(shù),以及減少計算每個流中包的數(shù)量,利用C4.5決策樹算法對P2P主流應(yīng)用進(jìn)行一次分類,采用WMFA算法進(jìn)行誤識別流的挖掘,再進(jìn)行多流關(guān)聯(lián)進(jìn)行二次識別,從而提高P2P應(yīng)用流量分類準(zhǔn)確率。實驗表明,在降低流特征維數(shù)以及減少每個流數(shù)據(jù)包的前提下,面向國內(nèi)主流P2P應(yīng)用WMFA算法對P2P應(yīng)用在線識別的分類正確率達(dá)到96%以上,在準(zhǔn)確率上比現(xiàn)有方法平均提高3%。
P2P流量分類 應(yīng)用識別 WMFA算法 多流關(guān)聯(lián)
據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心統(tǒng)計,截至2015年6月,我國網(wǎng)民規(guī)模達(dá)6.68億,互聯(lián)網(wǎng)普及率為48.8%。據(jù)思科最新統(tǒng)計,對于劇增的流量,P2P流量占絕大部分。P2P網(wǎng)絡(luò)應(yīng)用流量的暴漲,占據(jù)了巨大的網(wǎng)絡(luò)帶寬,不利于高質(zhì)量的服務(wù),這些問題說明,研究如何提高P2P應(yīng)用流量分類準(zhǔn)確率迫在眉睫。P2P流量分類和應(yīng)用識別對于很多單位的網(wǎng)絡(luò)管理員、使用者都有很大的好處。準(zhǔn)確地分類P2P應(yīng)用流量可以為一些網(wǎng)絡(luò)管理員合理地分配網(wǎng)絡(luò)流量,科學(xué)地規(guī)劃網(wǎng)絡(luò)資源。同時,應(yīng)用服務(wù)的提供商可以高效地管理流量計費(fèi)服務(wù),也方便消費(fèi)者查看已經(jīng)消耗的流量。
以往的P2P網(wǎng)絡(luò)流量分類和應(yīng)用識別研究方法主要是基于端口、負(fù)載特征來判別,但是因為P2P應(yīng)用的暴增,加上一些通信協(xié)議的不斷更新,以往研究方法分類準(zhǔn)確率越來越不穩(wěn)定。2005年,Moore等做了端口識別應(yīng)用的實驗,運(yùn)用端口來進(jìn)行應(yīng)用分類,結(jié)果表明準(zhǔn)確率不超過70%[1]。端口識別應(yīng)用存在過大的誤報率問題,接著提出基于數(shù)據(jù)包負(fù)載分析的技術(shù)[2],指解析數(shù)據(jù)包的負(fù)載,并判斷是否匹配已知應(yīng)用的指紋來進(jìn)行應(yīng)用分類。該分類方法識別率有很大的提升,但是對于P2P流量而言,很多加密流量,一些很難挖掘特征的應(yīng)用沒辦法進(jìn)行準(zhǔn)確的分類。后來提出基于主機(jī)網(wǎng)絡(luò)行為來進(jìn)行P2P應(yīng)用分類,網(wǎng)絡(luò)行為代表了大類應(yīng)用的交互特征,所以沒辦法進(jìn)行細(xì)粒度的應(yīng)用識別。由于機(jī)器學(xué)習(xí)算法的迅猛發(fā)展,研究者們提出使用機(jī)器學(xué)習(xí)的算法來進(jìn)行P2P應(yīng)用流量分類,通過離線網(wǎng)絡(luò)流的特征學(xué)習(xí),建立分類模型,然后對P2P流量進(jìn)行在線的分類,很多研究表明可以達(dá)到較高的分類準(zhǔn)確率。在以往的研究中,機(jī)器學(xué)習(xí)方法訓(xùn)練集是經(jīng)過大量計算的流特征,根據(jù)Moore等提出的249個流特征[3],選擇一定的特征子集。但是機(jī)器學(xué)習(xí)的方法比較依賴數(shù)據(jù)集,在計算一些流特征的時候,需要計算流中每個包的特征,在網(wǎng)絡(luò)流量暴漲情況下,應(yīng)用識別的性能有所下降,分類準(zhǔn)確率不穩(wěn)定。
為了有效地提高P2P應(yīng)用流量分類準(zhǔn)確率,本文提出WMFA(滑動窗口多流關(guān)聯(lián)算法)分類算法,可以在一個時間單位窗口中在線的實時識別P2P應(yīng)用流量。通過降低P2P應(yīng)用流特征維度,以及減少流中數(shù)據(jù)包個數(shù)的方式,利用C4.5的方法來對P2P應(yīng)用進(jìn)行一次識別,再用WMFA算法來去除C4.5誤識別的流,然后采用時空關(guān)聯(lián)來進(jìn)行多流關(guān)聯(lián)識別,從而提高P2P應(yīng)用流量分類準(zhǔn)確率。實驗結(jié)果表明該方法可以在線實時對P2P應(yīng)用流量進(jìn)行有效分類,不僅分類穩(wěn)定,而且對P2P應(yīng)用識別具有較高準(zhǔn)確率。
現(xiàn)有的P2P應(yīng)用流量分類方法主要包括基于端口、數(shù)據(jù)包負(fù)載、網(wǎng)絡(luò)行為以及機(jī)器學(xué)習(xí)的分類方法,本節(jié)主要介紹各種分類方法并總結(jié)各種方法存在的問題。
1.1 基于端口的P2P應(yīng)用分類方法
在P2P網(wǎng)絡(luò)通信過程中,無論是客戶端還是服務(wù)端,或者是一個Peer節(jié)點(diǎn),必須提供IP地址和端口和另一方進(jìn)行通信,在一定的時間內(nèi),主機(jī)某個端口關(guān)聯(lián)一個網(wǎng)絡(luò)應(yīng)用,端口小于1 024的一般作保留使用。一些常見的有RFC文檔描述的網(wǎng)絡(luò)協(xié)議基本有固定的端口,識別傳統(tǒng)的協(xié)議較簡單,只需解析端口號,然后和IANA機(jī)構(gòu)頒布的端口進(jìn)行比對,有比較高的識別率,而且基于端口識別方法簡單,容易實現(xiàn),分類性能很高。但是對于P2P應(yīng)用來說,大多采用了端口跳變技術(shù)。隨著P2P網(wǎng)絡(luò)應(yīng)用端口的動態(tài)使用,基于端口的P2P應(yīng)用識別和流量分類很不穩(wěn)定,有的研究表明采用固定端口的P2P流量僅僅占30%左右[4-5]。
1.2 基于負(fù)載的P2P應(yīng)用分類方法
因為P2P網(wǎng)絡(luò)應(yīng)用采用端口跳變的技術(shù),所以基于端口的P2P應(yīng)用分類具有很高的誤報率。為了有效提高P2P應(yīng)用流量分類準(zhǔn)確率,提出了基于數(shù)據(jù)包負(fù)載的識別方法。通過分析數(shù)據(jù)包的有效負(fù)載,并判斷是否匹配已知應(yīng)用的指紋來進(jìn)行應(yīng)用分類,研究表明該方法分類有比較高的準(zhǔn)確性。Sen等[6]使用負(fù)載分析方法來識別P2P應(yīng)用,實驗結(jié)果顯示分類中誤報率小于5%。Liu等[7]使用深度流負(fù)載識別迅雷流量,TCP流量的識別準(zhǔn)確率僅有87%?;跀?shù)據(jù)包負(fù)載進(jìn)行P2P應(yīng)用分類準(zhǔn)確率得到一定的提升,而且可以達(dá)到細(xì)粒度的識別。但是對于P2P流量而言,很多是私有協(xié)議以及加密流量,比如迅雷就采用了私有協(xié)議來傳輸數(shù)據(jù),很難挖掘負(fù)載特征。所以使用該方法還是無法有效的識別P2P應(yīng)用,無法確保一些特征的有效性和實時性。
1.3 基于網(wǎng)絡(luò)行為的P2P應(yīng)用分類方法
私有協(xié)議和加密的流量無法挖掘有效負(fù)載特征,為了保證分類準(zhǔn)確率穩(wěn)定性,繼而提出通過P2P應(yīng)用的交互行為來進(jìn)行應(yīng)用分類。Karagiannis等[8]利用應(yīng)用交互過程的行為特征來分類,提出盲分類方法,方法沒有考慮端口號,而且不用解析數(shù)據(jù)包的有效負(fù)載,實驗結(jié)果表明該分類方法能夠達(dá)到95%的精度,但是盲分類方法實踐比較困難,無法滿足實時性的分類要求。Collins等[9]采用P2P應(yīng)用TCP連接特征來識別P2P應(yīng)用的TCP流量,該方法沒有給出UDP流量分類的方案,而且容易和別的一些流量混淆。Wang等[10]使用應(yīng)用行為特征來對P2P流量分類,但是平均分類準(zhǔn)確率只有90%。主機(jī)交互行為方法不用考慮端口號,而且不用對數(shù)據(jù)包進(jìn)行深度解析,有效提高了分類性能。但是它不能精細(xì)化分類P2P應(yīng)用,也因為P2P應(yīng)用在交互過程中路由具有動態(tài)性,致使該方法分類穩(wěn)定性不高。
1.4 基于機(jī)器學(xué)習(xí)的P2P應(yīng)用分類方法
目前研究熱點(diǎn)主要在基于機(jī)器學(xué)習(xí)的分類方法,不同應(yīng)用網(wǎng)絡(luò)流量具有一定的流特征,將流特征提取出來并用機(jī)器學(xué)習(xí)算法來訓(xùn)練建立分類模型,然后對在線應(yīng)用流量進(jìn)行分類。Zuev等[11]采用樸素貝葉斯方法,提取網(wǎng)絡(luò)流特征訓(xùn)練,但是分類準(zhǔn)確率僅有60%左右, 而且分類算法依賴數(shù)據(jù)流特征之間的獨(dú)立性。在2009年,Huang等[12]用KNN(K最近鄰)分類算法來對網(wǎng)絡(luò)流量進(jìn)行分類,實驗結(jié)果表明分類準(zhǔn)確率達(dá)到90%,但是KNN算法計算復(fù)雜度高,每有數(shù)據(jù)包到來就需要計算訓(xùn)練集中所有的流,性能比較低。同時在2009年,徐鵬等[13]采用C4.5決策樹對流量進(jìn)行分類,分類準(zhǔn)確率能達(dá)到94%,但是該算法需要的流特征較多,需要的數(shù)據(jù)分組較多,計算復(fù)雜度偏高。2013年,周文剛等[14]使用譜聚類算法對網(wǎng)絡(luò)流量進(jìn)行分類,總體準(zhǔn)確率達(dá)到94.62%,該方法對協(xié)議進(jìn)行分類,沒有精細(xì)化到應(yīng)用分類。2014年,Patel等[15]采用迭代式調(diào)整的SVM算法對網(wǎng)絡(luò)流量進(jìn)行分類,該方法對一般的協(xié)議分類準(zhǔn)確率達(dá)到90%,但是對于P2P和多媒體流量分類準(zhǔn)確率在70%左右。2015年,Hong等[16]使用SVM對網(wǎng)絡(luò)流量進(jìn)行粗粒度分類,P2P流量分類準(zhǔn)確率僅有80%左右。
目前已有的流量分類和應(yīng)用識別研究往往具有一定的局限性,當(dāng)前研究大都針對粗粒度分類,面向P2P應(yīng)用細(xì)粒度分類研究較少。采用基于機(jī)器學(xué)習(xí)的流量分類方法,識別率不穩(wěn)定,算法計算復(fù)雜性比較高等,從而影響網(wǎng)絡(luò)流量的管理和應(yīng)用類別的監(jiān)控。與上述研究工作相比,本文面向主流P2P類應(yīng)用流量分類,提出WMFA算法進(jìn)行P2P流量的在線實時分類,實時的粒度體現(xiàn)在一個時間單位窗口上。在減少流統(tǒng)計特征,減少會話開始的數(shù)據(jù)包數(shù)量,利用C4.5決策樹算法對P2P主流應(yīng)用進(jìn)行一次分類,用WMFA算法進(jìn)行誤識別流的挖掘,再進(jìn)行多流關(guān)聯(lián)進(jìn)行二次識別,可以達(dá)到較高的分類準(zhǔn)確率。
P2P應(yīng)用流量分類中,機(jī)器學(xué)習(xí)比較依賴數(shù)據(jù)集所以識別率有時候不穩(wěn)定。面向主流P2P應(yīng)用分類,本文提出基于WMFA算法的應(yīng)用在線實時分類方法,基于滑動時間窗口的多流在線關(guān)聯(lián)方法集成了C4.5和多元離群點(diǎn)檢測方法,采用信息增益率來選擇P2P流特征,然后使用C4.5對P2P進(jìn)行一次識別,挖掘誤識別流,利用時空關(guān)聯(lián)將已識別的流來關(guān)聯(lián)未識別的流作二次精確識別。
通過信息增益率來篩選P2P網(wǎng)絡(luò)應(yīng)用行為特征,在特征提取方面,本文提出的優(yōu)化方案是將TCP流和UDP流分開進(jìn)行處理,在性能方面,每個流僅選取前9個報文進(jìn)行分析。
2.1 特征選擇
2005年,Moore等[3]提出了249個對流量分類的流統(tǒng)計特征。在實際分類中考慮到計算復(fù)雜度問題,通常只選擇部分流統(tǒng)計特征來對流量進(jìn)行分類。在特征選擇方面,潘吳斌等[17]提出選擇性集成的嵌入式特征選擇算法,分類準(zhǔn)確率達(dá)到95%,但是分類沒有精細(xì)化到應(yīng)用。特征選擇的目的是在保持較高分類準(zhǔn)確率的條件下,盡量的降低流統(tǒng)計特征的維數(shù)。
本文采用信息增益率方法來選擇P2P流特征,不考慮應(yīng)用中攜帶的廣告流量和DNS流量。優(yōu)化方案體現(xiàn)在分開處理P2P應(yīng)用TCP和UDP流量,僅考慮通過每個P2P網(wǎng)絡(luò)流的前10個數(shù)據(jù)包來計算流統(tǒng)計特征。在該特征選擇算法,用GR代表信息增益率,Gain是信息增益,SpInfo表示分裂信息。那么在流統(tǒng)計特征屬性T上,針對訓(xùn)練數(shù)據(jù)集D的信息增益率的計算如式(1)所示:
(1)
信息增益表示兩個信息需求之間的差值。通過流統(tǒng)計特征T劃分前后類別期望信息的差值比較,這個差值越大說就表示流統(tǒng)計屬性T劃分越好,劃分后類別更純。信息增益的計算為Gain(T)=Info(D)-InfoT(D),通過信息熵的方式來計算信息增益。Info(D)就是數(shù)據(jù)集D的熵。令Ri表示D中網(wǎng)絡(luò)流屬于第i個應(yīng)用的概率,使用m代表P2P應(yīng)用類別的總數(shù),可以計算信息熵,則P2P應(yīng)用流量數(shù)據(jù)集中網(wǎng)絡(luò)流分類的信息熵計算如式(2)所示:
(2)
通過信息增益率選擇的分類屬性,按照增益率的大小排序,然后選擇增益率較大的前15個分裂屬性。在信息增益率算法的基礎(chǔ)上,通過卡方檢驗來判斷信息增益選擇的流特征相關(guān)性,并去除具有相關(guān)性的特征。針對P2P應(yīng)用TCP和UDP流量,使用信息增益率作為度量標(biāo)準(zhǔn)選擇了10個最有效的流統(tǒng)計特征如表1所示。
表1 P2P流量TCP和UDP流統(tǒng)計特征
本文在Moore的特征基礎(chǔ)上,增加了P2P應(yīng)用的一些特有流特征,因為P2P應(yīng)用大部分使用私有協(xié)議,每個流攜帶交互信息的數(shù)據(jù)包最大概率出現(xiàn)在前3個包,熵值是最大的。同時,在分析P2P應(yīng)用中,我們發(fā)現(xiàn)交互過程中初始化窗口攜帶的分類信息很大。
2.2 WMFA分類算法
機(jī)器學(xué)習(xí)方法分類主要依賴數(shù)據(jù)集,使用C4.5對P2P流量進(jìn)行分類,結(jié)果大多數(shù)存在誤識別的流。為去除誤識別流提出WMFA算法(基于滑動時間窗口多流關(guān)聯(lián)) ,主要目的是在線實時挖掘每個時間窗口中誤識別的流,再進(jìn)行時空關(guān)聯(lián)將未識別的流標(biāo)記為已識別的流。
P2P通信應(yīng)用流量具有流量連續(xù)性、端口離散性、流大窗口連續(xù)性、流小窗口短暫性以及輸入輸出流量均衡性。使用滑動時間窗口來量化流量的連續(xù)性。設(shè)定一個單位統(tǒng)計時間為一個窗口。根據(jù)經(jīng)驗規(guī)則,單位時間設(shè)置為5分鐘。設(shè)置窗口尺寸為wn,這里的窗口尺寸設(shè)置為4。
將一個時間窗口P2P流量分類結(jié)果數(shù)據(jù)集中同應(yīng)用的流作為輸入,挖掘誤識別的流并清除流標(biāo)記。本文運(yùn)用基于χ2統(tǒng)計量的多元分類結(jié)果離群點(diǎn)檢測,這里的離群點(diǎn)是指誤識別的應(yīng)用流。使用多元屬性來度量P2P通信原理,多元屬性分別為f1端口離散性,f2輸入/輸出流量比,f3大窗口持續(xù)性,f4小窗口短暫性,四個屬性的量化如下。
在線實時量化四個P2P通信屬性,這里實時粒度是一個時間窗口,本文設(shè)置為5分鐘。f1端口離散性記錄每個流客戶端端口ClientPort值,由于P2P應(yīng)用通信端口一般比較大,而其他三個屬性的量化結(jié)果在0到1區(qū)間范圍內(nèi),為平衡各屬性的權(quán)重,使用hash函數(shù)將客戶端端口hash到0到1區(qū)間內(nèi),f1的量化如式(3)所示:
f1=Hash(ClientPort)
(3)
f2輸入/輸出流量比使用每條流的輸入字節(jié)數(shù)fbytes和輸出字節(jié)數(shù)bbytes量化,如式(4)所示:
(4)
f3大窗口連續(xù)屬性使用每條流中包負(fù)載大于初始化窗口大小包數(shù)量big_wins和整條流包數(shù)flow_packets來量化,如式(5)所示:
(5)
f4小窗口短暫屬性使用每條流中包負(fù)載小于流前三個包長的數(shù)量small_wins和整條流包數(shù)flow_packets來量化,如式(6)所示。
(6)
基于χ2統(tǒng)計量的多元分類結(jié)果離群點(diǎn)檢測,使用上述量化的P2P應(yīng)用流量特征,如計算式(7)所示:
(7)
其中fi是當(dāng)前窗口第i個屬性特征值,EiWn是前wn窗口內(nèi)被標(biāo)記為內(nèi)同一應(yīng)用第i屬性的均值,n代表屬性維度,這里n表示4。在識別過程中,時間窗口會不斷向后滑動,EiWn代表每個屬性的窗口尺寸平均值會不斷改變。如果在某個時間窗口中χ2統(tǒng)計量較大,則將該流視為誤識別并將該流的應(yīng)用分類標(biāo)記去除。
通過離群點(diǎn)檢測算法,將誤報的流標(biāo)記被刪除并在一個時間單位窗口中使用在線實時多流時空關(guān)聯(lián),實時的粒度是一個時間窗口,空間是指該窗口中每條流中IP和端口PORT。如果在一個時間窗口上,同一個IP和端口PORT的流有未識別的流,則將該流標(biāo)記為對應(yīng)IP和PORT已識別的流,偽代碼如下:
算法 多流時空關(guān)聯(lián)
輸入:一次識別結(jié)果集Data,時間窗口win_time
輸出:關(guān)聯(lián)后的識別結(jié)果
1:foreach flow in Data do
2: if flow.IP and flow.Port is same then
3: if flow.TIME < win_time then
4: AppNames.add(flow.AppName)
5: AppName = Max(AppNames)
6:endforeach
7:foreach flow in Data do
8: if flow.AppName == null then
9: flow.AppName = AppName
10:endforeach
11:return Data
算法的輸入是C4.5識別的結(jié)果集Data和時間窗口長度win_time,時間窗口代表了在線實時的粒度,本文設(shè)置實時粒度是5分鐘。輸出是WMFA關(guān)聯(lián)識別的結(jié)果集。第2行中如果流的客戶端IP和端口PORT一樣,并且流的時間小于win_time,則將流中標(biāo)記的應(yīng)用名稱記錄。第5行中計算出現(xiàn)頻率最高的應(yīng)用編碼。采用了hash原理,將每條流的IP和PORT作為鍵key,每條流的應(yīng)用編號作為值value,在同一個時間窗口中客戶端IP和PORT一樣的流進(jìn)行關(guān)聯(lián)。AppName記錄了應(yīng)用編碼,將一次識別結(jié)果Data中未識別的流或者誤識別的流標(biāo)記成AppName已識別的應(yīng)用編碼。
3.1 實驗評估
本文實驗的度量指標(biāo)分別是準(zhǔn)確率和召回率。準(zhǔn)確率和召回率使用下面三個變量來計算。
(1) 真陽率TP(True Positive):算法識別為某P2P應(yīng)用的網(wǎng)絡(luò)數(shù)據(jù)流,而且確實屬于該應(yīng)用的網(wǎng)絡(luò)數(shù)據(jù)流。
(2) 假陽率FP(False Positive):算法識別為某P2P應(yīng)用的網(wǎng)絡(luò)數(shù)據(jù)流,但是不屬于該應(yīng)用的網(wǎng)絡(luò)數(shù)據(jù)流。
(3) 假陰率FN(False Negative):算法識別為非某P2P應(yīng)用的網(wǎng)絡(luò)數(shù)據(jù)流,但是屬于該協(xié)議或者應(yīng)用的網(wǎng)絡(luò)數(shù)據(jù)分組。
準(zhǔn)確率與召回率度量在分類中廣泛使用。準(zhǔn)確率可以看作精確性的度量,而召回率是完全性的度量,二者的計算如式(8)和式(9)所示。
(8)
(9)
3.2 數(shù)據(jù)集
本文的數(shù)據(jù)集采自某局域網(wǎng)的網(wǎng)絡(luò)出口。在2015年9月和11月的不同時間段,我們用GT[18]工具采集了6個數(shù)據(jù)集,包含數(shù)據(jù)包負(fù)載的完整信息。數(shù)據(jù)集的情況如表2所示。
表2 P2P應(yīng)用數(shù)據(jù)集描述
數(shù)據(jù)集通過GT進(jìn)行流量標(biāo)注,主要考慮國內(nèi)常見P2P網(wǎng)絡(luò)應(yīng)用流量的分類。因為本文中僅考慮P2P應(yīng)用私有協(xié)議的流量,所以過濾掉HTTP流量和DNS流量,對剩下的TCP和UDP流進(jìn)行分類。P2P應(yīng)用實驗數(shù)據(jù)集分別是迅雷,uTorrent,QQ旋風(fēng),優(yōu)酷,暴風(fēng)影音,騰訊視頻,LeTV,PPTV,愛奇藝和搜狐視頻,它們是國內(nèi)最常見的P2P應(yīng)用。這里主要是下載類和多媒體類P2P應(yīng)用。從圖中看出,迅雷在各個數(shù)據(jù)集中流量較大,搜狐和暴風(fēng)流量相對較小。
3.3 每條流開始的數(shù)據(jù)包數(shù)目實驗
本實驗?zāi)康氖潜容^每條流取前N個數(shù)據(jù)包來統(tǒng)計流特征時,TCP和UDP流量分類準(zhǔn)確率的變化,從而找出在P2P流量中N的合適值。使用NetMate提取P2P應(yīng)用流特征,以及工具Weka-3.7.13[19]和sklearn[20]來完成特征選擇和流量分類任務(wù)。
本節(jié)通過單因子均值實驗,驗證四種分類算法使用流開始的不同數(shù)據(jù)包數(shù)目統(tǒng)計特征分類的準(zhǔn)確性,決定選擇統(tǒng)計分析合適的數(shù)據(jù)包數(shù)目?;?.1節(jié)提出的流統(tǒng)計特征進(jìn)行分類和上節(jié)的數(shù)據(jù)集,運(yùn)用KNN(K最近鄰分類算法)、NB(樸素貝葉斯分類算法)、C4.5決策樹和SVM支持向量機(jī)算法對數(shù)據(jù)集data3進(jìn)行學(xué)習(xí)建立模型,然后對數(shù)據(jù)集data1、data2、data4進(jìn)行預(yù)測,實驗結(jié)果如表3所示。
表3 每條流前N包特征分類準(zhǔn)確率 %
采用單因子均值分析方法驗證統(tǒng)計每條流開始不同數(shù)據(jù)包個數(shù)下分類平均準(zhǔn)確率,這里的單因子是指數(shù)據(jù)包個數(shù),它統(tǒng)計每條流開始的5到10個數(shù)據(jù)包,均值取的是不同測試集下不同分類算法分類準(zhǔn)確率的平均值。
從結(jié)果可以看出,分類單因子數(shù)據(jù)包個數(shù)從5到9分類準(zhǔn)確率均值基本呈遞增趨勢。取每條流開始5個數(shù)據(jù)包進(jìn)行特征提取并使用四種算法分類時,TCP流量平均準(zhǔn)備率是90.68%,UDP流量分類平均準(zhǔn)確率為89.11%;6個數(shù)據(jù)包時,TCP流量平均分類準(zhǔn)確率是89.5%,UDP流量平均分類準(zhǔn)確率為89.81%;取7個、8個和9個數(shù)據(jù)包時,TCP流量分類平均準(zhǔn)確率分別為91.65%,91.03%和92.46%,UDP流量分類平均準(zhǔn)確率分別是90.56%,90.44%和92.19%;當(dāng)取10個數(shù)據(jù)包時,TCP分類平均準(zhǔn)確率是92.02%。UDP流量分類平均準(zhǔn)確率為91.79%??梢钥闯?,TCP和UDP流量分類統(tǒng)計流前9個數(shù)據(jù)包平均分類準(zhǔn)確率較高。
因此在本文實驗數(shù)據(jù)集上,針對P2P應(yīng)用流量選定每條流開始的前9個數(shù)據(jù)包來統(tǒng)計特征是最合適的。
3.4 WMFA算法分類實驗對比
本節(jié)實驗是使用上節(jié)結(jié)論,統(tǒng)計P2P應(yīng)用流量每條流前9個數(shù)據(jù)包的流特征,使用data3離線訓(xùn)練流基本特征,在線回放data1、data2、data4、data5和data6流量,進(jìn)行在線實時分類,采用WMFA算法和其他四種分類算法進(jìn)行實驗對比,分類準(zhǔn)確率和召回率作為評估指標(biāo)。P2P應(yīng)用TCP分類準(zhǔn)確率對比結(jié)果如圖1所示,UDP流量分類準(zhǔn)確率實驗結(jié)果如圖2所示。
圖1 P2P應(yīng)用TCP流量分類準(zhǔn)確率結(jié)果
圖2 P2P應(yīng)用UDP流量分類準(zhǔn)確率結(jié)果
由圖1和圖2看出,面向主流P2P流量的在線實時分類,WMFA算法的分類準(zhǔn)確率高于其他四種分類算法,在5個測試集上分類準(zhǔn)確率平均能達(dá)到96%以上,而且分類準(zhǔn)確率比較穩(wěn)定,不受數(shù)據(jù)集大小的影響。對于其他四種分類算法,C4.5分類方法識別準(zhǔn)確率相對較高,在不同數(shù)據(jù)集上,分類比較穩(wěn)定,準(zhǔn)確率基本在93%左右。KNN和NB分類算法分類準(zhǔn)確率相對較低,TCP流量分類平均準(zhǔn)確率分別為91.08%和91.11%,UDP流量分類平均準(zhǔn)確率分別為90.87%和90.75%。KNN分類方法是給出測試元組才處理訓(xùn)練元組,計算復(fù)雜度高,空間復(fù)雜度高;樸素貝葉斯分類方法需要條件獨(dú)立性假設(shè),識別準(zhǔn)確率也相對較低,基本低于91.5%;SVM分類方法準(zhǔn)確率比樸素貝葉斯和K-NN都要高,比C4.5決策樹分類準(zhǔn)確率低,但是需要建模的時間最長。
針對P2P應(yīng)用TCP和UDP流量,5種分類算法的召回率實驗結(jié)果如圖3和圖4所示。
圖3 P2P應(yīng)用TCP流量分類召回率結(jié)果
圖4 P2P應(yīng)用UDP流量分類召回率結(jié)果
從實驗結(jié)果看出,召回率類似于準(zhǔn)確率,WMFA召回率較高,無論是TCP流量還是UDP流量召回率平均在95%以上,尤其在測試集data2上的TCP流量達(dá)到了97.2%的召回率,整個召回率曲線比較平穩(wěn)。C4.5決策樹對P2P流量分類的召回率維持在91%到94%之間,TCP流量的召回率相對UDP較高,但不是很穩(wěn)定。SVM和NB分類平均召回率差不多,落在區(qū)間88%到92%之間,和C4.5算法類似,TCP流量的召回率相對UDP較高,NB分類召回率不穩(wěn)定。KNN分類算法平均召回率最低,平均召回率在85%到91%之間,浮動比較大。
針對主流P2P應(yīng)用流量的在線實時分類,WMFA算法的分類準(zhǔn)確率和召回率都高于其他四個分類算法。WMFA算法根據(jù)P2P通信原理特征,在一個時間窗口中實時檢測離群點(diǎn)。挖掘C4.5分類結(jié)果中誤識別的流,再將未識別的流和已識別的流進(jìn)行關(guān)聯(lián),明顯的提高了P2P整體流量分類準(zhǔn)確率和召回率。
用data3作為訓(xùn)練集時,data2和data5數(shù)據(jù)集作為測試集。選擇data2和data5是因為data2測試集大小為1.08 GB,是5個測試集中最小的,而data5測試集大小是5.32 GB,是5個測試集中流量最大的,通過兩個流量大小差距最大的測試集來實驗,測試分類算法在不同大小應(yīng)用分類準(zhǔn)確率的穩(wěn)定性。我們對比5種分類算法識別各種P2P應(yīng)用TCP和UDP流量細(xì)粒度的準(zhǔn)確率。data2作為測試集時,各個P2P應(yīng)用TCP和UDP分類準(zhǔn)確率結(jié)果如圖5和圖6所示。
圖5 data2 TCP應(yīng)用分類準(zhǔn)確率
圖6 data2 UDP應(yīng)用分類準(zhǔn)確率
data2測試集的應(yīng)用分類結(jié)果可以看出,WMFA應(yīng)用分類在線分類的平均準(zhǔn)確率達(dá)到96%以上,在不同的P2P應(yīng)用中分類準(zhǔn)確率比較穩(wěn)定。具體到細(xì)粒度P2P應(yīng)用上,每個P2P應(yīng)用TCP和UDP流量分類都是WMFA分類準(zhǔn)確率最高。下載類的P2P應(yīng)用迅雷和uTorrent以及QQ旋風(fēng)流量的分類平均準(zhǔn)確率相對較低在95.5%左右,而音視頻類的P2P應(yīng)用比如優(yōu)酷和暴風(fēng)以及搜狐視頻分類準(zhǔn)確率較高,最低也有96%,有的達(dá)到97.87%的分類準(zhǔn)確率。相比其它4個分類算法,C4.5分類平均準(zhǔn)確率相對KNN和NB以及SVM都較高,應(yīng)用分類準(zhǔn)確率平均在93%,KNN和NB分類準(zhǔn)確率較低,應(yīng)用分類平均準(zhǔn)確率在90.8%左右??梢钥吹終NN分類算法,除了優(yōu)酷和暴風(fēng)分類準(zhǔn)確率平均在92%以上,其它應(yīng)用分類準(zhǔn)確率在80%到91%之間。data2測試集流量比較小,5種分類算法分類都比較穩(wěn)定,各個應(yīng)用分類準(zhǔn)確率浮動不大。
當(dāng)使用data5作為測試集時,各個P2P應(yīng)用TCP和UDP分類準(zhǔn)確率結(jié)果如圖7和圖8所示。
圖7 data5 TCP應(yīng)用分類準(zhǔn)確率
圖8 data5 UDP應(yīng)用分類準(zhǔn)確率
在線回放測試集data5和data2,從實驗結(jié)果可以看出,兩個測試集的分類有一些差別。相同點(diǎn)在于,WMFA在線分類P2P應(yīng)用的平均準(zhǔn)確率也達(dá)到96%以上,在不同的P2P應(yīng)用中分類準(zhǔn)確率比較穩(wěn)定。不同點(diǎn)在于,對其他四種分類算法,分類平均準(zhǔn)確率有所下滑。對于TCP流量,NB分類算法下滑了2點(diǎn)百分點(diǎn),UDP流量分類中,KNN分類算法下滑了1.5個百分點(diǎn)。同時單獨(dú)從測試集data5中實驗結(jié)果看出,針對P2P應(yīng)用WMFA算法分類比較穩(wěn)定,而其它四種算法分類準(zhǔn)確率浮動比較大??梢钥闯?,KNN分類算法在識別迅雷應(yīng)用時分類準(zhǔn)確率只有85.3%,騰訊視頻TCP流量分類準(zhǔn)確率也僅有86%,NB算法在識別UTorrent的TCP流量是分類準(zhǔn)確率僅有87.02%,其他應(yīng)用分類準(zhǔn)確率基本在89%以上。同時,SVM分類準(zhǔn)確率從87.02%到94.48%,浮動較大。這說明NB和K-NN以及SVM分類算法受數(shù)據(jù)集大小的影響。
綜合來看,針對主流P2P應(yīng)用流量在線分類,WMFA算法在P2P應(yīng)用分類準(zhǔn)確率上明顯高于其他分類算法,分類平均準(zhǔn)確率達(dá)到96%以上,而且分類比較穩(wěn)定,不受數(shù)據(jù)集大小的影響。WMFA算法中考慮了P2P應(yīng)用通信原理,在分類中挖掘出分類器誤識別的應(yīng)用流,并采用時空關(guān)聯(lián)方法進(jìn)行多流之間的關(guān)聯(lián),最終達(dá)到分類準(zhǔn)確率和召回率的明顯提升。
隨著P2P網(wǎng)絡(luò)流量的日益復(fù)雜多樣,有效的P2P應(yīng)用分類有利于科學(xué)管理規(guī)劃網(wǎng)絡(luò)流量。本文面向P2P主流應(yīng)用細(xì)粒度在線實時分類提出基于滑動窗口多流關(guān)聯(lián)的算法WMFA,實時粒度是一個時間單位窗口,有效地提升了P2P應(yīng)用流量分類的準(zhǔn)確率和召回率。結(jié)合P2P應(yīng)用通信原理,提取出P2P應(yīng)用流量特征,可以有效的減少流特征的數(shù)量。在性能方面,沒有計算整個流的特征,而是通過計算每個流的前9個數(shù)據(jù)包來提升分類的性能。實驗結(jié)果表明WMFA算法針對常見P2P應(yīng)用在線實時分類的平均準(zhǔn)確率達(dá)到96%以上,相比其他分類方法分類準(zhǔn)確率平均提高約3%,最高能提高7%,分類穩(wěn)定性較高。
本文的主要貢獻(xiàn)在于:
(1) 有效地減少了P2P應(yīng)用流統(tǒng)計特征維數(shù)。針對P2P應(yīng)用,在Moore流特征的基礎(chǔ)上,本文結(jié)合P2P網(wǎng)絡(luò)應(yīng)用通信原理,提取P2P應(yīng)用特有的流屬性,包括流的窗口屬性和前三個數(shù)據(jù)包負(fù)載長度,將流特征維數(shù)降低至10維,有效的減少了流特征的維數(shù)。
(2) P2P應(yīng)用流量統(tǒng)計特征提取只需考慮流前9個數(shù)據(jù)包,以往的研究一般是考慮從整條流提取流統(tǒng)計特征,本文僅考慮P2P應(yīng)用每條流前N包的統(tǒng)計特征,并通過實驗確定N取9是最合適的,通過減少計算每條流開始的數(shù)據(jù)包數(shù)目,有效提高了分類性能。
(3) 針對主流P2P應(yīng)用流量在線實時分類提出WMFA算法,有效的提升了P2P應(yīng)用流量分類準(zhǔn)確率和召回率。P2P應(yīng)用流量分類達(dá)到了較高的分類準(zhǔn)確率(平均在96%以上)。
[1]MooreAW,PapagiannakiKP.Towardtheaccurateidentificationofnetworkapplications[C]//Proceedingsofthe6thInternationalWorkshoponPassiveandActiveMeasurement(PAM2005),Boston,MA,USA,2005:41-54.
[2]DewesC,WichmannA,FeldmannA.AnanalysisofInternetchatsystems[C]//Proceedingsofthe3rdACMSIGCOMMConferenceonInternetMeasurement.NewYork:ACMPress,2003:51-64.
[3]MooreA,ZuevD,CroganM.Discriminatorsforuseinflow-basedclassification[R].RR-05-13,DepartmentofComputerScienceResearchReports,QueenMaryUniversityofLondon,2005.
[4]MadhukarA,WilliamsonC.AlongitudinalstudyofP2Ptrafficclassification[C]//Modeling,AnalysisandSimulationofComputerandTelecommunicationSystems,2006 14thIEEEInternationalSymposiumon.IEEE,2006:179-188.
[5]RoughanM,SenS,SpatscheckO,etal.Class-of-servicemappingforQoS:astatisticalsignature-basedapproachtoIPtrafficclassification[C]//Proceedingsofthe4thACMSIGCOMMConferenceonInternetMeasurement.ACM,2004:135-148.
[6]SenS,SpatscheckO,WangD.Accurate,scalablein-networkidentificationofp2ptrafficusingapplicationsignatures[C]//Proceedingsofthe13thInternationalConferenceonWorldWideWeb.ACM,2004:512-521.
[7]LiuJ,LiuF,HeD.TheidentificationforP2PThundertrafficbasedondeepflowidentification[C]//CloudComputingandIntelligentSystems(CCIS),2012IEEE2ndInternationalConferenceon.IEEE,2012:504-507.
[8]KaragiannisT,PapagiannakiK,FaloutsosM.BLINC:multileveltrafficclassificationinthedark[J].ACMSIGCOMMComputerCommunicationReview.ACM,2005,35(4):229-240.
[9]CollinsMP,ReiterMK.Findingpeer-to-peerfile-sharingusingcoarsenetworkbehaviors[C]//Proceedingsofthe11thEuropeanConferenceonResearchinComputerSecurity.Springer,2006:1-17.
[10]WangD,ZhangL,YuanZ,etal.CharacterizingApplicationBehaviorsforclassifyingP2Ptraffic[C]//Computing,NetworkingandCommunications(ICNC),2014InternationalConferenceon.IEEE,2014:21-25.
[11]ZuevD,MooreAW.Trafficclassificationusingastatisticalapproach[C]//Proceedingsofthe6thInternationalWorkshoponPassiveandActiveMeasurement(PAM2005).Springer,2005:321-324.
[12]HuangS,ChenK,LiuC,etal.Astatistical-feature-basedapproachtointernettrafficclassificationusingmachinelearning[C]//UltraModernTelecommunications&Workshops,2009InternationalConferenceon.IEEE,2009:1-6.
[13] 徐鵬,林森.基于C4. 5決策樹的流量分類方法[J].軟件學(xué)報,2009,20(10):2692-2704.
[14] 周文剛,陳雷霆,董仕.基于譜聚類的網(wǎng)絡(luò)流量分類識別算法[J].電子測量與儀器學(xué)報,2013,27(12):1114-1119.
[15] Patel S,Sondhi J,Motvani A,et al.Improved Intrusion Detection Technique based on Feature Reduction and Classification using Support Vector Machine and Particle of Swarm Optimization[J].International Journal of Computer Applications,2014,100(18):34-37.
[16] Hong Y,Huang C,Nandy B,et al.Iterative-tuning support vector machine for network traffic classification[C]//Integrated Network Management (IM),2015 IFIP/IEEE International Symposium on.IEEE,2015:458-466.
[17] 潘吳斌,程光,郭曉軍,等.基于選擇性集成策略的嵌入式網(wǎng)絡(luò)流特征選擇[J].計算機(jī)學(xué)報,2014,37(10):2128-2138.
[18] Gringoli F,Salgarelli L,Dusi M,et al.GT:picking up the truth from the ground for internet traffic[J].ACM SIGCOMM Computer Communication Review,2009,39(5):12-18.
[19] Hall M,Frank E,Holmes G,et al.The WEKA data mining software:an update[J].ACM SIGKDD Explorations Newsletter,2009,11(1):10-18.
[20] Buitinck L,Louppe G,Blondel M,et al.API design for machine learning software:experiences from the scikit-learn project[DB].arXiv preprint arXiv:1309.0238,2013.
RESEARCH ON EFFICIENT CLASSIFICATION METHOD OF P2P APPLICATION TRAFFIC
Chen Jinfu1,2Zhao Hui3*Chang Peng1Zhang Yongzheng1
1(InstituteofInformationEngineering,ChineseAcademyofSciences,Beijing100093,China)2(UniversityoftheChineseAcademyofScience,Beijing100049,China)3(NationalComputerNetworkEmergencyResponseTechnicalTeam/CoordinationCenterofChina,Beijing100029,China)
Network application has been showing a lot of categories because of the widespread use of Internet applications, especially P2P applications traffic growth. Traditional traffic classification and application identification methods can’t considerable reach stable application classification precision. In order to improve classification accuracy and stability of P2P application traffic and manage network scientifically, this paper proposes WMFA (sliding window multi-flow association) algorithm. Using P2P application traffic statistics feature by reducing the flow statistics feature dimension and reducing the number of packets in each network traffic flow, C4.5 algorithm is used to classify P2P applications. We use WMFA algorithm to mine misrecognized flows, and carry on the multi-flow association on the second recognition to improve the P2P application traffic classification accuracy. Experimental results show that with a decrease in P2P traffic flow characteristics dimension and reducing the number of each flow data packets, WMFA algorithm average classification precision for the domestic mainstream P2P application is more than 96%, the average rate of accuracy than the existing method of 3%.
P2P traffic classification Application recognition WMFA algorithm Multi-flow association
2016-01-07。國家自然科學(xué)基金項目(61572496);國家高技術(shù)研究發(fā)展計劃基金項目(2013AA014703)。陳金富,碩士生,主研領(lǐng)域:網(wǎng)絡(luò)安全。趙慧,工程師。常鵬, 工程師。張永錚,研究員。
TP3
A
10.3969/j.issn.1000-386x.2017.04.020