洪 波,魏德賓
(1.大連大學(xué)生命科學(xué)與技術(shù)學(xué)院,遼寧 大連 116622;2.大連大學(xué)通信與網(wǎng)絡(luò)重點(diǎn)實(shí)驗(yàn)室,遼寧 大連 116622;3.大連大學(xué)信息工程學(xué)院,遼寧 大連 116622)
傳統(tǒng)網(wǎng)絡(luò)設(shè)備不僅要完成數(shù)據(jù)轉(zhuǎn)發(fā),同時(shí)要具有生成和管理數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則的控制功能[1-3]。SDN 網(wǎng)絡(luò)數(shù)控解耦,能夠更好地解決當(dāng)前傳統(tǒng)網(wǎng)絡(luò)面臨的資源規(guī)模擴(kuò)展受限、組網(wǎng)靈活性差、難以快速滿足業(yè)務(wù)需求等問題[4-6]。
高動(dòng)態(tài)大跨度的無線網(wǎng)絡(luò)給網(wǎng)絡(luò)性能帶來了新的挑戰(zhàn):高動(dòng)態(tài)的拓?fù)浣Y(jié)構(gòu)容易導(dǎo)致通信鏈路的不穩(wěn)定;大跨度的網(wǎng)絡(luò)特性容易導(dǎo)致節(jié)點(diǎn)間的通信時(shí)延長(zhǎng)。隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,單一控制器的SDN 網(wǎng)絡(luò)已經(jīng)滿足不了高動(dòng)態(tài)大跨度網(wǎng)絡(luò)的健壯性和魯棒性需求,從而影響全網(wǎng)的通信質(zhì)量,甚至?xí)鹁W(wǎng)絡(luò)的癱瘓[7-8]。
為了解決上述問題,本文提出了分布式SDN 網(wǎng)絡(luò)的概念,并將物理上分散的控制器形成控制器集群。這樣一來,既可以彌補(bǔ)單一SDN 控制器網(wǎng)絡(luò)承載力弱和抗毀性差的問題,同時(shí)又可以提升網(wǎng)絡(luò)的可靠性和可擴(kuò)展性。目前,分布式SDN 架構(gòu)分為完全分布式和分層式兩種[9-11]。
完全分布式SDN 架構(gòu)采用的是扁平式控制方式。完全分布式SDN 架構(gòu)通常將整個(gè)SDN 網(wǎng)絡(luò)劃分為多個(gè)互不相交的區(qū)域,每個(gè)區(qū)域中都設(shè)置了一個(gè)SDN 交換機(jī)集合,通過一個(gè)或多個(gè)控制器來實(shí)現(xiàn)對(duì)SDN 交換機(jī)集合的管理。這種完全分布式架構(gòu)減小了交換機(jī)和控制器之間的數(shù)據(jù)傳播時(shí)延。完全分布式的SDN 架構(gòu)中的控制器在物理上分處各個(gè)不同且不相交的區(qū)域,但在邏輯上是掌握全網(wǎng)狀態(tài)的全局控制器。因此,一旦網(wǎng)絡(luò)拓?fù)浒l(fā)生變化,分布各地的控制器需要同時(shí)更新,此時(shí),交換機(jī)僅需重新調(diào)整與控制器間的地址映射即可,無需進(jìn)行繁瑣的更新操作,所以,完全分布式的結(jié)構(gòu)對(duì)數(shù)據(jù)層產(chǎn)生的影響較小,但是其共享機(jī)制復(fù)雜且負(fù)載不易控制。
分層式SDN 架構(gòu)采用層次控制方式。上層全局控制器掌握整個(gè)網(wǎng)絡(luò)狀態(tài)的全局信息,并對(duì)下層局部控制器的負(fù)載均衡和一致性協(xié)調(diào)負(fù)責(zé)。而下層的局部控制只對(duì)本區(qū)域負(fù)責(zé)。層次式的控制器有兩種交互方式:一種是下層局部控制器和上層全局控制器之間的交互;一種是上層全局交換機(jī)之間的交互。所以,局部控制器之間不需要進(jìn)行信息共享等交互,只需處理好全局控制器之間的信息交互。分層式架構(gòu)的局域內(nèi)控制時(shí)延小且控制器連接機(jī)制簡(jiǎn)單,但是,全局事件時(shí)延大,擴(kuò)展性差。
鑒于此,本文針對(duì)高動(dòng)態(tài)大跨度無線網(wǎng)絡(luò)特點(diǎn),結(jié)合完全分布式SDN 架構(gòu)和分層式SDN 架構(gòu)的優(yōu)勢(shì),提出了一種分布式的軟件定義無線網(wǎng)絡(luò)DSDWN(Distributed Software Defined Wireless Network),并基于該架構(gòu)設(shè)置了主從控制器和事件傳播系統(tǒng),提出了控制器配置算法和主控制器選擇算法,以減少網(wǎng)絡(luò)通信時(shí)延,解決網(wǎng)絡(luò)高動(dòng)態(tài)和大跨度等特征帶來的問題。
圖1 DSDWN 系統(tǒng)
本文將完全分布式的SDN 架構(gòu)運(yùn)用到主從控制器的網(wǎng)絡(luò)中,其系統(tǒng)結(jié)構(gòu)如圖1 所示。系統(tǒng)根據(jù)控制域進(jìn)行劃分,每個(gè)控制域均有一個(gè)主控制器(Master_Ctrl)和多個(gè)從控制器(Slave_Ctrl)。在同一個(gè)控制域內(nèi),控制器形成集群,擁有該區(qū)域的網(wǎng)絡(luò)視圖,每層控制器集群中設(shè)置一個(gè)主控制器,各層的主控制器通過事件傳播系統(tǒng)共享全局信息。
主控制器間事件的傳播采用發(fā)布/訂閱消息模式,如圖2 所示。每個(gè)控制器訂閱網(wǎng)絡(luò)中的數(shù)據(jù)信道、控制信道及自身信道,并被授予權(quán)限以發(fā)布和訂閱信息??刂破鲗⒈镜鼐W(wǎng)絡(luò)和應(yīng)用程序發(fā)布到數(shù)據(jù)信道中,針對(duì)一個(gè)特定的控制器事件和OpenFlow 命令在相應(yīng)控制器的信道內(nèi)發(fā)布。此外,每個(gè)控制器必須利用控制信道周期性地通告自身信息。
負(fù)責(zé)控制器通信服務(wù)的發(fā)布/訂閱消息模式需提供以下服務(wù):
圖2 事件傳播系統(tǒng)
1)提供發(fā)布事件的持久性存儲(chǔ)(提供有保證的事件交付),保持同一個(gè)控制器發(fā)布事件的順序;
2)免疫網(wǎng)絡(luò)分割,每個(gè)分割必須獨(dú)立繼續(xù)運(yùn)行并在重新連接時(shí)實(shí)現(xiàn)同步;
3)盡量減少傳播事件所需的跨站點(diǎn)的流量,即一個(gè)站點(diǎn)的控制器應(yīng)該從附近的控制器得到大多數(shù)其他站點(diǎn)的更新,以避免跨區(qū)域連接的擁塞;
4)加強(qiáng)訪問控制,以確保訪問擁有權(quán)。
WheelFS 分布式文件系統(tǒng)[12]是一個(gè)可實(shí)現(xiàn)上述事件傳播的發(fā)布/訂閱消息模式。WheelFS 帶來了應(yīng)用程序的可控性、一致性、耐久性以及根據(jù)語義線索的要求放置數(shù)據(jù)的能力。語義線索可以直接嵌入在路徑名中,以改變文件系統(tǒng)的行為。WheelFS分布式文件系統(tǒng)采用目錄表示信道并采用文件表示信息,因此,為檢測(cè)信息的到達(dá),控制器應(yīng)用程序?qū)δ夸涍M(jìn)行定期輪詢。
此外,使用WheelFS 還能夠免疫網(wǎng)絡(luò)分割。一旦網(wǎng)絡(luò)被分割,每個(gè)分割上WheelFS 能夠繼續(xù)獨(dú)立運(yùn)作??刂破鲿?huì)得到分割斷開時(shí)其他分割中所有發(fā)生的事件,經(jīng)過重播后使得所有控制器的網(wǎng)絡(luò)級(jí)視圖重新一致。
在DSDWN 架構(gòu)中,組成控制器集群的前提是對(duì)控制節(jié)點(diǎn)進(jìn)行選取,進(jìn)而部署交換機(jī)節(jié)點(diǎn)。本文用G=(V,E)表示該無線網(wǎng)絡(luò),各網(wǎng)絡(luò)參數(shù)如表1所示。
表1 無線網(wǎng)絡(luò)參數(shù)
現(xiàn)有的配置策略有基于聚類算法[13]的控制器集群算法和基于貪婪算法[14]的控制器配置兩種。基于聚類的控制器配置算法的優(yōu)勢(shì)在于可用于降低一個(gè)控制器所連通信節(jié)點(diǎn)中的所有鏈路的時(shí)延最大值,使得每個(gè)通信節(jié)點(diǎn)到控制器的最大值都不會(huì)太高。基于貪婪的控制器配置算法優(yōu)勢(shì)在于節(jié)點(diǎn)控制器間的平均時(shí)延較小。然而,在本文提出的分布式SDN 系統(tǒng)結(jié)構(gòu)下,以上兩類算法都無法實(shí)現(xiàn)最優(yōu)控制器節(jié)點(diǎn)的選擇,故需設(shè)計(jì)新的控制器配置策略。
假設(shè)無線網(wǎng)絡(luò)通信周期為T,T 劃分為S 個(gè)時(shí)間片,一個(gè)時(shí)間片內(nèi),控制器Ck與交換節(jié)點(diǎn)v 間的時(shí)延記作d(v,Ck),控制器個(gè)數(shù)為M,計(jì)算權(quán)重uk。
結(jié)合以上描述,本文設(shè)計(jì)的控制器配置算法的具體步驟為:
Step1:依就近原則對(duì)全網(wǎng)進(jìn)行區(qū)域劃分R={R1,R2,R3,…,RL};
Step2:對(duì)于每個(gè)Ri,依據(jù)權(quán)重計(jì)算公式,按升序方式生成權(quán)重序列為{u1,u2,…,uM,…,uN},則初始聚類中的控制器為{v1,v2,…,vM};
Step3:聚類中添加符合d(vi,v)≤Dreq,i=1,2,…,M 的節(jié)點(diǎn)V;
Step4:對(duì)已有聚類進(jìn)行迭代,重新計(jì)算權(quán)重并升序排列,控制器則由選出局部最小節(jié)點(diǎn)替代。
Step5:重復(fù)上述步驟,直到所有的節(jié)點(diǎn)都包含在某一聚類中。
對(duì)于已經(jīng)獲得的控制器集群,還需從中選擇出主控制器,以實(shí)現(xiàn)控制域之間的正常通信。為保證主控制器與其他節(jié)點(diǎn)間的通信在時(shí)延、鏈路連接時(shí)長(zhǎng)、資源等各方面均為最優(yōu),本節(jié)利用多目標(biāo)優(yōu)化算法實(shí)現(xiàn)了主控制器的選擇。
令t 時(shí)刻下控制器集群所在的衛(wèi)星網(wǎng)絡(luò)為G(t)=(V,E(t)),0≤t≤T,其中節(jié)點(diǎn)集合為V={v1,v2,…,vs},E(t)是鏈路集合。對(duì)鏈路參數(shù)進(jìn)行定義,如表2所示。
表2 鏈路參數(shù)
其中鏈路連接狀況函數(shù)為:
用m 表示節(jié)點(diǎn)集合V={v1,v2,…,vs}組成的控制器系統(tǒng)中共有m 類資源,每個(gè)節(jié)點(diǎn)上有若干資源。
對(duì)鏈路連接時(shí)長(zhǎng)c,鏈路總時(shí)延d,及節(jié)點(diǎn)的資源Rj進(jìn)行多目標(biāo)優(yōu)化,其優(yōu)化函數(shù)和約束條件如下:
將上述問題通過數(shù)學(xué)描述簡(jiǎn)化為單目標(biāo)優(yōu)化問題,如下式:
本文的權(quán)重是指,把第1 個(gè)屬性鏈路連接時(shí)長(zhǎng)的權(quán)ω1和第2 個(gè)屬性總時(shí)延的權(quán)ω2之比記為α12,第2 個(gè)屬性總時(shí)延的權(quán)ω2和第3 個(gè)屬性節(jié)點(diǎn)資源的權(quán)ω3之比記為α23,以此類推,構(gòu)成決策矩陣。則
式中,I 是單位矩陣,若矩陣A 中的值估計(jì)準(zhǔn)確,上式嚴(yán)格等于0;若估計(jì)不夠準(zhǔn)確,則A 中元素的小的攝動(dòng)代表本征值的小的攝動(dòng),于是有
表3 階數(shù)為n 的矩陣對(duì)應(yīng)的RI 值
此處CR 應(yīng)不小于0.1,否則必須重新考量w,可由式(7)求出。
本文基于mininet 平臺(tái),采用floodlight 作為控制器,對(duì)文中所提出的架構(gòu)及配置策略的性能進(jìn)行仿真驗(yàn)證,仿真在基于主從架構(gòu)的網(wǎng)絡(luò)模型中進(jìn)行,其仿真的參數(shù)如表4 所示。
表4 仿真參數(shù)
依據(jù)第3 節(jié)設(shè)計(jì)的算法和以上仿真參數(shù)進(jìn)行仿真,其時(shí)延仿真結(jié)果如圖3 所示。
圖3 時(shí)延性能對(duì)比
由圖3 可知,本文算法在時(shí)延方面比貪婪算法降低了13%~18.2%,比聚類算法降低了8.3%~15%。且當(dāng)控制器個(gè)數(shù)M 值越小時(shí),本文算法的優(yōu)勢(shì)更加顯現(xiàn)。
本節(jié)對(duì)提出的基于多目標(biāo)優(yōu)化的控制器選擇策略進(jìn)行仿真驗(yàn)證,仿真對(duì)象為4.2 中得到控制器集群。
在仿真中,定義鏈路連接時(shí)長(zhǎng)權(quán)值為ω1,總時(shí)延權(quán)值為ω2,節(jié)點(diǎn)資源權(quán)值為ω3,權(quán)向量w=(0.25,0.55,0.2)T。
根據(jù)3 種屬性權(quán)值設(shè)置計(jì)算得CR=0.07,因此,權(quán)向量估計(jì)可被接受。
在Other_Ctrl 中任選一個(gè)作為目的節(jié)點(diǎn)Destination_Ctrl1,再?gòu)腛ther_Ctrl 中隨機(jī)選擇Oth er_Ctrl1,Other_Ctrl2,Other_Ctrl3,比 較Master_Ctrl到Destination_Ctrl 及,Other_Ctrl1,Other_Ctrl2,Other_Ctrl3 到Destination_Ctrl 的路由開銷。這里的路由開銷為傳遞數(shù)據(jù)分組時(shí)使用的控制分組總和。仿真中hello 包發(fā)送周期為10 s,仿真時(shí)間為300 s,仿真結(jié)果如圖4 所示。
圖4 路由開銷性能對(duì)比
由圖4 可知,Other_Ctrl1,Other_Ctrl2,Other_Ctrl3的路由開銷均高于Master_Ctrl 的路由開銷,最多高7.8%。這是由于通過本文主控制器策略選擇出來的Master_Ctrl 優(yōu)化了鏈路連接時(shí)長(zhǎng),總時(shí)延及節(jié)點(diǎn)資源,擁有更好的性能。
本文基于分布式SDN 思想,設(shè)計(jì)了一種分布式的軟件定義無線網(wǎng)絡(luò)架構(gòu)DSDWN,利用事件傳播系統(tǒng)實(shí)現(xiàn)了各集群主控制器的通信及同步。仿真結(jié)果表明,本文提出的控制器配置算法在時(shí)延上有明顯優(yōu)勢(shì),更適合無線網(wǎng)絡(luò)環(huán)境控制器的配置部署,提出的基于多目標(biāo)優(yōu)化主控制器選擇策略,路由開銷更小,綜合性能更優(yōu)。