張 , ,
(西安郵電大學(xué) 通信工程學(xué)院,西安 710121)
第5代(5G)移動(dòng)通信系統(tǒng)[1-2]具有很高的頻譜利用率和能效,傳輸速度和資源利用率比4G通信系統(tǒng)高了一個(gè)數(shù)量級(jí),因?yàn)檫@些優(yōu)點(diǎn),5G正成為通信領(lǐng)域的研究熱點(diǎn)[3-4]。超密集異構(gòu)網(wǎng)絡(luò)技術(shù)作為5G的核心技術(shù)之一,具有網(wǎng)絡(luò)規(guī)模大、網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量多的特點(diǎn),對(duì)傳統(tǒng)網(wǎng)絡(luò)管理構(gòu)成新的挑戰(zhàn)。傳統(tǒng)網(wǎng)絡(luò)管理依賴(lài)大量網(wǎng)絡(luò)設(shè)備(如交換機(jī)、路由器等)以及各種用來(lái)驅(qū)動(dòng)設(shè)備的復(fù)雜協(xié)議,通信網(wǎng)絡(luò)故障率高、可擴(kuò)展性差、網(wǎng)絡(luò)管理任務(wù)繁重。軟件定義網(wǎng)絡(luò)(Software Defined Networking,SDN)[5]作為一種新興技術(shù),是未來(lái)最具前途的網(wǎng)絡(luò)架構(gòu)之一[6-8]。SDN將復(fù)雜的網(wǎng)絡(luò)管理功能集中到控制器上,控制器為OpenFlow交換機(jī)計(jì)算出轉(zhuǎn)發(fā)數(shù)據(jù)分組的流表,OpenFlow交換機(jī)負(fù)責(zé)使用流表轉(zhuǎn)發(fā)數(shù)據(jù)。該方式能極大提高網(wǎng)絡(luò)資源利用率、簡(jiǎn)化網(wǎng)絡(luò)管理流程、降低運(yùn)營(yíng)成本[9-10]。
SDN采取集中控制管理方式,如果控制器和OpenFlow交換機(jī)失連,將導(dǎo)致OpenFlow交換機(jī)丟棄所有與流表不匹配的數(shù)據(jù)包,這會(huì)對(duì)整個(gè)網(wǎng)絡(luò)造成嚴(yán)重后果,因此,控制器和OpenFlow交換機(jī)的穩(wěn)定連接對(duì)提高控制網(wǎng)絡(luò)的可靠性十分重要[11]。
在提高SDN控制網(wǎng)絡(luò)可靠性方面,一類(lèi)方法通過(guò)解決鏈路故障率以及合理部署控制器來(lái)提高控制網(wǎng)絡(luò)可靠性。文獻(xiàn)[12]將整個(gè)SDN網(wǎng)絡(luò)劃分為多個(gè)控制域,在每個(gè)控制域中放置一個(gè)控制器,控制器在其控制域中選擇合適控制路徑,從而完成控制網(wǎng)絡(luò)。文獻(xiàn)[13]提出K-Critical算法來(lái)分割網(wǎng)絡(luò)并選擇控制器位置,其目的是處理故障并平衡所選控制器間的負(fù)載。上述方法均依據(jù)最短路徑法控制準(zhǔn)則來(lái)進(jìn)行控制網(wǎng)絡(luò)的可靠性設(shè)計(jì),在實(shí)際網(wǎng)絡(luò)中,鏈路間的故障率并不相同,最短路徑法控制準(zhǔn)則容易選擇出高故障率鏈路,從而對(duì)網(wǎng)絡(luò)整體的可靠性產(chǎn)生負(fù)面影響。另一類(lèi)方法通過(guò)數(shù)學(xué)線(xiàn)性規(guī)劃來(lái)確定控制器部署位置和控制路徑。文獻(xiàn)[14]通過(guò)控制路徑損耗的預(yù)期百分比來(lái)表示SDN控制網(wǎng)絡(luò)的可靠性,通過(guò)將控制器放置問(wèn)題簡(jiǎn)化為二進(jìn)制整數(shù)規(guī)劃問(wèn)題來(lái)最大限度地提高SDN控制網(wǎng)絡(luò)的可靠性。文獻(xiàn)[15]將可靠性問(wèn)題通過(guò)二進(jìn)制進(jìn)行整數(shù)規(guī)劃,以最大化設(shè)備和控制器間不相交路徑的平均數(shù)量,同時(shí)提出啟發(fā)式算法定義控制器備份列表以處理控制器故障。然而,控制器放置問(wèn)題是NP-hard問(wèn)題,當(dāng)網(wǎng)絡(luò)規(guī)模較大時(shí),上述方法都會(huì)花費(fèi)較多時(shí)間。
針對(duì)以上方法的不足,本文提出一種用于提高控制網(wǎng)絡(luò)可靠性的新方案,并在實(shí)際網(wǎng)絡(luò)中進(jìn)行控制器部署仿真,以驗(yàn)證該方案的可行性。
SDN控制網(wǎng)絡(luò)在設(shè)計(jì)中通常忽略鏈路故障率,或者假設(shè)所有鏈路故障率相同,其采用最短路徑法控制準(zhǔn)則進(jìn)行控制網(wǎng)絡(luò)設(shè)計(jì)。在真實(shí)網(wǎng)絡(luò)中,鏈路故障率并不能忽略,且每條鏈路的故障率各不相同,最短路徑法并不能準(zhǔn)確分析網(wǎng)絡(luò)整體可靠性。如圖1所示,C1表示控制器,S表示OpenFlow交換機(jī),網(wǎng)絡(luò)連線(xiàn)中實(shí)線(xiàn)部分表示網(wǎng)絡(luò)鏈路,虛線(xiàn)部分表示控制鏈路,鏈路上的數(shù)字表示鏈路故障率。從圖1中可以看出,控制器通過(guò)控制鏈路將流表下發(fā)到各OpenFlow交換機(jī)上,從而實(shí)現(xiàn)對(duì)所有OpenFlow交換機(jī)的通信控制。
圖1 鏈路故障率影響分析網(wǎng)絡(luò)拓?fù)?/p>
計(jì)算控制器C1到達(dá)S6的控制路徑時(shí),在考慮鏈路故障率的情況下,最短路徑法以起點(diǎn)到終點(diǎn)的故障率總值最小為原則進(jìn)行路徑控制,此時(shí)控制器C1到達(dá)S6有2種控制路徑:(C1,S2,S6)和(C1,S2,S5,S6)。這種情況下,最短路徑法并不能快速、準(zhǔn)確地選擇出哪條路徑為最佳控制路徑。隨著網(wǎng)絡(luò)規(guī)模的增大和接入的OpenFlow交換機(jī)數(shù)目的增多,最短路徑法控制準(zhǔn)則對(duì)網(wǎng)絡(luò)整體可靠性帶來(lái)的負(fù)面影響急劇上升。
采用圖2所示的2個(gè)網(wǎng)絡(luò)拓?fù)浞治隹刂破鞑渴鹞恢脤?duì)控制網(wǎng)絡(luò)可靠性的影響,其中,各部件的功能和圖1相同。設(shè)定與控制器C1直連的鏈路故障率為0(即圖2(a)中控制鏈路(C1,S1)故障率為0,圖2(b)中控制鏈路(C1,S4)故障率為0)。在圖2(a)中,將控制器C1布置在S1上,當(dāng)(S1,S2)鏈路出現(xiàn)故障時(shí),除S1外,其他OpenFlow交換機(jī)都將和控制器失聯(lián)。在圖2(b)中,將控制器C1布置在S4上,當(dāng)(S3,S4)和(S4,S5)中任意一條控制鏈路出現(xiàn)故障時(shí),最多導(dǎo)致3個(gè)OpenFlow交換機(jī)與控制器失聯(lián)。經(jīng)過(guò)對(duì)比可以看出,相比位置S1,在位置S4上部署控制器更能提高控制網(wǎng)絡(luò)的可靠性。
圖2 控制器位置影響分析網(wǎng)絡(luò)拓?fù)?/p>
綜上可知,合理選擇鏈路控制準(zhǔn)則與控制器部署位置能有效提高SDN控制網(wǎng)絡(luò)的可靠性。
用無(wú)向圖N=(S,L)表示整體網(wǎng)絡(luò)拓?fù)?其中,S表示所有OpenFlow交換機(jī),L表示所有OpenFlow交換機(jī)間的連接鏈路。假設(shè)在OpenFlow交換機(jī)及其控制器之間只有帶內(nèi)連接,即控制器和OpenFlow交換機(jī)僅通過(guò)現(xiàn)有物理路徑進(jìn)行通信。另外,用N′=(S′,L′)表示控制網(wǎng)絡(luò),其中,S′表示受控制的OpenFlow交換機(jī),L′表示網(wǎng)絡(luò)中的控制鏈路,顯然有S′=S,L′?L。
最短路徑法控制準(zhǔn)則以鏈路長(zhǎng)度(通常是節(jié)點(diǎn)跳數(shù))作為路徑權(quán)值,各節(jié)點(diǎn)選擇出權(quán)值和最小的路徑來(lái)到達(dá)目的節(jié)點(diǎn)。前文已說(shuō)明這種方式并不能保證所選擇路徑是一條最可靠的路徑。本文用鏈路可靠性指標(biāo)Rab來(lái)衡量初始節(jié)點(diǎn)a到達(dá)目的節(jié)點(diǎn)b所經(jīng)過(guò)鏈路的整體可靠程度,Rab定義如下:
在確定控制器在網(wǎng)絡(luò)中的部署位置過(guò)程中,本文用鏈路重要指標(biāo),即由某條鏈路故障而導(dǎo)致的與控制器失連的OpenFlow交換機(jī)數(shù)目,來(lái)衡量某條鏈路對(duì)網(wǎng)絡(luò)整體的重要性。鏈路重要指標(biāo)值越大,則該鏈路關(guān)聯(lián)的OpenFlow交換機(jī)數(shù)目越多,該鏈路對(duì)網(wǎng)絡(luò)整體可靠性越重要。
初始狀態(tài)時(shí)所有鏈路的重要指標(biāo)值設(shè)為0。將控制器部署在編號(hào)為1的位置上,依據(jù)控制準(zhǔn)則得出編號(hào)為1時(shí)的控制路徑。在控制路徑的確定過(guò)程中,每選擇出一條控制路徑,將該路徑上所有鏈路的重要指標(biāo)值加1,下一條控制路徑與上一條控制路徑有重疊鏈路時(shí),對(duì)該重疊部分鏈路的重要指標(biāo)值再加1。選擇出最后一條交換機(jī)的控制路徑后,該部署位置上的控制路徑重要指標(biāo)值即被確定。
確定首個(gè)位置上控制路徑的重要指標(biāo)值后,計(jì)算下一個(gè)位置所生成控制路徑及其相應(yīng)鏈路的重要指標(biāo)值,得出所有位置的控制路徑和重要指標(biāo)值后,通過(guò)第2.2節(jié)的算法選擇出控制器的部署位置。
本文設(shè)定一個(gè)衡量控制網(wǎng)絡(luò)不可靠指數(shù)的參數(shù)如下:
其中,G(N′)表示控制網(wǎng)絡(luò)的不可靠指數(shù),G(N′)數(shù)值越小,控制網(wǎng)絡(luò)可靠性越高,δab表示節(jié)點(diǎn)a與節(jié)點(diǎn)b間的鏈路誤差率,weightab表示節(jié)點(diǎn)a與節(jié)點(diǎn)b間的鏈路重要指標(biāo)值,Pab表示節(jié)點(diǎn)a和節(jié)點(diǎn)b之間是否存在控制鏈路,若存在,則Pab=1,否則Pab=0。控制器位置部署算法流程如圖3所示。首先對(duì)網(wǎng)絡(luò)中所有的OpenFlow交換機(jī)進(jìn)行從1到n的編號(hào)統(tǒng)計(jì),同時(shí)獲取OpenFlow交換機(jī)之間的所有連接鏈路誤差率,然后計(jì)算出所有可以部署控制器的位置上的網(wǎng)絡(luò)不可靠指數(shù)G(N′),在此基礎(chǔ)上,選擇出不可靠指數(shù)G(N′)最小的位置來(lái)部署控制器。
圖3 控制器位置部署算法流程
控制網(wǎng)絡(luò)部署模型如圖4所示,主要包括應(yīng)用層、控制層和基礎(chǔ)架構(gòu)層,應(yīng)用層和控制層之間通過(guò)北向接口進(jìn)行通信,控制層和基礎(chǔ)架構(gòu)層之間通過(guò)OpenFlow協(xié)議進(jìn)行通信。
圖4 控制網(wǎng)絡(luò)模型架構(gòu)
應(yīng)用層的功能包括基本數(shù)據(jù)流轉(zhuǎn)發(fā)、拓?fù)浒l(fā)現(xiàn)、鏈路故障測(cè)量、控制路徑計(jì)算?;緮?shù)據(jù)流轉(zhuǎn)發(fā)使OpenFlow交換機(jī)查看每一個(gè)數(shù)據(jù)包、學(xué)習(xí)源-端口映射關(guān)系,并建立源MAC地址和端口之間的關(guān)聯(lián)。OpenFlow交換機(jī)學(xué)習(xí)到二層地址時(shí),流表會(huì)建立精確匹配,不同的TCP連接將會(huì)導(dǎo)致不同的流表建立;拓?fù)浒l(fā)現(xiàn)使控制層掌握全局網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息,并對(duì)網(wǎng)絡(luò)拓?fù)湫畔⑦M(jìn)行統(tǒng)一管理;鏈路故障測(cè)量收集網(wǎng)絡(luò)中所有鏈路的丟包率,由丟包情況衡量該鏈路的故障率;控制路徑計(jì)算通過(guò)鏈路控制準(zhǔn)則選擇出控制器到達(dá)各OpenFlow交換機(jī)的最可靠控制路徑。應(yīng)用層無(wú)需考慮底層細(xì)節(jié),其通過(guò)簡(jiǎn)單編程來(lái)進(jìn)行控制決策應(yīng)用的快速部署??刂茖訛檫壿嬛行目刂破?負(fù)責(zé)執(zhí)行應(yīng)用層的控制策略并生成流表下發(fā)到基礎(chǔ)架構(gòu)層?;A(chǔ)架構(gòu)層為支持OpenFlow協(xié)議的交換機(jī)轉(zhuǎn)發(fā)組件,負(fù)責(zé)執(zhí)行控制層下發(fā)的數(shù)據(jù)流表并進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)幀的具體轉(zhuǎn)發(fā)。
在本文實(shí)驗(yàn)中,電腦系統(tǒng)環(huán)境為Ubuntu 14.04.5 LTS,使用Mininet 2.2.1軟件搭建SDN仿真環(huán)境,選用POX控制器。采用圖5所示的經(jīng)典網(wǎng)絡(luò)拓?fù)鋪?lái)比較本文控制準(zhǔn)則與最短路徑法控制準(zhǔn)則在網(wǎng)絡(luò)故障率和網(wǎng)絡(luò)延時(shí)2個(gè)方面的性能。
圖5 仿真網(wǎng)絡(luò)拓?fù)?/p>
首先,采用圖5中的Internet 2和Fat-tree來(lái)對(duì)比2個(gè)方案的控制網(wǎng)絡(luò)故障率。網(wǎng)絡(luò)故障率定義為控制器到達(dá)各目的節(jié)點(diǎn)的控制數(shù)據(jù)平均丟失率,網(wǎng)絡(luò)故障率仿真結(jié)果如圖6、圖7所示。
圖6 Internet 2網(wǎng)絡(luò)故障率仿真結(jié)果
圖7 Fat-tree網(wǎng)絡(luò)故障率仿真結(jié)果
由圖6、圖7可以看出,本文控制準(zhǔn)則在故障率控制方面的性能優(yōu)于最短路徑法控制準(zhǔn)則。接下來(lái),對(duì)比2個(gè)方案的控制網(wǎng)絡(luò)時(shí)延性能??刂凭W(wǎng)絡(luò)時(shí)延定義為所有位置在各時(shí)間段平均時(shí)延情況,網(wǎng)絡(luò)時(shí)延仿真結(jié)果如圖8、圖9所示。
圖8 Internet 2網(wǎng)絡(luò)時(shí)延仿真結(jié)果
圖9 Fat-tree網(wǎng)絡(luò)時(shí)延仿真結(jié)果
由圖8、圖9可以看出,未出現(xiàn)鏈路故障時(shí),最短路徑法控制準(zhǔn)則網(wǎng)絡(luò)時(shí)延性能優(yōu)于本文控制準(zhǔn)則。在控制數(shù)據(jù)傳輸過(guò)程中出現(xiàn)鏈路故障會(huì)造成傳播時(shí)延的急劇惡化。本文控制準(zhǔn)則鏈路故障率小于最短路徑法控制準(zhǔn)則,在控制數(shù)據(jù)傳輸初期,最短路徑法控制準(zhǔn)則平均時(shí)延優(yōu)于本文控制準(zhǔn)則,但后期隨著通信時(shí)間的增加,本文控制準(zhǔn)則總平均時(shí)延優(yōu)于最短路徑法控制準(zhǔn)則。綜合對(duì)比網(wǎng)絡(luò)故障率和時(shí)延性能,可以看出本文控制準(zhǔn)則更能改善網(wǎng)絡(luò)性能。
最后驗(yàn)證本文所提控制器位置部署算法的性能,用式(3)衡量該算法對(duì)常用控制器部署算法在可靠性方面的改進(jìn)程度。
(3)
其中,N(Random,SP)表示在最短路徑法控制準(zhǔn)則條件下,在網(wǎng)絡(luò)隨機(jī)位置部署控制器時(shí)的控制網(wǎng)絡(luò)不可靠指數(shù),N(Optimal,OP)表示在本文控制準(zhǔn)則條件下,由新控制器部署算法計(jì)算出部署位置上的控制網(wǎng)絡(luò)不可靠指數(shù)。新控制器位置部署算法可靠性改進(jìn)效果如圖10~圖12所示。
圖10 Internet 2拓?fù)淇刂破鞑渴鸱抡娼Y(jié)果
圖11 Fat-tree拓?fù)淇刂破鞑渴鸱抡娼Y(jié)果
圖12 Bcube拓?fù)淇刂破鞑渴鸱抡娼Y(jié)果
由圖10~圖12可以看出,在控制網(wǎng)絡(luò)可靠性方面,相對(duì)常用控制器部署算法,本文控制器部署算法取得了18%~85%的改進(jìn)提高。因此,本文控制器部署算法更能改進(jìn)控制網(wǎng)絡(luò)的可靠性。
針對(duì)最短路徑法控制準(zhǔn)則不能提高控制網(wǎng)絡(luò)可靠性的問(wèn)題,本文以鏈路可靠性指標(biāo)為控制準(zhǔn)則,提出一種新方案,通過(guò)該方案來(lái)選擇合理的控制器部署位置和可靠的控制路徑。仿真結(jié)果表明,在故障率和時(shí)延方面,本文方案對(duì)常用控制網(wǎng)絡(luò)有明顯的改進(jìn),最大改進(jìn)達(dá)85%。但在網(wǎng)絡(luò)鏈路故障率極低的情況下,本文方案對(duì)控制網(wǎng)絡(luò)可靠性的改進(jìn)不大,且傳輸時(shí)延性能會(huì)降低。如何在保證較低故障率的同時(shí)縮短網(wǎng)絡(luò)的傳播時(shí)延,將是下一步的研究?jī)?nèi)容。