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