崔峻瑋,翟亞紅,周婉旭,賀權(quán),呂勇
(湖北汽車工業(yè)學(xué)院 電氣與信息工程學(xué)院,湖北 十堰 442002)
隨著網(wǎng)絡(luò)和云計算領(lǐng)域技術(shù)的快速發(fā)展,基于視頻的多媒體應(yīng)用層出不窮。Cisco[1]預(yù)測,到2023 年,基于互聯(lián)網(wǎng)協(xié)議的視頻流量將占據(jù)整個互聯(lián)網(wǎng)流量的80%左右。與此同時,各種基于視頻的新型應(yīng)用使得網(wǎng)絡(luò)環(huán)境日益復(fù)雜、網(wǎng)絡(luò)擁塞現(xiàn)象嚴重、網(wǎng)絡(luò)資源管理難、服務(wù)質(zhì)量(quality of service,QoS)保障低。而上述一系列問題則給網(wǎng)絡(luò)中傳輸視頻流量帶來嚴峻挑戰(zhàn)。由于基于視頻的多媒體應(yīng)用依賴于網(wǎng)絡(luò)進行數(shù)據(jù)傳輸,對網(wǎng)絡(luò)延遲、抖動、吞吐量等指標(biāo)要求較高。不同業(yè)務(wù)類型的視頻流具有不同的QoS要求,其中網(wǎng)絡(luò)流量的細粒度分類是解決這類問題的有效途徑,保證網(wǎng)絡(luò)資源的充分利用[2],優(yōu)化網(wǎng)絡(luò)性能。當(dāng)前,網(wǎng)絡(luò)流量分類方法主要有基于端口檢測的流量分類、基于有效負載的流量分類和基于機器學(xué)習(xí)的流量分類[3]。隨著越來越多的通信被加密,應(yīng)用程序開始使用動態(tài)端口,基于端口與有效負載的分類方法不再適用[4]?;跈C器學(xué)習(xí)的流量分類已經(jīng)是當(dāng)前研究熱點,機器學(xué)習(xí)算法可實現(xiàn)流量的分類,能很好地解決上述問題。Zhou[5]等提出了基于改進卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)的流量分類算法;V.TONG[6]等提出了使用統(tǒng)計特征和有效載荷數(shù)據(jù)來對QUIC 協(xié)議進行流量分類;Chen[7]等使用了再生希爾伯特空間將每個流的時間序列特征轉(zhuǎn)換為二維圖像,制作的圖像被用作CNN 模型的輸入。上述研究主要對網(wǎng)絡(luò)流量進行粗粒度分類,如果將視頻流作為整體進行服務(wù)質(zhì)量保證,由于視頻流低時延與高帶寬的需求,會造成鏈路資源的激烈競爭,更容易造成網(wǎng)絡(luò)擁塞。文中基于SDN 技術(shù),引入?yún)^(qū)分服務(wù)模型(differentiated services,DiffServ)[8]對網(wǎng)絡(luò)視頻流量進行細粒度的分類。通過使用公共數(shù)據(jù)集和自采集數(shù)據(jù)集對多種算法進行有效評估,選擇CNN分類算法。實驗表明,其準(zhǔn)確率較高,能夠較好地滿足多種QoS要求。
隨著移動互聯(lián)網(wǎng)迅速發(fā)展,視頻、語音、文件下載等多媒體業(yè)務(wù)在網(wǎng)絡(luò)流量中的占比越來越大。傳統(tǒng)的IP體系網(wǎng)絡(luò)架構(gòu)越來越難以適應(yīng)新業(yè)務(wù)的管理和適配等問題,SDN 技術(shù)[9-10]通過提供差異化的傳輸服務(wù)滿足用戶的多樣性需求。設(shè)計了基于SDN的流量分類體系框架,如圖1所示??刂破矫娴姆诸惼魍ㄟ^機器學(xué)習(xí)算法學(xué)習(xí)規(guī)則,并對未知的數(shù)據(jù)流量進行預(yù)測,提取數(shù)據(jù)流量的到達過程、到達時間間隔等局部特征[11]??刂破饔嬎悴⑻崛?shù)據(jù)流量特征信息,將訓(xùn)練完成的分類器部署在控制平面,并將流量特征作為分類器的輸入,得到流量類別。數(shù)據(jù)流量分類后,SDN控制器在交換機中數(shù)據(jù)流量的入口配置流表,并通過在數(shù)據(jù)包的差分服務(wù)代碼點(differentiated services code point,DSCP)字段中設(shè)置特定視頻類的值來標(biāo)記數(shù)據(jù)包,根據(jù)QoS 業(yè)務(wù)對不同類別的數(shù)據(jù)包按照直播視頻流最高、點播視頻流次之、下載視頻流最后的傳輸優(yōu)先級進行排序,旨在保證視頻傳輸質(zhì)量,降低時延。
圖1 基于SDN的流量分類體系框架圖
在SDN 框架下搭建了流量自采集系統(tǒng),采集不同業(yè)務(wù)的視頻流量,并實現(xiàn)細粒度分類。使用公共數(shù)據(jù)集對一些典型的機器學(xué)習(xí)分類器進行訓(xùn)練,并評估這些分類器在視頻流量分類方面的性能。
文中采用ISCXVPN2016、APPTraffic dataset、IP Network Traffic Flows Labeled 公共數(shù)據(jù)集訓(xùn)練分類器。ISCXVPN2016[12]網(wǎng)絡(luò)數(shù)據(jù)集包含14種應(yīng)用流量,APPTraffic dataset 網(wǎng)絡(luò)數(shù)據(jù)集包含9 種應(yīng)用流量,IP Network Traffic Flows Labeled 網(wǎng)絡(luò)數(shù)據(jù)集包含9種應(yīng)用流量。文中使用了其中7個應(yīng)用,將其分成3個視頻類別,如表1所示。
表1 視頻類別
視頻流量數(shù)據(jù)集以pcap 格式保存,需對數(shù)據(jù)集清洗,使用Wireshark 過濾壞包得到滿足條件的數(shù)據(jù)包。清洗完成的數(shù)據(jù)不能作為機器學(xué)習(xí)分類器的輸入,需將數(shù)據(jù)流量轉(zhuǎn)為數(shù)據(jù)流量特征(表2)。然后從數(shù)據(jù)流量中提取流量特征信息并保存為CSV文件,隨后用于機器學(xué)習(xí)的性能評估。
表2 流量特征
為了獲得用于分類器評估的數(shù)據(jù),構(gòu)建了基于SDN的視頻流量系統(tǒng)(圖2)。系統(tǒng)中,直播流服務(wù)器通過VLC播放器生成RTSP數(shù)據(jù)流,點播流服務(wù)器通過VLC 播放器生成UDP 數(shù)據(jù)流,下載流服務(wù)器通過配置Vsftpd 以建立FTP 連接。分類器訓(xùn)練數(shù)據(jù)集的過程見圖3。設(shè)置最小隊列的長度為12,以保證較低的計算成本、較高的分類器質(zhì)量。
圖2 自采集視頻流系統(tǒng)
圖3 訓(xùn)練數(shù)據(jù)集流程圖
分類器的訓(xùn)練和測試涉及到3 個視頻流量類別,評估過程被描述為多分類問題。根據(jù)真實值和預(yù)測值得到分類器常用評價指標(biāo):
式中:A為準(zhǔn)確率;P為精確度;R為召回率;F為性能指標(biāo);a為真陽性;b為假陰性;c為假陽性;d為真陰性;i為標(biāo)簽,取0 時表示直播,取1 時表示點播,取2時表示下載。
有監(jiān)督機器學(xué)習(xí)算法被廣泛地應(yīng)用于流量分類中,文中對支持向量機(support vector machine,SVM)、決策樹(decision tree, DT)、隨機森林(random forest,RF)、樸素貝葉斯(native bayes,NB)、卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)、邏輯回歸(logistic regression, LR)和AdaBoost 算法進行對比評估,結(jié)果見圖4,可以看出,CNN算法不僅在準(zhǔn)確率上優(yōu)于其他算法,在其他指標(biāo)方面也很有競爭力,選擇CNN算法作為文中的分類算法。
圖4 不同算法性能對比
為了完成邊緣網(wǎng)絡(luò)節(jié)點對未知流的業(yè)務(wù)區(qū)分,DiffServ 模型定義了1種可以可擴展的服務(wù)分類體系結(jié)構(gòu),對DS 編碼點的值進行設(shè)置,將不同的DS編碼值與業(yè)務(wù)類型匹配,實現(xiàn)對業(yè)務(wù)流的分類和標(biāo)記,進而確定該數(shù)據(jù)流的優(yōu)先級,保證視頻流不同的業(yè)務(wù)性能。文中引用了Diffserv模型對數(shù)據(jù)包進行標(biāo)記,通過二進制編碼值來區(qū)分優(yōu)先級。換言之DSCP 為QoS 提供了比TOS 標(biāo)記更大的優(yōu)先級范圍。DSCP 的格式如圖5 所示,其中DS5、DS4 和DS3一起定義分組類別,DS2、DS1和DS0(DS0字段缺省為0)一起定義分組數(shù)據(jù)包丟棄優(yōu)先級。010、100、110 分別表示低、中、高丟棄優(yōu)先級。直播視頻流的DSCP 值為“100010”,點播視頻流的DSCP值 為“100100”,下 載 視 頻 流 的DSCP 值 為“100110”。通過配置DSCP 字段,可以指定直播視頻流、點播視頻流和下載視頻流的優(yōu)先級。DS3~DS5 指定的是服務(wù)等級,DS0~DS2 指定的是流的優(yōu)先級(直播視頻流>點播視頻流>下載視頻流),優(yōu)先級高的視頻業(yè)務(wù)對應(yīng)的丟棄優(yōu)先級較低。
圖5 DSCP標(biāo)記
DSCP 字段配置到位后,一旦SDN 控制器將流表安全地發(fā)送回交換機,邊緣交換機就會通過配置其DSCP 字段來標(biāo)記每個傳入的數(shù)據(jù)包。然后根據(jù)業(yè)務(wù)對其視頻流進行優(yōu)先度排序,保證視頻業(yè)務(wù)的QoS,由此實現(xiàn)了細粒度的視頻業(yè)務(wù)分類方案。
卷積神經(jīng)網(wǎng)絡(luò)也被稱為CNN,用于處理時間序列和圖像這種具有網(wǎng)絡(luò)拓撲的數(shù)據(jù)[13]。作為深度學(xué)習(xí)的重要模型,但很少有人將其應(yīng)用于網(wǎng)絡(luò)流量分類領(lǐng)域。文中提出了基于卷積神經(jīng)網(wǎng)絡(luò)的流量分類框架,并訓(xùn)練CNN分類器,實現(xiàn)分類,如圖6所示。圖像和流量數(shù)據(jù)都是由數(shù)值組成,對數(shù)據(jù)集進行分析,得到合適的灰度圖像,然后將網(wǎng)絡(luò)的輸入層設(shè)計為16×16 的像素矩陣。網(wǎng)絡(luò)流量分類的目的是對數(shù)據(jù)集中不同的流量應(yīng)用類型進行分類,從而達到分組轉(zhuǎn)發(fā)的效果。首先需要提取雙向流包的信息,包括包的方向、包大小、包到達時間的相關(guān)信息。將包到達時間和包大小作為圖像的坐標(biāo),然后計算在相同時間間隔內(nèi)將同樣大小數(shù)據(jù)包的數(shù)量作為圖像坐標(biāo)位置上的像素,每張圖片包含60 s 單向流的數(shù)據(jù)包信息。不同業(yè)務(wù)的視頻流量具有的特征大小不同,生成的圖片特征也不盡相同,可以更加明顯地看出分類結(jié)果。
圖6 基于卷積神經(jīng)網(wǎng)絡(luò)的流量分類框架
實驗平臺(圖7)搭建在Ubuntu16.04 系統(tǒng)下,使用基于TensorFlow 平臺上的Keras 庫搭建CNN模型,包括SDN控制器、1組交換機、3個服務(wù)器和1組客戶機。Ryu控制器作為輕量級、高效性的控制器,可用于控制流表下發(fā)等操作。網(wǎng)絡(luò)仿真器使用的是支持OpenFlow 協(xié)議的Mininet,交換機使用的是安裝在VirtulBox 虛擬機中的Open vSwitch 交換機。3個服務(wù)器分別負責(zé)生成直播、點播和下載視頻流,通過VLC播放器來傳輸MP4視頻文件。RTSP 協(xié)議主要用于實時性地直播視頻流,UDP 協(xié)議用于點播視頻流,Vsftpd 協(xié)議用于下載視頻流,以提供FTP服務(wù),用Filezilla程序來連接FTP服務(wù)器。
圖7 實驗平臺示意圖
針對視頻流量進行檢測,通過Wireshark 實時捕獲交換機出端口的數(shù)據(jù)包,以確定DSCP字段是否正確,并且在Ryu 控制器顯示相應(yīng)的視頻流類型。在實驗中,直播視頻流、點播視頻流和下載視頻流分別設(shè)置為0、1 和2。以直播視頻流為例,直播流的DSCP 值設(shè)置為34,對應(yīng)的二進制值是100010,關(guān)于直播流的實驗結(jié)果,如圖8 所示。其中將CNN 分類器部署于Ryu 控制器中用于對流量類型的識別,可以看出Ryu終端上顯示為0,說明正確識別視頻流量類型。在Wireshark中可以看到直播流的DSCP值為34。實驗結(jié)果表明,該系統(tǒng)能夠成功地對直播視頻流進行分類和標(biāo)記,同時也對點播和下載視頻流進行了同樣的測試,并且能夠按照預(yù)期的效果進行分類。成功標(biāo)記后,視頻流量會按優(yōu)先級進行傳輸,文中用K最短路徑算法(K-shortest pathes, KSP)來進行路徑選擇,可以明顯看出,以點播視頻流量為例,Ryu控制器監(jiān)控鏈路狀態(tài)的變化,并根據(jù)“強到弱”的順序生成路徑序列(圖9)。由于直播視頻流具有最高優(yōu)先級,因此選擇路徑序列中的第1條路徑進行相應(yīng)包轉(zhuǎn)發(fā)。
圖8 直播視頻流分類預(yù)測和DSCP標(biāo)記
圖9 直播視頻流轉(zhuǎn)發(fā)路徑選擇
文中主要研究分組延時、分組剩余帶寬和分組丟失率的問題。首先對不同的視頻流進行分類標(biāo)記,然后將分類后的視頻流通過KSP算法進行路徑規(guī)劃。如圖10a所示,前10個數(shù)據(jù)包的3個視頻流都有很高的延遲,這是因為控制器尚未分類和計算路徑,控制器對流特征的計算也會導(dǎo)致端到端的延遲。一旦分類和計算出轉(zhuǎn)發(fā)路徑,控制器就會下發(fā)流表到各個交換機,具有不同DSCP值的數(shù)據(jù)包將沿各自的路徑進行傳輸,可以明顯看出,由于直播視頻流對延遲相當(dāng)敏感,所以選擇的是1條延遲最低的路徑進行轉(zhuǎn)發(fā),點播和下載視頻流也根據(jù)不同的QoS 依次選擇路徑進行轉(zhuǎn)發(fā)。視頻流未分類時的延遲最高,說明不同類型的視頻流量都得到了差異化的傳輸服務(wù)質(zhì)量保證。如圖10b所示,通過數(shù)據(jù)包的丟失率可以看出直播視頻流的可靠性最高,依次是點播視頻流和下載視頻流,最后是未分類時的丟包率。圖10c顯示了不同視頻流在最初60 s內(nèi)剩余帶寬的變化,雖然一些曲線具有一定程度的波動,但基本可以看出直播視頻流的剩余帶寬最高,依次是點播、下載和無分類視頻流,說明直播視頻流所占的帶寬比較低,保證了數(shù)據(jù)的傳輸質(zhì)量。
圖10 視頻流QoS性能分析
文中提出的基于SDN 的流量控制系統(tǒng)不僅滿足不同視頻流量的QoS 要求,還可應(yīng)用于其他網(wǎng)絡(luò)。算法可實現(xiàn)較為優(yōu)異的分類性能,在公共數(shù)據(jù)集下分類準(zhǔn)確率95.25%,精確率95.66%,召回率95.21%,F(xiàn)1 分數(shù)95.01%。整個系統(tǒng)能夠優(yōu)化視頻業(yè)務(wù)流的時延、帶寬和丟包率,提高網(wǎng)絡(luò)性能。