居建濤,鄭弘迪,羅琴
(1.四川大學計算機學院,成都 610065;2.四川大學空天科學與工程學院,成都 610065)
近年來隨著智能設備以及網絡技術的快速發展,數據流量呈現出指數級的增長。為了優化流量分布以及管理大量設備,網絡結構變得異常復雜。這種復雜的異構網絡基礎設施增加了網絡的復雜性并對有效地組織、管理以及優化網絡資源提出了巨大的挑戰。
解決上述問題的一個可行方案為在網絡中采用更多的智能化辦法。文獻[1]中提出了知識平面(Knowledge Plane,KP)方法,通過應用機器學習技術(Machine Learning,ML)以及感知技術,將自動化、推薦和智能化引入互聯網。然而,由于傳統網絡所固有的分布式特性,諸如路由器、交換機等每一個節點僅僅能夠了解整個網絡中的一部分信息,將機器學習技術應用于傳統網絡十分復雜,難度較大。隨著網絡技術的發展,軟件定義網絡(Software Defined Network,SDN)技術的出現減小了將機器學習技術應用于網絡的復雜度[2]。
SDN通過將控制平面與數據轉發平面解耦,實現邏輯上集中控制,起到網絡操作系統(Network Operating System,NOS)的作用。在SDN網絡架構中控制器具備可編程的邏輯特性,通過實時監控、采集網絡狀態信息可獲得整個網絡的全局信息,從而從全局的角度來管理網絡資源。將機器學習技術應用于SDN網路架構中是合適且有效的,首先,無論是圖形處理器(Graphics Processing Unit,GPU)還是張量處理單元(Tensor Processing Unit,TPU)等計算技術的發展為機器學習技術應用到網絡領域提供了一個好的機遇;其次,機器學習算法的關鍵要素是數據,SDN控制器掌控著整個網絡視圖,能夠收集各個狀態下的網絡數據,方便了機器學習算法的應用。最后,基于實時以及歷史數據,機器學習技術通過數據分析,網絡優化以及網絡服務的自動化配置使得SDN控制器更加智能化。
本文中總結了當前可用于部署在SDN網絡架構中的機器學習算法,并分析了機器學習算法應用在SDN架構中的優劣。
文獻[3]中詳細的描述了機器學習技術在入侵檢測領域的應用,文獻[4]中通過使用機器學習技術進行IP流量分類。文獻[5]中介紹了應用于發展異構網絡的最先進的基于人工智能(Artificial Intelligence,AI)的技術,并討論了未來的研究挑戰。文獻[6]中研究了如何應用機器學習技術來提高網絡流量控制性能。文獻[7]中研究了如何將無監督機器學習技術應用到網絡領域。盡管機器學習技術應用到了各個領域,但關于機器學習技術應用于SDN領域的文獻資料相對分散,本文進行了整理分析,以便給相關的研究人員提供研究方向。
SDN架構受到越來越多的關注,非營利性組織開放網絡基金會(Open Networking Foundation,ONF)致力于SDN架構的開發、標準化和商業化。ONF為SDN做了如下定義:在SDN架構中控制平面和數據平面解耦,網絡狀態邏輯集中,底層網絡設施從應用層中抽象出來[8]。根據定義SDN架構包括三部分,分別為數據平面,控制平面以及應用平面,具體如圖1所示。

圖1 SDN網絡架構
(1)數據平面
數據平面又稱基礎設施層,位于SDN架構的最底層,該層由轉發設備構成,包括物理交換機以及虛擬交換機。虛擬交換機是基于軟件的交換機,其可運行在普通的操作系統中,Open vSwitch、Indigo以及Pantou是三種不同的虛擬交換機;物理交換機是基于硬件的交換機,包括基于NetFPGA的物理交換機以及支持SDN協議的惠普、思科以及華為等廠家的商用交換機。虛擬交換機相比于物理交換機能夠支持SDN協議的全部特性,物理交換機相比于虛擬交換機轉發數據包的速率更高。數據平面的交換機負責轉發,丟棄或者根據控制平面策略修改數據包。
(2)控制平面
控制平面相當于整個SDN系統的大腦,它可以對網絡資源進行規劃,動態更新轉發規則,使得網絡管理更加靈活。控制平面主要有邏輯上的集中控制器組成,而控制器可以控制應用平面和轉發設備之間的通信。一方面控制器向應用平面提供數據平面的網絡狀態信息,另一方面,控制器將應用程序的需求轉換為定制策略,并分發給轉發設備。此外,控制器提供了大多數網絡應用程序所需的基本信息,例如最短路由、網絡拓撲存儲、設備配置信息以及設備狀態信息等。常見的控制器包括 NOX、POX、Floodlight、Ryu、OpenDay-Light以及Beacon。此外,與控制器相關的接口包括南向接口,北向接口以及東西向接口,其中南向接口又稱為控制器和轉發設備之間的接口,其可以使得轉發設備與控制器之間交換網絡狀態信息和控制策略。到目前為止,由ONF提出的OpenFlow協議是第一個同時也是最流行的開放南向接口,但并不是唯一的南向接口協議,其他的還包括OVSDB、ForCES、NETCONF等;北向接口是指控制平面與應用平面之間的接口,使用北向接口應用程序可以利用控制平面提供的抽象網絡視圖來促進SDN網絡的自動化,創新及管理,目前北向接口還沒有標準的定義,ONF正在致力于完善這一工作;東西向接口用于多個控制器之間進行通信,當將SDN控制器部署在大規模網絡中時,大量的數據流需要控制器處理,由于控制器有限的處理能力,此時大規模的網絡就會被分為幾個相對較小的網絡,每一個小型的網絡有一個自己的控制器,為了向上層應用提供全局的網絡視圖,各個控制器之間需要使用東西向接口交換信息,同北向接口一樣,東西向接口也沒有形成一個統一的標準。
(3)應用層平面
應用層平面位于SDN架構的最頂層,由各種應用程序構成,這些應用程序可以通過北向接口利用控制平面獲得所需的網絡狀態信息來提供資源管理以及優化功能。基于SDN的應用程序可以實現流量工程,防范分布式拒絕服務攻擊、容錯管理以及服務質量管理(Quality of Service,QoS)路由機制。
機器學習是從人工智能領域一系列強大的技術發展而來,并廣泛應用于數據挖掘,使得系統能夠從訓練數據中學習到有用的機構模式和模型。機器學習方法通常由兩個主要部分構成:訓練階段以及決策階段,其具體模式如圖2所示。

圖2 機器學習過程
在訓練階段,應用機器學習方法來使用訓練數據集學習系統模型,在決策階段,系統可以通過使用訓練過的模型針對每一個新的輸入得到一個輸出。通常,機器學習算法可以劃分為四類:有監督學習、無監督學習、半監督學習以及增強學習,接下來將分別介紹幾種機器學習類型。
(1)有監督學習
有監督學習是一種標簽學習技術,即將標記過的訓練數據集作為監督學習算法的輸入和已知的輸出,當新的輸入用于該模型時能夠得到所期望的輸出。常用的有監督機器學習算法包括:k臨近算法、決策樹、隨機森林、神經網絡、支持向量機、貝葉斯算法、隱馬爾可夫模型。在k臨近算法[9]中,如果k個最近鄰居中的大多數樣本屬于某個類,則為分類的樣本也屬于該類,k值越大,噪聲對分類的影響越小。由于距離是k臨近算法的主要度量參數,因此可以用以下幾個函數來定義未標記樣本之間的距離,如切比雪夫函數、歐幾里得和歐幾里德平方。
(2)無監督學習
與有監督學習相反的是無監督學習算法,無監督學習算法是給定為標記的樣本數據,根據樣本之間的相似性將樣本數據聚類到不同的組中,無監督學習算法常用于聚類和數據聚合,常用的無監督學習算法包括K-means、自組織特征映射算法。
(3)半監督學習
半監督機器學習算法包括標記的樣本數據以及未標記的樣本數據,半監督機器學習算法廣泛使用的原因有以下兩點:其一,在很多現實世界的應用中,獲取有標記的樣本數據成本較大,而獲得未標記的樣本數據相對容易;其二,在訓練過程中,有效使用為標記的樣本數據可以提高訓練模型的性能。為了充分利用未標記的樣本數據,在半監督學習中有三個常用的基本假設,分別為平滑假設,聚類假設以及流行假設,對于不同的模型所依賴的假設也不同。
(4)增強學習
增強學習就是將情況映射為行為即最大化收益,學習者并不是被告知哪種行為要執行,而是通過嘗試學習到最大增益的行為并付諸行動。增強學習不同于監督學習,增強學習是試錯學習,由于沒有最直接的指導信息,智能體要以不斷與環境進行交互,通過試錯的方式來獲得最佳策略。增強學習包括代理Agent、狀態S,以及行動A。當將增強學習應用到SDN中時,控制器相當于代理Agent,控制器監測網絡狀態并作出控制轉發行為的決策。
在SDN架構中控制器掌控著整個網絡視圖,這為管理網絡帶來了便利,通過數據分析,網絡優化,網絡服務的自動化配置使得網絡管理更加智能化。機器學習算法可以使得控制器更加智能,通過使用訓練數據集得到的模型,根據不同的網絡狀態,控制器能夠做出最優的決定。在本章節將分別從流量分類,路徑優化以及服務質量管理幾個方面分別進行闡述機器學習算法在SDN架構中的應用。
流量分類對于網絡運營商而言具有重要的作用,它提供了更細粒度的網絡管理,根據識別出不同的流量類型,網絡運營商就可以更有效地處理不同的服務以及分配網絡資源。廣泛使用的流量分類技術有基于端口的技術,深度報文檢測(Deep Packet Inspection,DPI)技術以及機器學習方法。基于端口號的分類技術在過去經常被使用,例如熟知的80號端口號,現在大多數應用使用的是動態端口號,基于端口號的技術使用受到限制。深度報文檢測技術需要使用正則表達式定義流量模式,然后將流量的有效載荷與預定義模式進行匹配,識別流量所屬的應用程序,基于深度報文檢測的分類模式具有較高的準確度。但是,該模式也有一定的缺點,首先DPI模式只能識別模式可用的應用程序,但隨著移動互聯網浪潮的快速發展,應用程序的數量呈現出指數級的增長,這使得模式更新變得異常苦難;其次,由于需要核實所有的業務流,因此DPI技術方案會帶來較高的計算成本。最后,當互聯網上的數據流經過加密后,DPI方案就難以適用。基于機器學習的方法能夠正確識別加密流量,相比于DPI方法機器學習技術具有更低的計算成本。因此,機器學習方法受到了大家的廣泛研究。適用機器學習的方法進行流量分類工作,首先需要收集大量的數據集,然后應用機器學習方法在數據集中提取有用的特征,在SDN網絡架構中,控制器具有全局網絡視圖,便于流量的收集和分析,因此基于機器學習的方法通常在控制器中實現。關于ML應用于流量分類,許多研究進行了相關工作,例如大象流感知的分類、應用感知以及QoS感知的分類研究。在文獻[10]中研究了在混合數據中心網絡中的數據流量調度問題,首先在邊緣網絡使用機器學習技術識別大象流,其次,控制器對識別到的大象流采用流量調度優化算法。在文獻[11]中提出了一種檢測大象流的成本敏感型的學習方法。該方法由兩個階段構成,在第一階段使用數據包頭部檢測技術識別出可以的大象流,在第二階段使用決策樹的方法分析可疑大象流是否為大象流[12]。由于大象流在數據中心消耗了80%的帶寬,因此識別大象流的研究具有重要的應用價值。文獻[13]中提出的方法使用SVM算法識別于基于UDP協議的應用程序,實驗結果顯示基于SVM的機器學習方法的精確度在90%以上。文獻[14]中設計了細粒度的移動應用流量分類系統,在該系統中使用了決策樹分類算法以及k-NN算法。在文獻[15]中使用了DPI以及半監督學習方法進行QoS感知的流量分類,其中DPI用來標記部分已知的應用,然后使用標記過的訓練數據集當做半監督機器學習算法的輸入,實驗結果顯示該方法具有高于90%的分類精確度。
路由是整個網絡體系架構中的重要組成部分,在SDN網絡架構中,控制器通過修改流表項的方式來達到丟棄數據包或者使得數據流量通過某條特定的路徑,低效的路徑選擇策略會造成鏈路負載加重,增大端到端的鏈路時延,從而影響到整個網絡的性能。因此,研究如何優化數據流量的路徑選擇具有重要的意義。最短路徑優先(Shortest Path First,SPF)算法以及啟發式算法是兩類廣泛使用的路由算法。SPF算法是一種盡力而為的一種路由算法,但該算法并沒有考慮到充分利用網絡資源。啟發式算法是另一種解決路徑優化問題的一種方法,但啟發式算法的劣勢是計算復雜,消耗大量的計算資源以及時間。在SDN網絡架構中,控制器負責每條數據流制定相應的路徑策略,在這樣的情境下啟發式算法會增大控制器的計算負擔,因此許多學者開始研究將機器學習算法應用于路徑優化問題的解決中,相比于啟發式算法,基于機器學習的路徑優化算法有以下幾個優勢:首先,當模型訓練完成后能夠快速的給出接近最優的路徑,其次,機器學習算法不需要底層網絡的數學模型。路徑優化為題可以轉化為決策問題,因此增強學習使用于解決路徑優化問題,有監督學習算法在SDN網絡架構中的路徑優化問題中也有應用。
(1)基于有監督學習的路徑優化方法
有標簽的數據集是有監督學習算法的基礎,在應用有監督機器學習算法時,通常將網絡狀態及流量狀態作為訓練數據集的輸入,路由策略作為該算法的輸出,通過訓練有監督學習算法模型,能夠實時獲得類似于啟發式算法的路由策略。文獻[16]提出了一個動態路由解決框架NeuRoute,在NeuRoute中LSTM被用來評估未來的網絡流量,網絡狀態以及評估的網絡流量作為輸入,由啟發式算法計算出的路由作為輸出,這些數據集被用來訓練神經網絡,訓練得到的模型可以用來獲得實時的類似于啟發式的路由算法。
(2)基于增強學習的路徑優化方法
增強學習算法一般用于解決制定決策問題,將增強學習應用于路由優化問題時,控制器相當于代理,網絡相當于環境,網絡拓撲以及流量狀態相當于狀態空間,路由解決方案相當于動作。獎勵由基于優化的度量標準例如時延來充當。文獻[17]中提出了使用增強學習辦法的分布式智能路由協議,該智能路由協議能夠根據網絡狀態選擇最優的數據傳輸路徑。文獻[18]中使用神經網絡以及增強學習實現數據中心之間的路徑優化機制,實驗表明即使在混沌網絡環境中依舊能夠保證良好的性能。文獻[19]中使用DRL模型優化路徑,DRL模型的目標為在流量矩陣中對于給定的源和目的對之間選擇網絡時延最小的路由。
QoS參數包括丟包率、時延、時延抖動以及吞吐量,這些網絡度量指標通常被網絡運營商用來評估網絡性能;隨著多媒體技術的普及,對于網絡運營商以及服務提供商而言,用戶感知以及滿意度變得越來越重要,這一衡量指標稱為QoE。基于QoS或者QoE預測,網絡運營商以及服務提供商可以為用戶提供更好的服務質量,增加用戶的滿意程度。文獻[20]中提出了在SDN架構中基于兩個階段的分析機制來提高QoS預測質量,首先,使用決策樹發現關鍵績效指標(Key Performance Indicators,KPI)和QoS參數之間的相關性,然后應用線性回歸機器學習方法發現每個KPI的定量影響。由于QoE值高度依賴QoS參數,因此理解QoS參數如何影響QoE值是至關重要的,機器學習可以作為一種有效的方法來學習QoS參數與QoE值之間的關系。由于QoE值是離散的,因此可以把QoE預測當做分類任務,因此預測QoE的最好方法是使用有監督學習。在文獻[21]中基于視頻質量參數(SSIM和VQM)使用了四種機器學習方法來預測QoE值,并使用皮爾遜相關系數以及根均方誤差來評估算法的性能。
盡管當前已有很多工作在SDN架構中實現,但對于該領域所要求的魯棒性以及成熟度而言,在全面實施SDN架構智能化之前,仍有許多工作要做,仍有很多挑戰需要面對和解決。首先,由于數據集是機器學習算法的重要基礎,因此需要高質量的訓練數據集合。為了使得訓練得到的模型能夠更精確地實現評估與分類,必須需要足夠的數據集。那么什么是足夠的訓練數據集呢?針對該問題,需要研究訓練數據集大小,網絡特征以及機器學習模型性能之間的關系。另外,機器學習算法得到的模型也嚴重依賴于訓練數據集的質量。然而,獲得高質量、有標簽的樣本數據難度較大,為了解決這一問題,一個可行的辦法是使用公開數據集,在眾多機器學習方案中也是通用的做法。其二,分布式多控制器平臺。在SDN架構中網絡的可擴展性是一個關鍵問題,當網絡規模較小時,一個單獨的控制器基本可以滿足需求,但隨著網絡規模的擴大,由于單個控制器的計算能力有限,控制器不能夠滿足需求。文獻[22]提到了分布式多控制器平臺解決網絡可擴展性問題。一般而言,分布式多控制器平臺是由一個根控制器以及幾個域內控制器構成,根控制器掌控著整個網絡的拓撲視圖,而域內控制器掌控著單個域內的網絡拓撲視圖。為了達到優化域內路由以及域間路由的目的,可以使用多層級的增強學習算法。第三,網絡中的安全性問題。數據轉發平面與控制平面的解耦使得網絡管理變得更加靈活多樣,但同樣也帶來了安全隱患,攻擊者可以使用DDoS攻擊的方式占用控制器的計算資源,使得控制器無法管理網絡資源,造成整個網絡癱瘓。針對網絡安全問題,文獻[23]提出了基于熵和神經網絡的DDoS攻擊檢測方法,文獻[24]中提出了GAN方法來預測新的攻擊。
本文分別介紹了SDN網絡架構,機器學習算法以及機器學習算法在SDN架構中的應用,包括流量分類、路徑優化、QoS/QoE預測。此外本文還闡述了機器學習算法在SDN架構應用中所面臨的挑戰,包括高質量數據集,分布式控制其平臺以及網絡安全問題。本文旨在探索機器學習算法如何執行以及如何將機器學習算法與SDN架構相融合,希望為SDN廣泛部署以及實現更加智能化的網絡做出一份貢獻。