趙 曦,馬 禮,傅穎勛,李 陽,馬東超
(北方工業大學 信息學院,北京 100144)
一體化信息網絡是一種異構網絡,其架構如圖1所示,多網融合使其具有復雜多變的網絡結構和繁多的業務種類,而網絡的動態性和缺乏自適應性使得對流量的管理與調度非常困難[1]。實時收集流量信息并進行分類是一體化信息網絡能夠發揮作用的重要前提,因為流量管理與調度過程需用到網絡中的流量信息來當作評估網絡狀況的依據,而不同業務對網絡資源需求的不同使得流量的調度策略不能一概而論,只有考慮以上這些因素才能保證網絡用戶的服務質量。因此設計一種實時業務流分類策略,對于保障一體化信息網絡的服務質量、提高資源利用率有著重要的意義。

圖1 一體化信息網絡架構
由于傳統IP網絡架構的底層設備較為封閉,難以實現路由策略部署[2],無法滿足一體化信息網絡的流量信息收集與分類需求,因此本文設計了一種在軟件定義網絡架構下的一體化信息網絡業務流分類系統。軟件定義網絡的架構如圖2所示,具有集中控制、轉控分離等特點,該架構不僅適用于一體化信息網絡的流量分類系統,而且便于對網絡進行管理與維護。

圖2 軟件定義網絡架構
隨著互聯網的發展,網絡流量分類作為提升網絡質量的基礎技術,一直是網絡研究的重點之一。文獻[3]利用軟件定義網絡架構可編程性的特點,在數據包發送的早期對其載荷部分的特征值進行分類從而避免加密對深度包檢測技術的影響。文獻[4]使用深度包檢測技術進行業務流分類從而為QoS隊列提供不同優先級。上述文獻采用的均是深度包檢測技術進行流量分類,該技術存在無法識別載荷部分被加密的數據包的局限性,即使文獻[4]提出了在數據包發送早期對其載荷部分特征值進行分類的方法,但該方法不適用于網絡結構復雜、網絡環境動態多變的一體化信息網絡,該類網絡環境經常有子網的接入導致拓撲變化,因此對業務流的分類也需要動態進行,深度包檢測技術一旦錯過業務流發送的早期就無法進行分類。
隨著人工智能技術的發展,機器學習的分類技術受到了廣泛的關注,基于機器學習的業務流分類研究也應運而生。其中大部分研究基于劍橋大學Moore教授等[5]使用的網絡流量實驗數據集對分類算法進行優化。文獻[6]使用K-Means和隨機森林相結合的方法從業務流特征中對用戶行為進行分類。對信息交互、網頁瀏覽、視頻流和背景流進行識別且準確率在97%左右。文獻[7]提出了一種基于深度學習的網絡流量細粒度分類方法,對10類流媒體業務的分類準確率達到了93%左右。文獻[8]使用SVM 算法對28種業務流進行了分類,對單向流和雙向流的分類準確率達到了85%左右。文獻[9]提出了基于無監督學習的流量識別算法,該算法能夠識別不同物聯網設備產生的不同業務流,分類精度能夠達到98%左右。文獻[10]提出了一種基于多階段機器學習分類算法的框架,該框架使用從網絡流量特征中獲得的統計屬性,對每個物聯網設備以及一類非物聯網設備產生的業務流進行精確分類。由于Moore等所使用的數據集具有249維特征,雖然考慮較多維度的特征能提升分類精度,但是過多的特征維度會導致訓練時的計算開銷較大,從而降低模型的訓練效率;另一方面特征維度過多會導致訓練出的模型復雜度較大,導致分類效率降低。此外上述文獻大多采用SVM作為待改進的分類算法,但SVM算法也存在一些局限性:原始的SVM只能進行二分類,當需要進行多分類時就需要訓練多個二分類器,因此當數據量較大時,訓練和分類的計算開銷巨大從而導致訓練時間和分類時間較長,難以滿足一體化信息網絡對業務流識別的實時性需求;原始的SVM抗噪聲性能不佳,在流量數據存在大量噪聲的一體化信息網絡環境下難以準確分類。一些研究采用CART算法生成決策樹來作為流量的分類模型,文獻[11]提出了一種基于CART算法的異常流量監測技術,對4種攻擊類型的流量進行分類,準確率達到了90%左右。雖然CART算法在分類速度和抗噪性方面均優于SVM算法,但是在訓練用時方面,CART算法仍然需要耗費大量的時間去尋找決策樹的最優分割點。此外CART算法采用“多數表決”的方法來選擇葉節點的類別,這也會造成模型對樣本量較小的類別分類準確率下降。
因此本文在SDN架構下設計了一種業務流收集與分類系統,并設計了基于Fayyad定理改進的CART算法,與基于弱分類器系數和分類誤差率相似度改進的Adaboost算法相結合,設計分類模型,該模型在滿足一體化信息網絡業務流分類的實時性需求同時仍具有較高的分類準確率。
本文首先在SDN架構下的數據平面設計了流量感知節點,流量感知節點通過數據平面與控制平面的交互將數據平面的流表信息上報給控制平面,隨后設計了基于Fayyad定理改進的CART算法,與基于弱分類器系數和分類誤差率相似度改進的Adaboost算法相結合的分類模型,并將其部署到了控制平面中,控制平面再將從數據平面獲取的流表信息加工成流量特征后輸入到分類模型從而完成業務流的分類。
為保障一體化信息網絡端到端的服務質量,使網絡管理系統能夠動態的感知網絡流量的變化,從而及時作出決策以提高網絡性能,本文設計了一種在SDN架構下的流量感知節點。流量感知節點由數據獲取模塊和數據加工模塊共同組成,其架構如圖3所示,數據獲取模塊將邊緣交換機的原始流量信息匯報給控制平面中的數據加工模塊,隨后數據加工模塊將原始流量信息加工成流量特征以便分類模型進行分類。

圖3 流量感知節點架構
數據獲取模塊設計如下:首先控制平面獲取數據平面中邊緣交換機的狀態信息以確定邊緣交換機是否在線,隨后對在線的邊緣交換機發送數據請求以獲取原始流量信息,為了動態的感知網絡流量信息,需要持續的獲取來自邊緣交換機的原始流量信息,因此本文在控制平面開啟了一個線程以周期性的向邊緣交換機發送數據請求;邊緣交換機在收到控制平面發送的數據請求后就會將原始流量信息以報文形式發送給控制平面。由于直接從交換機獲取的原始流量信息有限,不滿足分類模型所需的全部特征,所以需要通過數據加工模塊對流量信息進行加工,以提取分類模型所需的全部特征。
本文訓練的分類模型所使用的流量特征為數據包的源端口號和目的端口號、流持續時長、流的比特速率、流的數據包速率、數據包的平均大小、數據包的平均到達時間間隔、數據包的最大到達時間間隔、數據包的最小到達時間間隔、數據包的到達時間間隔標準差;數據加工模塊獲得以上流量特征的設計如下:流的源目的端口號、持續時間可由流表信息直接獲取,由源目的端口號來確定周期前后獲取的流表信息是否為同一條流;流的比特速率可由周期前后比特數的差除以周期時間獲取,流的數據包速率計算同理;流的數據包平均大小可由周期內流過的比特數除以數據包數獲取;包的平均到達時間間隔可由周期時間除以周期內流過的數據包數獲取,數據包的最大到達時間間隔、最小到達時間間隔、到達時間間隔的標準差可通過篩選多個周期的平均到達時間間隔獲取。
CART算法是一種決策樹算法,其原理是通過基尼系數或平方誤差最小化準則來選擇訓練樣本中的分割特征值,通過遞歸的在分割特征值處將訓練集分成兩個子集來構建決策樹。由于CART算法在構建決策樹時采用二分遞歸的方法,其構建的決策樹為結構簡單的二叉樹,因此具有較強的抗干擾能力和泛化能力,適合在網絡流量存在較多噪聲的一體化信息網絡環境下進行業務流的分類。CART算法可根據類別為離散屬性或連續屬性構建分類樹或回歸樹。本文的需求是根據業務類型為流量分類,因此本文選擇CART分類樹作為待改進的算法。
由CART算法構建決策樹的原理可知,CART算法在處理連續型特征屬性時需要計算每個可能的分割點所對應的基尼系數,找出其中基尼系數最小的特征值作為最優分割點,例如一個連續型特征屬性具有N個特征值時就要計算N-1次基尼系數。當訓練集的樣本數據量大、連續型特征屬性較多時,原始的CART算法所要考慮的可能分割點數也會隨之增加,對每一個可能的分割點都計算相應的基尼系數將會帶來巨大的時間開銷,導致最終構建分類樹的效率降低,而一體化信息網絡所產生的流量具有數據量大、連續特征屬性多的特點,因此本文將基于文獻[12]提出的Fayyad邊界點定理對CART算法進行改進以降低其訓練過程中的時間開銷。

基于Fayyad邊界點定理,本文在CART算法構建決策樹時對每一維特征A的每一個可能作為分割點的特征值計算基尼系數前,首先對樣本按照特征A的特征值進行升序排序,計算排序后相鄰兩樣本類別不同時兩樣本所對應特征A的特征值的平均值并以該平均值點作為邊界點,在計算完所有特征的邊界點后,只計算邊界點的基尼系數并找出基尼系數最小的邊界點作為最優分割點。由于基于Fayyad邊界點定理改進后的CART算法不再逐一對每維特征的每一個可能作為分割點的特征值進行基尼系數計算,而是只計算邊界點的基尼系數,因此能夠大大縮短計算基尼系數所造成的的時間開銷,提高決策樹的生成效率,而Fayyad邊界點定理驗證了決策樹的最佳分割點都在邊界點處,所以這種改進方法不會降低構建的決策樹的分類精度,改進后的算法流程如圖4所示。

圖4 改進CART算法流程
由于CART算法在構建決策樹時采用以葉節點中占比最多的樣本類別作為葉節點類別的方法,這種多數表決的方法所構建的決策樹模型對樣本量較小的類別分類精度很不穩定,而一體化信息網絡環境復雜多變,導致業務流類別分布不平衡,單純使用CART算法進行區分業務流易造成對樣本量較小的業務流錯誤分類。Adaboost算法是一種集成學習的分類方法,其原理是通過迭代訓練多個弱分類器并將它們組合成強分類器以提高分類精度,具體來說就是在每輪迭代中提高那些被上一輪迭代訓練的弱分類器錯誤分類樣本的權重,而降低那些被正確分類的樣本權重,使沒有被正確分類的樣本在新一輪迭代訓練中受到更大的關注,最終各個弱分類器以投票的方式決定分類結果,其中誤差率小的弱分類器在投票中有較大的話語權,反之誤差率大的弱分類器在投票中只有較小的話語權。因此本文將CART算法與改進的Adaboost算法結合,使CART算法能夠重復學習樣本量較小的類別并構建多個弱分類模型,通過多個弱分類模型的集成學習提高對樣本量較小的類別的分類精度。
2.3.1 基于弱分類器系數改進Adaboost算法
原始的Adaboost算法中弱分類器系數的代表弱分類器在最終投票決定分類結果中的話語權,其定義如式(1)所示
(1)
其中,em表示弱分類器的分類誤差率,由上式可知原始的Adaboost算法在定義弱分類器系數時僅考慮了弱分類的誤差率em這一因素,但是當訓練集中存在大量噪聲樣本時,隨著迭代的進行和樣本權重的歸一化原則,已正確分類的樣本權重將會變得越來越小,噪聲和難分樣本的權重會越來越大,在兩類樣本權重急劇變化的情況下新訓練出的弱分類器誤差率可能仍然沒有變化,造成性能較差的弱分類器與性能較好的弱分類器在投票時話語權相同,這樣就會導致最終組合出來的強分類器模型對未知樣本的分類能力不佳。因此本文將從迭代中的弱分類系數著手對Adaboost算法改進。
本文提出了正確分類樣本權重分布系數rm,rm表示第m次迭代時正確分類樣本權重的累加和,其定義如式(2)所示
(2)
其中,m為迭代次數,Gm(xi)為弱分類器對第i個樣本的分類結果,yi為該樣本的真實類別,Dm(i)為每個正確分類的樣本權重。由于Adaboost算法在迭代中會提高被錯分了的樣本權重,降低正確分類的樣本權重,而歸一化原則使所有樣本的權重和為1,當rm較大時說明被正確分類的樣本數量較多,僅有少量噪聲樣本未被正確分類;當rm較小時說明被錯誤分類的樣本數量較多或噪聲樣本已經被賦予了較大的權重,因此rm能在一定程度上反映弱分類器的性能好壞,應當將其考慮到弱分類器的系數中,以提高性能較好的弱分類器在Adaboost算法最終訓練出的強分類器中的話語權,進而提高強分類器的泛化能力。改進后的弱分類器系數定義如式(3)所示
(3)
2.3.2 基于分類誤差相似度改進Adaboost算法
Adaboost算法的迭代訓練過程會產生多個弱分類器,但并不是每個弱分類器都會在最終產生的強分類器中起到作用,由于迭代過程具有一定的隨機性,因此迭代中可能會產生兩個性能相同的冗余弱分類器,這種冗余弱分類器不僅不會提升最終的強分類器的準確率,反而會造成多余的計算開銷,使分類效率降低。當存在過多的冗余弱分類器的Adaboost模型用于一體化信息網絡的業務流分類時,意味著業務流分類無法實時完成,用戶的服務質量需求也就難以保障。因此本文將從刪除迭代中產生的冗余弱分類器著手對Adaboost算法改進。
本文提出了誤差率相似度sij, 具體地定義如下:
(4)
其中,sij表示兩個弱分類器之間對錯誤樣本分類的相似程度。sij越高表示兩個弱分類器對相同樣本錯誤分類的概率越高,當sij=1時即表示兩個弱分類器完全相同,因此在最后組合的強分類器中發揮的作用也相同,屬于冗余的弱分類器,對其中一個刪除可減少分類所花費的時間而不會對分類精度造成影響。綜上,只要在迭代中計算分類誤差率時將分類結果存入矩陣,迭代完成后先通過分類誤差相似度刪除冗余的弱分類器再組合剩下的弱分類器形成強分類器,就可以減小分類過程中的計算開銷,縮短分類所需的時間從而提升分類效率。
為驗證本文提出的基于SDN的一體化信息網絡業務流分類技術的有效性,本文采用文獻[13]提供的數據集和UNB提供的兩個公開數據集,3個數據集都包含了網頁瀏覽、電子郵件、文字聊天、音頻傳輸、視頻傳輸、文件傳輸、語音聊天、P2P共8類常用的網絡業務流數據,能夠涵蓋一體化信息網絡所涉及的大部分業務,其中TimeBasedFeatures數據集包含8000個樣本, Darknet數據集包含140 000個樣本,VPN數據集包含90 000個樣本。為了便于本文設計的SDN控制器提取業務流特征信息,本文選取數據包源端口號和目的端口號、流持續時長、流的比特速率、流的數據包速率、數據包的平均大小、數據包的平均達到時間間隔、數據包的最大到達時間間隔、數據包的最小到達時間間隔、數據包的到達時間間隔標準差共10維特征進行實驗。
本文的實驗平臺為實驗室的Dell臺式電腦,CPU型號為Intel Core i7-3770,主頻為3.40 GHZ,內存為8 GB,搭載的操作系統為Windows7,使用Mininet對SDN架構進行仿真。
本文選用準確率、訓練時間、分類時間3個指標來衡量本文所提出的基于Fayyad邊界點定理改進的CART算法與基于弱分類器系數和分類誤差相似度改進的Adaboost算法相結合的分類算法性能。通過數據預處理在每個數據集中隨機抽取80%作為訓練集,剩下20%作為測試集,在對比本文提出的基于Fayyad邊界點定理改進的CART算法(以下簡稱改進CART算法)、改進CART算法與基于弱分類器系數和分類誤差相似度改進的Adaboost算法相結合的算法、SVM算法、CART算法、CART算法與Adaboost算法相結合的算法的基礎上采用10次實驗結果的平均值作為最終實驗結果進行分析。實驗結果如圖5~圖7所示。
圖5比較了5種算法的分類精度,其中SVM算法分類精度最低且隨著數據集樣本數量增多下降的最明顯,可以看出SVM算法在處理含有較多噪聲樣本的真實網絡流量數據時性能較差;CART算法對各個數據集的分類精度均高于SVM算法,隨著數據集樣本數量增多分類精度也有所下降,但下降的幅度要遠遠小于SVM算法,由此可見CART算法對于噪聲樣本的容忍能力要強于SVM; 改進CART算法在3個數據集的分類精度沒有明顯變化;CART算法與Adaboost算法結合后,在3個數據集的分類精度都有所上升,可見集成學習的方法提升了CART算法對于樣本量較小的數據的處理性能;將改進CART算法與基于弱分類器系數和分類誤差相似度改進的Adaboost算法結合后,算法的分類精度相較未改進的兩種算法結合又有所上升,可見通過賦予性能更好的弱分類器在最終強分類器中更大的話語權能夠提升Adaboost算法的分類精度。

圖5 5種算法的分類準確率
圖6比較了5種算法的訓練時間,SVM算法訓練用時較長,因為其在訓練過程中是因為需要訓練多個二分類器導致計算開銷較大;原始CART算法的訓練用時雖然相較SVM算法有所縮短,但訓練的時間仍然較長,這是因為該算法尋找最佳分割點需要對訓練集中每一個可能的分割點計算基尼系數;改進CART算法的訓練用時下降了超過50%,這是由于改進后的CART算法只在邊界點中尋找最佳分割點,因此計算開銷大大減少,從而縮短了訓練用時;將CART算法與Adaboost算法結合后的算法訓練用時上升幅度較大,已經超過了SVM算法的訓練用時,由于集成學習的方法需要迭代訓練多個弱分類器,因此計算開銷相比SVM算法也大大增加;將改進CART算法與基于弱分類器系數和分類誤差相似度改進的Adaboost算法結合后,算法的訓練用時相比未改進的兩種算法結合有所下降,這是因為集成學習中每個CART弱分類器都只在邊界點處尋找最佳分割點。

圖6 5種算法的訓練時間
圖7比較了5種算法的分類用時,SVM算法的分類用時最長,由于分類需要經過多個二分類器,其分類用時要明顯高于其它幾種算法;CART算法的分類用時較短,因為CART所構造的決策樹在分類時只需自根節點向下比較待分類樣本的特征值與每個節點的最佳分割點特征值的大小,直到進入葉節點并將葉節點的標簽作為最終的分類結果;改進CART算法的分類用時沒有明顯的變化;將CART算法與Adaboost算法結合后的分類用時有著明顯的上升,由于集成學習的方法在分類時需要多個弱分類器投票決定分類結果,因此分類用時相較CART算法有所增加;將改進CART算法與基于弱分類器系數和分類誤差相似度改進的Adaboost算法結合后,算法的分類用時相比未改進的兩種算法結合有所下降,可見通過分類誤差相似度剔除冗余弱分類器后能降低Adaboost算法的分類用時。

圖7 5種算法的分類用時
為解決一體化信息網絡環境下流量管理與調度的問題,使網絡資源能夠合理分配,本文提出了基于SDN的一體化信息網絡業務流分類策略。針對一體化信息網絡環境動態多變的特點,在SDN架構下設計了流量感知節點實現實時收集網絡中的流量信息,并針對一體化信息網絡流量數據量大、連續特征屬性多、業務類別分布不平衡、存在大量噪聲的特點設計了一種基于Fayyad邊界點定理改進CART算法,與基于弱分類器系數和分類誤差相似度改進的Adaboost算法相結合的分類模型,實驗結果表明了該模型具有良好的分類性能。