吳宇彤,周金和
(北京信息科技大學(xué) 信息與通信工程學(xué)院,北京100101)
傳統(tǒng)的TCP/IP網(wǎng)絡(luò)以IP地址為尋址依據(jù),其體系架構(gòu)和服務(wù)質(zhì)量已無(wú)法滿(mǎn)足當(dāng)今用戶(hù)的需求,人們開(kāi)始設(shè)計(jì)新型網(wǎng)絡(luò)架構(gòu),因此以?xún)?nèi)容為中心的信息中心網(wǎng)絡(luò)(Information-Centric Network,ICN)作為一個(gè)新型網(wǎng)絡(luò)范式逐漸興起。ICN具有緩存功能,可以為數(shù)據(jù)命名,同時(shí)其以?xún)?nèi)容為中心,實(shí)現(xiàn)了數(shù)據(jù)內(nèi)容和IP地址的分離。ICN的挑戰(zhàn)是尋找最優(yōu)的路由策略,使用戶(hù)更高效快捷地獲取所需內(nèi)容。
隨著通信網(wǎng)絡(luò)的發(fā)展,路由業(yè)務(wù)與日俱增,傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)已不能滿(mǎn)足行業(yè)和客戶(hù)需求,可實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化的軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)開(kāi)始被廣泛應(yīng)用。由于SDN的最大特點(diǎn)是數(shù)據(jù)面控制面解耦,控制器效率提高,故基于SDN的路由策略可以最大程度地降低損耗,提高實(shí)用性。分段路由(Segment Routing,SR)是一種新型的MPLS(Multi-Protocol Label Switching)技術(shù),它集中了控制器下發(fā)的內(nèi)容,將路徑信息都放在標(biāo)簽棧中統(tǒng)一下發(fā)給源節(jié)點(diǎn)。SR也可與ICN結(jié)合運(yùn)用,使路由轉(zhuǎn)發(fā)更加高效。
信息中心網(wǎng)絡(luò)打破了互聯(lián)網(wǎng)基于IP進(jìn)行操作的傳統(tǒng),未來(lái)互聯(lián)網(wǎng)的體系架構(gòu)將逐漸向集中式發(fā)展。SDN作為近年來(lái)出現(xiàn)的一種新的網(wǎng)絡(luò)范式,解耦分離控制平面和數(shù)據(jù)平面,集中控制使網(wǎng)絡(luò)更高效[1]。 但基于SDN控制器的集中管理不能有效減輕控制器下發(fā)內(nèi)容的負(fù)擔(dān)。
文獻(xiàn)[2-4]分別體現(xiàn)出了ICN、SDN和SR各自的優(yōu)勢(shì),但三者之間的有機(jī)融合程度較低,不能很好地滿(mǎn)足當(dāng)前用戶(hù)對(duì)于內(nèi)容和效率的需求。基于以上研究,本文提出一種SR架構(gòu)下的軟件定義信息中心網(wǎng)絡(luò)概率路由算法,將ICN作為網(wǎng)絡(luò)背景,架構(gòu)選用結(jié)合SDN與SR各自?xún)?yōu)勢(shì)的混合控制器架構(gòu),統(tǒng)一下發(fā)標(biāo)簽到源節(jié)點(diǎn)可以有效減輕控制器下發(fā)流表的負(fù)擔(dān),同時(shí)不必再擔(dān)心節(jié)點(diǎn)可能失效的問(wèn)題。為計(jì)算出數(shù)據(jù)包轉(zhuǎn)發(fā)的最佳路徑,在這一架構(gòu)上采用一種具有迭代環(huán)節(jié)的自適應(yīng)概率路由算法,該策略將節(jié)點(diǎn)發(fā)送數(shù)據(jù)包的概率進(jìn)行迭代一定次數(shù)后,使網(wǎng)絡(luò)趨于穩(wěn)定。同時(shí),該路由策略能夠有效增加網(wǎng)絡(luò)容量,減少發(fā)送數(shù)據(jù)包時(shí)的平均路徑長(zhǎng)度。
ICN以?xún)?nèi)容為中心,有數(shù)據(jù)命名的特點(diǎn)。目前已有許多ICN和SDN相結(jié)合的工作,兩者結(jié)合的核心思想是:網(wǎng)內(nèi)有一個(gè)集中控制節(jié)點(diǎn),控制器可以和域內(nèi)節(jié)點(diǎn)交互來(lái)獲取信息??刂破矫孢M(jìn)行路由路徑的規(guī)劃,數(shù)據(jù)平面根據(jù)控制器指令轉(zhuǎn)發(fā)ICN數(shù)據(jù)并找到請(qǐng)求的用戶(hù)。執(zhí)行傳統(tǒng)的MPLS協(xié)議需要大量信令協(xié)議,并且不支持與SDN的結(jié)合,SR控制器與傳統(tǒng)MPLS數(shù)據(jù)平面結(jié)合后,控制器與各節(jié)點(diǎn)的交互可以省去,改為和源節(jié)點(diǎn)交互,一次下發(fā)路徑的所有標(biāo)簽,減輕控制器負(fù)載,同時(shí)避免節(jié)點(diǎn)突然失效導(dǎo)致的轉(zhuǎn)發(fā)失敗。
傳統(tǒng)的網(wǎng)絡(luò)設(shè)備各自集成,軟件定義網(wǎng)絡(luò)方法將控制面與數(shù)據(jù)面分離,進(jìn)行集中控制與交互,使得網(wǎng)絡(luò)具有更高靈活性。由控制器下發(fā)一個(gè)帶有全路徑分段標(biāo)簽的列表到源節(jié)點(diǎn)就可以進(jìn)行數(shù)據(jù)包的轉(zhuǎn)發(fā),同時(shí)也支持與SDN的結(jié)合使用。在ICN中把SDN和SR結(jié)合,可以最大限度發(fā)揮各自?xún)?yōu)勢(shì),減輕控制器負(fù)擔(dān),使內(nèi)容轉(zhuǎn)發(fā)更快捷。
為將SDN的控制面數(shù)據(jù)面分離特性以及SR的路徑集中下發(fā)和標(biāo)簽轉(zhuǎn)發(fā)等優(yōu)點(diǎn)最大化,本文提出一個(gè)軟件定義信息中心網(wǎng)絡(luò)的架構(gòu),該架構(gòu)可以應(yīng)用在ICN中,是一個(gè)控制面和數(shù)據(jù)面分離后分別集成的架構(gòu),可以有效降低控制器負(fù)擔(dān),提高網(wǎng)絡(luò)的穩(wěn)定性。
本文所提架構(gòu)運(yùn)用于ICN中,首先討論一個(gè)ICN中的SDN。SDN控制平面通過(guò)南向接口協(xié)議獲取目標(biāo)網(wǎng)絡(luò)信息,根據(jù)用戶(hù)請(qǐng)求計(jì)算出數(shù)據(jù)包發(fā)送的最佳路徑,后將轉(zhuǎn)發(fā)規(guī)則和路徑信息下發(fā)至該流路徑要經(jīng)過(guò)的每一個(gè)節(jié)點(diǎn)。這一操作意味著最佳路徑中的每一個(gè)節(jié)點(diǎn)都需要與控制器進(jìn)行交互,若有節(jié)點(diǎn)突然失去通信,那么控制器無(wú)法將既定信息發(fā)送到該節(jié)點(diǎn),那本次內(nèi)容轉(zhuǎn)發(fā)則以失敗告終。但若是在SDN中結(jié)合SR技術(shù),控制器無(wú)需與路徑中的每個(gè)節(jié)點(diǎn)進(jìn)行交互,而只需與該流路徑的源節(jié)點(diǎn)進(jìn)行交互,對(duì)路徑進(jìn)行編碼后一次下發(fā)含有所有分段標(biāo)簽信息的標(biāo)簽棧,再通過(guò)SR的標(biāo)簽操作進(jìn)行最佳路徑接下來(lái)每步的數(shù)據(jù)包轉(zhuǎn)發(fā)。
SR可以通過(guò)控制器向源節(jié)點(diǎn)發(fā)送段標(biāo)識(shí)符(Segment Identifier,SID)信息,無(wú)需對(duì)中間節(jié)點(diǎn)下發(fā)轉(zhuǎn)發(fā)規(guī)則,節(jié)省了控制器建立流和轉(zhuǎn)發(fā)路徑所需的時(shí)間,減輕了控制器的負(fù)擔(dān);同時(shí),SR可根據(jù)網(wǎng)絡(luò)參數(shù)的約束條件進(jìn)行流量調(diào)度優(yōu)化計(jì)算,即使控制器失效,也同樣具備轉(zhuǎn)發(fā)能力,各節(jié)點(diǎn)均可作為源節(jié)點(diǎn)自主控制某條流[5]。
本文提出的軟件定義的SR架構(gòu)如圖1所示。該網(wǎng)絡(luò)架構(gòu)包括具有內(nèi)容緩存功能的ICN節(jié)點(diǎn)和SDN+SR控制器兩部分。其中,控制器屬于控制平面,ICN節(jié)點(diǎn)屬于數(shù)據(jù)平面。
圖1 SDN-SR網(wǎng)絡(luò)架構(gòu)圖
控制平面包含以下幾個(gè)單元:
(1)請(qǐng)求處理程序,通過(guò)北向接口與應(yīng)用層相連接,用于接收數(shù)據(jù)包的請(qǐng)求。
(2)緩存決策管理器,用于選擇合適的緩存決策來(lái)緩存ICN節(jié)點(diǎn)上的內(nèi)容。
(3)拓?fù)涔芾砥鳎糜讷@取目標(biāo)網(wǎng)絡(luò)的拓?fù)湫畔?,?huì)使用一些搜索算法(如深度優(yōu)先算法、廣度優(yōu)先算法等)來(lái)探明節(jié)點(diǎn)和鏈接之間的關(guān)系。
(4)內(nèi)容路由單元,該單元內(nèi)含選擇的路由算法,用于計(jì)算轉(zhuǎn)發(fā)最佳路徑標(biāo)簽的路由算法。
(5)SR引擎,用于在所選路徑上實(shí)現(xiàn)SR算法,更改了以往openflow下發(fā)流表的方式。
數(shù)據(jù)平面包含以下幾個(gè)單元:
(1)基本拓?fù)湫畔?,所選網(wǎng)絡(luò)對(duì)象的拓?fù)湫畔?,包括?jié)點(diǎn)基本信息表和鏈路屬性表。
(2)興趣包轉(zhuǎn)發(fā),根據(jù)控制平面下發(fā)的標(biāo)簽棧,沿最佳轉(zhuǎn)發(fā)路徑尋找內(nèi)容提供者。
該SR網(wǎng)絡(luò)架構(gòu)的工作原理如下:
(1)控制平面的請(qǐng)求處理程序與應(yīng)用層連接,當(dāng)收到應(yīng)用程序?qū)τ趦?nèi)容的請(qǐng)求之后,會(huì)觸發(fā)控制器去獲取網(wǎng)絡(luò)拓?fù)湫畔⒈怼?/p>
(2)將目標(biāo)網(wǎng)絡(luò)的拓?fù)湫畔⒈碜鳛榻Y(jié)果返回控制面,同時(shí)緩存決策管理器會(huì)緩存節(jié)點(diǎn)內(nèi)容。
(3)拓?fù)涔芾砥鲿?huì)探明目標(biāo)網(wǎng)絡(luò)中的拓?fù)浣Y(jié)構(gòu),進(jìn)一步整合網(wǎng)絡(luò)信息,并將其保存和管理,為接下來(lái)尋找興趣包的最佳轉(zhuǎn)發(fā)路徑做準(zhǔn)備。
(4)內(nèi)容路由單元會(huì)根據(jù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),使用自適應(yīng)的概率路由算法計(jì)算出最佳轉(zhuǎn)發(fā)路徑。
(5)路徑計(jì)算單元的結(jié)果被送入SR引擎,引擎會(huì)先給數(shù)據(jù)平面每個(gè)節(jié)點(diǎn)下發(fā)一個(gè)分段標(biāo)簽,節(jié)點(diǎn)得到標(biāo)簽后與路徑匹配生成標(biāo)簽棧,棧中含有最佳路徑轉(zhuǎn)發(fā)所需的分段標(biāo)簽。
(6)標(biāo)簽棧下發(fā)至數(shù)據(jù)平面的源節(jié)點(diǎn)后,會(huì)根據(jù)標(biāo)簽指示依次經(jīng)過(guò)最佳路徑中的節(jié)點(diǎn),直到找到內(nèi)容提供節(jié)點(diǎn)。最后請(qǐng)求內(nèi)容會(huì)根據(jù)路由PIT表返回到用戶(hù)手中,至此完成請(qǐng)求內(nèi)容在整個(gè)網(wǎng)絡(luò)中的傳輸。
在本文所述的架構(gòu)中,尋找目標(biāo)網(wǎng)絡(luò)中從內(nèi)容所在節(jié)點(diǎn)到請(qǐng)求節(jié)點(diǎn)的最佳轉(zhuǎn)發(fā)路徑,是完成內(nèi)容傳輸?shù)闹匾ぷ鳌V挥挟?dāng)控制器找出了最佳路徑之后,才能下發(fā)分段標(biāo)簽棧到路徑源節(jié)點(diǎn),進(jìn)行后續(xù)的工作。因此,需要選擇一個(gè)合適高效的路由算法來(lái)計(jì)算最佳轉(zhuǎn)發(fā)路徑。
基于復(fù)雜網(wǎng)絡(luò)的概率路由策略就是一種原理清晰、效用明顯的路由策略,它關(guān)注網(wǎng)絡(luò)自身統(tǒng)計(jì)特性,如網(wǎng)絡(luò)容量等。概率路由策略較簡(jiǎn)易,性能方面也有可優(yōu)化改進(jìn)的地方,因此本文將使用一種自適應(yīng)的概率路由策略,用于SDN-SR架構(gòu)中最佳轉(zhuǎn)發(fā)路徑的計(jì)算。
研究表明,網(wǎng)絡(luò)容量與網(wǎng)絡(luò)中的最大介數(shù)成反比關(guān)系,故使用網(wǎng)絡(luò)的最大介數(shù)結(jié)合概率來(lái)尋找最佳路由路徑。在復(fù)雜網(wǎng)絡(luò)中,介數(shù)分為點(diǎn)介數(shù)和邊介數(shù)。點(diǎn)介數(shù)的一般定義為
(1)
式中:C(i,j)表示網(wǎng)絡(luò)中連接節(jié)點(diǎn)i和節(jié)點(diǎn)j之間總的最短路徑條數(shù),Cm(i,j)表示節(jié)點(diǎn)i和節(jié)點(diǎn)j的所有最短路徑中經(jīng)過(guò)節(jié)點(diǎn)m的所有最短路徑條數(shù)。
在網(wǎng)絡(luò)結(jié)構(gòu)固定時(shí),網(wǎng)絡(luò)容量C取決于網(wǎng)絡(luò)G中節(jié)點(diǎn)介數(shù)的最大值Bmax,即
(2)
式中:N是網(wǎng)絡(luò)的總節(jié)點(diǎn)數(shù),且有
(3)
若要使得網(wǎng)絡(luò)容量增大,就需要盡可能小的Bmax值。
介數(shù)的計(jì)算復(fù)雜程度取決于網(wǎng)絡(luò)的大小。當(dāng)目標(biāo)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)N大于500時(shí),計(jì)算過(guò)程復(fù)雜冗長(zhǎng),因此在本文將對(duì)介數(shù)計(jì)算進(jìn)行簡(jiǎn)化,用通過(guò)節(jié)點(diǎn)u的路由路徑條數(shù)Bu代替介數(shù)Bm,Bmax的含義就是Bu的最大值,故有
(4)
(5)
在概率路由策略中,數(shù)據(jù)包沿路徑P(i→j)從節(jié)點(diǎn)i順利到達(dá)節(jié)點(diǎn)j的概率為
(6)
這里的P(i→j)表示從源節(jié)點(diǎn)i到目的節(jié)點(diǎn)j的一條路徑,u∈P(i→j)表示節(jié)點(diǎn)u在路徑P(i→j)上,其中數(shù)據(jù)包順利通過(guò)節(jié)點(diǎn)u的概率可表示為[6]
(7)
式中:ku表示節(jié)點(diǎn)u的度,α是影響網(wǎng)絡(luò)容量的重要參數(shù)。通過(guò)對(duì)BA網(wǎng)絡(luò)中臨界值ηc和參數(shù)α的關(guān)系進(jìn)行仿真,結(jié)果表明,一開(kāi)始臨界值ηc隨著α的增加而增加,隨后下降,當(dāng)α≈1時(shí)ηc取到最大值,故在計(jì)算時(shí)令α=1,即
(8)
可將R(P(i→j))達(dá)到最大值的路徑稱(chēng)為概率路由路徑,并指定由該路徑發(fā)送數(shù)據(jù)包,即
(9)
在式(8)中,首先當(dāng)k≥2時(shí),pu是關(guān)于k嚴(yán)格單調(diào)遞減的函數(shù),概率路由路徑可以降低一個(gè)信息包通過(guò)度大節(jié)點(diǎn)的概率;其次,因?yàn)閜u<1,所以一個(gè)信息包從節(jié)點(diǎn)i到節(jié)點(diǎn)j的過(guò)程中會(huì)盡可能通過(guò)更少的節(jié)點(diǎn),即概率路由策略下的平均路徑長(zhǎng)度L會(huì)更短。平均路徑長(zhǎng)度L的定義為[7]
(10)
在一般概率路由下,介數(shù)的取值范圍較大,因此本文采用一種自適應(yīng)的概率路由策略,降低網(wǎng)絡(luò)的Bmax值,獲取更大的網(wǎng)絡(luò)容量。
為方便討論,對(duì)本文中的路由模型規(guī)定如下:
(1)網(wǎng)絡(luò)中所有節(jié)點(diǎn)都可以發(fā)送數(shù)據(jù)包和接收數(shù)據(jù)包,且各個(gè)節(jié)點(diǎn)收發(fā)數(shù)據(jù)包的能力完全相同。
(2)每一個(gè)節(jié)點(diǎn)以速率η產(chǎn)生數(shù)據(jù)包,η即為數(shù)據(jù)包的生成速率,η與累積速率μ的關(guān)系如下:
(11)
當(dāng)μ→0時(shí),η→ηmax。
(3)每個(gè)節(jié)點(diǎn)在單位時(shí)間內(nèi)只能傳輸一個(gè)數(shù)據(jù)包,當(dāng)數(shù)據(jù)包被傳輸?shù)侥康牡睾缶蜁?huì)被移出該網(wǎng)絡(luò)。
需要注意的是,隨著η的增加,會(huì)有越來(lái)越多的數(shù)據(jù)包聚集在同一節(jié)點(diǎn)上,傳輸?shù)牡却龝r(shí)間不斷增加,最終導(dǎo)致網(wǎng)絡(luò)完全擁塞。在這個(gè)過(guò)程中,存在一個(gè)臨界值ηc。當(dāng)η<ηc時(shí),網(wǎng)絡(luò)運(yùn)行平穩(wěn),交通流穩(wěn)定,而如果η>ηc,則會(huì)發(fā)生從自由流到擁擠交通的相變。因此,擁塞臨界值ηc可用作網(wǎng)絡(luò)容量的度量。
故網(wǎng)絡(luò)容量可通過(guò)下式簡(jiǎn)化計(jì)算:
(12)
本文所使用算法的目標(biāo)是減小Bmax以增大網(wǎng)絡(luò)容量,下面給出算法步驟[8]:
Step1 由式(8)計(jì)算出信息包在每個(gè)節(jié)點(diǎn)處順暢通過(guò)的初始概率pu。
Step2 由式(9)計(jì)算出任意兩個(gè)節(jié)點(diǎn)之間的概率路由路徑,即R*(P(i→j))。
Step3 由式(12)計(jì)算ηc,若Δηc=∣ηc(t+1)-ηc(t)∣≤ε,其中ε是一個(gè)大于0的極小的數(shù),則此時(shí)ηc趨于穩(wěn)定,網(wǎng)絡(luò)容量基本不再變化,終止流程,否則進(jìn)行下一步。
Step4 由式(4)計(jì)算出每個(gè)節(jié)點(diǎn)的介數(shù)。
Step5 將介數(shù)從大到小排列,取前m個(gè)節(jié)點(diǎn),減少信息包在這些節(jié)點(diǎn)順暢通過(guò)的概率,pu=pu-Δu,Δu為節(jié)點(diǎn)u處信息包順暢通過(guò)的概率的改變量。
Step6 返回Step 3和Step 4,直至ηc趨于平穩(wěn),或直接進(jìn)行Step 7。
Step7 設(shè)定迭代次數(shù),達(dá)到次數(shù)后停止,輸出結(jié)果。
現(xiàn)實(shí)生活中的網(wǎng)絡(luò)流量模型常表現(xiàn)出很強(qiáng)的無(wú)標(biāo)度特性,即新增加的節(jié)點(diǎn)都趨于連接網(wǎng)絡(luò)中度比較大的節(jié)點(diǎn),這就是網(wǎng)絡(luò)的無(wú)標(biāo)度特性。由于ICN屬于未來(lái)的網(wǎng)絡(luò)體系架構(gòu),因此本文選擇利用BA無(wú)標(biāo)度網(wǎng)絡(luò)建模,對(duì)本文架構(gòu)中的算法進(jìn)行仿真。
本文使用的是自適應(yīng)的概率路由(Probability Path,PP)算法,選擇的對(duì)比算法是基于網(wǎng)絡(luò)全局信息的最短路徑(Shortest Path,SP)算法和效率路由(Efficient Path,EP)算法,對(duì)三種算法在網(wǎng)絡(luò)容量和平均路徑長(zhǎng)度方面進(jìn)行仿真和性能比較[9]。
首先給定一個(gè)平均度
圖2 三種路由算法中ηc與N的變化關(guān)系
由圖2可知,隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)N的增加,三種算法ηc都逐漸減小,但PP的ηc值是SP的30倍以上,且整體比EP高20%;隨著N的增加,PP的ηc值始終高于SP和EP,說(shuō)明在同一情況下PP傳輸?shù)臄?shù)據(jù)包數(shù)量更多,擁塞率更低。
其次考慮一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)N=2 000的無(wú)標(biāo)度網(wǎng)絡(luò),得出三種路由算法下ηc與平均度
圖3 三種路由算法中ηc與平均度
由圖3可知,隨著網(wǎng)絡(luò)平均度
以上仿真結(jié)果表明,當(dāng)給定一個(gè)平均度
接下來(lái)將分別設(shè)定平均度
圖4 三種路由算法的L與N的變化關(guān)系
圖5 三種路由算法中L與
由仿真可知,隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)N和平均度
對(duì)于算法的選擇需要考慮多方面的性能表現(xiàn)。綜合網(wǎng)絡(luò)容量和平均路徑長(zhǎng)度兩方面的考慮,概率路由是三者中最適宜數(shù)據(jù)包發(fā)送和接收的路由算法。
本文提出一種基于軟件定義信息中心網(wǎng)絡(luò)的SR架構(gòu),是一種新型未來(lái)網(wǎng)絡(luò)架構(gòu)下數(shù)控分離的架構(gòu)技術(shù),分離了控制平面和數(shù)據(jù)平面,由控制器統(tǒng)一下發(fā)分段標(biāo)簽給源節(jié)點(diǎn),節(jié)省了標(biāo)簽下發(fā)時(shí)間,減輕了控制器負(fù)載,基于SR的分段標(biāo)簽操作也使數(shù)據(jù)包的傳輸更加高效快捷。在SR架構(gòu)的路徑計(jì)算單元中選擇一種自適應(yīng)的概率路由算法,通過(guò)迭代改變數(shù)據(jù)包通過(guò)ICN節(jié)點(diǎn)的概率,用于計(jì)算內(nèi)容轉(zhuǎn)發(fā)的最佳路由路徑。
仿真結(jié)果表明,概率路由算法的網(wǎng)絡(luò)容量和平均路徑長(zhǎng)度兩個(gè)性能綜合優(yōu)于本文對(duì)比的其他算法。在本文中,結(jié)合概率路由算法的SDN SR架構(gòu)使路由轉(zhuǎn)發(fā)更快速,擁塞臨界值ηc的提高也使網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包數(shù)量增加,最終路由性能得到了提升。