吳宇彤,周金和
(北京信息科技大學 信息與通信工程學院,北京100101)
傳統(tǒng)的TCP/IP網絡以IP地址為尋址依據,其體系架構和服務質量已無法滿足當今用戶的需求,人們開始設計新型網絡架構,因此以內容為中心的信息中心網絡(Information-Centric Network,ICN)作為一個新型網絡范式逐漸興起。ICN具有緩存功能,可以為數據命名,同時其以內容為中心,實現了數據內容和IP地址的分離。ICN的挑戰(zhàn)是尋找最優(yōu)的路由策略,使用戶更高效快捷地獲取所需內容。
隨著通信網絡的發(fā)展,路由業(yè)務與日俱增,傳統(tǒng)的網絡架構設計已不能滿足行業(yè)和客戶需求,可實現網絡虛擬化的軟件定義網絡(Software Defined Network,SDN)開始被廣泛應用。由于SDN的最大特點是數據面控制面解耦,控制器效率提高,故基于SDN的路由策略可以最大程度地降低損耗,提高實用性。分段路由(Segment Routing,SR)是一種新型的MPLS(Multi-Protocol Label Switching)技術,它集中了控制器下發(fā)的內容,將路徑信息都放在標簽棧中統(tǒng)一下發(fā)給源節(jié)點。SR也可與ICN結合運用,使路由轉發(fā)更加高效。
信息中心網絡打破了互聯網基于IP進行操作的傳統(tǒng),未來互聯網的體系架構將逐漸向集中式發(fā)展。SDN作為近年來出現的一種新的網絡范式,解耦分離控制平面和數據平面,集中控制使網絡更高效[1]。 但基于SDN控制器的集中管理不能有效減輕控制器下發(fā)內容的負擔。
文獻[2-4]分別體現出了ICN、SDN和SR各自的優(yōu)勢,但三者之間的有機融合程度較低,不能很好地滿足當前用戶對于內容和效率的需求。基于以上研究,本文提出一種SR架構下的軟件定義信息中心網絡概率路由算法,將ICN作為網絡背景,架構選用結合SDN與SR各自優(yōu)勢的混合控制器架構,統(tǒng)一下發(fā)標簽到源節(jié)點可以有效減輕控制器下發(fā)流表的負擔,同時不必再擔心節(jié)點可能失效的問題。為計算出數據包轉發(fā)的最佳路徑,在這一架構上采用一種具有迭代環(huán)節(jié)的自適應概率路由算法,該策略將節(jié)點發(fā)送數據包的概率進行迭代一定次數后,使網絡趨于穩(wěn)定。同時,該路由策略能夠有效增加網絡容量,減少發(fā)送數據包時的平均路徑長度。
ICN以內容為中心,有數據命名的特點。目前已有許多ICN和SDN相結合的工作,兩者結合的核心思想是:網內有一個集中控制節(jié)點,控制器可以和域內節(jié)點交互來獲取信息。控制平面進行路由路徑的規(guī)劃,數據平面根據控制器指令轉發(fā)ICN數據并找到請求的用戶。執(zhí)行傳統(tǒng)的MPLS協議需要大量信令協議,并且不支持與SDN的結合,SR控制器與傳統(tǒng)MPLS數據平面結合后,控制器與各節(jié)點的交互可以省去,改為和源節(jié)點交互,一次下發(fā)路徑的所有標簽,減輕控制器負載,同時避免節(jié)點突然失效導致的轉發(fā)失敗。
傳統(tǒng)的網絡設備各自集成,軟件定義網絡方法將控制面與數據面分離,進行集中控制與交互,使得網絡具有更高靈活性。由控制器下發(fā)一個帶有全路徑分段標簽的列表到源節(jié)點就可以進行數據包的轉發(fā),同時也支持與SDN的結合使用。在ICN中把SDN和SR結合,可以最大限度發(fā)揮各自優(yōu)勢,減輕控制器負擔,使內容轉發(fā)更快捷。
為將SDN的控制面數據面分離特性以及SR的路徑集中下發(fā)和標簽轉發(fā)等優(yōu)點最大化,本文提出一個軟件定義信息中心網絡的架構,該架構可以應用在ICN中,是一個控制面和數據面分離后分別集成的架構,可以有效降低控制器負擔,提高網絡的穩(wěn)定性。
本文所提架構運用于ICN中,首先討論一個ICN中的SDN。SDN控制平面通過南向接口協議獲取目標網絡信息,根據用戶請求計算出數據包發(fā)送的最佳路徑,后將轉發(fā)規(guī)則和路徑信息下發(fā)至該流路徑要經過的每一個節(jié)點。這一操作意味著最佳路徑中的每一個節(jié)點都需要與控制器進行交互,若有節(jié)點突然失去通信,那么控制器無法將既定信息發(fā)送到該節(jié)點,那本次內容轉發(fā)則以失敗告終。但若是在SDN中結合SR技術,控制器無需與路徑中的每個節(jié)點進行交互,而只需與該流路徑的源節(jié)點進行交互,對路徑進行編碼后一次下發(fā)含有所有分段標簽信息的標簽棧,再通過SR的標簽操作進行最佳路徑接下來每步的數據包轉發(fā)。
SR可以通過控制器向源節(jié)點發(fā)送段標識符(Segment Identifier,SID)信息,無需對中間節(jié)點下發(fā)轉發(fā)規(guī)則,節(jié)省了控制器建立流和轉發(fā)路徑所需的時間,減輕了控制器的負擔;同時,SR可根據網絡參數的約束條件進行流量調度優(yōu)化計算,即使控制器失效,也同樣具備轉發(fā)能力,各節(jié)點均可作為源節(jié)點自主控制某條流[5]。
本文提出的軟件定義的SR架構如圖1所示。該網絡架構包括具有內容緩存功能的ICN節(jié)點和SDN+SR控制器兩部分。其中,控制器屬于控制平面,ICN節(jié)點屬于數據平面。

圖1 SDN-SR網絡架構圖
控制平面包含以下幾個單元:
(1)請求處理程序,通過北向接口與應用層相連接,用于接收數據包的請求。
(2)緩存決策管理器,用于選擇合適的緩存決策來緩存ICN節(jié)點上的內容。
(3)拓撲管理器,用于獲取目標網絡的拓撲信息,會使用一些搜索算法(如深度優(yōu)先算法、廣度優(yōu)先算法等)來探明節(jié)點和鏈接之間的關系。
(4)內容路由單元,該單元內含選擇的路由算法,用于計算轉發(fā)最佳路徑標簽的路由算法。
(5)SR引擎,用于在所選路徑上實現SR算法,更改了以往openflow下發(fā)流表的方式。
數據平面包含以下幾個單元:
(1)基本拓撲信息,所選網絡對象的拓撲信息,包括節(jié)點基本信息表和鏈路屬性表。
(2)興趣包轉發(fā),根據控制平面下發(fā)的標簽棧,沿最佳轉發(fā)路徑尋找內容提供者。
該SR網絡架構的工作原理如下:
(1)控制平面的請求處理程序與應用層連接,當收到應用程序對于內容的請求之后,會觸發(fā)控制器去獲取網絡拓撲信息表。
(2)將目標網絡的拓撲信息表作為結果返回控制面,同時緩存決策管理器會緩存節(jié)點內容。
(3)拓撲管理器會探明目標網絡中的拓撲結構,進一步整合網絡信息,并將其保存和管理,為接下來尋找興趣包的最佳轉發(fā)路徑做準備。
(4)內容路由單元會根據網絡的拓撲結構,使用自適應的概率路由算法計算出最佳轉發(fā)路徑。
(5)路徑計算單元的結果被送入SR引擎,引擎會先給數據平面每個節(jié)點下發(fā)一個分段標簽,節(jié)點得到標簽后與路徑匹配生成標簽棧,棧中含有最佳路徑轉發(fā)所需的分段標簽。
(6)標簽棧下發(fā)至數據平面的源節(jié)點后,會根據標簽指示依次經過最佳路徑中的節(jié)點,直到找到內容提供節(jié)點。最后請求內容會根據路由PIT表返回到用戶手中,至此完成請求內容在整個網絡中的傳輸。
在本文所述的架構中,尋找目標網絡中從內容所在節(jié)點到請求節(jié)點的最佳轉發(fā)路徑,是完成內容傳輸的重要工作。只有當控制器找出了最佳路徑之后,才能下發(fā)分段標簽棧到路徑源節(jié)點,進行后續(xù)的工作。因此,需要選擇一個合適高效的路由算法來計算最佳轉發(fā)路徑。
基于復雜網絡的概率路由策略就是一種原理清晰、效用明顯的路由策略,它關注網絡自身統(tǒng)計特性,如網絡容量等。概率路由策略較簡易,性能方面也有可優(yōu)化改進的地方,因此本文將使用一種自適應的概率路由策略,用于SDN-SR架構中最佳轉發(fā)路徑的計算。
研究表明,網絡容量與網絡中的最大介數成反比關系,故使用網絡的最大介數結合概率來尋找最佳路由路徑。在復雜網絡中,介數分為點介數和邊介數。點介數的一般定義為
(1)
式中:C(i,j)表示網絡中連接節(jié)點i和節(jié)點j之間總的最短路徑條數,Cm(i,j)表示節(jié)點i和節(jié)點j的所有最短路徑中經過節(jié)點m的所有最短路徑條數。
在網絡結構固定時,網絡容量C取決于網絡G中節(jié)點介數的最大值Bmax,即
(2)
式中:N是網絡的總節(jié)點數,且有
(3)
若要使得網絡容量增大,就需要盡可能小的Bmax值。
介數的計算復雜程度取決于網絡的大小。當目標網絡節(jié)點數N大于500時,計算過程復雜冗長,因此在本文將對介數計算進行簡化,用通過節(jié)點u的路由路徑條數Bu代替介數Bm,Bmax的含義就是Bu的最大值,故有
(4)
(5)
在概率路由策略中,數據包沿路徑P(i→j)從節(jié)點i順利到達節(jié)點j的概率為
(6)
這里的P(i→j)表示從源節(jié)點i到目的節(jié)點j的一條路徑,u∈P(i→j)表示節(jié)點u在路徑P(i→j)上,其中數據包順利通過節(jié)點u的概率可表示為[6]
(7)
式中:ku表示節(jié)點u的度,α是影響網絡容量的重要參數。通過對BA網絡中臨界值ηc和參數α的關系進行仿真,結果表明,一開始臨界值ηc隨著α的增加而增加,隨后下降,當α≈1時ηc取到最大值,故在計算時令α=1,即
(8)
可將R(P(i→j))達到最大值的路徑稱為概率路由路徑,并指定由該路徑發(fā)送數據包,即
(9)
在式(8)中,首先當k≥2時,pu是關于k嚴格單調遞減的函數,概率路由路徑可以降低一個信息包通過度大節(jié)點的概率;其次,因為pu<1,所以一個信息包從節(jié)點i到節(jié)點j的過程中會盡可能通過更少的節(jié)點,即概率路由策略下的平均路徑長度L會更短。平均路徑長度L的定義為[7]
(10)
在一般概率路由下,介數的取值范圍較大,因此本文采用一種自適應的概率路由策略,降低網絡的Bmax值,獲取更大的網絡容量。
為方便討論,對本文中的路由模型規(guī)定如下:
(1)網絡中所有節(jié)點都可以發(fā)送數據包和接收數據包,且各個節(jié)點收發(fā)數據包的能力完全相同。
(2)每一個節(jié)點以速率η產生數據包,η即為數據包的生成速率,η與累積速率μ的關系如下:
(11)
當μ→0時,η→ηmax。
(3)每個節(jié)點在單位時間內只能傳輸一個數據包,當數據包被傳輸到目的地后就會被移出該網絡。
需要注意的是,隨著η的增加,會有越來越多的數據包聚集在同一節(jié)點上,傳輸的等待時間不斷增加,最終導致網絡完全擁塞。在這個過程中,存在一個臨界值ηc。當η<ηc時,網絡運行平穩(wěn),交通流穩(wěn)定,而如果η>ηc,則會發(fā)生從自由流到擁擠交通的相變。因此,擁塞臨界值ηc可用作網絡容量的度量。
故網絡容量可通過下式簡化計算:
(12)
本文所使用算法的目標是減小Bmax以增大網絡容量,下面給出算法步驟[8]:
Step1 由式(8)計算出信息包在每個節(jié)點處順暢通過的初始概率pu。
Step2 由式(9)計算出任意兩個節(jié)點之間的概率路由路徑,即R*(P(i→j))。
Step3 由式(12)計算ηc,若Δηc=∣ηc(t+1)-ηc(t)∣≤ε,其中ε是一個大于0的極小的數,則此時ηc趨于穩(wěn)定,網絡容量基本不再變化,終止流程,否則進行下一步。
Step4 由式(4)計算出每個節(jié)點的介數。
Step5 將介數從大到小排列,取前m個節(jié)點,減少信息包在這些節(jié)點順暢通過的概率,pu=pu-Δu,Δu為節(jié)點u處信息包順暢通過的概率的改變量。
Step6 返回Step 3和Step 4,直至ηc趨于平穩(wěn),或直接進行Step 7。
Step7 設定迭代次數,達到次數后停止,輸出結果。
現實生活中的網絡流量模型常表現出很強的無標度特性,即新增加的節(jié)點都趨于連接網絡中度比較大的節(jié)點,這就是網絡的無標度特性。由于ICN屬于未來的網絡體系架構,因此本文選擇利用BA無標度網絡建模,對本文架構中的算法進行仿真。
本文使用的是自適應的概率路由(Probability Path,PP)算法,選擇的對比算法是基于網絡全局信息的最短路徑(Shortest Path,SP)算法和效率路由(Efficient Path,EP)算法,對三種算法在網絡容量和平均路徑長度方面進行仿真和性能比較[9]。
首先給定一個平均度

圖2 三種路由算法中ηc與N的變化關系
由圖2可知,隨著網絡節(jié)點數N的增加,三種算法ηc都逐漸減小,但PP的ηc值是SP的30倍以上,且整體比EP高20%;隨著N的增加,PP的ηc值始終高于SP和EP,說明在同一情況下PP傳輸的數據包數量更多,擁塞率更低。
其次考慮一個網絡節(jié)點數N=2 000的無標度網絡,得出三種路由算法下ηc與平均度

圖3 三種路由算法中ηc與平均度
由圖3可知,隨著網絡平均度
以上仿真結果表明,當給定一個平均度
接下來將分別設定平均度

圖4 三種路由算法的L與N的變化關系

圖5 三種路由算法中L與
由仿真可知,隨著網絡節(jié)點數N和平均度
對于算法的選擇需要考慮多方面的性能表現。綜合網絡容量和平均路徑長度兩方面的考慮,概率路由是三者中最適宜數據包發(fā)送和接收的路由算法。
本文提出一種基于軟件定義信息中心網絡的SR架構,是一種新型未來網絡架構下數控分離的架構技術,分離了控制平面和數據平面,由控制器統(tǒng)一下發(fā)分段標簽給源節(jié)點,節(jié)省了標簽下發(fā)時間,減輕了控制器負載,基于SR的分段標簽操作也使數據包的傳輸更加高效快捷。在SR架構的路徑計算單元中選擇一種自適應的概率路由算法,通過迭代改變數據包通過ICN節(jié)點的概率,用于計算內容轉發(fā)的最佳路由路徑。
仿真結果表明,概率路由算法的網絡容量和平均路徑長度兩個性能綜合優(yōu)于本文對比的其他算法。在本文中,結合概率路由算法的SDN SR架構使路由轉發(fā)更快速,擁塞臨界值ηc的提高也使網絡傳輸的數據包數量增加,最終路由性能得到了提升。