孔 鎮(zhèn),董育寧
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
網(wǎng)絡(luò)流量分類是網(wǎng)絡(luò)研究的一個(gè)重要分支[1]。隨著網(wǎng)絡(luò)視頻需求的增加,正確分類網(wǎng)絡(luò)視頻服務(wù)類型,對網(wǎng)絡(luò)資源管理和提升服務(wù)質(zhì)量有著重要意義。根據(jù)思科白皮書顯示,到2023年,視頻流量將占所有網(wǎng)絡(luò)流量的82%[2]。由于視頻業(yè)務(wù)對帶寬以及延遲抖動(dòng)的要求都比較高,所以網(wǎng)絡(luò)擁塞現(xiàn)象會(huì)變得嚴(yán)重,從而給網(wǎng)絡(luò)管理帶來不小的挑戰(zhàn)[3]。因此,對視頻流量進(jìn)行細(xì)粒度分類能夠幫助互聯(lián)網(wǎng)服務(wù)商(ISP)根據(jù)不同的視頻質(zhì)量需求提供有區(qū)別的網(wǎng)絡(luò)資源配置,從而保證服務(wù)質(zhì)量(QoS)[4]。然而,眾多新應(yīng)用的出現(xiàn)以及網(wǎng)絡(luò)加密技術(shù)和動(dòng)態(tài)端口的應(yīng)用,對網(wǎng)絡(luò)流量分類產(chǎn)生了極大的挑戰(zhàn)[5]。
當(dāng)前,網(wǎng)絡(luò)流量分類方法主要可以分為:基于端口、基于深度包檢測(DPI)[6]、基于傳統(tǒng)機(jī)器學(xué)習(xí)(ML)[7]的分類方法,以及基于機(jī)器學(xué)習(xí)中最新的深度學(xué)習(xí)(DL)[8]方法。由于越來越多的應(yīng)用采用動(dòng)態(tài)端口號(hào),以及流加密技術(shù)的普遍使用,前兩種分類方法不再有效。傳統(tǒng)ML的網(wǎng)絡(luò)流量分類方法可以避免前兩種方法的不足,主要有SVM[9]、隨機(jī)森林[10]、k均值[11]和高斯混合模型[12]等算法。 該分類方法基于這樣一個(gè)事實(shí):不同的應(yīng)用在進(jìn)行網(wǎng)絡(luò)通信時(shí)會(huì)有不同的流行為特征,根據(jù)這些特征就能夠?qū)ζ溥M(jìn)行分類[13]。然而,由于不同的應(yīng)用,其特征不盡相同,因而挖掘這些特征需要一定的領(lǐng)域知識(shí)和大量的時(shí)間[14]。因此,傳統(tǒng)ML分類方法在特征設(shè)計(jì)和選擇方面有著新的挑戰(zhàn)[15],而這些問題直接影響分類效果[16]。最近,DL在許多方面取得了成功[17],特別是卷積神經(jīng)網(wǎng)絡(luò)(CNN)在圖片分類方面的應(yīng)用,它能夠自動(dòng)地從原始數(shù)據(jù)中學(xué)習(xí)到特征,這一特點(diǎn)使得其自然地彌補(bǔ)了傳統(tǒng)ML的缺點(diǎn)[18]。因此,CNN開始被應(yīng)用于網(wǎng)絡(luò)流量分類中,并得到了不錯(cuò)的結(jié)果[19]。然而,使用有效載荷數(shù)據(jù)作為模型輸入的方法無法處理加密流量。因此,有必要研究采用其他信息,如文獻(xiàn)[20]使用了單向流統(tǒng)計(jì)信息。但該方法得到的信息不充分,會(huì)影響分類效果。針對此問題,本文提出一種改進(jìn)方法,使用流的雙向信息以及交叉信息作為CNN輸入,以期改善對網(wǎng)絡(luò)流量細(xì)粒度分類的效果。
本文所說的細(xì)粒度分類,是將同一大類業(yè)務(wù)(例如,視頻業(yè)務(wù)、音頻業(yè)務(wù)等)進(jìn)一步分為子類業(yè)務(wù)(如,將視頻業(yè)務(wù)細(xì)分為不同分辨率的視頻流等)[21]。目前,對網(wǎng)絡(luò)流量的細(xì)粒度分類面臨著諸多挑戰(zhàn),這是由于各子類之間存在許多相同或相似的特征;例如,同一視頻業(yè)務(wù)上不同分辨率的數(shù)據(jù)在協(xié)議、端口號(hào)、加密方式等方面是相同的。目前似乎較少見用DL進(jìn)行網(wǎng)絡(luò)流量細(xì)粒度分類的文獻(xiàn)報(bào)道。
本文通過對采集的網(wǎng)絡(luò)視頻流量進(jìn)行分析,并針對視頻流量多采用加密處理的特點(diǎn),提出了一種適用于CNN的數(shù)據(jù)處理方法。它只使用數(shù)據(jù)包相關(guān)的特征,例如包到達(dá)時(shí)間、包大小、包的方向等。然后將這些信息映射為圖片,并將得到的圖片訓(xùn)練以及測試CNN,得到細(xì)粒度分類結(jié)果。本文分類的視頻數(shù)據(jù)集包含3種不同分辨率的點(diǎn)播和直播視頻數(shù)據(jù),共6個(gè)子類:點(diǎn)播480p、720p、1 080p,和直播480p、720p、1 080p。視頻流量數(shù)據(jù)采自中國主流視頻網(wǎng)站,包括嗶哩嗶哩視頻(https://www.bilibili.com),騰訊視頻(https://v.qq.com),優(yōu)酷視頻(https://www.youku.com),斗魚直播(https://www.douyu.com)和虎牙直播(https://www.huya.com)。同時(shí),為了驗(yàn)證該方法的性能,同樣使用了“ISCX non-VPN”數(shù)據(jù)集實(shí)現(xiàn)粗粒度分類,該數(shù)據(jù)集包含4種網(wǎng)絡(luò)業(yè)務(wù)類型,包括語音通話(audio),視頻通話(video),文字聊天(chat)和IP語音(VoIP)。表1和表2給出了這兩個(gè)數(shù)據(jù)集的詳細(xì)信息。本文旨在不進(jìn)行特征設(shè)計(jì)的前提下實(shí)現(xiàn)對網(wǎng)絡(luò)流量的細(xì)粒度分類。實(shí)驗(yàn)結(jié)果表明,本文所提的方法相比于現(xiàn)有方法,具有較高的分類準(zhǔn)確率。本文的主要貢獻(xiàn)有以下3點(diǎn):
表1 視頻數(shù)據(jù)集信息
表2 “ISCX non-VPN”數(shù)據(jù)集[22]信息
(1)提出了一種擴(kuò)展特征信息的方法。與已有的方法不同,本文方法所生成的圖片中包含了雙向流的信息以及交叉信息。這些信息轉(zhuǎn)化為圖片形狀反映出來。
(2)避免了特征設(shè)計(jì)過程。以生成的圖片為輸入,使用CNN模型進(jìn)行分類;相比于傳統(tǒng)ML方法,它不僅能夠自動(dòng)尋找特征,還能自動(dòng)更新特征。
(3)本文方法對不同粒度的網(wǎng)絡(luò)流量分類任務(wù)都有較好的表現(xiàn)。相比于已有方法,本文方法在粗分類和細(xì)分類上都具有優(yōu)勢。
Qin等[15]提出了一種避免特征設(shè)計(jì)的網(wǎng)絡(luò)流量分類的方法,通過計(jì)算雙向流數(shù)據(jù)包中有效載荷大小分布概率函數(shù)(PSD),并使用Renyi交叉熵計(jì)算PSD與某一應(yīng)用的相似性,從而達(dá)到分類目的。在DL方法研究方面,Wang等[23]將數(shù)據(jù)包的頭部信息和有效載荷信息轉(zhuǎn)化為圖片并用CNN模型進(jìn)行正常和惡意流量的分類,取得了較好的結(jié)果。在文獻(xiàn)[24]中,Wang等應(yīng)用同樣的方法對包括VPN與non-VPN在內(nèi)的12類使用1D-CNN進(jìn)行分類,并指出,使用1D-CNN比使用2D-CNN的分類效果要好。Lotfollahi等[25]使用了類似的方法,區(qū)別在于他們是基于包級(jí)別的;他們使用IP頭部信息和前1 480比特的負(fù)載信息,基于1D-CNN和棧式自動(dòng)編碼(SAE)模型進(jìn)行分類。Lim等[26]將有效載荷轉(zhuǎn)換為比特序列,并把每4比特分為一組再轉(zhuǎn)換為十進(jìn)制數(shù)作為圖片像素的大小,實(shí)驗(yàn)表明使用有效載荷信息越多,CNN模型的分類效果越好;這是由于使用的有效載荷信息越多,CNN模型得到的信息越多。在文獻(xiàn)[27]中,作者使用統(tǒng)計(jì)特征與包特征相結(jié)合的方法對QUIC協(xié)議的流量進(jìn)行了分類。他們首先使用統(tǒng)計(jì)特征和隨機(jī)森林算法區(qū)分出Google Hangouts流量,然后使用CNN模型對其余流量進(jìn)行分類,包括Google play music,YouTube等。
上述方法都是基于有效載荷信息,對于某一應(yīng)用來說,由于其字節(jié)結(jié)構(gòu)相同,這就可能導(dǎo)致過擬合問題[20]。因此,Salman等[28]提出了一種新的數(shù)據(jù)表示方法,把網(wǎng)絡(luò)流的相關(guān)信息數(shù)值化,并將數(shù)值化的信息作為圖片的像素值,生成RGBA圖片;這些信息包括:數(shù)據(jù)包到達(dá)時(shí)間間隔(t),數(shù)據(jù)包大?。╯),協(xié)議(p)和流的方向(d)。Shapira等[20]使用單向流的相關(guān)信息生成了圖片,將包到達(dá)時(shí)間和數(shù)據(jù)包大小歸整到1至1 500,作為圖片像素點(diǎn)的坐標(biāo),將在該時(shí)間間隔內(nèi),具有同樣大小的包的數(shù)量作為像素值,從而生成1 500×1 500的圖片。每張圖片包含60 s單向流的數(shù)據(jù)包信息。
CNN[29]已廣泛應(yīng)用于圖像分類。由于CNN具有權(quán)值共享和平移不變形的特性,相比前向反饋的神經(jīng)網(wǎng)絡(luò),相同層數(shù)的CNN有更少訓(xùn)練參數(shù)。一個(gè)典型的CNN包含5部分:輸入層,卷積層,池化層,全連接層和輸出層,如圖1所示。卷積層的輸出叫做特征圖,它是由前一層與卷積核卷積之后再通過激活函數(shù)映射得到。常用的激活函數(shù)有ReLu函數(shù),Sigmoid函數(shù)等。卷積層后的池化層能夠減少參數(shù)數(shù)量并降低網(wǎng)絡(luò)的計(jì)算復(fù)雜度。例如,平均池化的輸出是矩陣鄰域內(nèi)所有值的平均。CNN的輸出層通常為SoftMax函數(shù),它的輸出是范圍為0至1的K維概率分布向量;向量中的值代表某一類分類得到的分值。
圖1 CNN結(jié)構(gòu)圖
將帶有標(biāo)簽的圖片讀入CNN后,通過后向傳播算法(通常是梯度下降算法[30])不斷調(diào)整網(wǎng)絡(luò)的權(quán)重以使得代價(jià)函數(shù)達(dá)到最小,是CNN訓(xùn)練的基本過程。另外,在訓(xùn)練過程中通常會(huì)使用dropout技術(shù)和L2正則化技術(shù)以避免過擬合問題。
受以上研究啟發(fā),本文提出了一種新的將流量數(shù)據(jù)表示為圖片的方法。它利用雙向流的相關(guān)信息生成圖片,圖片包含了4部分,分別為上下行數(shù)據(jù)流信息和交叉信息,這些信息通過圖片上像素點(diǎn)的位置以及像素值大小來表示。然后將生成的圖片使用CNN模型進(jìn)行分類。
使用的數(shù)據(jù)集包括視頻數(shù)據(jù)集和“ISCX non-VPN”數(shù)據(jù)集。視頻數(shù)據(jù)集(見表1)是通過Wireshark(https://www.wireshark.org/#download)軟件采集得到;時(shí)間為2019年2月和2020年1月,總數(shù)據(jù)量約50 GB。其中,每一類數(shù)據(jù)都在兩個(gè)以上的應(yīng)用上采集?!癐SCX non-VPN”數(shù)據(jù)集(見表2)是New Brunswick大學(xué)Gerard Drapper Gil團(tuán)隊(duì)采集的一個(gè)公開數(shù)據(jù)集,本文使用了其中的4類網(wǎng)絡(luò)流量數(shù)據(jù)。
2.1.1 數(shù)據(jù)預(yù)處理
首先,從采集的PCAP格式文件中提取出雙向數(shù)據(jù)流。所謂流,就是五元組相同的數(shù)據(jù)包的集合,即源IP地址,目的IP地址,源端口號(hào),目的端口號(hào),協(xié)議都相同。其次,去掉不相關(guān)流數(shù)據(jù)和控制流。最后,將數(shù)據(jù)流分段為60 s[20,22]的子段文件,保存在相對應(yīng)的類別中。
2.1.2 圖片生成
本文生成的圖片包含4部分特征信息:上下行特征信息和交叉特征信息;每一部分都是基于數(shù)據(jù)包大小,方向以及到達(dá)時(shí)間的二維直方圖在圖片上的表示。
首先,提取雙向流包的相關(guān)信息(包到達(dá)時(shí)間,包大小,包的方向)組成向量[t,s,d]。其次,根據(jù)數(shù)據(jù)包的方向?qū)?shù)據(jù)包大小以及數(shù)據(jù)包到達(dá)時(shí)間規(guī)整到1至750或751至1 500之間。具體來說,將當(dāng)前包到達(dá)時(shí)間減去第一個(gè)包到達(dá)時(shí)間得到的數(shù)值進(jìn)行規(guī)整,如果是下行包的到達(dá)時(shí)間,則規(guī)整到1至750(即60 s映射為750),如果是上行包的到達(dá)時(shí)間,則規(guī)整到751至1 500(即60 s映射為1 500)。同樣地,將下行包大小規(guī)整到1至750,將上行包大小規(guī)整到751至1 500。由于最大傳輸單元為1 514,因此,對于下行包大小是1 514,則被規(guī)整為750,上行包大小是1 514,則被規(guī)整為1 500。然后,將規(guī)整后的包到達(dá)時(shí)間和包大小作為坐標(biāo),統(tǒng)計(jì)在相同的時(shí)間間隙內(nèi)具有同樣包大小的數(shù)據(jù)包數(shù)量,作為該坐標(biāo)位置上的像素。最后每60 s的數(shù)據(jù)生成一張圖片。這樣,每張圖片就包含了4部分,分別為下行數(shù)據(jù)包到達(dá)間隙內(nèi)下行包的統(tǒng)計(jì),上行數(shù)據(jù)包到達(dá)間隙內(nèi)上行包的統(tǒng)計(jì),下行數(shù)據(jù)包間隙內(nèi)上行包的統(tǒng)計(jì)以及上行數(shù)據(jù)包間隙內(nèi)下行包的統(tǒng)計(jì),其中后兩種為構(gòu)建的交叉信息特征。圖示2顯示了將流量數(shù)據(jù)轉(zhuǎn)化為圖片的示意圖。表1、表2中列出了每一類別所得到的樣本數(shù)量。
圖2 數(shù)據(jù)表示為圖片示意圖
2.1.3 可視化分析
圖3給出了生成的圖片樣例,從圖上可以看出,每張圖片有4個(gè)各不相同的部分。需要說明的是,圖上黑色像素點(diǎn)表示像素值在1至255之間,白色像素點(diǎn)表示像素的值是0,它表示在相應(yīng)的時(shí)間間隙內(nèi)沒有任何包到來。實(shí)際上,對視頻數(shù)據(jù)集中所有類的樣例圖,都能明顯地看出各類之間的差異;這是由于每一種網(wǎng)絡(luò)服務(wù)在服務(wù)器與客戶端通信時(shí)都會(huì)有不同的行為表現(xiàn),顯示在圖片上就是不同類別得到的圖片的紋理風(fēng)格有較大的區(qū)別。例如,對于直播和點(diǎn)播來說,其下行數(shù)據(jù)包大小規(guī)整后都廣泛分布于1至750之間(即圖片上半部分)。但是,相同時(shí)間內(nèi)直播數(shù)據(jù)包數(shù)量要遠(yuǎn)遠(yuǎn)多于點(diǎn)播的數(shù)據(jù)包數(shù)量,表現(xiàn)在圖片上就是圖片上半部分直播的像素點(diǎn)要比點(diǎn)播的更稠密。另外,視頻數(shù)據(jù)集中每一類的流量數(shù)據(jù)都是在不同的應(yīng)用中采集的,從圖片中可以看到,同一類別中不同應(yīng)用的數(shù)據(jù)所生成的圖片有較大的相似性。同時(shí),也注意到,同種視頻服務(wù)不同分辨率之間也有相似性;這是由于對于點(diǎn)播視頻服務(wù)來說,雖然分辨率不同,但在服務(wù)器與客戶端通信時(shí)具有相似的行為特征,即當(dāng)緩沖器滿時(shí),就停止下載數(shù)據(jù),當(dāng)緩沖器空閑時(shí),數(shù)據(jù)開始下載。然而,盡管如此,不同分辨率之間仍然有較大的區(qū)別,比如數(shù)據(jù)量多少,同一時(shí)間間隙中的包的數(shù)量等。這些區(qū)別通過本文方法轉(zhuǎn)化為圖片后,在圖片上都能夠通過像素點(diǎn)的位置及像素值大小反映出來。
圖3 生成的圖片樣例
通過以上分析可知:對于不同類別的數(shù)據(jù)生成的圖片,它們之間都有較大的差異性;對于同一類別來自不同應(yīng)用的數(shù)據(jù)生成的圖片,它們又有較高的一致性;這使得對視頻流量進(jìn)行細(xì)分類成為可能。另外,對比文獻(xiàn)[20],本文方法得到的圖片中包含了更多的特征信息,不僅增加了上行數(shù)據(jù)的流信息,而且增加了上下行的交叉信息,所以有理由相信本文方法能得到最優(yōu)的結(jié)果。
本文旨在通過將網(wǎng)絡(luò)流量數(shù)據(jù)轉(zhuǎn)化為圖片并應(yīng)用簡單的CNN模型對網(wǎng)絡(luò)流量進(jìn)行分類。本文使用的模型共7層,其輸入是前文所述方法得到的1 500×1 500的圖片。接下來是卷積層—池化層—卷積層—池化層—卷積層的結(jié)構(gòu)(分別記為CONV1,POOL1,CONV2,POOL2,CONV3)。卷積核大小為5×5,使用ReLU作為激活函數(shù)。初始學(xué)習(xí)率設(shè)置為0.05,本文采用最大池化技術(shù),其每個(gè)單元與特征圖上的2×2的鄰域相連接。卷積-池化計(jì)算之后,使用flatten函數(shù)將特征圖轉(zhuǎn)換為一維向量接入兩層的全連接網(wǎng)絡(luò)。最后,使用SoftMax函數(shù)作為輸出層。另外,為了防止過擬合,在訓(xùn)練階段使用了dropout技術(shù),丟棄率為0.5以及L2正則化技術(shù),權(quán)重衰減系數(shù)為0.99。
將得到的圖片按照10∶1的比例隨機(jī)分為訓(xùn)練集和測試集,并使用TensorFlow平臺(tái)搭建CNN模型對圖片進(jìn)行訓(xùn)練和測試,并保存訓(xùn)練過程中結(jié)果最好的模型。本文方法的流程圖見圖4。
圖4 本文方法流程圖
本節(jié)介紹實(shí)驗(yàn)結(jié)果并與已有文獻(xiàn)方法進(jìn)行對比。實(shí)驗(yàn)電腦配置為64位Windows10操作系統(tǒng),英特爾酷睿I5-1035G1 CPU,16 GB內(nèi)存。使用基于TensorFlow平臺(tái)上的Keras庫搭建CNN模型。
為了驗(yàn)證本文方法的分類效果,使用“ISXC non-VPN”數(shù)據(jù)集[22]和視頻數(shù)據(jù)集進(jìn)行分類實(shí)驗(yàn),并與文獻(xiàn)[20]與[24]方法進(jìn)行性能對比。另外,分別選擇了30 s,45 s,60 s,75 s的包序列生成圖片,探究不同時(shí)間尺度生成的圖片對分類結(jié)果的影響。
準(zhǔn)確率(acc),精準(zhǔn)率(p)、和f1測度(f1)是分類問題中常用的評價(jià)標(biāo)準(zhǔn),定義如下:準(zhǔn)確率用來描述分類器總體的表現(xiàn),精準(zhǔn)率用來評價(jià)分類問題中每一類的分類情況,f1測度常用來衡量分類器的性能。
3.3.1 對不同粒度網(wǎng)絡(luò)流量分類效果對比
對本文方法以及文獻(xiàn)[20]、[24]方法在兩個(gè)數(shù)據(jù)集上進(jìn)行粗粒度(ISXC non-VPN)和細(xì)粒度(Video)分類實(shí)驗(yàn)。表3給出了3種方法的總體準(zhǔn)確率比較。表4和表5分別給出了不同數(shù)據(jù)集上的精準(zhǔn)率和f1測度。為了更好地評估不同方法的分類效果,圖5和圖6分別給出了不同方法得到的混淆矩陣。
圖5 不同方法在視頻數(shù)據(jù)集上得到的混淆矩陣
圖6 不同方法在“ISXC non-VPN”數(shù)據(jù)集上得到的混淆矩陣
表3 不同方法的acc(均值±標(biāo)準(zhǔn)差)比較 %
表4 不同方法在視頻數(shù)據(jù)集上p和f1(均值±標(biāo)準(zhǔn)差) %
表5 不同方法在“ISXC non-VPN”數(shù)據(jù)集上p和f1(均值±標(biāo)準(zhǔn)差) %
3.3.2 不同時(shí)間尺度生成圖片的表現(xiàn)
為了探究使用不同時(shí)間尺度生成的圖片對于細(xì)粒度分類的影響,我們對視頻數(shù)據(jù)集分別使用30 s,45 s,60 s和75 s的流數(shù)據(jù)生成圖片并訓(xùn)練和測試。圖7給出了不同時(shí)間尺度得到圖片的分類準(zhǔn)確率。
圖7 不同時(shí)間尺度的細(xì)粒度分類準(zhǔn)確率
從表3中可以看出,就總體準(zhǔn)確率而言,本文方法較其他兩種方法有所改善。其中,對于粗粒度分類,本文方法的分類準(zhǔn)確率達(dá)到了98.58%,較文獻(xiàn)[24]方法提高了6.3%,比文獻(xiàn)[20]方法提高了2.86%;對于細(xì)粒度分類,本文方法比文獻(xiàn)[24]方法略有改善,而相比于文獻(xiàn)[20]方法,則有明顯提高(4.7%)。這是由于相比文獻(xiàn)[20]方法,本文方法所生成的圖片中包含了更多的信息。首先,本文方法生成圖片時(shí)加入了上行流信息,而文獻(xiàn)[20]方法只使用單向流信息。圖8給出了視頻流數(shù)據(jù)集的不同類中,上行包到達(dá)時(shí)間的累計(jì)密度函數(shù)(CDF)曲線,它反映了樣本本身的特征分布。從圖中可以看出,不同類別中上行數(shù)據(jù)包到達(dá)時(shí)間分布不同;因此,加入上行數(shù)據(jù)能夠增加各類之間的差異度。其次,本文方法的圖片中包含了交叉信息,包括對在下行包間隙內(nèi)出現(xiàn)的上行數(shù)據(jù)包統(tǒng)計(jì)以及在上行數(shù)據(jù)包間隙中出現(xiàn)的下行數(shù)據(jù)包的統(tǒng)計(jì)。這些有效信息的加入,對原始數(shù)據(jù)有了更細(xì)致的描述,對于提高分類器的性能有幫助。因此,相比于文獻(xiàn)[20]方法,本文方法提高了分類準(zhǔn)確率。文獻(xiàn)[24]方法使用包頭部信息以及部分有效載荷信息,雖然頭部信息包含了網(wǎng)絡(luò)連接時(shí)的特征,但這也使得分類結(jié)果與其密切相關(guān)。因此,與細(xì)分類相比,在進(jìn)行粗分類時(shí),本文方法與文獻(xiàn)[20]方法準(zhǔn)確率都有明顯的提升,而比文獻(xiàn)[24]方法卻略微下降。這是由于“ISXC non-VPN”數(shù)據(jù)集中每一類有多個(gè)數(shù)據(jù)來源,并且每一個(gè)數(shù)據(jù)來源由不同的用戶采集得到,這就使得數(shù)據(jù)包的頭部信息存在較大差異,而文獻(xiàn)[24]方法分類又依賴這些信息,因此使得其粗分類結(jié)果反而低于細(xì)分類。
圖8 視頻流數(shù)據(jù)集上行流中包到達(dá)時(shí)間間隔的CDF曲線
通過表4給出的精準(zhǔn)率和f1測度可以看出,本文方法的細(xì)分類結(jié)果要優(yōu)于文獻(xiàn)[20]方法;這表明加入了上行特征確實(shí)能夠提高分類表現(xiàn)。值得注意的是,在直播和點(diǎn)播720p上,文獻(xiàn)[24]的表現(xiàn)好于本文和文獻(xiàn)[20]方法。通過對數(shù)據(jù)和數(shù)據(jù)源研究發(fā)現(xiàn),斗魚直播網(wǎng)站對于同為標(biāo)注720p的視頻,其幀率有所不同(有的幀率為30幀,有的為40幀),這就導(dǎo)致了同一分辨率下40幀時(shí)得到的數(shù)據(jù)量(包括相同時(shí)間間隙內(nèi)數(shù)據(jù)包的數(shù)量,數(shù)據(jù)包的大小等)要多于30幀時(shí)得到的數(shù)據(jù)量,從而使本文方法在分類直播720p時(shí),準(zhǔn)確率有所下降。通過圖5(c)的混淆矩陣可以看到,有相當(dāng)比例的直播720p樣本被錯(cuò)誤分成了直播1 080p,這也印證了本文猜想。而文獻(xiàn)[24]方法未受此影響。類似地,由于點(diǎn)播720p中有些數(shù)據(jù)來源為騰訊視頻(見表1),而騰訊視頻采用的是動(dòng)態(tài)幀率,這同樣造成了本文方法對點(diǎn)播720p識(shí)別率低的問題。另外,從混淆矩陣中看到,文獻(xiàn)[20]和文獻(xiàn)[24]方法中存在直播樣本錯(cuò)分為點(diǎn)播樣本以及點(diǎn)播樣本錯(cuò)分為直播樣本的情況,而本文方法得到的混淆矩陣則不存在這種情況,這也反映了本文方法相比于文獻(xiàn)方法存在優(yōu)勢。從表5中看到,3種方法對audio,chat和VoIP類都能夠較好地識(shí)別,在video類上,文獻(xiàn)[24]方法表現(xiàn)較差(75.8%),通過圖6(a)的混淆矩陣看到,有較多的video被錯(cuò)誤分成了audio。由于Gil團(tuán)隊(duì)沒有給出所采集數(shù)據(jù)的詳細(xì)說明,因此,無法對此進(jìn)行詳細(xì)分析。不過,文獻(xiàn)[24]在文中也指出了對non-VPN的分類結(jié)果并不理想。
從圖7可以看到,選擇不同時(shí)間尺度所生成的圖片對視頻數(shù)據(jù)細(xì)分類的影響較大,特別是當(dāng)時(shí)間尺度比較小時(shí),分類效果一般。圖中30 s生成的圖片得到的準(zhǔn)確率僅有68.8%。而增大時(shí)間尺度能明顯提高分類準(zhǔn)確率;當(dāng)時(shí)間尺度大于60 s時(shí),分類準(zhǔn)確率趨于平穩(wěn)。這是由于,對于視頻流量來說,在較短的時(shí)間內(nèi),服務(wù)器與客戶端之間數(shù)據(jù)傳輸還沒有達(dá)到平穩(wěn)狀態(tài),網(wǎng)絡(luò)波動(dòng)比較大,因此較短時(shí)間內(nèi)的數(shù)據(jù)分類結(jié)果不理想。
綜上,可以得到以下結(jié)論:對于不同的分類任務(wù),相比于文獻(xiàn)[20]方法,本文方法對圖片中的特征信息做了擴(kuò)展,包含了上下行流信息和交叉信息??梢哉J(rèn)為,文獻(xiàn)[20]方法所得圖片中的信息只是本文方法所得圖片中的一部分,因而不如本文方法好;對于使用有效載荷信息以及包頭部特征作為輸入來說,其分類效果與數(shù)據(jù)包的內(nèi)容緊密相關(guān),這種方法易受網(wǎng)絡(luò)環(huán)境影響。因此文獻(xiàn)[24]方法粗分類的表現(xiàn)反而比細(xì)分類略微下降。另外,在無法獲得有效載荷信息的情況下,文獻(xiàn)[24]方法是無效的,這也使得該方法泛化性能較差。相比之下,本文方法只使用了數(shù)據(jù)包的統(tǒng)計(jì)信息,因而更具有一般性。同時(shí),對于視頻流量來說,較短時(shí)間內(nèi)流數(shù)據(jù)可能會(huì)達(dá)不到平穩(wěn)狀態(tài)而影響結(jié)果。
面向未來多樣化和精細(xì)化的網(wǎng)絡(luò)服務(wù),需要更優(yōu)化的網(wǎng)絡(luò)資源分配機(jī)制和服務(wù)質(zhì)量保證。因此,需要對網(wǎng)絡(luò)流量進(jìn)行細(xì)分類。本文提出了一種適用于網(wǎng)絡(luò)流量細(xì)分類的方法;它把數(shù)據(jù)包特征轉(zhuǎn)化成圖片的形式,應(yīng)用CNN模型對網(wǎng)絡(luò)流量進(jìn)行分類。實(shí)驗(yàn)表明,該方法對于網(wǎng)絡(luò)流量粗分類和細(xì)分類都能取得較好的結(jié)果。本文方法相比于基于傳統(tǒng)ML的流分類方法,能夠自動(dòng)地尋找特征,省去了特征設(shè)計(jì)和提取環(huán)節(jié)。此外,DL方法還能夠根據(jù)新類別的出現(xiàn)或者網(wǎng)絡(luò)技術(shù)的改進(jìn)自動(dòng)地更新特征,從而不需要再次設(shè)計(jì)特征。同時(shí),相比于其他基于DL的網(wǎng)絡(luò)流量分類方法,本文方法在只使用數(shù)據(jù)包統(tǒng)計(jì)特征基礎(chǔ)上對數(shù)據(jù)進(jìn)行了擴(kuò)充;相比于使用有效載荷信息的DL方法,避免了隱私和安全問題。
通過實(shí)驗(yàn)發(fā)現(xiàn),面對動(dòng)態(tài)幀率時(shí),本文方法存在不足。下一步,將改進(jìn)此方法以適應(yīng)動(dòng)態(tài)幀率下的流量細(xì)分類。同時(shí),對于視頻流量來說,由于受網(wǎng)絡(luò)影響較大,需要較長時(shí)間的數(shù)據(jù)來進(jìn)行分類,今后將研究改進(jìn)措施。另外,我們也注意到,使用DL方法的計(jì)算復(fù)雜度較高,且增加新類時(shí)無法對參數(shù)進(jìn)行局部調(diào)整,因此需要網(wǎng)絡(luò)重新學(xué)習(xí),這增加了工作量。因此,今后可以考慮在計(jì)算量與分類效果之間尋找平衡以及其他DL模型對網(wǎng)絡(luò)流量細(xì)分類的應(yīng)用。