車向北,康文倩,歐陽(yáng)宇宏,楊柯涵,李 劍
1.深圳供電局有限公司,廣東 深圳510800
2.北京郵電大學(xué) 計(jì)算機(jī)學(xué)院,北京100876
軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)打破了傳統(tǒng)網(wǎng)絡(luò)模型的垂直結(jié)構(gòu),將控制與轉(zhuǎn)發(fā)進(jìn)行了分離,為網(wǎng)絡(luò)的創(chuàng)新與演變提供了更多可能,被認(rèn)為是未來(lái)網(wǎng)絡(luò)的主要架構(gòu),但近年來(lái),網(wǎng)絡(luò)規(guī)模不斷擴(kuò)大,網(wǎng)絡(luò)流量也呈現(xiàn)指數(shù)形式增長(zhǎng),而對(duì)網(wǎng)絡(luò)控制的要求也變得日益精細(xì)。傳統(tǒng)的網(wǎng)絡(luò)路由方案主要基于最短路徑算法來(lái)計(jì)算,存在收斂速度慢,難以處理網(wǎng)絡(luò)擁塞等問(wèn)題。因此,設(shè)計(jì)一種通過(guò)SDN控制器來(lái)對(duì)網(wǎng)絡(luò)路由進(jìn)行選路的高效優(yōu)化算法是保證網(wǎng)絡(luò)服務(wù)以及推動(dòng)SDN發(fā)展的關(guān)鍵因素。
機(jī)器學(xué)習(xí)特別是深度學(xué)習(xí)技術(shù)在大規(guī)模數(shù)據(jù)處理,分類和智能決策方面的出色表現(xiàn)而引起了廣泛關(guān)注。在SDN網(wǎng)絡(luò)中,有許多研究使用它來(lái)解決網(wǎng)絡(luò)運(yùn)營(yíng)和管理中的問(wèn)題[1-2]。Li等人在文獻(xiàn)[3]中提出了一種基于機(jī)器學(xué)習(xí)的路線預(yù)設(shè)計(jì)方案。這種方法首先使用聚類算法(例如高斯混合模型或者K-means模型)來(lái)提取網(wǎng)絡(luò)流量特征,然后使用監(jiān)督學(xué)習(xí)方法(例如極限學(xué)習(xí)機(jī))來(lái)預(yù)測(cè)流量需求,最后使用一種基于層次分析的自適應(yīng)動(dòng)態(tài)算法來(lái)處理流量路由問(wèn)題。Wang等人在文獻(xiàn)[4]中提出了一種啟發(fā)式算法來(lái)優(yōu)化SDN路由,但當(dāng)網(wǎng)絡(luò)變化時(shí),該算法的性能并不穩(wěn)定。也有研究使用諸如蟻群算法和遺傳算法等啟發(fā)式算法來(lái)優(yōu)化路由選擇問(wèn)題[5-6]。但這些算法泛化性能較差,當(dāng)網(wǎng)絡(luò)狀態(tài)變化時(shí),這些啟發(fā)式算法的參數(shù)也需要進(jìn)行相關(guān)調(diào)整,算法難以穩(wěn)定工作。
強(qiáng)化學(xué)習(xí)通過(guò)不斷與環(huán)境交互,能夠進(jìn)行動(dòng)態(tài)的決策管理,因此也常被用來(lái)解決路由優(yōu)化問(wèn)題。文獻(xiàn)[7]中的工作針對(duì)網(wǎng)絡(luò)服務(wù)質(zhì)量指標(biāo)建立獎(jiǎng)勵(lì)函數(shù)使用QLearning方法進(jìn)行優(yōu)化。文獻(xiàn)[8]中的工作提出了一種端到端的自適應(yīng)HTTP流媒體智能傳輸架構(gòu),該架構(gòu)基于部分可觀測(cè)的馬爾可夫決策過(guò)程進(jìn)行建模,也采用了基于Q-Learning的決策算法。這些基于Q-Learning[9]的強(qiáng)化學(xué)習(xí)算法需要對(duì)Q表求解以進(jìn)行控制決策。而SDN網(wǎng)絡(luò)狀態(tài)空間十分巨大,基于Q-Learning的算法并不能很好地對(duì)狀態(tài)進(jìn)行描述。同時(shí),Q-Learning作為強(qiáng)化學(xué)習(xí)中的值方法,輸出的控制動(dòng)作僅在離散動(dòng)作空間內(nèi)工作,決策動(dòng)作空間十分有限。因此,設(shè)計(jì)一種能對(duì)SDN網(wǎng)絡(luò)進(jìn)行細(xì)粒度的分析和控制的動(dòng)態(tài)路由策略是一個(gè)巨大的挑戰(zhàn)。
針對(duì)SDN控制平面中的路由策略,本文將引入近端最優(yōu)算法(Proximal Policy Optimization,PPO),根據(jù)此算法來(lái)對(duì)SDN控制平面中的路由方案進(jìn)行決策。該算法具有以下優(yōu)點(diǎn):首先,該算法使用神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)SDN網(wǎng)絡(luò)狀態(tài)的Q值進(jìn)行精確計(jì)算,避免了Q表帶來(lái)的局限性和低效性問(wèn)題。同時(shí),該算法屬于強(qiáng)化學(xué)習(xí)中的策略方法,能夠?qū)W(wǎng)絡(luò)決策輸出更加細(xì)粒度的控制方案。最后,該算法可以根據(jù)不同的優(yōu)化目標(biāo)調(diào)整強(qiáng)化學(xué)習(xí)獎(jiǎng)勵(lì)函數(shù)來(lái)動(dòng)態(tài)優(yōu)化路由策略。由于這種算法不依賴于任何特定的網(wǎng)絡(luò)狀態(tài),具有非常好的泛化性能,這種算法也有效地實(shí)現(xiàn)了黑盒優(yōu)化?;贠mnet++仿真軟件通過(guò)實(shí)驗(yàn)評(píng)估了該算法的性能。實(shí)驗(yàn)結(jié)果表明,本文提出的基于PPO的SDN路由控制算法不僅具有良好的收斂性,而且比傳統(tǒng)的基于最短路徑靜態(tài)路由算法與文獻(xiàn)[7]中提出的QAR算法具有更好的性能和穩(wěn)定性。
傳統(tǒng)互聯(lián)網(wǎng)架構(gòu)主要以O(shè)SI七層或者TCP/IP四層協(xié)議模型為主,各層網(wǎng)絡(luò)設(shè)備之間通過(guò)相應(yīng)的網(wǎng)絡(luò)協(xié)議(交換、路由、標(biāo)簽、安全等協(xié)議)來(lái)進(jìn)行數(shù)據(jù)傳遞。大體工作流程都是按照:鄰居建立—信息共享—路徑選擇三個(gè)步驟來(lái)實(shí)現(xiàn)。另外,網(wǎng)絡(luò)設(shè)備之間傳遞信息采用典型的分布式架構(gòu),設(shè)備之間以“接力棒”的形式交互信息,然后建立數(shù)據(jù)庫(kù)信息,再依據(jù)相關(guān)路徑算法(如Dijkstra最短路徑算法)傳遞數(shù)據(jù)。各層設(shè)備獨(dú)立計(jì)算,有獨(dú)立的控制器和轉(zhuǎn)發(fā)硬件,通過(guò)協(xié)議來(lái)進(jìn)行溝通。
這種分布式架構(gòu)在協(xié)議規(guī)范不完整的過(guò)去促進(jìn)了互聯(lián)網(wǎng)的蓬勃發(fā)展。但隨著現(xiàn)今通信設(shè)備協(xié)議等逐步統(tǒng)一完善,分布式架構(gòu)已逐漸到達(dá)瓶頸,凸顯出諸多問(wèn)題,例如傳輸表信息冗余、流量難以控制、設(shè)備無(wú)法自定義傳輸?shù)?。出現(xiàn)這些問(wèn)題的根本原因在于傳統(tǒng)架構(gòu)中網(wǎng)絡(luò)設(shè)備數(shù)據(jù)與控制相耦合,且設(shè)備不具有開(kāi)放性的可編程接口,從而無(wú)法將數(shù)據(jù)轉(zhuǎn)發(fā)與數(shù)據(jù)控制進(jìn)行分離。
軟件定義網(wǎng)絡(luò)這一理念正是為了解決這一問(wèn)題被提出,其核心思想是將網(wǎng)絡(luò)上的所有信息集中到一個(gè)核心控制器(Controller)上,從而控制器能夠采用集中式的方法直接操縱下層基礎(chǔ)設(shè)備,從而處理整體網(wǎng)絡(luò)的信息傳輸邏輯,并對(duì)應(yīng)用軟件提供可編程接口,這種方法能夠?yàn)閿?shù)據(jù)傳遞提供極大的靈活性,因此近年來(lái)也得到廣泛應(yīng)用[10-11]。
軟件定義網(wǎng)絡(luò)將控制平面與數(shù)據(jù)平面相分離,控制平面中的SDN控制器能夠全感知到整個(gè)網(wǎng)絡(luò)中的信息,從理論上可以為整體網(wǎng)絡(luò)提供更加高效快速的路由方案。文獻(xiàn)[12]中提出了一種知識(shí)平面網(wǎng)絡(luò)的范式,在傳統(tǒng)SDN架構(gòu)的基礎(chǔ)上添加了知識(shí)平面(Knowledge Plane),如圖1所示,知識(shí)平面需要處理由下層平面收集得到的信息并利用機(jī)器學(xué)習(xí)方法來(lái)對(duì)網(wǎng)絡(luò)管理進(jìn)行決策,從而提高SDN的整體效率。
圖1 KDN架構(gòu)圖
本文提出的路由策略優(yōu)化算法也是基于此控制模型架構(gòu)進(jìn)行展開(kāi),將在知識(shí)平面引入強(qiáng)化學(xué)習(xí)方法來(lái)對(duì)數(shù)據(jù)平面的路由方案進(jìn)行集中動(dòng)態(tài)管理。
強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種范例,基于馬爾可夫決策過(guò)程來(lái)學(xué)習(xí)決策智能體與環(huán)境之間的狀態(tài)、動(dòng)作和獎(jiǎng)勵(lì)的相互關(guān)系[9]。圖2說(shuō)明了強(qiáng)化學(xué)習(xí)之間決策主體與環(huán)境之間的交互過(guò)程。
圖2 強(qiáng)化學(xué)習(xí)中決策主體和環(huán)境的交互過(guò)程
PPO[13]是一種免模型的基于Actor-Critic架構(gòu)的策略梯度算法,在TRPO算法[14]的基礎(chǔ)上進(jìn)行了優(yōu)化。算法的目標(biāo)在于獲得一個(gè)能夠使得以上交互過(guò)程中累計(jì)回報(bào)最大化的決策策略πθ(s)。其中s為模型的輸入,即描述當(dāng)前環(huán)境的一個(gè)向量,在網(wǎng)絡(luò)控制中可以是整個(gè)網(wǎng)絡(luò)的流量矩陣以及拓?fù)溧徑泳仃嚨?。決策函數(shù)輸出動(dòng)作,該動(dòng)作在路由策略中可以是描述網(wǎng)絡(luò)鏈路的權(quán)重,通過(guò)該權(quán)重可以唯一確定最優(yōu)一種路由方案。決策函數(shù)可以用神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行擬合,θ即為網(wǎng)絡(luò)參數(shù)。
策略梯度算法的工作原理是估計(jì)策略梯度,并利用梯度上升法來(lái)更新策略參數(shù)。通過(guò)在環(huán)境中運(yùn)行策略以獲取樣本從而估算策略損失J(θ)及其梯度[9]:
策略梯度方法的主要挑戰(zhàn)在于減小梯度估計(jì)的方差,從而可以朝著更好的策略進(jìn)行優(yōu)化。在實(shí)際中,通常使用Actor-Critic架構(gòu)來(lái)進(jìn)行優(yōu)化,最終結(jié)果為:
上式優(yōu)勢(shì)函數(shù)Aπ(s,a)衡量了在狀態(tài)下某項(xiàng)決策的好壞,因此算法最終的目標(biāo)在于優(yōu)化π以不斷增大該優(yōu)勢(shì)函數(shù)。在Actor-Critic架構(gòu)下,Actor即為最終決策的策略網(wǎng)絡(luò),Critic網(wǎng)絡(luò)的作用即是對(duì)于當(dāng)前策略進(jìn)行優(yōu)勢(shì)函數(shù)的評(píng)估。PPO算法[13]在此基礎(chǔ)上將優(yōu)化目標(biāo)變?yōu)橄率酱砟繕?biāo)函數(shù),從而使得模型在訓(xùn)練時(shí)更穩(wěn)定和高效。
其中,A t即為優(yōu)勢(shì)函數(shù),?為超參數(shù),rt(θ)為重要性采樣相關(guān)的修正參數(shù),表達(dá)式如下:
最終,算法在工作時(shí),需要針對(duì)Actor和Critic設(shè)置兩套網(wǎng)絡(luò),Actor網(wǎng)絡(luò)為智能體進(jìn)行決策獲得交互歷史,Critic根據(jù)交互累積回報(bào)與預(yù)測(cè)結(jié)果之間的MSE建立損失函數(shù)進(jìn)行參數(shù)更新,而Actor則依據(jù)上式對(duì)代理目標(biāo)函數(shù)進(jìn)行更新即可。
本章將介紹基于強(qiáng)化學(xué)習(xí)的SDN路由控制算法。通過(guò)在SDN中運(yùn)行該算法,可以自動(dòng)優(yōu)化網(wǎng)絡(luò)延遲、抖動(dòng)、吞吐率等性能參數(shù),實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的實(shí)時(shí)控制,從而有效減輕網(wǎng)絡(luò)運(yùn)維壓力。
使用強(qiáng)化學(xué)習(xí)來(lái)優(yōu)化SDN路由,其中最重要的是確定決策智能體所獲取到的環(huán)境狀態(tài)(state),獎(jiǎng)勵(lì)(reward)以及決策動(dòng)作(action)空間。
強(qiáng)化學(xué)習(xí)作為一種動(dòng)態(tài)優(yōu)化算法,智能體在進(jìn)行決策時(shí)并不需要感知到整個(gè)過(guò)程中不會(huì)發(fā)生改變的量,例如在路由優(yōu)化時(shí),具體的物理鏈接以及相應(yīng)的網(wǎng)絡(luò)拓?fù)湟呀?jīng)給定,SDN控制器只需要根據(jù)當(dāng)前網(wǎng)絡(luò)流量信息來(lái)不斷規(guī)劃路由方案。因此,對(duì)于特定的SDN網(wǎng)絡(luò),智能體輸入的狀態(tài)s可以用當(dāng)前網(wǎng)絡(luò)負(fù)載的流量矩陣變換后的向量來(lái)進(jìn)行表示,而網(wǎng)絡(luò)本身的物理屬性,在智能體的訓(xùn)練過(guò)程中就已經(jīng)得到了表示學(xué)習(xí)。
智能體在感知到流量情況后,需要給出動(dòng)作a,該動(dòng)作能夠?yàn)楫?dāng)前網(wǎng)絡(luò)環(huán)境確定唯一的最優(yōu)方案。在這里將動(dòng)作設(shè)定一個(gè)表征所有鏈路權(quán)重的向量通過(guò)該鏈路權(quán)重向量,使用Floyd算法能夠?yàn)榫W(wǎng)絡(luò)唯一確定一套最優(yōu)路由方案。
智能體獲得的獎(jiǎng)勵(lì)與網(wǎng)絡(luò)整體的性能指標(biāo)相關(guān),例如網(wǎng)絡(luò)延遲、吞吐量,或者是考慮各個(gè)參數(shù)的綜合獎(jiǎng)勵(lì),例如式(8)即為綜合考慮了多個(gè)性能指標(biāo)的獎(jiǎng)勵(lì)函數(shù)。
其中,s t表示網(wǎng)絡(luò)當(dāng)前狀態(tài),a t為控制智能體產(chǎn)生的動(dòng)作,通過(guò)該動(dòng)作調(diào)整網(wǎng)絡(luò)鏈路權(quán)重,并根據(jù)該鏈路權(quán)重重新計(jì)算網(wǎng)絡(luò)中點(diǎn)對(duì)點(diǎn)的最優(yōu)路徑以獲得唯一最優(yōu)路由策略。假設(shè)鏈路權(quán)重調(diào)整后計(jì)算出的某條最優(yōu)路徑為p ij。在等式中,函數(shù)h表示調(diào)整該路徑的成本,例如對(duì)開(kāi)關(guān)操作的動(dòng)作影響。α,β,γ∈[0,1)是可調(diào)權(quán)重,delay表示該條路徑下的延遲時(shí)間,BW為帶寬,loss為丟包率,獎(jiǎng)勵(lì)函數(shù)具體可由運(yùn)行維護(hù)策略進(jìn)行靈活確定。
如圖3所示,為本文提出的算法框架。PPO智能體通過(guò)以下三種變量與環(huán)境進(jìn)行交互:狀態(tài)、動(dòng)作和獎(jiǎng)勵(lì)。其中,狀態(tài)s是當(dāng)前網(wǎng)絡(luò)負(fù)載的流量矩陣(TM),智能體對(duì)環(huán)境采取的動(dòng)作為更改網(wǎng)絡(luò)中鏈路的權(quán)重向量,通過(guò)該權(quán)重向量可以唯一確定一種網(wǎng)絡(luò)中的路由方案,整體模型的訓(xùn)練過(guò)程偽代碼如下算法所示:
1.初始化PPO決策函數(shù)πθ(s)和價(jià)值函數(shù)Vω(s)
2.While Not Done:
3.k=0
4.θold←θ
5.隨機(jī)初始化環(huán)境s k以及緩存列表buffer
6.Whilek<Kdo:
7.獲取動(dòng)作a~πθ(s k)
8.s k+1,r k=Env(s k,ak)
9.存儲(chǔ)[s k,a k,r k]于buffer
10.k←k+1
11.End While
12.根據(jù)buffer中的數(shù)據(jù)計(jì)算A k與Q k(s k,ak)
13.依據(jù)式(6)計(jì)算L(θ)
15.θ←θ+αθ?L(θ)
16.ω←ω-αω?J(ω)
17.End While
圖3 整體模型架構(gòu)
以上算法中,第6行至第11行為采樣過(guò)程,第12行至第16行為模型參數(shù)的訓(xùn)練過(guò)程。其中第8行的Env將除PPO決策主體之外的環(huán)境進(jìn)行了封裝。另外決策函數(shù)πθ(s)通常表示的是一個(gè)高維正態(tài)分布,而動(dòng)作a從該分布中進(jìn)行采樣得到。
PPO智能體的訓(xùn)練目的是根據(jù)輸入狀態(tài)s找到最佳動(dòng)作a,以最大化累計(jì)回報(bào)。整體的工作過(guò)程可總結(jié)如下:通過(guò)SDN控制器的網(wǎng)絡(luò)分析和測(cè)量,PPO智能體可以獲取準(zhǔn)確的網(wǎng)絡(luò)狀態(tài)s并確定最佳操作,即給出一組鏈路權(quán)重[w1,w2,…,w n]。根據(jù)一組更新的權(quán)重重新計(jì)算新的流路徑,具體路徑生成可以根據(jù)相應(yīng)權(quán)重按Floyd最短路徑算法來(lái)進(jìn)行求解,從而SDN控制器生成新規(guī)則以建立新路徑。在路徑更新之后,通過(guò)下一次網(wǎng)絡(luò)分析和測(cè)量獲得獎(jiǎng)勵(lì)r和新的網(wǎng)絡(luò)狀態(tài),從而迭代的優(yōu)化網(wǎng)絡(luò)的性能。
傳統(tǒng)基于機(jī)器學(xué)習(xí)的路由優(yōu)化算法從特定配置的網(wǎng)絡(luò)數(shù)據(jù)中學(xué)習(xí)路由方案,因此只能在相應(yīng)配置下工作,當(dāng)網(wǎng)絡(luò)硬件設(shè)備發(fā)生變化時(shí),路由方案便失效。而本文使用的PPO算法作為在線學(xué)習(xí)方法,能夠在與網(wǎng)絡(luò)環(huán)境的交互中,不斷使用近期的經(jīng)驗(yàn)片段對(duì)算法智能體進(jìn)行梯度更新,從而具有較強(qiáng)的適應(yīng)性。即當(dāng)網(wǎng)絡(luò)物理設(shè)備發(fā)生局部變動(dòng)時(shí),PPO智能體也能夠?qū)Υ诉M(jìn)行合理決策,以獲得相應(yīng)優(yōu)化目標(biāo)下的最優(yōu)路由方案。除此之外,PPO算法作為強(qiáng)化學(xué)習(xí)中的策略方法,相較于各類基于Q-Learning的值方法路由算法,能夠直接輸出動(dòng)作,從而更精細(xì)地對(duì)網(wǎng)絡(luò)路由進(jìn)行控制。且這種控制體方法將輸出的動(dòng)作向量與路由性能建立直接的映射,也更加便于PPO智能體的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行高效訓(xùn)練。
實(shí)驗(yàn)采用的計(jì)算機(jī)硬件配置為NVIDIAGeforce1080Ti GPU,32 GB內(nèi)存,CPU為i9-9900k,操作系統(tǒng)選用Ubuntu16.04。使用tensorflow作為搭建算法的代碼框架,使用OMNeT++[15]作為網(wǎng)絡(luò)仿真的軟件。對(duì)比了本文提出的基于PPO的路由算法和傳統(tǒng)的基于最短路徑主流路由算法以及隨機(jī)生成的路由策略之間的路由性能差異。
實(shí)驗(yàn)選用了Sprint結(jié)構(gòu)網(wǎng)絡(luò)[16],該網(wǎng)絡(luò)包含25個(gè)節(jié)點(diǎn)和53條鏈路,每條鏈路的帶寬設(shè)為相同的值。實(shí)驗(yàn)針對(duì)該網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置了幾種不同級(jí)別的流量負(fù)載(Traffic Load,TL)來(lái)模擬真實(shí)的網(wǎng)絡(luò)場(chǎng)景,每種不同的TL級(jí)別都為特定網(wǎng)絡(luò)總?cè)萘康陌俜直龋槍?duì)同一種級(jí)別的流量負(fù)載,使用引力模型(gravity model[17])來(lái)生成多種不同的流量矩陣。
為了驗(yàn)證本算法的有效性,在不同級(jí)別的流量負(fù)載上都對(duì)PPO決策智能體進(jìn)行了訓(xùn)練以及測(cè)試。
實(shí)驗(yàn)首先針對(duì)PPO算法在不同級(jí)別的流量負(fù)載上的訓(xùn)練進(jìn)行了實(shí)驗(yàn),使用了四種流量負(fù)載:分別占整個(gè)網(wǎng)絡(luò)帶寬的10%、40%、70%和100%。每種流量負(fù)載下隨機(jī)生成250個(gè)流量矩陣,其中200個(gè)作為訓(xùn)練環(huán)境,50個(gè)作為測(cè)試環(huán)境。訓(xùn)練模型時(shí),針對(duì)每個(gè)級(jí)別的流量負(fù)載,每訓(xùn)練1 000步便測(cè)試模型在測(cè)試環(huán)境中的平均性能。給定流量矩陣和路由方案,使用OMNeT++來(lái)獲取到網(wǎng)絡(luò)延遲等性能參數(shù),最終PPO模型在訓(xùn)練時(shí)針對(duì)不同的流量負(fù)載下的網(wǎng)絡(luò)延遲測(cè)試結(jié)果如圖4所示。
從圖4可以看出,隨著訓(xùn)練的不斷進(jìn)行,模型給出的路由方案能使得網(wǎng)絡(luò)延遲不斷降低,最終收斂到最優(yōu)值。
圖4 PPO訓(xùn)練過(guò)程
接下來(lái)為了驗(yàn)證該算法的有效性,對(duì)比了PPO算法以及隨機(jī)生成的50 000種路由方案在上述四種不同級(jí)別的流量負(fù)載下的延遲性能。PPO模型在這幾種流量負(fù)載下的訓(xùn)練環(huán)境中訓(xùn)練至性能收斂后,在測(cè)試環(huán)境中進(jìn)行多次測(cè)試。而這50 000種隨機(jī)路由方案能夠?yàn)镻PO性能數(shù)據(jù)提供有代表性的對(duì)比數(shù)據(jù)。最終通過(guò)這些方案進(jìn)行仿真獲得網(wǎng)絡(luò)延遲性能數(shù)據(jù),畫出箱形圖如圖5所示。
圖5 隨機(jī)路由策略與PPO優(yōu)化算法的網(wǎng)絡(luò)延遲
在圖中,矩形的上部和底部分別表示網(wǎng)絡(luò)延遲的上四分位數(shù)和下四分位數(shù),矩形中間的線表示延遲的中位數(shù)。從矩形延伸的直線的上端和下端分別表示延遲的最大值和最小值。實(shí)驗(yàn)結(jié)果表明,本文提出的基于PPO的優(yōu)化算法的最小延遲非常接近隨機(jī)生成的路由配置的最佳結(jié)果,并且方差非常小,充分證明了PPO算法在SDN優(yōu)化上的有效性。
實(shí)驗(yàn)對(duì)比了PPO算法與文獻(xiàn)[7]中提出的QAR路由算法在優(yōu)化網(wǎng)絡(luò)平均延遲和最大延遲上的性能差異,同時(shí)給出了傳統(tǒng)基于最短路徑的路由算法性能以作為參考。文獻(xiàn)[7]中提出的QAR算法基于強(qiáng)化學(xué)習(xí)中的Qlearning算法建立模型,通過(guò)對(duì)網(wǎng)絡(luò)狀態(tài)建立狀態(tài)-動(dòng)作(state-action)值函數(shù)來(lái)對(duì)路由動(dòng)作進(jìn)行決策,是近年來(lái)真正將強(qiáng)化學(xué)習(xí)應(yīng)用于SDN網(wǎng)絡(luò)路由中的代表方法。
具體實(shí)驗(yàn)過(guò)程中,在不同負(fù)載強(qiáng)度級(jí)別上針對(duì)PPO模型與QAR模型進(jìn)行收斂性訓(xùn)練后,使用了1 000個(gè)同級(jí)別的流量矩陣作為網(wǎng)絡(luò)輸入來(lái)測(cè)試這幾種不同模型的網(wǎng)絡(luò)平均延遲和網(wǎng)絡(luò)端到端最大延遲,取平均值后的結(jié)果如圖6和圖7所示。
圖6 網(wǎng)絡(luò)平均延遲
圖7 端到端最大延遲
為了驗(yàn)證模型針對(duì)不同網(wǎng)絡(luò)優(yōu)化指標(biāo)的廣泛適用性,也針對(duì)網(wǎng)絡(luò)吞吐率進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)配置與上述基本一致,唯一差別僅在于獎(jiǎng)勵(lì)函數(shù)與吞吐率成正相關(guān)關(guān)系。實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 網(wǎng)絡(luò)吞吐率
實(shí)驗(yàn)結(jié)果表明,在負(fù)載強(qiáng)度較低時(shí),這三種算法性能差異并不大。但當(dāng)流量強(qiáng)度較高時(shí),傳統(tǒng)基于最短路徑的路由算法會(huì)產(chǎn)生流量擁堵等問(wèn)題,而QAR算法與基于PPO的路由優(yōu)化算法可以有效地避免此類問(wèn)題,從實(shí)驗(yàn)數(shù)據(jù)也可以發(fā)現(xiàn),隨著流量強(qiáng)度不斷增大,這兩類基于強(qiáng)化學(xué)習(xí)的模型給出的路由方案相比對(duì)傳統(tǒng)算法性能提高的幅度越來(lái)越大。特別是在網(wǎng)絡(luò)吞吐率的優(yōu)化問(wèn)題上,當(dāng)流量強(qiáng)度超過(guò)50%后,靜態(tài)最短路徑路由算法的吞吐率迅速降低,而基于強(qiáng)化學(xué)習(xí)的兩種路由方法則在一定程度上規(guī)避了此問(wèn)題。因此,通過(guò)在SDN路由管理中引入強(qiáng)化學(xué)習(xí)等機(jī)器學(xué)習(xí)方法確實(shí)能夠提高路由效率。
對(duì)比QAR算法與基于PPO的路由算法,可以明顯發(fā)現(xiàn)PPO的性能整體要優(yōu)于QAR。分析原因如下,QAR算法在訓(xùn)練時(shí),需要不斷優(yōu)化Q表,而復(fù)雜網(wǎng)絡(luò)的狀態(tài)空間十分龐大,僅僅依靠Q表難以處理。同時(shí)QAR在輸出動(dòng)作時(shí),由于值方法的局限性,在具體控制路由時(shí)僅依靠離散動(dòng)作對(duì)SDN控制器產(chǎn)生單一動(dòng)作,無(wú)法進(jìn)行精細(xì)控制。而基于策略方法的PPO算法一方面采用神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)網(wǎng)絡(luò)狀態(tài)值進(jìn)行擬合,同時(shí)直接輸出與網(wǎng)絡(luò)路由相關(guān)的動(dòng)作向量以完成更加精細(xì)的控制,從而具有更好的優(yōu)化性能。
總之,對(duì)比最短路徑路由算法,基于PPO的路由算法在TL=70%時(shí),網(wǎng)絡(luò)平均延遲降低了29.3%,端到端最大延遲降低了17.4%,吞吐率增加了31.77%。以上實(shí)驗(yàn)結(jié)果充分說(shuō)明了本文提出的基于PPO的SDN路由控制算法不僅具有良好的收斂性,具有更好的性能和穩(wěn)定性。
本文在知識(shí)平面網(wǎng)絡(luò)的基礎(chǔ)上提出了一種基于強(qiáng)化學(xué)習(xí)的SDN路由優(yōu)化算法,該算法使用PPO深度強(qiáng)化學(xué)習(xí)機(jī)制來(lái)優(yōu)化SDN網(wǎng)絡(luò)的路由,從而實(shí)現(xiàn)了實(shí)時(shí)對(duì)SDN網(wǎng)絡(luò)進(jìn)行智能控制和管理。實(shí)驗(yàn)結(jié)果表明,本文提出的路由優(yōu)化算法具有良好的收斂性和有效性,與現(xiàn)有的路由解決方案相比,該優(yōu)化算法可以通過(guò)穩(wěn)定、優(yōu)質(zhì)的路由服務(wù)來(lái)提高網(wǎng)絡(luò)性能。
本文提出的算法能夠?qū)W(wǎng)絡(luò)路由優(yōu)化問(wèn)題進(jìn)行相對(duì)有效的處理。但在實(shí)踐生產(chǎn)中,對(duì)于大規(guī)模復(fù)雜網(wǎng)絡(luò),獲取大量訓(xùn)練樣本也存在一定難度。PPO算法作為on-policy算法,盡管模型在訓(xùn)練時(shí)結(jié)合了重要性采樣,但整體來(lái)說(shuō)訓(xùn)練時(shí)的樣本利用率還是較低。因此,如果能結(jié)合一些基于模型的強(qiáng)化學(xué)習(xí)算法,對(duì)于SDN路由優(yōu)化的問(wèn)題一定能有更高效的解決方案。