劉春林,李韋鵬,秦 進
(1.凱里學(xué)院大數(shù)據(jù)工程學(xué)院,貴州 凱里 556011;2.貴州大學(xué)計算機科學(xué)與技術(shù)學(xué)院,貴州 貴陽 550025)
SDN作為新型網(wǎng)絡(luò)架構(gòu),它以控制器為核心,并對域內(nèi)的交換機進行調(diào)度完成網(wǎng)絡(luò)數(shù)據(jù)和資源的傳遞,因其具有良好的擴展性和開放性而引起人們的重視[1]。隨著海量數(shù)據(jù)的聚合劃分,以及云計算和移動互聯(lián)對網(wǎng)絡(luò)即時性的需求,傳統(tǒng)IP網(wǎng)絡(luò)已經(jīng)難以勝任[2-3]。由于SDN打破了傳統(tǒng)網(wǎng)絡(luò)的靜態(tài)特性,能夠把控制層和數(shù)據(jù)傳輸采取分離處理,從而更靈活的完成資源調(diào)度,更好的支持互聯(lián)網(wǎng)新技術(shù)。但是作為新型架構(gòu),SDN目前也存在一些技術(shù)難點。主要是控制器和流表等部署調(diào)度問題[4-5],調(diào)度策略的失誤將會導(dǎo)致網(wǎng)絡(luò)時延增加,負(fù)載失衡,擴展性降低等,進而影響網(wǎng)絡(luò)性能。為此,一些學(xué)者與研究人員正在努力解決。文獻[6]采取路徑與支配集作為目標(biāo),并考慮了生存性限定,對SDN控制器進行調(diào)度優(yōu)化。該方法較C-MPC獲得了更好的網(wǎng)絡(luò)生存能力,也降低了網(wǎng)絡(luò)中控制器的使用數(shù)量,但是該方法缺乏對通信時間代價的考慮,使得它的低時延效果不好。文獻[7]在生存性的基礎(chǔ)上,還加入了時延與控制鏈路的限定。該方法能夠確??刂破鞯睦寐屎蜕婺芰?,同時也在一定程度上改善了網(wǎng)絡(luò)時延,但是動態(tài)管理效果不好。文獻[8]設(shè)計了包含時延、故障、以及節(jié)點的多目標(biāo)模型,并通過SPEA-Ⅱ增強控制器調(diào)度性能。該方法能夠控制SDN的時延與路徑故障,但是沒有考慮數(shù)據(jù)量增加時的網(wǎng)絡(luò)負(fù)載問題。
基于以上研究的優(yōu)缺點,本文從時延與負(fù)載出發(fā),在目標(biāo)約束的限定下,充分考慮SDN控制器、交換機,以及流表調(diào)度,設(shè)計了動態(tài)遷移優(yōu)化策略改善網(wǎng)絡(luò)調(diào)度性能。并通過與經(jīng)典k-median方法比較,驗證本文方法對SDN網(wǎng)絡(luò)性能的有效提升。
(1)
(2)
網(wǎng)絡(luò)累計通信代價來自于控制器與數(shù)據(jù)流兩方面,利用輸入?yún)?shù)可以表示為
(3)
(4)
在SDN網(wǎng)絡(luò)進行數(shù)據(jù)傳送時,控制器與交換機映射情況的變化,會對數(shù)據(jù)時延產(chǎn)生不同的影響。如果兩個交換機li與lj在網(wǎng)絡(luò)架構(gòu)中互為鄰域,則由li向lj傳遞數(shù)據(jù)之后,lj將根據(jù)緩沖對數(shù)據(jù)流表采取驗證。經(jīng)過驗證后,lj通知控制器收到一個輸入包。控制器針對輸入包與網(wǎng)絡(luò)情況采取相應(yīng)的轉(zhuǎn)發(fā)策略,同時把數(shù)據(jù)封裝于流表。圖1具體描述了數(shù)據(jù)的傳輸流程,其中l(wèi)i位于lj的鄰域內(nèi)。當(dāng)數(shù)據(jù)從li出發(fā)送出,會先經(jīng)過控制器cm封裝成數(shù)據(jù)流表,并對轉(zhuǎn)發(fā)策略采取規(guī)劃。如果直接轉(zhuǎn)發(fā)至鄰域lj的代價較大,則會選擇轉(zhuǎn)發(fā)至域內(nèi)其它交換機lm,當(dāng)lm驗證通過,才會將數(shù)據(jù)轉(zhuǎn)發(fā)至lj。此時lj對數(shù)據(jù)進行驗證,并向其對應(yīng)的控制器cn發(fā)送通知,確定成功后再由cn對數(shù)據(jù)進行封裝。
圖1 數(shù)據(jù)傳輸流程
根據(jù)數(shù)據(jù)傳輸流程,網(wǎng)絡(luò)中l(wèi)i的路徑請求量可以描述如下
qim=∑L(i,j)+∑L(,j)
(5)
L(i,j)是由li向lj傳遞數(shù)據(jù)時對應(yīng)的路徑請求量;∑L(i,j)項是計算cm相關(guān)的交換機請求量;∑L(,j)是計算非cm相關(guān)的交換機請求量。利用請求量qim,能夠確定cm負(fù)載情況,從而進一步確定cm平均處理時間
(6)
Rm是cm的容量;N是網(wǎng)絡(luò)節(jié)點數(shù)量。從tm公式可以看出,網(wǎng)絡(luò)時延與控制器的處理速度和節(jié)點數(shù)量有關(guān)。為降低網(wǎng)絡(luò)時延,同時增強網(wǎng)絡(luò)均衡,這里計算li對cm資源利用率rim=qim/Rm。推廣至整個網(wǎng)絡(luò)架構(gòu),可以得到網(wǎng)絡(luò)全部控制器的累計效用為
(7)
Ztotal值與控制器負(fù)載為正相關(guān),據(jù)此,利用動態(tài)遷移便可以調(diào)節(jié)網(wǎng)絡(luò)的累計效用。動態(tài)遷移過程即是對控制器與交換機的重構(gòu)。
數(shù)據(jù)流表下發(fā)過程中,需要考慮信道負(fù)載的具體情況[9]。對于信道h,負(fù)載飽和度公式描述為
(8)
(9)
同時定義網(wǎng)絡(luò)節(jié)點的聚集度為
(10)
(11)
(12)
至此,便可以計算出fc與fd的比值,利用該比值判斷負(fù)載情況,通過動態(tài)遷移實現(xiàn)流表的實時調(diào)整。按照傳統(tǒng)思想,要想完成多域場合下的數(shù)據(jù)傳遞,必須先經(jīng)過域內(nèi)多次傳遞,利用邊緣交換機完成鄰域間傳遞。這種操作過程需要的流表請求過于復(fù)雜,由此導(dǎo)致時延增加。為此,本文基于負(fù)載均衡的情況下,由控制器直接將流表傳遞至其它域的控制器上,形成高速鏈路。隨后再由各域控制器向本域內(nèi)的交換機進行傳遞。如圖2中虛線所示,數(shù)據(jù)先從交換機li發(fā)送至該域的cm,cm對數(shù)據(jù)封裝后,一方面發(fā)送至該域的其它交換機,另一方面發(fā)送至非同域的cn。這種方式有效降低了流表下發(fā)和控制器的操作次數(shù),有利于SDN網(wǎng)絡(luò)時延的降低。
圖2 動態(tài)遷移流表調(diào)度
仿真環(huán)境與算法分別基于networkx與Python來實現(xiàn),并構(gòu)建CORONET Global topology網(wǎng)絡(luò)拓?fù)?,關(guān)于拓?fù)浼碍h(huán)境的參數(shù)配置如表1所示。實驗過程中,為了充分模擬真實場景下的信道狀態(tài),網(wǎng)絡(luò)中隨機生成傳遞數(shù)據(jù),生成的packge數(shù)量在[100,1000]之間。同時,源和目標(biāo)地址也隨機生成。SDN網(wǎng)絡(luò)采用三層控制,關(guān)于每層的具體配置如表2所示。
表1 拓?fù)浼碍h(huán)境參數(shù)
表2 SDN網(wǎng)絡(luò)結(jié)構(gòu)配置
由于網(wǎng)絡(luò)通信代價來自于控制器與數(shù)據(jù)流的操作轉(zhuǎn)發(fā),時延調(diào)整系數(shù)λ可以平衡兩種主要時間代價的關(guān)系。于是,實驗首先對時延調(diào)整系數(shù)λ與通信代價之間的影響進行分析。改變調(diào)整系數(shù)λ,得到相應(yīng)的累計通信代價,結(jié)果如圖3所示。從結(jié)果曲線可知,在0.54之前,通信代價隨著λ增大而減??;在0.54之后,通信代價隨著λ增大而增大;在λ等于0.54時通信代價最小。除了λ以外,交換機、控制器都是影響通信代價的因素。而對于它們,本文采用了動態(tài)遷移調(diào)度策略,實時改變它們的位置來調(diào)整域分配。
圖3 通信代價與時延調(diào)整系數(shù)λ之間的關(guān)系
調(diào)度策略的差異會導(dǎo)致網(wǎng)絡(luò)中控制器的差異,進而影響系統(tǒng)時延。為此,這里針對控制器變化對時延的影響進行仿真分析??刂破鱾€數(shù)從3增加至8,對應(yīng)的時延結(jié)果如圖4所示。實驗中引入了k-median方法進行對比。根據(jù)結(jié)果曲線可知,控制器增多的過程中,k-median方法的時延有明顯下降趨勢,尤其在控制器較少的情況下,下降速度較快,到了后期下降速度放緩。本文方法在控制器增多的過程中,時延曲線表現(xiàn)較為平穩(wěn),而且明顯優(yōu)于k-median方法。這是因為本文方法以通信的時延代價作為調(diào)度目標(biāo),且引入了動態(tài)遷移策略,尤其在多域場景中,能夠根據(jù)負(fù)載情況將數(shù)據(jù)流表直接由控制器在域間進行發(fā)送,避免了域內(nèi)多次傳遞后通過邊緣節(jié)點發(fā)送至域間,由此節(jié)省了大量數(shù)據(jù)處理和傳遞時間,同時也使得控制器個數(shù)對SDN網(wǎng)絡(luò)時延無顯著影響。雖然k-median也可以靠增加控制器的方式降低時延,但是在增加到一定程度后,性能改善不大,同時增加部署的控制器將提高網(wǎng)絡(luò)運行成本,并導(dǎo)致網(wǎng)絡(luò)復(fù)雜度升高。
圖4 平均時延與控制器個數(shù)之間的關(guān)系
改變SDN網(wǎng)絡(luò)的信道負(fù)載,從而驗證數(shù)據(jù)量對系統(tǒng)時延的影響。實驗過程中得到packge數(shù)量在[100,1000]之間變化時平均時延的變化情況,結(jié)果如圖5所示。根據(jù)結(jié)果曲線,數(shù)據(jù)量增加時,信道負(fù)載隨之增加,從而導(dǎo)致兩種方法的時延均隨之上升。但是本文方法的時延和增速顯然更小,這是因為本文方法的負(fù)載均衡較好,而且流表采用的是控制器發(fā)送,避免了對數(shù)據(jù)信道的大量依賴。
圖5 平均時延與數(shù)據(jù)量之間的關(guān)系
為了驗證光傳送網(wǎng)SDN調(diào)度方法的負(fù)載均衡情況,采用負(fù)載差異度作為衡量指標(biāo)。其計算公式為
(13)
在注入packge數(shù)量為1000的情況下,仿真得到方法的負(fù)載差異度結(jié)果,如表3所示。由于本文方法的動態(tài)遷移不是針對路徑,而是針對數(shù)據(jù)傳遞過程中的控制器與交換機,所以遷移后的負(fù)載差異度更好。
表3 負(fù)載差異度結(jié)果
為了改善光傳送網(wǎng)SDN調(diào)度的動態(tài)性能,降低網(wǎng)絡(luò)時延,本文提出了以通信代價為目標(biāo)的動態(tài)遷移策略?;趎etworkx與Python分別實現(xiàn)網(wǎng)絡(luò)拓?fù)渑c算法,仿真確定了λ取0.54時獲得最小通信代價。在最優(yōu)調(diào)整系數(shù)情況下,分別通過仿真得到控制器個數(shù)變化、注入數(shù)據(jù)量變化對系統(tǒng)時延的影響,以及動態(tài)遷移對負(fù)載差異度的影響,結(jié)果證明了所提方法能夠避免域內(nèi)多次傳遞和大量數(shù)據(jù)信道傳遞,從而有效降低SDN調(diào)度時延,同時,動態(tài)遷移策略有效提高了網(wǎng)絡(luò)的負(fù)載均衡度,有利于SDN網(wǎng)絡(luò)擴展。