梁 俊,孫偉超,肖 楠,陳威龍,郭子楨
(空軍工程大學(xué) 信息與導(dǎo)航學(xué)院, 陜西 西安 710077)
傳統(tǒng)的衛(wèi)星網(wǎng)絡(luò)依賴于封閉和有計(jì)劃的體系架構(gòu)[1],面臨配置更新、新通信和網(wǎng)絡(luò)技術(shù)的引入、差異化服務(wù)的提供以及衛(wèi)星和地面網(wǎng)絡(luò)集成等挑戰(zhàn)[2-3]。軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN)實(shí)現(xiàn)了控制平面和數(shù)據(jù)平面的完全解耦[4],具有靈活性、可編程性和邏輯集中性等特點(diǎn),能夠提高網(wǎng)絡(luò)資源利用率[5],簡化網(wǎng)絡(luò)管理流程,降低運(yùn)營成本,促進(jìn)了網(wǎng)絡(luò)的演進(jìn)和創(chuàng)新[6]。
國內(nèi)外許多學(xué)者對在衛(wèi)星網(wǎng)絡(luò)中引入SDN進(jìn)行了探索。文獻(xiàn)[7]針對衛(wèi)星網(wǎng)絡(luò)通信存在長時(shí)延和頻繁的地面-衛(wèi)星切換以及衛(wèi)星網(wǎng)絡(luò)配置成本較高的問題,將SDN與衛(wèi)星網(wǎng)絡(luò)相結(jié)合,增加了網(wǎng)絡(luò)的靈活性以及可擴(kuò)展性,降低了星上處理開銷。文獻(xiàn)[8]提出了一種聚合SDN的新一代空天地一體化網(wǎng)絡(luò),網(wǎng)絡(luò)部署方式靈活,網(wǎng)絡(luò)可擴(kuò)展性強(qiáng),資源利用率高。文獻(xiàn)[9]提出了基于SDN架構(gòu)的低地球軌道(Low Earth Orbit, LEO)衛(wèi)星網(wǎng)絡(luò),將地面網(wǎng)絡(luò)控制中心作為SDN控制器,計(jì)算路由策略,優(yōu)化了資源利用方式。文獻(xiàn)[10]針對傳統(tǒng)衛(wèi)星系統(tǒng)架構(gòu)導(dǎo)致的衛(wèi)星通信系統(tǒng)的管理和配置效率低下、管理不靈活等問題,提出了一種基于SDN和網(wǎng)絡(luò)功能虛擬化的空間地面綜合多層衛(wèi)星通信網(wǎng)。
然而以上文獻(xiàn)均采用OpenFlow協(xié)議作為SDN南向編程接口。隨著OpenFlow版本的推進(jìn),不斷擴(kuò)展的“多級(jí)流表”以及復(fù)雜的流表項(xiàng)查找、匹配問題給資源受限的LEO衛(wèi)星的存儲(chǔ)和處理能力帶來很大挑戰(zhàn)[11-12]。
神經(jīng)網(wǎng)絡(luò)(Neural Network, NN)是一種自學(xué)習(xí)、自調(diào)整的智能工具,能夠進(jìn)行大規(guī)模的并行計(jì)算[13]。NN模型可以從海量數(shù)據(jù)中獲取目標(biāo),在分類、模式識(shí)別、預(yù)測等多個(gè)領(lǐng)域都有著廣泛的應(yīng)用。在SDN中,通過邏輯集中的控制器容易獲得大量的流量數(shù)據(jù)和網(wǎng)絡(luò)信息。文獻(xiàn)[14]首次提出一種在SDN中,用徑向基函數(shù)(Radial Basis Function, RBF)神經(jīng)網(wǎng)絡(luò)代替流表的方法,節(jié)省了存儲(chǔ)空間。然而支持RBF算法的NN各個(gè)權(quán)值不能完全獨(dú)立地求解,難以在星上并行運(yùn)算,且需要進(jìn)行煩瑣的高階矩陣求逆運(yùn)算,難以適應(yīng)星上路由的要求。以正交多項(xiàng)式為基礎(chǔ)的Chebyshev神經(jīng)網(wǎng)絡(luò)函數(shù)逼近性能優(yōu)越,基函數(shù)的正交性保證NN在多項(xiàng)式的節(jié)點(diǎn)處權(quán)值求解迅捷[15]。
通過以上分析,提出一種基于Chebyshev神經(jīng)網(wǎng)絡(luò)的SDN衛(wèi)星網(wǎng)絡(luò)智能路由架構(gòu)。通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)獲取數(shù)據(jù)流的傳輸模式用于預(yù)測路由,同時(shí),用NN代替流表以節(jié)省三態(tài)內(nèi)容尋址存儲(chǔ)器(Ternary Content Addressable Memory, TCAM)的存儲(chǔ)空間,提高數(shù)據(jù)流的路由和轉(zhuǎn)發(fā)效率。
采用單層衛(wèi)星多層控制器(Single-layer Satellite Multiple-layer Controller, SSMC)架構(gòu),將基于SDN的衛(wèi)星網(wǎng)絡(luò)架構(gòu)分為三層:地球同步軌道(Geostationary Earth Orbit, GEO)衛(wèi)星控制平面、LEO衛(wèi)星數(shù)據(jù)平面、地面控制平面,如圖1所示。各平面的功能模塊如圖2所示。
圖1 系統(tǒng)架構(gòu)Fig.1 System architecture
圖2 各平面功能Fig.2 Various plane functions
控制平面由GEO衛(wèi)星控制層和地面控制層組成,主要功能是利用其強(qiáng)大的計(jì)算能力,收集和處理網(wǎng)絡(luò)流信息并通過訓(xùn)練NN獲取數(shù)據(jù)流傳輸模式。其中,GEO衛(wèi)星為局部控制器,只負(fù)責(zé)管理自身覆蓋區(qū)域內(nèi)的LEO衛(wèi)星交換機(jī),當(dāng)LEO衛(wèi)星發(fā)出路由請求時(shí),如果數(shù)據(jù)流的源和目的節(jié)點(diǎn)都在同一顆GEO衛(wèi)星覆蓋區(qū)域內(nèi),則GEO衛(wèi)星發(fā)揮控制器的功能;否則,GEO衛(wèi)星作為LEO衛(wèi)星與地面控制器通信的中繼節(jié)點(diǎn),將路由請求消息轉(zhuǎn)發(fā)到地面控制器。地面控制器為全局控制器,掌握網(wǎng)絡(luò)全局拓?fù)渥兓?、流量分布、?jié)點(diǎn)負(fù)載等信息[16]。
地面控制器的核心功能模塊描述如下:
1)網(wǎng)絡(luò)監(jiān)控模塊。負(fù)責(zé)實(shí)時(shí)監(jiān)控LEO衛(wèi)星網(wǎng)絡(luò)全局的狀態(tài)和拓?fù)渥兓?/p>
2)數(shù)據(jù)收集模塊。負(fù)責(zé)收集GEO衛(wèi)星傳來的路由請求消息,從中提取數(shù)據(jù)流的源、目的地、業(yè)務(wù)類型和路徑信息,用于訓(xùn)練NN。
3)數(shù)據(jù)預(yù)處理模塊。負(fù)責(zé)對收集到的數(shù)據(jù)進(jìn)行預(yù)處理,構(gòu)造用于NN訓(xùn)練和測試的樣本集。包括數(shù)據(jù)流路徑的預(yù)處理、訓(xùn)練集和測試集的構(gòu)造、樣本集的歸一化等。
4)NN訓(xùn)練模塊。負(fù)責(zé)訓(xùn)練NN,并根據(jù)歷史流量數(shù)據(jù)獲得數(shù)據(jù)流的傳輸模式。
5)NN包生成模塊。負(fù)責(zé)利用NN參數(shù)創(chuàng)建NN包,具體格式見1.4節(jié)。
6)NN包下發(fā)模塊。負(fù)責(zé)將NN包發(fā)送給管理源和目的節(jié)點(diǎn)的GEO衛(wèi)星控制器,并下發(fā)給所有相關(guān)LEO衛(wèi)星。
GEO衛(wèi)星控制器除了具有以上功能模塊,還具有數(shù)據(jù)中繼模塊,作為地面控制器和LEO衛(wèi)星的中繼節(jié)點(diǎn)。此外,GEO衛(wèi)星控制器的網(wǎng)絡(luò)監(jiān)控、數(shù)據(jù)收集模塊都是面向自身覆蓋區(qū)域內(nèi)的LEO衛(wèi)星網(wǎng)絡(luò)。
數(shù)據(jù)平面由LEO衛(wèi)星交換機(jī)組成,核心功能是利用控制器下發(fā)的NN預(yù)測數(shù)據(jù)流的路徑,對數(shù)據(jù)流進(jìn)行路由轉(zhuǎn)發(fā)。其核心功能模塊描述如下:
1)NN創(chuàng)建模塊。LEO衛(wèi)星交換機(jī)接收到NN包后,根據(jù)存儲(chǔ)在NN包中的結(jié)構(gòu)參數(shù)創(chuàng)建NN。
2)路徑預(yù)測模塊。當(dāng)接收到用戶發(fā)送的業(yè)務(wù)數(shù)據(jù)后,從中提取三個(gè)元組信息(源、目的地、業(yè)務(wù)類型)作為NN的輸入進(jìn)行路徑預(yù)測。
3)數(shù)據(jù)流轉(zhuǎn)發(fā)模塊。根據(jù)路徑預(yù)測模塊得到的路徑轉(zhuǎn)發(fā)數(shù)據(jù)包。
在訓(xùn)練NN之前,需要對其進(jìn)行預(yù)處理,主要包括樣本集的歸一化以及訓(xùn)練集和測試集的構(gòu)造。
當(dāng)有數(shù)據(jù)流經(jīng)過網(wǎng)絡(luò)時(shí),控制器從數(shù)據(jù)流中提取源節(jié)點(diǎn)Src、目的節(jié)點(diǎn)Dst、業(yè)務(wù)類型Type用于構(gòu)造樣本集,并記錄數(shù)據(jù)流的傳輸路徑Path。進(jìn)行NN預(yù)處理時(shí),以樣本(Src,Dst,Type)作為NN的輸入,以Route作為輸出。隨機(jī)選取30%的樣本作為訓(xùn)練集,其余70%的樣本作為測試集[14]。
為了提高NN的學(xué)習(xí)效果,對樣本(Src,Dst,Type)進(jìn)行歸一化處理。
(1)
(2)
(3)
其中,Src′、Dst′、Type′分別是Src、Dst、Type的歸一化值。Srcmax、Srcmin,Dstmax、Dstmin,Typemax、Typemin分別是Src、Dst、Type的最大值和最小值。每個(gè)變量的歸一化值在0和1之間。
在樣本集歸一化后,控制器使用訓(xùn)練集訓(xùn)練NN,直到預(yù)測成功率達(dá)到預(yù)設(shè)標(biāo)準(zhǔn),NN訓(xùn)練結(jié)束。之后,控制器依據(jù)訓(xùn)練好的NN創(chuàng)建NN包,并將NN包下發(fā)給相關(guān)LEO衛(wèi)星交換機(jī)。
為了將NN包與一般的數(shù)據(jù)包區(qū)分開來,設(shè)計(jì)了NN包的特定格式。NN包由NN的結(jié)構(gòu)參數(shù)組成,包括輸入層節(jié)點(diǎn)個(gè)數(shù)、隱藏層節(jié)點(diǎn)個(gè)數(shù)、輸出層節(jié)點(diǎn)個(gè)數(shù)、輸入層與隱藏層連接權(quán)值、隱藏層之間的連接權(quán)值、隱藏層與輸出層之間的連接權(quán)值等。
以Chebyshev神經(jīng)網(wǎng)絡(luò)包為例,Chebyshev NN輸入層和隱藏層之間的連接權(quán)值為固定值1,且只有一個(gè)隱藏層。因此,不考慮Chebyshev NN包中輸入與隱藏層之間的連接權(quán)值、隱藏層之間的權(quán)值。
M、N和K分別表示輸入、隱藏和輸出層中的節(jié)點(diǎn)數(shù),Oi表示i次正交多項(xiàng)式,Wij表示第i個(gè)隱藏節(jié)點(diǎn)與第j個(gè)輸出節(jié)點(diǎn)之間的權(quán)值。Chebyshev NN包格式如圖3所示。
圖3 Chebyshev NN包的格式Fig.3 Format of the Chebyshev NN packet
傳統(tǒng)的多層感知器(Multi-Layer Perceptron, MLP)神經(jīng)網(wǎng)絡(luò)采用的誤差反向傳播(Back Propagation, BP)算法訓(xùn)練時(shí)間長,易陷入局部最小值;而支持向量機(jī)(Support Vector Machine, SVM)和RBF算法的各個(gè)權(quán)值不能完全獨(dú)立地被求解,且需要進(jìn)行煩瑣的高階矩陣求逆運(yùn)算,難以在星上并行計(jì)算。因此這些訓(xùn)練算法難以適應(yīng)星上路由的要求[15]。
Chebyshev神經(jīng)網(wǎng)絡(luò)是一種基于Chebyshev正交多項(xiàng)式的神經(jīng)網(wǎng)絡(luò),逼近性能優(yōu)越,基函數(shù)的正交性保證神經(jīng)網(wǎng)絡(luò)在多項(xiàng)式的結(jié)點(diǎn)處權(quán)值求解迅捷,能夠較好地滿足衛(wèi)星網(wǎng)絡(luò)的需求?;诘?節(jié)的系統(tǒng)架構(gòu),提出了一種基于Chebyshev神經(jīng)網(wǎng)絡(luò)的智能路由策略(Intelligent Routing Strategy based on Chebyshev Neural Network, IRSCNN)。
一元Chebyshev NN由一個(gè)輸入層、一個(gè)隱藏層和一個(gè)輸出層組成,如圖4所示[15]。其中Oj(xi)代表j次正交多項(xiàng)式,其系構(gòu)成了NN的單隱藏層結(jié)構(gòu),Wij是Oj(xi)的權(quán)值。NN訓(xùn)練的目標(biāo)是通過訓(xùn)練集,用已知的正交多項(xiàng)式對未知進(jìn)行線性逼近,即求yi。
圖4 一元Chebyshev神經(jīng)網(wǎng)絡(luò)模型Fig.4 Monadic Chebyshev neural network model
(4)
以(Src,Dst,Type)作為Chebyshev NN的輸入,得到數(shù)據(jù)流的路徑Route作為NN的輸出。因此需考慮三元Chebyshev NN模型,設(shè)輸入為三維向量[x1,x2,x3]T,輸出是關(guān)于三元函數(shù)yi=f(x1,x2,x3)的一個(gè)精確逼近。根據(jù)文獻(xiàn)[15]得:
f(x1,x2,x3)=ON1N2N3(x1,x2,x3)
(5)
式中,f是待模擬的函數(shù),O是用以逼近xj的kj次多項(xiàng)式,Wj1j2j3是該正交多項(xiàng)式組合的權(quán)值。
另外,神經(jīng)網(wǎng)絡(luò)的輸出是一個(gè)或一組標(biāo)量值,而NN的輸出應(yīng)該能表示成一條最優(yōu)路徑,因此需要一種映射方法來形成標(biāo)量值和最優(yōu)路徑之間的映射。采用路徑標(biāo)量表示[15]。
(6)
式中,Ri為所有到源節(jié)點(diǎn)Src鏈路距離為i的節(jié)點(diǎn)Nij組成的集合,j為第i個(gè)子集內(nèi)的節(jié)點(diǎn)數(shù)。
當(dāng)一個(gè)新的數(shù)據(jù)流到達(dá)源節(jié)點(diǎn)S時(shí),S首先檢查是否已經(jīng)構(gòu)建了NN。如果已經(jīng)構(gòu)建了NN,則交換機(jī)從到達(dá)的數(shù)據(jù)流中提取(Src,Dst,Type),并將它們作為NN的輸入來預(yù)測路徑,并對其進(jìn)行路由轉(zhuǎn)發(fā)。
如果沒有構(gòu)建NN,則將數(shù)據(jù)流相關(guān)信息封裝到路由請求消息中,發(fā)送到控制器。GEO衛(wèi)星控制器接收到該請求時(shí),將最近訓(xùn)練完的NN下發(fā)給所有交換機(jī)。交換機(jī)在接收到NN包后,根據(jù)從NN包中得到的結(jié)構(gòu)參數(shù)構(gòu)建NN,然后利用所提取的流信息作為NN輸入來預(yù)測路徑,對數(shù)據(jù)流進(jìn)行路由。
對于S,每次切換完成后,S依據(jù)控制器下發(fā)的NN包構(gòu)造一個(gè)Chebyshev NN訓(xùn)練器。具體路由算法由兩部分組成。
2.2.1 初始化階段
當(dāng)一個(gè)新的數(shù)據(jù)流到達(dá)源交換機(jī)S時(shí),S從第一個(gè)數(shù)據(jù)包中提取(Src,Dst,Type),此時(shí)沒有訓(xùn)練好的NN存儲(chǔ)在交換機(jī)中,S向控制器C發(fā)送包含交換機(jī)編號(hào)以及數(shù)據(jù)流(Src,Dst,Type)信息的路由請求消息。當(dāng)C收到S發(fā)送的路由請求消息時(shí),將最近訓(xùn)練完的NN分發(fā)到所有相關(guān)交換機(jī)中。交換機(jī)在接收到NN包后,根據(jù)從NN包中得到的結(jié)構(gòu)參數(shù)構(gòu)建NN,然后利用所提取的流信息作為NN輸入來預(yù)測路徑,對數(shù)據(jù)流進(jìn)行路由。
控制器在構(gòu)造新的Chebyshev NN時(shí),通過1.3節(jié)生成數(shù)據(jù)集對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在控制器對NN的訓(xùn)練過程中,利用Chebyshev多項(xiàng)式的正交性,采用文獻(xiàn)[17]快速權(quán)值確定算法求得。
雖然與直接調(diào)用路由算法相比,增加了NN訓(xùn)練過程的計(jì)算復(fù)雜度,但占用存儲(chǔ)空間的減小,以及丟包率和網(wǎng)絡(luò)擁塞的減少使得算法總體性能優(yōu)越。
2.2.2 正常轉(zhuǎn)發(fā)階段
初始階段結(jié)束后到下次切換前,算法處于正常轉(zhuǎn)發(fā)階段。訓(xùn)練完的NN相當(dāng)于一張“路由表”存儲(chǔ)在衛(wèi)星節(jié)點(diǎn)中。新到達(dá)的路由請求作為測試樣本輸入到NN以得出最優(yōu)路徑,并根據(jù)路徑對數(shù)據(jù)流進(jìn)行轉(zhuǎn)發(fā)。
當(dāng)出現(xiàn)S預(yù)測路由失敗、一些鏈路失效或過載、網(wǎng)絡(luò)拓?fù)涓淖?、主機(jī)請求超時(shí)之中任一情況時(shí),S發(fā)送重路由請求消息到C。重路由請求消息包含節(jié)點(diǎn)編號(hào)以及數(shù)據(jù)流(Src,Dst,Type)信息。然后,C根據(jù)重路由算法重新計(jì)算最優(yōu)路徑,并將其下發(fā)給交換機(jī)。
同時(shí)增加一個(gè)負(fù)反饋機(jī)制,路由失效后,目標(biāo)節(jié)點(diǎn)將反饋一條錯(cuò)誤通知信息告知源節(jié)點(diǎn)路由失效。收到錯(cuò)誤通知信息后,S將該分類錯(cuò)誤的路徑添加到重路由請求消息中發(fā)送到控制器,作為反例進(jìn)一步訓(xùn)練NN。該機(jī)制幫助C憑借錯(cuò)誤通知信息感知網(wǎng)絡(luò)中鏈路信息的更新,并通過進(jìn)一步的訓(xùn)練對NN進(jìn)行相應(yīng)的調(diào)節(jié),為以后的選路提供最新的路由信息。
在進(jìn)行路徑預(yù)測時(shí),將數(shù)據(jù)流的業(yè)務(wù)類型作為NN的一個(gè)輸入向量,根據(jù)用戶在帶寬、時(shí)延、時(shí)延抖動(dòng)、誤碼率等方面的要求,可以有效地分配網(wǎng)絡(luò)資源,使路徑能夠更好地滿足不同用戶對服務(wù)質(zhì)量(Quality of Service, QoS)的要求。
對于業(yè)務(wù)類型,根據(jù)IP網(wǎng)絡(luò)中的QoS分類標(biāo)準(zhǔn)[18]將所有網(wǎng)絡(luò)應(yīng)用劃分為6類,見表1。其中:U表示“未指定”,TD、DV、LR和ER分別表示“傳輸時(shí)延”“時(shí)延抖動(dòng)”“丟包率”和“誤碼率”。
其實(shí)我沒有那么與世隔絕,我們的生活與外面的世界只是有著幾年的延時(shí)而已,其他的一切正常。我們默認(rèn)的島歌是《太平洋的風(fēng)》,那是我們學(xué)校從陸地來的音樂老師教我們唱的。他說,這首歌是他寫的:最早的一件衣裳,最早的一片呼喚,最早的一個(gè)故鄉(xiāng),最早的一件往事,是太平洋的風(fēng),徐徐吹來,吹過所有的全部。
表1 業(yè)務(wù)類型劃分
當(dāng)數(shù)據(jù)流到達(dá)交換機(jī)時(shí),交換機(jī)提取(Src,Dst,Type),然后使用Chebyshev NN來預(yù)測數(shù)據(jù)流的路徑。然而,路徑預(yù)測成功率達(dá)不到100%。因此,設(shè)計(jì)了重路由算法,見算法1。當(dāng)路由預(yù)測失敗時(shí),交換機(jī)將重路由請求消息發(fā)送給控制器。
算法1 重路由算法
當(dāng)接收到請求消息時(shí),控制器根據(jù)重路由算法重新計(jì)算數(shù)據(jù)流的最佳路由。
重路由算法的主要思想是根據(jù)當(dāng)前的網(wǎng)絡(luò)狀態(tài)信息(例如帶寬、延遲和錯(cuò)誤率)選擇最短路徑,以滿足盡可能多的QoS約束條件。首先,源地址SrcIP和目的地址DstIP分別映射到相應(yīng)的源節(jié)點(diǎn)Src和目的節(jié)點(diǎn)Dst,并將數(shù)據(jù)流的業(yè)務(wù)類型Type映射到相應(yīng)的QoS參數(shù)(即帶寬、延遲和差錯(cuò)率)。其次,對不能滿足帶寬要求的所有鏈路進(jìn)行過濾。最后,計(jì)算滿足時(shí)延要求的路徑集DLPathSet,并從DLPathSet中選擇滿足差錯(cuò)率要求的路徑ERPathSet。如果ERPathSet包含多個(gè)路徑,則選擇最短路徑作為最優(yōu)路徑。
在本節(jié)中,分析了所提出的路由策略的時(shí)間復(fù)雜度和空間復(fù)雜度。
路由策略涉及的過程主要包括Chebyshev NN訓(xùn)練、NN包下發(fā)、NN創(chuàng)建、數(shù)據(jù)流信息提取、NN路徑預(yù)測。暫不考慮控制器與交換機(jī)之間通信(即NN包下發(fā))的時(shí)間開銷。
由上節(jié)可知,Chebyshev NN訓(xùn)練過程的時(shí)間復(fù)雜度T1和空間復(fù)雜度S1均為O(1)。
Chebyshev NN創(chuàng)建過程的時(shí)間復(fù)雜度T2為O(mn+nk),空間復(fù)雜度S2為O(mn+nk)。這里,m和n分別是RBFNN中的輸入節(jié)點(diǎn)和隱藏節(jié)點(diǎn)的數(shù)目,k是RBFNN中輸出節(jié)點(diǎn)的數(shù)目。
數(shù)據(jù)流信息提取過程中從數(shù)據(jù)包中提取m個(gè)字段作為Chebyshev NN的輸入,其時(shí)間復(fù)雜度T3和空間復(fù)雜度S3均為O(m)。
基于上述分析,所提出的路由策略的時(shí)間復(fù)雜度為:
T=T1+T2+T3+T4
=O(1)+O(mn+nk)+O(m)+
O(mn+nk)~O(mn+nk)
(7)
所提出的路由策略的空間復(fù)雜度為
S=S1+S2+S3+S4
=O(1)+O(mn+nk)+O(m)+
O(mn+nk)~O(mn+nk)
(8)
基于斯坦福大學(xué)研發(fā)的輕量級(jí)測試平臺(tái)Mininet,選取改進(jìn)的ONOS控制器作為實(shí)驗(yàn)控制器。為了避免Mininet和ONOS之間的干擾,將兩者以虛擬機(jī)的形式部署在兩個(gè)物理設(shè)備上。選取6臺(tái)均有相同配置的實(shí)驗(yàn)機(jī)器,機(jī)器的配置為Intel Core i5 3.3 GHz、4 GB RAM、2 Gbp網(wǎng)卡,基于Ubuntu 14.04 LTS系統(tǒng)。借助MATLAB工具對實(shí)驗(yàn)結(jié)果進(jìn)行分析。采用類似文獻(xiàn)[16]中的仿真場景,該場景由3顆GEO衛(wèi)星控制器、48顆LEO衛(wèi)星交換機(jī)、3個(gè)地面控制器組成。
不同于一般的網(wǎng)絡(luò),衛(wèi)星網(wǎng)絡(luò)中的節(jié)點(diǎn)處在不斷的運(yùn)動(dòng)之中,節(jié)點(diǎn)間時(shí)延和鏈路連通性也在不斷發(fā)生變化。本文仿真模型中存在軌內(nèi)鏈路、軌間鏈路、層間鏈路三種星間鏈路(Inter-Satellite Link, ISL),為了模擬真實(shí)衛(wèi)星網(wǎng)絡(luò)的動(dòng)態(tài)變換特性,根據(jù)文獻(xiàn)[18] 在t時(shí)刻,星間鏈路ISLSj→Si的傳播時(shí)延定義為:
D(Sj→Si,t)=r(Sj→Si,t)/c
(9)
ISL的鏈路穩(wěn)定性函數(shù)為:
(10)
采用靜態(tài)和動(dòng)態(tài)鏈路設(shè)計(jì)方案,通過端到端傳輸時(shí)延和丟包率對鏈路穩(wěn)定性進(jìn)行分析,星間鏈路的傳輸速率為20 Mbit/s,將(wt,wd,ws)取值為(1/3,1/3,1/3),在考慮鏈路傳輸時(shí)延和生存時(shí)間的基礎(chǔ)上同時(shí)考慮真實(shí)空間干擾因素的影響,以提高傳輸?shù)倪B續(xù)性和減少網(wǎng)絡(luò)丟包率。
為了模擬真實(shí)的流量狀況,采用文獻(xiàn)[19]中的數(shù)據(jù)流模型。地球表面被劃分為12×24=288個(gè)區(qū)域。每個(gè)區(qū)域的數(shù)值代表上網(wǎng)用戶的數(shù)量,已被106整除。對于每106個(gè)上網(wǎng)用戶,流量為1 Mbit/s。
為了方便與基于神經(jīng)網(wǎng)絡(luò)的SDN智能路由方案(Neural Network-based Intelligent Routing Scheme for SDN, NNIRSS)[14]對比,根據(jù)QoS分類標(biāo)準(zhǔn),將所有業(yè)務(wù)應(yīng)用分成6類,并指定相應(yīng)的QoS參數(shù),如表2所示[14]。
表2 QoS參數(shù)
仿真實(shí)驗(yàn)由兩部分組成。在第一部分中,利用從上述場景中收集到的歷史流量數(shù)據(jù),對不同的業(yè)務(wù)流進(jìn)行分類,并構(gòu)造訓(xùn)練集和測試集來訓(xùn)練NN以尋找最優(yōu)參數(shù),NN訓(xùn)練完成后,將NN包存儲(chǔ)在控制器中。在第二部分中,將提出的路由策略與基于傳統(tǒng)OpenFlow的路由方案(Traditional OpenFlow-based SDN Routing scheme, TOSR)以及NNIRSS[14]進(jìn)行比較。
通過以下幾個(gè)指標(biāo)較全面地評價(jià)IRSCNN的性能。
1)NN包占用的存儲(chǔ)空間(Storage Space, SP):在提出的策略中,流表被NN包替換,對流表占用的存儲(chǔ)空間和NN包占用的空間進(jìn)行對比。
2)包傳遞率(Packet Delivery Rate, PDR):數(shù)據(jù)包成功到達(dá)目的節(jié)點(diǎn)的比例。
3)丟包率(Packet Loss Rate, PLR):丟失數(shù)據(jù)包占所有數(shù)據(jù)包的比例。
4)包傳輸時(shí)延(Packet Delay, PD):端到端的數(shù)據(jù)包傳輸時(shí)延。
每個(gè)仿真實(shí)驗(yàn)重復(fù)10次并取其平均值作為度量值。
3.2.1 實(shí)驗(yàn)1:SP
在基于OpenFlow的SDN中,數(shù)據(jù)流根據(jù)流表進(jìn)行路由和轉(zhuǎn)發(fā)。流表存儲(chǔ)在TCAM中。然而,在所提出的路由策略中,數(shù)據(jù)流根據(jù)NN進(jìn)行路由和轉(zhuǎn)發(fā),不需要存儲(chǔ)在TCAM中。為了便于存儲(chǔ)空間比較,假設(shè)SDN中的每個(gè)交換機(jī)包含1000個(gè)流表項(xiàng)。在OpenFlow V1.1.0中,流表項(xiàng)匹配域的最大長度是356 bit。因此,流表項(xiàng)占用的TCAM存儲(chǔ)空間約為444.57 KB。IRSCNN與NNIRSS之間SP的對比結(jié)果如圖5所示。即使考慮將NN存儲(chǔ)在TCAM中,Chebyshev NN占用的TCAM存儲(chǔ)空間也遠(yuǎn)小于444.57 KB。且與采用RBFNN的NNIRSS相比,由于空間復(fù)雜度降低,進(jìn)一步減少了存儲(chǔ)空間。
圖5 SP對比Fig.5 Comparison of SP
因此可以得出,所提出的IRSCNN可以顯著減少占用的TCAM存儲(chǔ)空間。
3.2.2 實(shí)驗(yàn)2:PDR
IRSCNN、NNIRSS與TOSR之間PDR的對比結(jié)果如圖6所示。隨著流量到達(dá)速率的增加,網(wǎng)絡(luò)中的數(shù)據(jù)包總數(shù)增加,導(dǎo)致網(wǎng)絡(luò)擁塞。由于交換機(jī)的處理能力有限,流中的一些數(shù)據(jù)包被丟棄,無法成功地路由和轉(zhuǎn)發(fā)到目的地。由圖6可知,無論IRSCNN、NNIRSS還是TOSR,相應(yīng)的PDR都隨著流量到達(dá)速率的增加而變小。
圖6 PDR對比Fig.6 Comparison of PDR
然而,當(dāng)流量到達(dá)率變大時(shí),IRSCNN的PDR是高于NNIRSS和TOSR的。TOSR對數(shù)據(jù)流采用最短路由策略,在TOSR中,流中的數(shù)據(jù)包沿最短路徑路由并轉(zhuǎn)發(fā),導(dǎo)致來自相同數(shù)據(jù)流的數(shù)據(jù)包沿著同一路徑路由。在IRSCNN和NNIRSS中,流中的數(shù)據(jù)包根據(jù)其相應(yīng)的業(yè)務(wù)類型進(jìn)行路由和轉(zhuǎn)發(fā),即不同類型的數(shù)據(jù)包在IRSCNN和NNIRS中沿不同的路徑進(jìn)行路由和轉(zhuǎn)發(fā),且采用Chebyshev NN的IRSCNN相比NNIRSS求解更迅速,處理速度更快。因此,傳送到目的地的數(shù)據(jù)包的總數(shù)大于NNIRSS和TOSR。
3.2.3 實(shí)驗(yàn)3:PLR
IRSCNN、NNIRSS與TOSR之間的PLR比較結(jié)果如圖7所示。隨著流量到達(dá)速率的增加,三者的PLR都變高,而IRSCNN的PLR比NNIRSS和TOSR的PLR要小。其原因與上述PDR比較相似。在TOSR中,流中的數(shù)據(jù)包被路由并轉(zhuǎn)發(fā)在最短路徑中。而在IRSCNN和NNIRS中,基于不同的業(yè)務(wù)類型,數(shù)據(jù)包沿著不同的路徑被轉(zhuǎn)發(fā)。隨著流量到達(dá)速率的增加,TOSR中由于在相同路徑上路由的數(shù)據(jù)包過多引起網(wǎng)絡(luò)擁塞而丟棄了大量的數(shù)據(jù)包,且采用Chebyshev NN的IRSCNN相比NNIRSS求解更迅速,處理速度更快,可以減少擁塞。因此,IRSCNN中丟棄的數(shù)據(jù)包的數(shù)量要小于NNIRSS和TOSR中的丟棄的數(shù)據(jù)包的數(shù)量。
3.2.4 實(shí)驗(yàn)4:PD
IRSCNN、NNIRSS與TOSR在不同流量到達(dá)速率下的PD比較結(jié)果如圖8所示。無論在IRSCNN、NNIRSS還是TOSR中,隨著流量到達(dá)速率的增加,流中的數(shù)據(jù)包總數(shù)都變得更大。過多的數(shù)據(jù)包會(huì)導(dǎo)致網(wǎng)絡(luò)擁塞。網(wǎng)絡(luò)擁塞越嚴(yán)重,數(shù)據(jù)包傳輸?shù)侥康墓?jié)點(diǎn)的時(shí)間就越長。
圖8 PD對比Fig.8 Comparison of PD
此外,由圖8可知,TOSR、NNIRSS的PD的長度比IRSCNN更長。雖然TOSR采用最短路由算法,但是隨著流量到達(dá)率的增加,網(wǎng)絡(luò)擁塞更加嚴(yán)重,TOSR的PD變得更長。另一方面,在IRSCNN、NNIRSS中,數(shù)據(jù)包的路由和轉(zhuǎn)發(fā)過程不涉及復(fù)雜的流表查找和匹配過程,與TOSR相比,NN路徑預(yù)測耗時(shí)更短,同時(shí)采用Chebyshev NN的IRSCNN相比NNIRSS求解更迅捷,處理速度更快。
綜上,IRSCNN在SP、PDR、PLR和PD性能方面均優(yōu)于TOSR和NNIRSS,采用的路由策略具有更高數(shù)據(jù)包傳輸成功率,更低的丟包率,更低的數(shù)據(jù)包傳輸時(shí)延,因此在傳輸時(shí)延和鏈路穩(wěn)定性方面也具有更好的性能。
針對OpenFlow協(xié)議中流表擴(kuò)展導(dǎo)致TCAM存儲(chǔ)空間不足的問題,提出了基于NN的軟件定義衛(wèi)星網(wǎng)絡(luò)智能路由架構(gòu),用NN來代替流表,大大減少了占用的TCAM存儲(chǔ)空間和相應(yīng)的硬件成本,取消了復(fù)雜的流表生成過程,不再需要查找和匹配流表項(xiàng),提高了路由效率。并在所提架構(gòu)的基礎(chǔ)上提出基于Chebyshev NN的智能路由策略,LEO衛(wèi)星根據(jù)數(shù)據(jù)流的業(yè)務(wù)類型通過訓(xùn)練后的Chebyshev NN來預(yù)測路徑,滿足了應(yīng)用的QoS需求。最后,通過仿真實(shí)驗(yàn)對所提IRSCNN性能進(jìn)行了評估。仿真結(jié)果表明:提出的路由策略能夠顯著減少占用的TCAM空間,提高路由轉(zhuǎn)發(fā)效率。