?

基于深度學習的SDN 流量分類方法研究

2022-11-04 02:22池亞平劉怡龍許盛偉
北京電子科技學院學報 2022年2期
關鍵詞:集上卷積類別

池亞平 劉怡龍,2 許盛偉

1.北京電子科技學院,北京市 100070

2.西安電子科技大學,西安市 710071

引言

隨著網絡技術的快速發展及數據流量的爆炸式增長,網絡流量類型形式多樣,而不同類型的網絡流量對底層網絡資源的需求不盡相同,因此為了實現高效的網絡管理以及提高網絡服務質量,則必須對網絡流量進行有效的監控和分類。

相比于傳統的分布式網絡架構體系的結構復雜、控制困難和無法實現數據流的靈活控制的問題,軟件定義網絡(Software Defined Network,SDN)通過將控制平面和數據平面分離,實現了對網絡的集中控制,降低了網絡管控的難度[1]。SDN 網絡的集中控制和可編程性使得網絡流量分類變得更加簡單有效,為提高網絡服務質量奠定了基礎。 近些年,隨著深度學習在計算機視覺、自然語言處理等領域的快速發展,許多研究者開始嘗試通過使用深度學習來解決網絡流量分類問題,以實現對網絡流量進行在線智能識別的目的。

本文將SDN 網絡和深度學習技術結合起來,提出了一種基于SDN 網絡和深度學習技術的智能流量分類方法,利用SDN 網絡的全局控制能力和深度學習的智能分析能力,實現數據流量的在線智能識別。

1 相關工作

目前的流量分類方法主要分為三類[2]:基于端口的流量分類方法、基于有效載荷的流量分類方法和基于機器學習的流量分類方法。 隨著動態端口的普遍使用,導致使用固定端口的分類方法的準確率越來越低[3];使用基于有效載荷檢測的流量分類方法,由于對數據包進行深度檢測時,算法的計算復雜度高、計算時間長,而且僅適用于未加密流量[4],因此以上兩種都不適合進行在線流量分類。 為了克服上述方法的缺點,目前研究的流量分類方法主要都是使用機器學習基于統計特征進行流量分類。

流量分類中常見的傳統機器學習算法主要有隨機森林[5],SVM[6]和高斯混合模型[7]等,根據統計特征或時間序列特性,進行流量類型識別。 文獻[8]提出了一種用來對SDN 架構下物聯網中的流量進行分類的機器學習方法,利用隨機森林算法使用SFS 算法選擇的6 個特征進行流量分類。 文獻[9]針對目前網絡中無法有效的對在線視頻流量和下載流量進行速率管控,提出了一種在SDN 中基于機器學習的在線視頻流量和下載流量分類方案,利用隨機森林算法對實時流量應用進行分類,其平均準確率達到91.5%。 以上文獻均為利用傳統的機器學習算法實現流量分類,但是由于傳統的機器學習具有有限的特征學習能力,對非線性特征提取能力較弱,因此不適合處理海量網絡流量,更適合處理小規模的數據問題[11]。 相反,深度學習包含多個隱藏層可以使其具有更強的非線性特征提取能力,可在分布式的特征中發現更高層次的特征表示,這一特性可以使其彌補傳統機器學習在流量分類方面的缺點。

文獻[10]提出了一種基于SDN 架構體系的混合深度神經網絡的應用分類方法,該方法在獲得高分類精度的情況下無需人工選擇和提取特征。 在提出的應用分類框架中,通過SDN 控制器利用其邏輯集中控制能力和強大的計算能力收集和處理網絡流量,用于訓練混合深度神經網絡。 混合深度神經網絡包括堆疊式自動編碼器和Softmax 回歸層,其中堆疊式自動編碼器可以利用非線性特征提取能力獲取深度流特征,而不需要手動特征選擇和提??;Softmax 回歸層作為分類器,實現流量應用分類。 實驗結果表明,該分類方法相比于基于SVM 的流量分類方法具有更高的分類精度。

本文借鑒文獻[10]的思路,設計了一種基于SDN 體系架構和深度學習的在線智能流量分類方法,首先是利用SDN 架構的集中控制能力從每條數據流的前幾個數據包中提取出少量具有代表性且易于得到的特征;然后利用格拉姆角場(Gramian Angular Field,GAF)將一維特征序列轉化為二維圖像,實現數據特征的擴展;最后將二維圖像輸入到卷積神經網絡中,利用其非線性特征提取能力提取出深層次的數據特征,將提取得到的數據特征利用Softmax 分類函數,實現數據流量的在線分類。

2 基本原理

2.1 格拉姆角場

格拉姆角場[12](Gramian Angular Field,GAF)是一種將信號序列轉變為圖像的技術。 給定一個一維時間序列X={x1,x2, ...,xn},是由n 個實際觀測值xi 構成,首先使用最小-最大定標器(Min-Max scaler)進行數值縮放,將輸入的一維序列歸一化到[-1,1]或者[0,1],如式(1)所示。

上式中,ti表示的時間戳,N 是調整極坐標系跨度的恒定因子。 將笛卡爾坐標下的一維時間序列轉換成極坐標表示后,可以利用每個點之間的三角函數和差來識別不同時間間隔內的時間相關性,分別得到格拉姆求和角場(Gramian Summation Angular Field,GASF)和格拉姆差分角場(Gramian Difference Angular Field,GADF),定義如下:

2.2 卷積神經網絡

卷積神經網絡 ( Convolutional Neural Network,CNN)具有強大的表征學習能力,通過在隱含層引入參數共享和層間連接稀疏性機制來減少網絡參數數量,使之適合在超大規模數據集進行運算[13],目前已被廣泛應用于圖像處理。CNN 的主要結構包括輸入層、卷積層、池化層、全連接層及輸出層,其中卷積層用于對輸入圖像進行特征提取,通過滑動固定大小的卷積核,在輸入圖像的不同區域與之進行卷積計算,提取出圖像的某些隱藏特征及抽象信息,卷積計算公式如式(5)所示。

池化層通過利用最大池化或平均池化對卷積層中得到特征圖進行數據縮放,縮減特征圖尺寸,降低數據維數,池化的計算公式如式(6)所示。

其中f(·) 表示最大值函數或平均值函數。

通過卷積池化計算得到的二維特征數據經過flatten 函數轉化成一維特征向量,輸入到全連接層中,通過利用Softmax 分類函數實現輸入圖像到標簽集的映射,完成數據分類,其計算公式如式(7)所示。

3 算法設計

3.1 總體框架設計

算法應用方案的總體框架及其組成部分如圖1 所示,主要包括轉發層和控制層,其中轉發層主要由一系列可編程交換機組成;控制層包含SDN 控制器,比如Ryu 控制器、Opendaylight 控制器等,通過OpenFlow 協議發送PacketIn 或PacketOut 消息對轉發層面的網絡設備進行集中控制,轉發層中的交換機通過接收流表中的控制命令生成數據轉發表,進而控制數據的監測、處理及轉發,因此可以避免使用復雜的網絡協議進行數據轉發,增加了網絡控制的靈活性。

圖1 總體架構

在控制器現有功能的基礎上通過再添加信息收集模塊、特征提取模塊及數據分類模塊實現數據流量的在線智能識別。

(1)信息收集模塊:每條數據流會由其五元組信息,即源IP 地址、目的IP 地址、傳輸層協議、源端口及目的端口進行標識。 當交換機將數據包的相關信息通過PacketIn 消息上報到控制器后,信息收集模塊會計算其五元組的哈希值,將哈希值相等的數據包匯聚成流,并將同一數據流發送給特征提取模塊。

(2)特征提取模塊:為了實現數據流量在線智能流量分類,特征提取模塊將提取每條數據流中前幾個數據包的某些特征發送給數據流分類模塊,用于數據流的分類。 為了實現有效快速分類,這些特征需要簡單易得到且具有代表性。Moore 等人[14]對Moore 數據集中包含的248 個特征,通過利用FCBF 算法計算其重要性后排序,最終篩選出12 個最具代表性的特征如表1所示。 本文為了驗證是否可以只通過少量的統計特征實現快速有效的流量分類,同時也為了減少動態端口的使用對分類準確率的影響,所以本文選用了除端口以外的其余10 個統計特征用于實現流量數據的分類。

表1 數據特征及其描述

(3)數據流分類模塊:本文在分類模塊中設計了一種基于格拉姆角場和卷積神經網絡的GAF_CNN 流量分類方法。 將特征提取模塊提取到的一維統計特征利用格拉姆角場轉化成二維圖像后,可以使分類模塊在獲取的統計特征較少的情況下,仍然表現出較好的分類性能。

3.2 GAF_CNN 分類方法

本文提出的基于格拉姆角場和卷積神經網絡的GAF_CNN 流量分類方法,首先將一維特征序列進行歸一化處理、坐標轉換和三角函數計算后,將其轉變成二維圖像并輸入到卷積神經網絡中,最后利用Softmax 分類函數,實現數據流量的在線分類。 本文采用的卷積神經網絡的具體結構如圖2 所示,包括輸入輸出層,三個卷積層C1、C2 和C3 以及兩個池化層S1、S2。

圖2 卷積神經網絡結構

本文采用的卷積核大小為3*3,卷積層的卷積核數目分別32,64 和64,步長設置為1,為了提取邊緣特征,在進行卷積計算時,會采用零填充的方式,在卷積計算完成后會利用激活函數relu,增加網絡對非線性特征的學習能力。 池化層S1,S2 均采用平均值函數來降低數據維數,減少訓練參數,步長設置為2。

本文特征提取模塊提取的10 個特征經過GAF 轉換后會得到10*10 的二維圖像,將其輸入到CNN 網絡中,在經過卷積層C1 卷積計算后會得到10*10*32 的特征圖,將該特征圖進行池化計算后會得到5*5*32 的特征圖,減少了數據維數。 然后將池化后的特征圖輸入到卷積層C2 中,經過第二次計算會得到5*5*64 的特征圖,再次經過池化計算以及第三次卷積計算后,最終會得到3*3*64 的特征圖,將最終得到的特征圖經過Flatten 函數轉換成一維特征序列輸入到全連接層中,利用Softmax 分類函數實現數據流量的智能分類。 在模型訓練時,會根據Softmax 分類函數的輸出值yi與實際標簽值y′i計算損失值L, 然后利用梯度下降法訓練CNN模型參數。 損失函數計算公式如式(8)所示。

4 算法驗證與分析

4.1 實驗環境

實驗采用的計算機處理器為2.6GHz Intel Core i7,內存為16GB 2400MHz DDR4,采用的操作系統為ubuntu 20.04。 使用TensorFlow 和Keras 作為機器學習的框架。

4.2 算法對比

為了驗證本文所提分類算法的有效性,我們將與本文具有相同結構的CNN 算法以及文獻[10]中所使用的堆疊式自編碼器Stack_Auto-Coder,在不同數據集下對準確度、精確度、召回率和F1 分數進行對比。

(1)離線測試

為了驗證本文提出的GAF_CNN 算法在流量分類方面的分類效果,本節選用常用的Moore數據集[15]進行測試。 該數據集包含了在不同時間段內收集的10 個TCP 流量子數據集,其中,每條數據樣本包含了248 個流量特征與其流量類別。

圖3 展示的是三種算法在不同子數據集上關于準確度、精確度、召回率和F1 分數方面的對比,其性能平均值如表2 所示。 總體來看,本文所提的GAF_CNN 分類算法在不同數據集的各個方面都明顯優于CNN 算法和Stack_AutoCoder算法,而CNN 算法和Stack_AutoCoder 算法在不同數據集上的表現各有優劣。 具體來看,GAF_CNN 算法在各個子數據上的準確度、精確度、召回率和F1 分數表現的非常穩定,這表明,在通過GAF 方法實現特征擴展后的分類算法,相比于CNN 算法和Stack_AutoCoder 算法,GAF_CNN 算法具有較好的泛化能力和分類效果。 本文所提的GAF_CNN 算法在不同數據集上的準確率都達到了98%以上,尤其是在第五、第六子數據集上,相比于另外兩種算法,準確率有明顯的提升。

圖3 三種算法在Moore 子數據集上的性能對比

表2 三種算法在Moore 子數據集上性能對比

圖4 展示的是三種算法在不同流量類別上關于準確度、精確度、召回率和F1 分數方面的對比,其性能平均值如表3 所示。 總體來看,本文提出的GAF_CNN 算法在不同流量類別的各個方面,基本上也要優于CNN 算法和Stack_Auto-Coder 算法。 具體分析,在準確率方面,雖然在MultiMedia 類別上,本文所提出的GAF_CNN 算法的準確率要略低于Stack_AutoCoder 算法,但在其他流量類別上,GAF_CNN 算法的準確率都要優于另外兩種算法,尤其是在ftp-control,ftppasv 和database,GAF_CNN 相比于另外兩種算法的準確率有明顯的提升。 在精確率方面,GAF_CNN 算法在ftp-pasv,database 等流量類別要略低于其他兩種算法,其原因如下,從精確率的計算公式來看。

表3 三種算法在Moore 數據集中不同流量類別上的性能對比

其中,在多分類過程中,以本節使用的Moore 數據集中的ftp-control 流量類別為例,TP表示的是正確分類為ftp-control 類別的樣本數量,FP 表示的是分類器將其他類別錯誤分類為ftp-control 類別的樣本數量。 從圖4 中的精確率對比可以看出,本文提出的GAF_CNN 算法在精確率方面整體相比于CNN 算法和Stack _AutoCoder 算法波動較小,這表明使用GAF_CNN算法時,每個類別的FP 樣本數量較為均衡,而使用CNN 算法時,分類器易傾向于將其他類別的樣本錯誤分類為ftp-control 類別,使用Stack_AutoCoder 算法時,分類器易傾向于將其他類別的樣本錯誤分類為p2p 和multimedia 等類別,導致其他類別上的FP 樣本數量減少,從而使得盡管GAF_CNN 算法在ftp-pasv,database 等類別上的TP 樣本數量高于其他兩種算法,但在精確率方面還是略低于CNN 算法和Stack_AutoCoder算法,這從側面也反映出了GAF_CNN 算法的穩定性要優于CNN 算法和Stack_AutoCoder 算法。

圖4 三種算法在Moore 數據集中不同流量類別上的性能對比

綜上所述,無論是從不同子數據集的各個方面來分析,還是從不同流量類別的不同方面來看,在得到的分類特征較少的情況下,本文提出的GAF_CNN 算法是要優于CNN 算法和Stack_AutoCoder 算法的。 通過在離線Moore 數據集上的驗證,本文提出的GAF_CNN 算法在通過GAF方法實現特征的擴展,將一維特征序列轉化為二維圖像,并將其輸入到CNN 網絡中,經過訓練,也可以使得CNN 神經網絡在特征較少的情況下具有更好地泛化能力和分類表現。

(2)在線測試

上述實驗結果可以表明在分類特征較少的情況下,本文提出的算法在流量分類方面仍然具有良好的表現,但是Moore 數據集中每個樣本的特征,都是在采集每條數據流的所有數據包后統計計算得出的,而本文的目標是實現數據流量的在線智能分類,分類方法需要滿足實時性的要求,因此分類所需的特征就必須在每條數據流的前幾個數據包統計計算得出。 為了進一步驗證本文提出的算法在在線情況下的分類效果,本節采用Li 等人收集的數據集[16],該數據集中每條樣本所包含的特征是從數據流的前5 個數據包統計得到的。

首先觀察三種算法在不同子數據集上關于準確度、精確度、召回率和F1 分數方面的對比,如圖5 所示。 表4 展示的是三種算法在不同方面的平均值。 總的來看,在不同子數據集上的各個方面,本文提出的GAF_CNN 算法要略優于其他兩種算法,GAF_CNN 算法在各個子數據集上的準確率都超過了98%。 三種對比算法中,在不同子數據集的各個方面表現最差的是Stack_AutoCoder 算法,而CNN 算法在SiteB 和Day3 兩個子數據集上的表現與GAF_CNN 算法基本一致,但是在Day1 和Day2 兩個子數據集上,GAF_CNN 算法相對于CNN 算法和Stack_AutoCoder算法,在準確率、精確度、召回率和F1 分數都有明顯的提升。

表4 三種算法在Li 子數據集上的性能對比

圖5 三種算法在Li 子TCP 數據集上的性能對比

圖6 展示的是三種算法在不同流量類別上關于準確度、精確度、召回率和F1 分數方面的對比,其性能平均值如表5 所示。 從圖中可以看出,本文提出的GAF_CNN 算法在不同流量類別的各個方面的表現是要優于其他兩種算法的,尤其是在小樣本流量類別上的分類表現,比如Services 和Attack,GAF_CNN 算法在準確率、精確度、召回率和F1 分數相比于CNN 算法和Stack_AutoCoder 算法有明顯的提升。 從GAF_CNN 算法在不同子數據集和不同流量類別上的準確度、精確度、召回率和F1 分數等方面的表現來看,GAF_CNN 算法在通過GAF 方法實現特征的擴展后,相比與另外兩種算法,展現出的在線分類效果更為穩定。

圖6 三種算法在Li 數據集不同流量類別的性能對比

表5 三種算法在Li 數據集中不同流量類別上的性能對比

5 結語

本文提出的算法在經過GAF 方法實現特征擴展后,將一維特征序列轉化成圖像輸入到CNN 網絡中,經過訓練學習后,CNN 可以實現特征的自動提取和流量類別的自動分類,而且經過訓練后的神經網絡具有良好的泛化能力和分類效果。 本文通過采用不同數據集對所提算法在流量分類方面進行離線和在線測試,實驗結果表明,相比于其他分類方法,本文提出的算法在分類準確率、精確度、召回率和F1 分數方面具有更好的性能。

猜你喜歡
集上卷積類別
基于全卷積神經網絡的豬背膘厚快速準確測定
基于圖像處理與卷積神經網絡的零件識別
一起去圖書館吧
基于深度卷積網絡與空洞卷積融合的人群計數
簡析基于概率預測的網絡數學模型建構
卷積神經網絡概述
師如明燈,清涼溫潤
幾道導數題引發的解題思考
選相紙 打照片
2008年高考考前模擬試題(二)及略解
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合