趙 杰,董育寧,魏 昕
(南京郵電大學 通信與信息工程學院,南京 210003)
網(wǎng)絡(luò)流分類(network traffic classification,NTC)技術(shù)在互聯(lián)網(wǎng)中有著廣泛的應(yīng)用,如資源分配、服務(wù)質(zhì)量(quality of service,QoS)保證、網(wǎng)絡(luò)服務(wù)提供商(internet service provider,ISP)計費和異常網(wǎng)絡(luò)流量檢測[1]等。早期NTC經(jīng)過了以下幾個研究階段:基于端口、深度包檢測、主機行為[2]。但是這些方法無法適用于加密流[1]。隨著機器學習逐漸取而代之,出現(xiàn)了包括樸素貝葉斯估計[3]、無監(jiān)督聚類[4]、支持向量機[5]、隨機森林[6]和K-Means[7]等流分類模型。近年來,隨著互聯(lián)網(wǎng)流量中出現(xiàn)更為復(fù)雜的模式,深度學習模型在NTC方面取得了不錯的成績,其學習復(fù)雜模式和自動提取特征能力使其成為NTC的理想選擇,尤其是卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[8]。但這都需要收集大量的標記訓練集,而且都是面向應(yīng)用類型上的NTC,無法滿足高速變化且海量數(shù)據(jù)的流媒體環(huán)境。實際上,ISP通常只需要知道數(shù)據(jù)流的所需服務(wù)類別(class of service,CoS)[9]就可決定其優(yōu)先權(quán)和資源分配。為此,本文研究直接為數(shù)據(jù)流分配CoS標簽,而不必考慮其應(yīng)用類別[9]。同時用多任務(wù)學習(multi-task learning,MTL)方法中各任務(wù)間共享模型信息的特性來減少對標記數(shù)據(jù)的使用。
除了建立模型框架之外,還需要合理解釋模型選擇的理由。這對于直接CoS方法來說是一個具有挑戰(zhàn)性的問題,因為它忽略了應(yīng)用類型識別的階段[9]。本文借鑒博弈論,通過將學習模型作為一個等價的合作博弈模型來計算每個特征對結(jié)果的影響(shapley value,SV)[10]。由于每條數(shù)據(jù)流有數(shù)百個特征,要精確計算所有特征的SV值,將導(dǎo)致很高的時間和空間復(fù)雜度。其次是很難理解和分析每個特征對總體CoS分類的貢獻作用。為此,在實驗中首先基于領(lǐng)域知識將流特征劃分為2個宏特征(macro feature,MF),分別在MF下進行SV值計算,選擇對模型貢獻突出的特征映射為MF,再將每個MF映射為一種服務(wù)類型。本文的主要貢獻如下。
1)選擇合適特征映射為CoS 標簽。包括基于領(lǐng)域知識將特征分為MF,對每類MF進行SV分析,選擇出對模型貢獻大的特征,同時分析特征之間的皮爾森相關(guān)系數(shù)(Pearson correlation coefficient,PCC)[11],為多任務(wù)模型(multi-task model,MTM)選擇出貢獻最大的特征,進而映射為CoS標簽任務(wù)。與現(xiàn)有方法[9]從用戶角度和獲取特征難易程度來選取CoS任務(wù)不同,本文考慮了選取CoS的合理性。
2)CoS等級優(yōu)化分析。分析每個CoS任務(wù)等級的分布情況,利用決策樹分箱(decision tree binning,DTB)算法優(yōu)化每個CoS等級閾值(cos threshold,CT)的劃分,提高總體準確性?,F(xiàn)有方法通過直方圖和線性計算來劃分閾值,容易導(dǎo)致在預(yù)處理部分增加錯分率。本文中通過DTB合理化閾值劃分,能夠降低誤分率。
3)優(yōu)化網(wǎng)絡(luò)參數(shù)。優(yōu)化調(diào)整各網(wǎng)絡(luò)模型時間損耗和分類準確性的穩(wěn)定相關(guān)系數(shù)。
常用的流分類機器學習方法分為有監(jiān)督、無監(jiān)督和半監(jiān)督學習方法[12]。文獻[12]的平均聚類時間僅為傳統(tǒng)凝聚分類器的三分之一左右,在時間消耗上有著較明顯的優(yōu)勢,然而,由于其簡單性、手動特征提取以及缺乏捕獲復(fù)雜模式的高學習能力,其準確率有所欠缺。隨著深度學習方法在圖像分類、語音識別等各種問題上的成功應(yīng)用,研究人員將這些方法用于流量分類問題中。如CNN和堆疊式自動編碼器(stacked automatic encoder,SAE)框架[13]。該框架使用CNN從原始網(wǎng)絡(luò)流量中提取高級特征,利用SAE對原始流量的統(tǒng)計特征(statistical feature,SF)進行編碼以減少信息損失。雖然深度神經(jīng)網(wǎng)絡(luò)在一定程度上解決了機器學習初步人工特征選擇的缺點,但卻需要大量的標記數(shù)據(jù)集。MTM既繼承深度學習自動提取特征的優(yōu)點,又能使用少量標記數(shù)據(jù)完成較好的分類準確性。
文獻[14]提出通過將原始數(shù)據(jù)流轉(zhuǎn)換為圖片 FlowPic,然后使用CNN 來預(yù)測流類別程序。除了可以將原始字節(jié)數(shù)據(jù)轉(zhuǎn)換成圖片,文獻 [15]中利用再生核希爾伯特空間將每個流的時間序列特征轉(zhuǎn)換為二維圖像,生成的圖像被用作CNN模型的輸入。其模型以超過99%的準確率優(yōu)于經(jīng)典的機器學習方法。二維圖像的數(shù)據(jù)輸入相比于原始流的輸入具有更豐富的信息。但如果對一些短流可能無法提取到足夠的特征,導(dǎo)致在轉(zhuǎn)化圖片時會用大量的無用信息(0)填充。對于短流的流分類更符合早期在線流量分類問題。文獻[16]討論了CNN能夠處理加密流量分類問題的根本原因,并提出基于長短時記憶(long short-term memory,LSTM)的雙向流序列網(wǎng)絡(luò)(bidirectional flow sequence network,BFSN)。其從原始流中學習出代表性特征,然后輸入到端到端分類模型對其進行分類;并利用加密流的包長度和方向信息構(gòu)造雙向流量序列,得到不錯的準確性。文獻[17]用順序消息特征(sequential message characterization,SMC)和6 個成功提取的消息大小信息的輸入,特別是對于中值超過 35 個消息段的大流量,就可實現(xiàn)早期在線流量分類。這些方法都是面向應(yīng)用類型的分類,也就是根據(jù)應(yīng)用類別為數(shù)據(jù)流分配標簽,無法解決新應(yīng)用的不斷出現(xiàn)。為此,可以研究面向CoS的網(wǎng)絡(luò)流分類,直接標注CoS標簽,而不必考慮它們的應(yīng)用類別標簽[9]。
在合作博弈論的啟發(fā)下,利用SV 構(gòu)建一個加性的解釋模型,所有的特征都視為“貢獻者”[10]。對于每個預(yù)測樣本,模型都產(chǎn)生一個預(yù)測值,SV就是該樣本中每個特征所分配到的數(shù)值。其最大的優(yōu)勢是SV能反映出樣本中特征的正負影響力。
本文的框架模型主要分為3個部分:數(shù)據(jù)預(yù)處理、特征SV分析和MTM。
為了解決標記數(shù)據(jù)問題,可以將數(shù)據(jù)流分類構(gòu)造成一個MTM,其中帶寬吞吐需求(bandwidth throughput requirements,BT-Req)和時間敏感度(time delay sensitive,TD-Sen)任務(wù)隨流量分類(traffic classification,TC)一起預(yù)測。對于前2個任務(wù)使用大量容易獲得的無標簽樣本;而對于TC任務(wù),使用少量的有標簽樣本,可以獲得較高的準確率。因此,MTM避免了需要一個大的標記流量數(shù)據(jù)集。分別在ISCX公共數(shù)據(jù)集[18]和南郵數(shù)據(jù)集上進行實驗,驗證了該預(yù)處理的有效性和合理性。
基于領(lǐng)域知識將76個SF分為兩類MF,利用SV分析每類MF下的特征對SV貢獻,分別討論Facebook Audio (FA)、Hangouts Video (HV)、Skype File、Sftp和Netflix的Packet Information下53個特征對模型的貢獻值。圖1為FA應(yīng)用類型的特征SV分布。橫坐標為SV值,每個點代表一個樣本,顏色越紅說明特征本身數(shù)值越大,顏色越藍則說明數(shù)值越小??梢钥闯?Packet Length Min(PLM)是一個很重要的特征,它基本上與SV呈負相關(guān)。Bwd Packet Length Min(BPLM)也會明顯影響SV,但不同的是它與SV成正相關(guān)。
圖1 Packet Info特征的SV貢獻榜Fig.1 SV contribution list of Packet Info features
除了對于單個數(shù)據(jù)進行解釋之外,還可以對整個模型特征的重要度進行分析,這里只考慮在本文模型下的特征貢獻榜、重要度[10],分別在Packet Info和Time Info兩類MF計算特征的SV。圖2為統(tǒng)計特征序列箱形圖,圖2a為Packet Info下所有SF的SV部分圖。從圖2a可以看出,BPLM對模型的貢獻最大,其次是PLM;從圖2b可以看出,Flow IAT Max貢獻最大。
圖2 MF特征重要度Fig.2 Importance of MF features
MTM各任務(wù)之間應(yīng)該盡量不相關(guān),這樣可以最大程度地發(fā)揮任務(wù)間的共享特性。所以,利用PCC來計算特征之間的相關(guān)性[11]。總體相關(guān)系數(shù)r定義為2個變量X、Y(特征)之間的協(xié)方差和兩者標準差乘積的比值為
(1)
根據(jù)MF的特性和在802.1P[19]中定義服務(wù)等級的優(yōu)先級有8種。該標準建議,最高優(yōu)先級為7,應(yīng)用于關(guān)鍵性網(wǎng)絡(luò)流量,如路由選擇信息協(xié)議(RIP)和開放最短路徑優(yōu)先(OSPF)協(xié)議的路由表更新。優(yōu)先級6和5主要用于延遲敏感(delay-sensitive,DS)應(yīng)用程序,如交互式視頻和語音。優(yōu)先級4到1主要用于受控負載(controlled-load,CL)應(yīng)用程序,如流式多媒體和關(guān)鍵性業(yè)務(wù)流量。同時802.1P說明網(wǎng)絡(luò)管理員可以根據(jù)實際來決定映射情況,所以在本文中,將DS和CL擴展為2種不同的CoS任務(wù)。
International Telecommunications Union(ITU)用QoS等級(常為0~4個)來衡量用戶服務(wù)等級,所以CoS大多繼承了QoS下0~4個等級來確定流量優(yōu)先級和資源分配,合理優(yōu)化CoS等級也十分重要。本文采用DTB來合理化CoS等級。對所有樣本只包含兩個SF (FIT(Fwd IAT Total)和PLM)的序列T=[FIT,PLM,Ai(樣本標簽)],討論Ds和Cl兩種CoS任務(wù)SF數(shù)據(jù)分布特性,其箱形圖[20]分布分別記為Td和Tc,如圖3所示。從圖3a可以看出,不同應(yīng)用類型有較明顯的集中區(qū)域分層現(xiàn)象,HV的FIT集中值最高;FA的FIT集中值最低;從圖3b可以看出,FA和HV的PLM是一樣的,這也是合理的[21]。
圖3 統(tǒng)計特征序列箱形圖Fig.3 Box chart of statistical characteristic sequence
在CT劃分中,通過對連續(xù)值屬性進行分箱操作(離散化),使其對異常數(shù)據(jù)有更好的魯棒性。DTB的原理是將要離散化的變量用樹模型擬合目標變量,用決策樹內(nèi)部節(jié)點的閾值作為分箱的切點。根據(jù)Gini系數(shù)[22]最大的點作為閾值劃分數(shù)據(jù)集,這樣得到CoS不同任務(wù)的等級閾值劃分如表1所示。
表1 CoS等級閾值劃分Tab.1 CoS level threshold division
對于復(fù)雜的問題,分解為簡單且相互獨立的子問題來單獨解決,然后再合并結(jié)果得到解。這樣做看似合理,其實不正確。因為實際中很多問題不能分解為多個獨立的子問題;即使可以分解,各個子問題之間也是相互關(guān)聯(lián)的。MTM就是為了解決此問題。把多個相關(guān)的任務(wù)放在一起學習,任務(wù)之間共享一些因素,可以在學習過程中共享所學到的信息,這是單任務(wù)學習所不具備的。
本文模型框架如圖4所示。主要分為預(yù)處理和MTL兩個階段。預(yù)處理階段主要包括:①Wireshark提取原始PCAP數(shù)據(jù);②利用CICFlowMeter[23]提取統(tǒng)計特征;③基于領(lǐng)域知識將統(tǒng)計特征劃分為宏特征;④特征SV分析并進行CoS映射。MTL階段中模型部分使用LeNet-5[24]模型,選用最大池化;除了包含 SoftMax 的最后一層之外,模型中使用ReLU作為激活函數(shù)。其他參數(shù)為卷積層1(32*3*2)→池化層(2)→卷積層2(64*3*2)→池化層(2)→卷積層3(128*3*2)→池化層(2)→Softmax(256)輸出。
圖4 面向CoS的MTMFig.4 MTM for CoS
實驗使用ISCX VPN non-VPN(2016)數(shù)據(jù)集(簡稱為ISCX)[18]和2021年在南京郵電大學校園網(wǎng)采集的南郵數(shù)據(jù)集(或ND)進行驗證。ND利用WireShark抓包工具,通過在不同的網(wǎng)站抓取各種業(yè)務(wù)流數(shù)據(jù),包含點播和直播視頻流、文件下載、網(wǎng)頁瀏覽和郵件共計4 707條數(shù)據(jù)流。經(jīng)過預(yù)處理,產(chǎn)生4元組數(shù)據(jù)(時間戳、相對時間、數(shù)據(jù)包大小和數(shù)據(jù)包方向)的輸入文件,并利用CICFlowMeter[23]計算83個SF (源地址、端口號、協(xié)議等在本文中用不到,所以實驗只用了76個,如表2所示)。ISCX包含不同應(yīng)用程序的43 590個加密TCP流PCAP文件。實驗中主要用到FA、HV、Skype file、Sftp和Netflix五種應(yīng)用數(shù)據(jù)。本方法只使用小部分標簽就可預(yù)測MTM的數(shù)據(jù)流類別。對于現(xiàn)代加密方法,例如QUIC[25]和TLS1.3[26]傳輸層協(xié)議,有效負載信息基本沒用。所以,本文將BT-Req和TD-Sen作為單獨的任務(wù)輸出結(jié)果。
表2 宏特征Tab.2 Macro features
實驗的評估包括分類準確性和時間性能評估。
采用總體準確度(Accuracy)、精度(P)、召回率(R)和F1分數(shù)(詳見3.5對比試驗)來量化分類器的分類準確率[27],其中,Accuracy是指所有分類正確的樣本占全部樣本的比例;P為預(yù)測是正例的結(jié)果中,確實是正例的比例;R是所有正例樣本中被找出的比例;F1是P和R的調(diào)和平均。其計算公式為
(2)
(3)
(4)
(5)
(2)—(5)式中:TP和FP分別表示該類樣本正確分類和錯分的樣本數(shù);FN和TN分別表示其他類樣本誤分為該類和正確分類的樣本數(shù)。
時間性能指標為訓練和識別時間平均值。
通過在Keras上搭建模型進行訓練和測試;實驗環(huán)境是Windows 10,CPU為Inter(R) Core(TM) i5-6300HQ,內(nèi)存16 GB。實驗參數(shù)的設(shè)定:No.epochs=100;Batch size=64;λ =1;timestep=120。分別采用10、20、50和100個樣本來訓練達到穩(wěn)定和防止過擬合。優(yōu)化器使用Adam并自適應(yīng)學習,參數(shù)默認:Learningrate=0.001,指數(shù)衰減率beta1=0.9,beta2=0.999,通過自適應(yīng)學習以達到全局最優(yōu)。實際訓練過程真實學習率lrt,t為時間步長。
t←t+1
(6)
(7)
使用交叉熵loss函數(shù)(見(7)式)。
(8)
多分類中的loss函數(shù)為
(9)
(9)式中:yi表示樣本i標簽;ai表示樣本i預(yù)測為正類的概率。
圖5為ISCX下MTM中各任務(wù)準確性迭代曲線。從圖5可以看出,BT-Req和TC任務(wù)大約在5個epochs時就基本收斂;只有TD-Sen任務(wù)在訓練40個epochs時才收斂。同時可以看出,TC任務(wù)的準確性在0.99左右,比TD-Sen(0.92)和BT-Req(0.97)任務(wù)要高。這是因為TD-Sen和BT-Req這2個單任務(wù)之間的關(guān)聯(lián)性很弱,但是他們對TC任務(wù)有貢獻,會為TC的模型共享參數(shù),提高其總體準確性。而TD-Sen任務(wù)的準確性較低的原因是FA和HV在Packet info上較為相似,弱化了最后的準確性。
圖5 ISCX下MTM中各任務(wù)準確性迭代曲線Fig.5 Iteration curve of each task in MTM under ISCX dataset
將TD-Sen 、BT-Req以及TC這3個任務(wù)分別單獨輸入到CNN模型中。圖6為ISCX下單任務(wù)CoS準確性迭代曲線。從圖6可以看出,BT-Req和TC在較短時間內(nèi)可以達到高的準確性。而TD-Sen相比于其他兩個任務(wù)的準確性要低一點。
圖6 ISCX下單任務(wù)CoS準確性迭代曲線Fig.6 Iterative curve of single-task CoS accuracy under ISCX dataset
在遷移學習(transfer learning,TL)中把預(yù)訓練好的模型參數(shù)遷移到新模型來幫助其訓練??紤]到大部分數(shù)據(jù)或任務(wù)都是存在相關(guān)性的,所以通過TL模型可以將已經(jīng)學到前2個任務(wù)模型的參數(shù)通過某種方式來分享給新模型,從而加快并優(yōu)化模型的學習效率。圖7為ISCX下TL的TC任務(wù)準確性迭代曲線。由圖7可見,TC在10個epochs之后達到近0.99的穩(wěn)定準確性。TL不同于MTM之處在于后者是在同一時間和空間下完成訓練和識別過程,而前者是在不同的時間和空間分別完成訓練和識別過程。
在文獻[9]中從用戶角度以及獲取特征難易程度來選取CoS任務(wù),卻沒有考慮其合理性。本文嘗試做出合理性解釋,并與文獻[9]方法進行性能對比。表3為ISCX數(shù)據(jù)集下的性能對比。從表3可以看出,MTM的3個任務(wù)的準確性明顯高于文獻[9]的方法;尤其是TC任務(wù),文獻[9]方法的準確性在訓練樣本數(shù)為100時也只有80%;而在MTM中當樣本數(shù)為10時就已經(jīng)達到了較高的準確性,隨著樣本數(shù)的增加逐漸出現(xiàn)過擬合現(xiàn)象。體現(xiàn)了本文MTM可以用更少的樣本實現(xiàn)更高準確性的優(yōu)勢。在TL框架下,TC的準確性也比[9]方法高。在單任務(wù)模型下文獻[9]方法前2個輔助任務(wù)Bandwidth(Bw)和Duration(Du)表現(xiàn)較好,但最重要的TC任務(wù)卻表現(xiàn)較差。而本文方法在單任務(wù)框架下各任務(wù)都表現(xiàn)較好。所以總體來說,本文選擇的CoS任務(wù)和DTB劃分比文獻[9]的效果更好。其原因在于通過SV和PCC進行特征選擇,間接將SF映射為CoS任務(wù)并解釋其合理性,相比于文獻[9]從用戶的角度選擇CoS任務(wù)更加合理。而且在文獻[9]中對CoS任務(wù)只是單純地通過直方圖和線性計算來劃分閾值,導(dǎo)致在預(yù)處理部分就增加了錯分率。本文通過DTB合理劃分閾值,能夠減少誤分率。表4為ND數(shù)據(jù)集下的性能對比,由表4可見,在ND下總體準確性優(yōu)于文獻[9]。
表3 不同方法準確性對比(ISCX)Tab.3 Accuracy comparison of different methods(ISCX)
表4 不同方法準確性對比(ND)Tab.4 Accuracy comparison of different methods
表5為本文方法與文獻[9]方法的時間性能對比。在本文方法中,單任務(wù)模型中各任務(wù)的訓練時間(training time,TT)分別是0.89 s、0.89 s和54.56 ms,而TL模型下TC任務(wù)TT為0.83 s/epoch;相比之下,MTM的TT為1.90 s/epoch就顯得比較長??赡苁且驗槠漕A(yù)處理過程較為復(fù)雜,以更多的時間代價獲得更高分類準確性。同時可以看出,單任務(wù)模型中各任務(wù)的識別時間(inference time,Int)分別是0.19、0.19和0.20 ms。TL的Int為0.19 ms。由此可知,TL通過遷移參數(shù)來幫助新模型訓練,增加了TT,但降低了TC的Int;相比之下,多任務(wù)的Int比單任務(wù)和TL模型的Int長。另外,本文方法的TT比文獻[9]方法都要短;這是因為做了更為復(fù)雜的預(yù)處理,使訓練過程簡化,同時降低Int,體現(xiàn)了預(yù)處理的優(yōu)越性。表6為3個任務(wù)P,R,F1比較,從表6可知,MTM中TC任務(wù)性能最好,體現(xiàn)了輔任務(wù)為主任務(wù)貢獻參數(shù)的優(yōu)點。
表5 本文方法與文獻[9]方法的TT(/epoch)和Int(/樣本)比較Tab.5 Comparison of TraT (/epoch) and Int (/sample) of this method and [9] method
表6 本文方法與文獻[9]方法三個任務(wù)的P,R,F1比較Tab.6 Comparison of the three tasks P,R,F1 of this method and literature[9] method %
圖8為本文方法MTM各任務(wù)混淆矩陣,從圖8可以看到,本文方法BT-Req和TC兩個任務(wù)的誤分率非常低。在BT-Req中只有CoS等級為2的情況下被錯分為CoS-0(0.03)和CoS-1(0.02)。在TC任務(wù)下只有CoS-3被錯分為CoS-0(0.03)。不過TD-Sen誤分率都比較大。圖9為文獻[9]方法MTM各任務(wù)混淆矩陣,從圖9可知,Bw和TC兩個任務(wù)的準確性較高,Du的錯分率比較大??偟膩碚f,相對應(yīng)的任務(wù)本文方法優(yōu)于文獻[9]方法。
圖8 本文方法MTM各任務(wù)混淆矩陣Fig.8 Confusion matrix of MTM tasks in this paper
圖9 文獻[9]方法MTM各任務(wù)混淆矩陣Fig.9 Confusion matrix of MTM tasks in literature[9]
提出了一種利用SV來選擇CoS任務(wù)的方法。通過基于領(lǐng)域知識將多維特征降維到二維MF,以此來減少計算復(fù)雜度。以每個MF為入手點,借鑒博弈論來分析每個特征對模型的貢獻大小(SV),然后計算每個MF下貢獻突出的特征之間的PCC,去除冗余特征。選出的特征映射為Ds和Cl兩種任務(wù)。利用DTB算法合理劃分CT。實驗使用ISCX和ND將Ds、Cl和TC任務(wù)通過MTM進行訓練;與單任務(wù)CNN和TL模型對比,MTM有明顯優(yōu)勢。實驗結(jié)果顯示本文方案在準確性和Int方面優(yōu)于文獻方法。本方法還有待改進之處,例如如何提高模型的時間效率,需要進一步的研究。