蘭巨龍,張學帥,胡宇翔,孫鵬浩
(國家數字交換系統工程技術研究中心,河南 鄭州 450001)
近年來,互聯網規模越來越大,網絡應用越來越多,網絡流量呈爆炸式增長。Cisco公司的《思科視覺網絡索引:預測和趨勢》白皮書指出,2022年全球網絡總流量將達4.8 ZB。面對如此龐大的網絡需求,現有有限的網絡資源正面臨重大挑戰。當前,以軟件定義網絡(SDN,software-defined networking)為代表的新型網絡結構正促進互聯網領域的重大變革。SDN將原來高度耦合的控制邏輯與轉發行為解耦,通過控制平面的開放接口獲得全局網絡視圖,并提供給上層網絡服務程序,實現了對全網的集中統一控制[1]。由于其在簡化網絡管理、降低運營成本、促進網絡創新方面的卓越表現,SDN架構現已被包括Google、微軟、Facebook在內的世界著名互聯網公司應用在內部網絡建設中[2]。
因此,結合SDN的優勢,充分發揮現有網絡潛能,提高網絡資源利用率,改善網絡傳輸性能,對保證網絡的服務質量有重要意義[3]。但Hartman等[4]指出在帶寬受限的網絡架構中尋找傳輸最大流量的鏈路集是NP完全問題,啟發式算法仍是研究人員的首選思路。當前廣泛采用的開路最短路徑優先(OSPF,open shortest path first)算法和負載均衡(VLB,valiant load balancing)算法[5],將所有流請求單一地路由到最短路徑上或平均地路由到若干可用路徑上,忽視了瓶頸鏈路的傳輸能力,難以取得最優結果。此外,在人工智能領域,深度強化學習(DRL,deep reinforcement learning)算法[6]借助深層神經網絡[7]取得了突破性進展,而且已經有部分研究人員將DRL應用到網絡控制場景中[8-9]。基于此,本文將長短期記憶(LSTM,long short-term memory)網絡與DRL相結合,設計了軟件定義網絡的QoS優化機制,從而使SDN能夠在滿足QoS目標的基礎上完成數據流調度。
具體而言,本文主要貢獻包括以下3個方面。
1)架構層面,提出了針對網絡數據流的自動控制架構,實現了對數據流的自動化控制與調度。
2)建模層面,通過建立軟件定義網絡QoS優化模型,引入經改進的深度強化學習算法對問題進行求解。
3)實現層面,搭建了軟件定義網絡QoS優化實驗環境,通過測試驗證了算法的有效性。
在QoS優化問題研究方面,現有主流方法可以分為啟發式算法和機器學習算法2種,現對這2種方法總結概括如下。
Chen等[10]為提高SDN云數據中心內部混合流的調度效率,設計了Karuna算法,在保證時延敏感性高的流傳輸的同時提高其他流的吞吐率;針對含有交叉節點和鏈路的網絡流量QoS保障問題,Ongaro等[11]設計提出了MCFCSP(multi-commodity flow and constrained shortest path)算法,該算法先為多個流選擇合適的路徑,而后在滿足鏈路帶寬約束下將各流分到不同的路徑中;Alizadeh等[12]將擁塞控制和負載均衡聯合考慮,針對網絡流量的分層控制響應機制慢問題設計擁塞感知(CONGA,congestion aware)模型,將數據中心網絡對擁塞問題的響應縮短到毫秒級。
以上算法主要通過建模來近似擬合當前的網絡狀態,并采用啟發式方法為數據流請求實時計算路由配置,因此此類算法有嚴格的適用場景,鏈路帶寬和長度的變化都可能導致狀態擬合算法出現較大誤差,進而對算法的整體性能產生顯著影響。
Xu等[13]結合SDN架構和深度強化學習算法提出模型無關的流調度算法,利用網絡自身的數據通過自學習的方式產生流控制邏輯,將一條數據流按照權重比例分配在選定的多條流通路上,避免建模過程中因近似處理帶來的誤差,具備良好的性能。但是本文分流(flow splitting)時采用的路徑仍由k路最短路徑(KSP,k-shortest path)算法產生,數據流仍會被分配在前k條較短路徑上,難以避免鏈路瓶頸問題。在網絡的擁塞控制方面,Xu等[14]結合多路徑傳輸控制協議(MPTCP,multi-path transmission control protocol)引入深度強化學習算法,以最大化網絡利用率為目標,通過自學習實現了對MPTCP流的自動化擁塞控制。但是此算法只是在只有一臺交換機的簡單拓撲上進行了可行性驗證,將算法擴展到較為復雜的網絡拓撲中還有待進一步研究。
本節對基于深度強化學習的軟件定義網絡QoS優化算法中的具體元素進行闡述,并依據優化目標建立數學模型。
本文提出的軟件定義網絡QoS優化架構的主要結構如圖1所示,其中,各平面的具體介紹如下。
1)數據平面。主要由一系列可編程交換機組成,接收控制器經南向接口發送控制策略并完成對數據分組的監測、處理和轉發等操作,具體地,控制策略的載體可以是OpenFlow流表[15]或P4程序[16]。
2)控制平面。負責連接應用平面與數據平面,維護全網視圖,向下傳遞控制策略,向上將底層網絡資源信息通過北向接口提供給應用平面。在北向接口選取上,基于REST架構的RESTful[17]在響應時間方面表現出了特有優勢,因此架構中采用RESTful作為控制平面與應用平面的通信接口,以保證兩平面間的通信效率。

圖1 基于深度強化學習的軟件定義網絡QoS優化架構
3)應用平面。運行負責網絡QoS優化的強化學習智能體,智能體通過控制平面提供的全網邏輯視圖和數據平面網絡資源信息生成控制策略,而后將控制策略經北向接口向控制平面下發。
1)鏈路資源
SDN拓撲模型記為無向圖G=(V,E),V為圖G的節點集,代表實際網絡中交換機集合;E為圖G的邊集,代表實際網絡中物理鏈路;網絡鏈路用e表示,則e∈E。系統中的每條網絡鏈路的傳輸能力不盡相同,記SDN中鏈路e的帶寬為ce。
2)流量傳輸
節點集V中任意2個節點稱作一組節點對,記K為所有節點對組成的集合。節點對間的一條路徑記為一條轉發路徑p,圖G中所有節點對之間的所有轉發路徑組成的集合記為P,節點對k間所有轉發路徑組成的集合記為Pk。網絡中所有節點對間的流請求矩陣記為D,對應的節點對k間的流請求記為dk。定義變量表示節點對k間的流請求分配至路徑p上的比重,變量lk表示節點對k間的鏈路時延。
定義1鏈路利用率ue。鏈路利用率表示分配在鏈路e上的流量大小與鏈路帶寬的比值,反映了鏈路的負載程度,如式(1)所示。

定義2網絡使用率U。網絡使用率定義為各鏈路利用率的最大值,如式(2)所示。

定義3負載均衡程度σ。用所有鏈路中鏈路利用率的最大值和最小值之差表示鏈路的負載均衡程度,可以表示為式(3),因此σ越小,鏈路負載越均衡。

基于以上分析,軟件定義網絡QoS優化問題可以建模為

其中,式(4)為優化目標,即最小化網絡利用率U;式(5)表示網絡節點對間的所有流請求都分配到節點對間的轉發路徑上;式(6)確保任意鏈路的鏈路利用率不超過網絡使用率;式(7)表示分配至各轉發路徑上的流不能為負值。
為解決上述NP完全問題,本節將引入基于深度強化學習的QoS優化算法,利用神經網絡感知網絡狀態,并通過自學習的方法做出滿足優化目標的分流決策。
在一個典型的強化學習模型中,智能體與環境彼此交互狀態(state)、動作(action)、獎賞(reward)信息,通過訓練逐步取得優化目標。具體來說,每一個步長t,強化學習智能體獲得當前環境的狀態st,并根據策略函數π生成動作at,環境在執行動作at后,將自身狀態st轉變為st+1,同時將動作的獎賞rt反饋給智能體。在這個過程中,四元組數據(st,at,rt,st+1)將作為經驗保存在Q表[6]中,訓練的目標就是利用Q表不斷優化策略函數π的參數來最大化未來累積折扣獎賞Rt的期望E(Rt)。E(Rt)可以表示為

其中,T為迭代次數,γ是折扣因子,反映了當前動作對后續決策的影響程度。
在軟件定義網絡QoS優化問題中,狀態、動作、獎賞的具體含義如下所示。
狀態(state)。在此模型中,狀態是指某一次網絡測量[18]時網絡中的流請求信息和所有鏈路的時延和利用率信息,用向量st表示,則st=[Dt,lt,ut],其中Dt表示t時刻的流請求矩陣,lt表示t時刻各節點對之間的傳輸時延,ut示t時刻網絡中各鏈路的鏈路利用率。
動作(action)。動作是指強化學習智能體根據QoS策略函數和網絡狀態信息st生成的上述優化問題的解,也就是各節點對之間可用轉發路徑的分流比重。若QoS策略函數用變量π表示,動作向量at可由式(9)表示,其中at中各分量的關系滿足式(5)。

獎賞(reward)。獎賞是對上一次動作所獲收益的QoS評價。本模型中,軟件定義網絡QoS優化模型的優化目標是最小化網絡使用率U,為最大化獎賞符合優化目標,定義獎賞為U的相反數。當前t的獎賞rt如式(10)所示,Ut表示t時刻的網絡利用率。

深度強化學習是深度學習和強化學習結合的產物,它綜合了深層神經網絡和強化學習的優勢,利用神經網絡代替傳統Q表,具有更優的性能。將基于Actor-Critic架構的強化學習算法與神經網絡相結合生成的DDPG(deep deterministic policy gradient)算法[19]表現出優越的模型無關(model-free)特性,為強化學習在SDN的QoS優化問題中的應用提供了可能。在DDPG算法中共包含4個神經網絡,即在線Q網絡Q(s,a|θQ)、在線策略網絡μ(s|θμ)、目標Q網絡和目標策略網絡。DDPG算法把環境與智能體交互產生的四元組(st,at,rt,st+1)作為訓練數據訓練各Q網絡和策略網絡。為避免訓練階段的在線神經網絡的參數θQ和θμ變化幅度過大使無法收斂,DDPG算法更新目標Q和目標策略網絡的參數θQ'和θμ'時采取平穩更新方法。
注意到,在網絡場景中,網絡狀態常常隨時間變化,具有明顯的時間相關性,LSTM在處理和預測表現出明顯時間相關性的數據中取得了優良的成果[14]。本文在DDPG的基礎上,引入LSTM層提出R-DRL算法,如圖2所示。
在訓練過程中,LSTM網絡負責對網絡狀態信息s進行預處理生成隱含狀態h,并將該隱含狀態傳輸給Actor和Critic架構中的神經網絡,提高神經網絡的決策的效率和準確性;Actor和Critic架構中的神經網絡依據LSTM網絡提供的網絡狀態數據生成動作,并更新內部網絡參數。具體來看,目標策略網絡μ'(s|θμ')將參數θμ'傳遞給目標Q網絡Q'(s,a|θQ')用于函數評估,在線Q網絡Q(s,a|θQ)將參數θQ傳遞給在線策略網絡μ(s|θμ)用于該網絡的梯度計算,R-DRL算法的訓練過程如算法1所示。
算法1R-DRL算法訓練過程



圖2 R-DRL算法架構
為驗證R-DRL算法的性能,本節將通過實驗仿真與其他方案進行對比,評價指標包括時延、分組丟失率和負載均衡程度3個方面。
本文實驗利用Mininet網絡仿真平臺來搭建虛擬SDN,并采用開源Ryu控制器作為整個網絡的控制器。采用Iperf流生成工具模擬真實網絡流量,R-DRL算法基于Keras+TensorFlow框架實現,算法和Mininet運行在一臺服務器上,服務器具體配置如表1所示。

表1 配置信息
實驗中,SDN的拓撲為認可度較高的GEANT網絡,該網絡中包含22個網絡節點和36條鏈路,每條鏈路的傳輸能力各不相同。網絡數據采用由UPC大學提供的基于GEANT拓撲收集的數據集,取85%作訓練集,15%作測試集。任意節點對之間的路由路徑由生成樹方法[20]生成,每個節點對之間采用4條備選轉發路徑。
DDPG:DDPG方案中不采用LSTM層,其余神經網絡參數設置與本文所提R-DRL算法一致,用來驗證LSTM層對DDPG算法改進效果。
OSPF:OSPF即開路最短路徑優先,依據該規則,網絡會把數據流轉發在長度最短的路徑上,由于沒有考慮鏈路的傳輸能力,個別鏈路容易陷入擁塞。
MCFCSP:多物網絡流流約束最短路徑方案將鏈路的傳輸能力作為約束條件,在保證網絡不出現擁塞的條件下傳輸數據流。
KSP:k路最短路徑方案會在兩節點對間選擇前k條最短的路徑作為路由路徑對數據流完成轉發操作,本次實驗中取k=4。
首先分析改變LSTM網絡層數對R-DRL性能的影響,分別用R1、R2、R3表示層數為1、2、3層的LSTM網絡,R0表示不含LSTM層,即為DDPG算法。圖3展示了訓練過程中不同LSTM網絡層數對R-DRL算法獎賞值rt相對變化的影響。通過對比可知,使用LSTM可以明顯提高算法的獎賞值,但不同的LSTM層數對rt值的變化無明顯影響。圖4是不同LSTM層數的R-DRL算法的運行時間對比。當LSTM網絡層數增加時,R-DRL算法的所需的運行時間明顯增加。結合圖3,為保證R-DRL算法的性能,以下實驗取LSTM層數為1。

圖3 不同LSTM層數時獎賞rt變化
圖5(a)展示了在軟件定義網絡QoS優化場景中不同數據流調度算法在時延方面的性能對比。從圖5(a)中可以看出,R-DRL算法可以滿足在流請求速率增長時網絡的低時延需求,而且在時延方面的優化效果優于其他算法。DDPG算法缺少LSTM網絡層,對網絡狀態表現出的時間相關性無法有效感知,因此DDPG算法生成的優化策略不能準確反映網絡的具體狀態,陷入次優解;KSP算法將數據流轉發至較短的前k條路徑上,因此這k條路徑可能共用一條至多條較短的路徑,由于傳輸能力限制,因此出現擁塞導致時延增加;MCFCSP、OSPF算法和KSP情況一致,容易出現鏈路瓶頸問題。

圖4 R-DRL算法時運行時間對比
圖5(b)展示了在軟件定義網絡QoS優化場景中不同數據流調度算法在鏈路負載均衡方面的性能對比。從圖5(b)中可以看出,OSPF、MCFCSP和KSP算法中衡量鏈路負載均衡程度的參數σ逐漸增大,相對于R-DRL和DDPG鏈路負載更不均衡,還可以注意到應用R-DRL算法的鏈路負載均衡程度總體要優于DDPG算法約22.7%。
圖5(c)展示了不同數據流調度算法在分組丟失率方面的性能對比。從圖5(c)中可以看出,MCFCSP以降低鏈路傳輸能力為代價保證各路徑上的數據流不出現擁塞,分組丟失率最低,但R-DRL算法取得了接近于MCFCSP的性能。
圖6聯合采用箱線圖和折線圖展示了路由算法R-DRL和KSP對網絡吞吐率的影響程度。其中折線圖的連接點表示不同流請求速率條件下吞吐量數據的平均值,箱線圖表示吞吐量數據的分布情況,箱線圖的上下短橫線表示箱線圖上下限,叉號表示異常值。由于DDPG、MCFCSP和OSPF算法的吞吐率效果整體都沒有超過KSP,圖6中省去了這3種算法的對比。通過圖6可知,相對于KSP算法,R-DRL將網絡吞吐率提高了約8.2%,這是因為生成樹算法在生成路由路徑時盡量減少各路徑共用一條鏈路的情況出現,避免了瓶頸鏈路的產生,提高了網絡的傳輸能力。

圖5 不同算法在軟件定義網絡QoS優化方面的性能對比

圖6 不同算法對SDN網絡吞吐率的影響
軟件定義網絡的QoS優化問題本質上是NP完全問題,為了實現QoS的自動化優化,國內外相關研究人員已經進行了深入研究,然而當前主流的啟發式解決方案存在算法參數與場景綁定,應用場景受限問題,而在嘗試應用深度強化學習的方案中,仍然采用KSP算法生成路由路徑,難免出現鏈路瓶頸問題。基于此,本文借助長短期記憶網絡和DDPG提出了用于軟件定義網絡QoS優化的R-DRL算法,通過將網絡資源和狀態信息統一到網絡模型中,借助深層神經網絡生成滿足QoS優化的目標的動態流量調度策略。在網絡拓撲GEANT上的仿真實驗說明,結合長短期記憶網絡設計的R-DRL算法提升了深度強化學習算法的流量感知能力,表現出比原有算法更好的性能。與其他算法相比,R-DRL保證了傳輸時延和分組丟失率,提高了約22.7%的網絡的負載均衡程度和約8.2%網絡吞吐率,對解決SDN中的QoS優化問題有一定實用價值。