《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應用 > 基于機器學習的VoIP流量在線識別系統(tǒng)
基于機器學習的VoIP流量在線識別系統(tǒng)
2016年電子技術(shù)應用第8期
劉建明1,唐 霞2,李 龍3
1.桂林電子科技大學 計算機科學與工程學院,廣西 桂林541004;   2.桂林電子科技大學 電子信息與自動化學院,廣西 桂林541004;3.桂林電子科技大學 機電工程學院,廣西 桂林541004
摘要: 針對目前VoIP離線識別無法滿足復雜網(wǎng)絡(luò)環(huán)境中流量監(jiān)控系統(tǒng)的實時性與高精度要求,設(shè)計并實現(xiàn)了VoIP流量在線識別系統(tǒng)。首先,基于數(shù)據(jù)挖掘工具WEKA中集成的機器學習算法,在擴大訓練集的基礎(chǔ)上對流統(tǒng)計特征進行篩選并搭建分類器模型。然后,利用JPcap庫提出并設(shè)計邊抓包邊檢測機制,實現(xiàn)VoIP流量快速識別。實驗結(jié)果表明,該在線識別系統(tǒng)實時性高,且能達到92%的精度。
中圖分類號: TN912;TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.033
中文引用格式: 劉建明,唐霞,李龍. 基于機器學習的VoIP流量在線識別系統(tǒng)[J].電子技術(shù)應用,2016,42(8):133-137.
英文引用格式: Liu Jianming,Tang Xia,Li Long. Real-time detection system of VoIP traffic based on machine learning[J].Application of Electronic Technique,2016,42(8):133-137.
Real-time detection system of VoIP traffic based on machine learning
Liu Jianming1,Tang Xia2,Li Long3
1.College of Computer Science and Engineering,Guilin University of Electronic Technology,Guilin 541004,China; 2.College of Electronic Information and Automation,Guilin University of Electronic Technology,Guilin 541004,China; 3.College of Mechanical and Electrical Engineering,Guilin University of Electronic Technology,Guilin 541004,China
Abstract: Aiming at that off-line VoIP identification for the complex network environment can not meet high accuracy and real-time demand in traffic monitoring system, a VoIP traffic online identification system is designed and implemented. First, based on WEKA which is a data mining tools integrated many machine learning algorithms, an extended training set is used to filtrate convection statistical characteristics and a classification model is built by machine learning algorithms. Then JPcap database is used to design a capture and detection mechanism to achieve rapid identification of VoIP traffic. Experimental results shown that the online identification system can classify real-time VoIP traffic and reached 92% accuracy.
Key words : traffic monitoring;VoIP;on-line identification;data mining;detection mechanism

0 引言

  VoIP(Voice over Internet Protocol)業(yè)務(wù)成本低、部署方便,在語音通信業(yè)務(wù)中的比例持續(xù)上升,其發(fā)展帶來機遇的同時也給網(wǎng)絡(luò)安全運行帶來了巨大挑戰(zhàn)[1]。因此,對VoIP業(yè)務(wù)進行管控非常重要,高精度在線流量識別也成為眾多研究領(lǐng)域的熱點與難點。

  目前,主流VoIP流量識別方法主要包括兩大類:基于流特征的VoIP流量識別與基于機器學習的VoIP流量識別。文獻[2]最早利用流特征進行流量分類,提出249種具體的流特征,并提供10組可用的流量數(shù)據(jù)集。文獻[3]針對數(shù)據(jù)流中一段時間內(nèi)的數(shù)據(jù)包長和包時間間隔,統(tǒng)計其分布范圍、均值、中值與方差等特征作為VoIP流量識別的依據(jù)。上述文獻識別精度不高,基于流特征的識別方法對不同類型的網(wǎng)絡(luò)流量適應性也較低?;跈C器學習的識別方法主要集中于離線識別,對于在線VoIP流量識別的研究并不多[4-7]。文獻[4]實現(xiàn)了基于WEKA庫文件的Skype流量在線檢測工具,但存在無netAI工具更新、無可視化界面、算法單一等缺陷。文獻[5]改進了支持向量機算法,能夠節(jié)省1/4的識別時間,但仍然無法滿足在線識別的實時性要求。文獻[6]基于流統(tǒng)計特征,利用機器學習算法構(gòu)建分類器模型,系統(tǒng)在線識別精度為93%。其不足之處在于,沒有研究在線識別系統(tǒng)的實時性,并不是真正意義上的在線識別。文獻[7]基于開源數(shù)據(jù)挖掘工具WEKA中的機器學習算法,針對特定應用Skype提出并設(shè)計出一種基于決策理論的識別工具,然而只能達到82%的精度,無法滿足大流量環(huán)境下的高精度識別。從目前的研究成果來看,在線識別的難點主要在兩方面:一是無法滿足較高實時性要求,二是無法實現(xiàn)高精度識別。

  針對以上問題,本文設(shè)計了VoIP流量在線識別系統(tǒng),不僅能實現(xiàn)實時在線識別,且識別精度高達到92%。

1 VoIP流量在線識別系統(tǒng)

  本文所設(shè)計的系統(tǒng)中,數(shù)據(jù)流定義為兩個主機之間交換的連續(xù)數(shù)據(jù)包。同一條流中所有數(shù)據(jù)包的五元組相同(五元組包括源地址、目的地址、源端口、目的端口和傳輸協(xié)議)。構(gòu)建訓練集的過程需對數(shù)據(jù)包進行分流,根據(jù)思科分流定義,單條TCP流須包含完整語義的開始時刻(SYN)和結(jié)束時刻(FIN/RST),UDP流中兩個包之間的時間間隔不超過30 s[8]。

  1.1 在線識別系統(tǒng)原理

  在線識別系統(tǒng)分為離線分類器建模和在線識別。其中,離線分類器建模如圖1所示,預處理模塊對PCAP文件格式的數(shù)據(jù)集進行分流,并轉(zhuǎn)化為WEKA工具所能識別的CSV文件格式,同時統(tǒng)計每個數(shù)據(jù)流的流特征構(gòu)建成訓練集。算法學習模塊采用Best first search算法和CSF算法去除候選特征中的冗余且不相關(guān)的流特征,獲得最優(yōu)特征子集,再調(diào)用機器學習算法對訓練集進行學習并搭建分類器模型。最后,通過相關(guān)指標評估獲得最優(yōu)分類器模型。

圖像 001.png

圖1  離線分類器框圖

  如圖2所示,本文所設(shè)計的在線識別系統(tǒng)建立在獲得離線分類器的基礎(chǔ)上,提出JPcap邊抓包邊檢測機制,利用JPcap庫編寫探嗅器控制底層網(wǎng)卡抓取數(shù)據(jù)包,同時分流模塊對數(shù)據(jù)包分流并統(tǒng)計流特征。設(shè)定流量累積時間,每次達到閾值時間30 s,將統(tǒng)計好的數(shù)據(jù)流作為測試集送入離線狀態(tài)下構(gòu)建好的分類器進行識別,并將識別出的VoIP流量以IP地址的形式輸出到系統(tǒng)界面,動態(tài)顯示網(wǎng)絡(luò)中VoIP電話狀態(tài)。

圖像 002.png

圖2  在線識別系統(tǒng)

  1.2 預處理模塊

  預處理模塊在離線狀態(tài)進行,為系統(tǒng)搭建分類器提供完整訓練集。該模塊包括獲取數(shù)據(jù)集、文件格式轉(zhuǎn)換與分流統(tǒng)計構(gòu)建訓練集。

  1.2.1 獲取數(shù)據(jù)集

  使用Wireshark軟件抓取PC中運行的特定應用類型流量獲取數(shù)據(jù)集,通過配置交換機鏡像端口將抓取單個PC產(chǎn)生的流量擴展為整個局域網(wǎng)產(chǎn)生的流量。同時使用文獻[4]中提到的Moore數(shù)據(jù)集與Tstat網(wǎng)[9]提供的Skype數(shù)據(jù)集。此外,在數(shù)據(jù)集中新增PC-PHONE端的VoIP類型流量,使系統(tǒng)同時具備PC-PC端與PC-PHONE端VoIP電話的識別能力。

  1.2.2 文件格式轉(zhuǎn)換

  Wireshark軟件數(shù)據(jù)包的存儲格式為PCAP格式。PCAP文件頭包括:數(shù)據(jù)鏈路層14 B包頭+20 B IP包頭+20 B TCP或UDP包頭。預處理模塊通過分析PCAP文件頭信息,編程實現(xiàn)五元組、時間戳及數(shù)據(jù)包長等流特征信息的提取,并轉(zhuǎn)換為WEKA能識別的CSV文件格式。

  1.2.3 分流統(tǒng)計構(gòu)建訓練集

  首先在五元組相同且滿足思科分流定義的條件下,對Wireshark抓取的數(shù)據(jù)包進行分流,利用文獻[2]提供的fullstats分流器,在Linux系統(tǒng)中實現(xiàn)分流。完成數(shù)據(jù)包分流后,統(tǒng)計數(shù)據(jù)流的相關(guān)流特征,并將統(tǒng)計后的數(shù)據(jù)流作為最終訓練集。

  1.3 流特征選擇

  文獻[2]提出了249種流特征,若對每個特征進行統(tǒng)計,將耗費大量的計算時間,成本過高,且并不是所有流特征都適用于VoIP流量識別,因此需要去除不相關(guān)且冗余的流特征,以達到提高模型精確度,減少運行時間的目的。本設(shè)計根據(jù)VoIP語音電話特有的通信屬性對其進行初步篩選,得出20個候選流特征再進行特征選擇。特征選擇首先從候選特征集中產(chǎn)生一個特征子集,然后用評價函數(shù)對該特征子集進行評價,將評價的結(jié)果與停止準則進行比較,若評價結(jié)果比停止準則好就停止,否則就繼續(xù)產(chǎn)生下一組特征子集,直到獲得評價最高的特征子集。本文使用Best first search搜索算法從候選特征集中產(chǎn)生特征子集,然后用CFS(Correalation-based Feature Selection)算法進行評估,得到12個相關(guān)性最好、得分最高的特征子集,如表1所示。

圖像 006.png

  1.4 機器學習算法

  本文著重研究C4.5決策樹算法,為增強系統(tǒng)可擴展性,另在系統(tǒng)中集成了樸素貝葉斯算法(NaiveBayes)與支持向量機算法(SVM)。

  C4.5決策樹是一種經(jīng)典的分類與回歸算法。決策樹的數(shù)據(jù)結(jié)構(gòu)由內(nèi)部節(jié)點和葉子節(jié)點組成,內(nèi)部節(jié)點代表一個特征屬性,葉子節(jié)點代表一個類別[10]。算法的處理過程分為以下幾個步驟:首先,計算數(shù)據(jù)集D的經(jīng)驗熵H(D),熵是一種不純度度量準則:

  QQ圖片20161206110111.png

  式中,pi是屬于第i類的概率。其次,計算特征A對數(shù)據(jù)集D的經(jīng)驗條件熵H(D|A):

  QQ圖片20161206110114.png

  進一步得出信息增益為:

  QQ圖片20161206110117.png

  信息增益比為:

  QQ圖片20161206110120.png

  式中HA(D)為屬性A的信息熵。依次選取信息增益比最大的特征Ag分割數(shù)據(jù)集D為Di,將Di中最大的類作為子節(jié)點再遞歸調(diào)用得到子樹Ti。最終經(jīng)過“悲觀剪枝”修剪決策樹得到損失函數(shù)最小的子樹。

  樸素貝葉斯是基于貝葉斯定理與特征條件獨立假設(shè)的分類方法。對于給定的訓練集,首先基于特征條件獨立假設(shè)學習輸入/輸出的聯(lián)合概率分布,再基于此模型,對給定的輸入x,利用貝葉斯定理求出后驗概率最大的輸出y。樸素貝葉斯的算法效率高,是一種常用的分類算法。

  支持向量機是一種二分類模型,基本模型是定義在特征空間上的間隔最大的線性分類器。其學習策略是間隔最大化,可形式化為一個求解凸二次規(guī)劃的問題,也等價于正則化的合頁損失函數(shù)的最小化問題。

  1.5 在線識別——JPcap邊抓包邊檢測機制

  在線識別的關(guān)鍵技術(shù)是實現(xiàn)在線抓包同時短時間內(nèi)識別出目標流量。本文致力于尋找一個能實現(xiàn)Window系統(tǒng)下在線抓包的工具,而JPcap庫正是實現(xiàn)這一想法的重要類庫。

  JPcap庫是Keita Fujiiy開發(fā)的一套能夠捕獲、發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包的Java類庫[11]。Java語言雖然在TCP/UDP傳輸方面給予了良好的定義,但對于網(wǎng)絡(luò)層以下的控制卻無能為力。JPcap類庫給Java語言提供一個公共接口,類庫使用libpcap和原始套接字API,調(diào)用Jini獲得JavaAPI中的數(shù)據(jù),實現(xiàn)Java語言對底層網(wǎng)卡的控制與鏈路層數(shù)據(jù)包的獲取。

  本文提出JPcap邊抓包邊檢測機制,基于JPcap庫編寫探嗅器實現(xiàn)在線抓包。利用JPcap庫所抓取的數(shù)據(jù)包對象是單個數(shù)據(jù)包。因此,系統(tǒng)在抓包的同時能實現(xiàn)對單個數(shù)據(jù)包按五元組分流并統(tǒng)計其流特征。每當統(tǒng)計時間達到所設(shè)置的閾值時間30 s時,便將這段時間內(nèi)統(tǒng)計好的數(shù)據(jù)流作為測試集送入分類器進行識別,輸出識別的VoIP流IP地址,動態(tài)顯示網(wǎng)絡(luò)中VoIP的狀態(tài),實現(xiàn)真正意義上的VoIP流量實時在線識別系統(tǒng)。

2 實驗結(jié)果與分析

  實驗環(huán)境:新西蘭懷卡托大學基于Java開發(fā)的開源數(shù)據(jù)挖掘平臺weka3.6、一臺裝有Windows 7操作系統(tǒng)和Eclipes的個人PC、一臺華為S5000交換機。

  2.1 評價指標

  評價二分類類型的分類器性能指標為:精度(precision)、召回率(recall)、F1值。實驗以VoIP類為正類,非VoIP類為負類,分類器在測試集上預測結(jié)果為正確或錯誤??赡艹霈F(xiàn)的4種情況記:TP,將正類預測為正類數(shù);FN,將正類預測為負類數(shù);FP,將負類預測為正類數(shù);TN,將負類預測為負類數(shù)。進一步,得到精度:

  QQ圖片20161206110124.png

  召回率為:

  QQ圖片20161206110127.png

  F1值為精度和召回率的調(diào)和均值:

  QQ圖片20161206110130.png

  2.2 實驗數(shù)據(jù)

  本次實驗使用1.5G Skype流,包含了Skype 10個版本,共計1 371條流,其中371條為PC-PHONE端VoIP流量。非VoIP流量1G,使用文獻[2]中提到的Moore數(shù)據(jù)集與通過鏡像端口抓取到的數(shù)據(jù)集。整個訓練集共34 371條數(shù)據(jù)流,覆蓋14種流量類型,具體見表2。

圖像 007.png

  2.3 離線分類器模型結(jié)果分析

  系統(tǒng)識別結(jié)果如圖3所示。離線建模過程如圖3上半部分所示,步驟包括打開訓練集文件、選擇機器學習算法、建模,圖中所示J48即C4.5決策樹算法,結(jié)果框為分類器識別結(jié)果,具體如圖4所示。

圖像 003.png

圖3  系統(tǒng)識別結(jié)果

圖像 004.png

圖4  分類器識別結(jié)果

  實驗使用10折交叉驗證法評估出平均測試誤差最小的分類器,由圖4可知,分類器識別精度為99.9%,召回率為99.6%。圖4最下方為混淆矩陣,對于二分類問題,用2×2矩陣表示,正對角線上表示正確分類的樣本,反對角線表示被錯誤分類的樣本數(shù),結(jié)果顯示有2個非VoIP樣本被分類成VoIP類,6個Skype樣本被分類成非VoIP類。實驗結(jié)果表明,本文所選取的最優(yōu)特征子集大幅提高了分類器的性能指標。由于本文針對VoIP流包長、時間間隔等關(guān)鍵屬性對流特征進行篩選,增強了機器學習算法的學習能力,從而使得分類器識別性能大大提高。

  同樣地,對NaiveBayes和SVM算法分別進行實驗,3個算法搭建的分類器識別結(jié)果對比圖如圖5所示??芍?,基于C4.5決策樹算法分類器的3個評價指標均最高。這是因為C4.5決策樹算法建模時不依賴于網(wǎng)絡(luò)流量類型的分布,對于不同類型的流量數(shù)據(jù)有更強的適應能力,在分析較大訓練集時優(yōu)于依賴先驗概率的NaiveBayes算法,且內(nèi)存需求小于SVM算法,因此得到了最好的識別精度。

圖像 005.png

圖5  3種算法分類器結(jié)果對比

  2.4 在線分類器識別結(jié)果分析

  在線識別如圖3下半部分所示。首先打開本地網(wǎng)卡開始抓包,設(shè)定混雜模式抓取流經(jīng)本地網(wǎng)卡的所有數(shù)據(jù)包,同時對數(shù)據(jù)包進行分流并統(tǒng)計流特征。每達到設(shè)定的30 s閾值時,選擇對應算法的分類器對測試集進行在線識別,識別出VoIP類型流量并以IP地址形式輸出到圖示結(jié)果框。圖3僅是一次測試結(jié)果,3個IP地址均為VoIP通話主機地址,結(jié)果表明系統(tǒng)實時準確識別出了當前網(wǎng)絡(luò)中的VoIP通話。

  接下來,累積進行100次在線實驗,對比3種分類器在線識別精度,結(jié)果如表3所示。由表3可知,在線識別精度最高的分類器為基于C4.5算法的分類器。

圖像 008.png

  而作為在線識別系統(tǒng),除精度以外,還需考慮第二個核心指標——實時性。這里也對3種算法的建模時間與識別時間進行對比,結(jié)果如表4所示。由表4可得,基于C4.5算法的在線識別時間最短,建模時間略低于NaiveBayes算法,而NaiveBayes在線識別時間低于C4.5算法,SVM建模與識別時間均最長。由于C4.5決策樹模型處理樣本時,僅需根據(jù)網(wǎng)絡(luò)流流特征值自頂向下進行比較,找到相應葉節(jié)點即可,處理簡單,處理效率更高,因此識別速度更快。

圖像 009.png

  結(jié)合表3、表4的結(jié)果對精度與實時性指標進行分析,得到C4.5決策樹算分類器識別精度最高,且在線實時性最好;NaiveBayes分類器雖然建模時間短,但在線實時性略差,且精度較低;SVM分類器精度與實時性均不佳。在實際應用中應同時保證高識別精度與實時性,因此本文選擇C4.5決策樹為系統(tǒng)的核心算法。實驗結(jié)果表明,本文所設(shè)計的VoIP流量在線識別系統(tǒng)確實能同時滿足高精度與實時性。

3 結(jié)束語

  本文設(shè)計并實現(xiàn)了基于機器學習的VoIP流量在線識別系統(tǒng),在大幅提高VoIP流量識別精度的同時保證了系統(tǒng)的實時性,且有良好可視化界面。實驗結(jié)果表明,本文所設(shè)計的VoIP流量在線識別系統(tǒng)離線識別精度達99.9%,在線識別精度達92%,且識別時間短,能夠快速識別出目標流量并顯示VoIP流量活動的IP地址。不過,本文的訓練集未能涵蓋更多種類的流量類型,對未知流量識別仍有待提高。未來的工作旨在建立一種更優(yōu)化的在線識別系統(tǒng),繼續(xù)增強樣本容量,增加更多種類的流量類型并支持更多的算法。

  參考文獻

  [1] 梁偉,陳福才,李海濤.一種基于C4.5決策樹的VoIP流量識別方法[J].計算機應用研究,2012,29(9):3418-3421.

  [2] MOORE A,ZUEV D,CROGAN M.Discriminators for use in flow-based classification[M].Queen Mary and Westfield College,Department of Computer Science,2005.

  [3] OKABE T,KITAMURA T,SHIZUNO T.Statistical traffic identification method based on flow-level behavior for fair VoIP service[C].VoIP Management and Security,2006.1stIEEE Workshop on.IEEE,2006:35-40.

  [4] CALCHAND A O,DINH V T,BRANCH P,et al.Skype

  [5] 魯剛,張宏莉,葉麟.P2P流量識別[J].軟件學報,2011,22(6):1281-1298.

  [6] GU C,ZHANG S,SUN Y.Realtime encrypted traffic identification using machine learning[J].Journal of Software,2011,6(6):1009-1016.

  [7] DI MAURO M,LONGO M.Skype traffic detection:A decision theory based tool[C].Security Technology(ICCST),2014International Carnahan Conference on.IEEE,2014:1-6.

  [8] 魯剛,張宏莉,葉麟.P2P流量識別[J].軟件學報,2011,22(6):1281-1298.

  [9] TCP statistic and analysis tool.[EB/OL].[2016-01-02].http://tstat.tlc.polito.it/.

  [10] 李航. 統(tǒng)計學習方法[M].北京:清華大學出版社,2012.

  [11] 石慧慧.基于Jpcap的網(wǎng)絡(luò)流量采集監(jiān)控系統(tǒng)研究與設(shè)計[D].南京:南京林業(yè)大學,2010.

  


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。