楊明川,薛冠昌,李清毅
(1.哈爾濱工業(yè)大學(xué)信息與通信工程學(xué)院,黑龍江 哈爾濱 150001;2.北京空間飛行器總體設(shè)計(jì)部,北京 100086)
隨著通信技術(shù)的進(jìn)步、通信業(yè)務(wù)的增長(zhǎng)和業(yè)務(wù)種類的增多,未來的通信網(wǎng)絡(luò)將向著地面網(wǎng)絡(luò)和衛(wèi)星網(wǎng)絡(luò)融合的方向發(fā)展,低軌衛(wèi)星網(wǎng)絡(luò)在星地互聯(lián)網(wǎng)絡(luò)中扮演著重要的角色[1]。目前,移動(dòng)通信系統(tǒng)已經(jīng)發(fā)展到了5G 時(shí)代,通信終端數(shù)量也發(fā)生了爆炸式的增長(zhǎng)[2]。衛(wèi)星通信成為地面移動(dòng)通信系統(tǒng)和固定通信網(wǎng)絡(luò)的延伸,且由于低軌星座能夠?qū)崿F(xiàn)全球通信的無縫覆蓋,其作用和戰(zhàn)略價(jià)值非常重要。
低地球軌道(LEO,low earth orbit)衛(wèi)星的傳輸損耗小,能夠支持小型移動(dòng)終端之間的通信,便于實(shí)現(xiàn)終端小型化和多樣化,所以應(yīng)用價(jià)值很高[3]。LEO 衛(wèi)星的運(yùn)行軌道高度比較低,傳播時(shí)延比較短,通常在10 ms 左右,能夠通過星間鏈路(ISL,inter satellite link)和相鄰衛(wèi)星建立全雙工通信,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行路由轉(zhuǎn)發(fā)。雖然星間鏈路的建立使星座系統(tǒng)的設(shè)計(jì)復(fù)雜度增加,但不需要在全球范圍內(nèi)建立大量的信關(guān)站,也降低了成本。
隨著業(yè)務(wù)量增加,星座網(wǎng)絡(luò)會(huì)出現(xiàn)擁塞現(xiàn)象。為緩解擁塞問題,Liu 等[4]提出LEO 衛(wèi)星網(wǎng)絡(luò)基于分段路由的負(fù)載均衡算法,動(dòng)態(tài)劃分輕負(fù)載區(qū)和重負(fù)載區(qū)。輕載區(qū)采用預(yù)平衡最短路徑算法,重載區(qū)采用最小權(quán)重路徑算法。分段路由算法在吞吐量、鏈路利用率和平均時(shí)延方面得到提高,但是采用分段路由算法造成星上存儲(chǔ)空間增加且算法復(fù)雜度較高。馮璽寶[5]提出緩解擁塞狀態(tài)的最小跳路由算法,根據(jù)衛(wèi)星之間的經(jīng)緯度信息計(jì)算出2 條備選路徑,根據(jù)網(wǎng)絡(luò)負(fù)載情況判決出最優(yōu)路徑。算法的信令開銷和運(yùn)算復(fù)雜度較低,并且能在一定程度上緩解網(wǎng)絡(luò)擁塞現(xiàn)象,但路由表由固定節(jié)點(diǎn)計(jì)算,導(dǎo)致網(wǎng)絡(luò)的實(shí)時(shí)響應(yīng)性差。
Geng 等[6]提出LEO 衛(wèi)星通信網(wǎng)絡(luò)的最優(yōu)時(shí)延路由算法,對(duì)衛(wèi)星網(wǎng)絡(luò)的時(shí)延變化進(jìn)行表征,并選擇有效的候選路徑。算法得出路徑的時(shí)延及其變化的時(shí)延評(píng)估指標(biāo),以網(wǎng)絡(luò)中信令開銷增加為代價(jià),實(shí)時(shí)響應(yīng)網(wǎng)絡(luò)的擁塞情況。Wang 等[7]提出了基于擁塞預(yù)測(cè)的負(fù)載均衡路由算法,建立了多目標(biāo)優(yōu)化模型。采用修正因子來調(diào)整路徑成本,通過擁塞預(yù)測(cè)來預(yù)測(cè)衛(wèi)星間鏈路的擁塞。利用蟻群算法求解該模型,從而為每個(gè)連接請(qǐng)求找到最佳路徑,運(yùn)用神經(jīng)網(wǎng)絡(luò)以運(yùn)算復(fù)雜度的提高為代價(jià),實(shí)現(xiàn)衛(wèi)星網(wǎng)絡(luò)的高效負(fù)載均衡。
當(dāng)前衛(wèi)星網(wǎng)絡(luò)面對(duì)擁塞緩解問題,路由算法往往以網(wǎng)絡(luò)中信令分組的增加為代價(jià),獲取全網(wǎng)衛(wèi)星的負(fù)載狀態(tài)信息,或者通過神經(jīng)網(wǎng)絡(luò)等算法及時(shí)進(jìn)行流量預(yù)測(cè)來提前緩解擁塞,增加了運(yùn)算的復(fù)雜度以及星上存儲(chǔ)空間。針對(duì)算法復(fù)雜度和信令開銷,基于小衛(wèi)星星座的背景,本文算法設(shè)計(jì)考慮以較小的運(yùn)算復(fù)雜度和信令開銷獲得時(shí)延和吞吐量性能的提升。
銥星(Iridium)系統(tǒng)是由66 顆LEO 衛(wèi)星交叉連接組成覆蓋全球范圍的復(fù)雜全網(wǎng)狀衛(wèi)星網(wǎng)絡(luò),數(shù)據(jù)在衛(wèi)星之間進(jìn)行路由而不經(jīng)過地面。銥星無縫的語音和數(shù)據(jù)全球覆蓋,能實(shí)現(xiàn)真正的移動(dòng)通信,并且系統(tǒng)中衛(wèi)星數(shù)量多,星間鏈路的互通能夠滿足未來物聯(lián)網(wǎng)信息的接入需求[8]。本文選用Iridium 系統(tǒng)進(jìn)行網(wǎng)絡(luò)建模,采用軟件STK 11.2 進(jìn)行衛(wèi)星軌道的參數(shù)建模和OPNET 14.5 進(jìn)行衛(wèi)星網(wǎng)絡(luò)路由算法的仿真分析。
Iridium 系統(tǒng)的衛(wèi)星運(yùn)行軌道均采用順時(shí)針方向。在STK11.2 中進(jìn)行衛(wèi)星軌道建模時(shí)[9],設(shè)置衛(wèi)星的編號(hào)規(guī)則為采用三位數(shù)字表示。衛(wèi)星命名的第10 位表示衛(wèi)星的軌道編號(hào),第12 和13 位表示衛(wèi)星的軌內(nèi)編號(hào)[10]。衛(wèi)星進(jìn)入南北極圈后關(guān)閉相鄰軌道間的鏈路(軌間鏈路),極圈邊界緯度為70°。每顆衛(wèi)星包含一個(gè)單波束衛(wèi)星天線,天線圓錐半角為62°,即可實(shí)現(xiàn)全球無縫覆蓋。由于Iridium 系統(tǒng)軌道1 和軌道6 相鄰,相鄰軌道的衛(wèi)星運(yùn)動(dòng)方向相反(此區(qū)域稱為反向縫),衛(wèi)星節(jié)點(diǎn)之間相對(duì)運(yùn)行速度很快,天線難以及時(shí)調(diào)整且通信時(shí)間比較短,故取消反向縫間衛(wèi)星的軌間鏈路。Iridium 系統(tǒng)仿真參數(shù)如表1 所示,3D 建模如圖1 所示。
表1 Iridium 系統(tǒng)仿真參數(shù)
從圖1 可以看出,Iridium 系統(tǒng)實(shí)現(xiàn)了全球無縫覆蓋。設(shè)置地面衛(wèi)星的通信仰角為5°,隨機(jī)選取北京市測(cè)量任意時(shí)刻可接入衛(wèi)星的數(shù)量,仿真結(jié)果如圖2 所示。橫坐標(biāo)為仿真時(shí)間,縱坐標(biāo)為北京市可接入衛(wèi)星數(shù)量,仿真運(yùn)行24 h,從2020 年3 月16 日04:00 到3 月17 日04:00。
在任意時(shí)刻地面終端可選接入衛(wèi)星數(shù)量始終大于或等于1,這意味著地面終端可以采取最長(zhǎng)接入時(shí)間覆蓋、最大地面仰角、最大接入信號(hào)功率等多種星地鏈路的選擇方案。
考慮衛(wèi)星網(wǎng)絡(luò)中較低的信令開銷以及算法的運(yùn)算復(fù)雜度,基于衛(wèi)星網(wǎng)絡(luò)的擁塞緩解問題,本文提出一種基于鄰居衛(wèi)星負(fù)載狀態(tài)的分布式路由算法(DRNL,distributed routing algorithm based on the load status of neighbor satellite),充分考慮了衛(wèi)星移動(dòng)的規(guī)律性,將星座網(wǎng)絡(luò)中的每顆衛(wèi)星看成虛擬節(jié)點(diǎn)[11-12]。衛(wèi)星采用雙向通信,通過無線收發(fā)信機(jī)實(shí)現(xiàn)數(shù)據(jù)發(fā)送和接收[13]。DRNL 采用虛擬節(jié)點(diǎn)的思想,將地球表面劃分為66 個(gè)邏輯區(qū)域,距離邏輯區(qū)域中心最近的衛(wèi)星加載其邏輯地址。每顆衛(wèi)星節(jié)點(diǎn)能夠獨(dú)立進(jìn)行分布式的路由決策,且衛(wèi)星的軌道采用近極軌道,軌道傾角為87°。根據(jù)虛擬節(jié)點(diǎn)的思想,該策略能夠簡(jiǎn)化衛(wèi)星之間的相對(duì)運(yùn)動(dòng)問題,適用于其他近極軌道星座[14]。
通過衛(wèi)星網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)可知,衛(wèi)星不通過極區(qū)時(shí),非反向縫兩側(cè)衛(wèi)星存在4 條星間鏈路,且每對(duì)衛(wèi)星節(jié)點(diǎn)之間包括發(fā)送鏈路和接收鏈路2 個(gè)方向,如圖3 所示。
DRNL 中每顆衛(wèi)星獨(dú)立地進(jìn)行路由選擇,當(dāng)前衛(wèi)星節(jié)點(diǎn)在星座中的編號(hào)為
表2 待選下一跳路由策略
數(shù)據(jù)分組到達(dá)衛(wèi)星節(jié)點(diǎn)時(shí),根據(jù)分組域中的目的地址和當(dāng)前節(jié)點(diǎn)的編號(hào)采用DRNL 獲取可選下一節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)與可選節(jié)點(diǎn)的星間鏈路處于連接狀態(tài),則依據(jù)負(fù)載判決機(jī)制選擇合適的下一節(jié)點(diǎn)。如果與可選下一節(jié)點(diǎn)的軌間鏈路斷開,則依據(jù)迂回路由算法選擇其余的待選路徑。待選路徑的衛(wèi)星一般為當(dāng)前衛(wèi)星節(jié)點(diǎn)軌道面內(nèi)的上、下2 顆衛(wèi)星,依據(jù)鄰居衛(wèi)星的緯度和負(fù)載狀態(tài)選擇合適的下一跳進(jìn)行路由轉(zhuǎn)發(fā)。
衛(wèi)星節(jié)點(diǎn)間的鏈路負(fù)載情況[10]的計(jì)算式如式(1)所示。
鏈路負(fù)載狀況采用三級(jí)負(fù)載判決形式,代表3 種等級(jí)狀態(tài),如式(2)所示。等級(jí)越高說明鏈路越繁忙,則減少到擁塞鏈路的流量,起到均衡局部負(fù)載的作用。
狀態(tài)信令包含綜合判決下一跳衛(wèi)星的鏈路利用率信息以及負(fù)載等級(jí)信息。初始時(shí)刻,衛(wèi)星每隔1 s更新一次本地負(fù)載信息,如果當(dāng)前時(shí)刻和上一時(shí)刻的狀態(tài)相同,則每隔2 s 發(fā)送當(dāng)前衛(wèi)星的狀態(tài)信令給鄰居衛(wèi)星。如果狀態(tài)不同,則每隔1 s 發(fā)送狀態(tài)信令。相鄰衛(wèi)星接收到狀態(tài)信令數(shù)據(jù)后,更新存儲(chǔ)的網(wǎng)絡(luò)負(fù)載信息表,從而調(diào)整選擇下一跳衛(wèi)星的路由策略。
衛(wèi)星節(jié)點(diǎn)定期監(jiān)測(cè)周圍衛(wèi)星的狀態(tài)信息,當(dāng)網(wǎng)絡(luò)出現(xiàn)負(fù)載不均衡或者是鏈路斷開的情況時(shí),衛(wèi)星應(yīng)該及時(shí)解決擁塞和鏈路通斷時(shí)的路由問題。狀態(tài)信令含有衛(wèi)星的緯度和負(fù)載信息,緯度信息用于判斷相鄰衛(wèi)星是否進(jìn)入極區(qū)。衛(wèi)星在經(jīng)過極區(qū)時(shí)關(guān)閉軌間鏈路,衛(wèi)星拓?fù)淙鐖D4 所示。
路由轉(zhuǎn)發(fā)利用當(dāng)前和目的衛(wèi)星的經(jīng)緯度信息,根據(jù)改進(jìn)的最小跳路由算法計(jì)算下一跳衛(wèi)星。當(dāng)前節(jié)點(diǎn)C(loc,lac),其中l(wèi)oc 和lac 分別為當(dāng)前衛(wèi)星的經(jīng)度和緯度,目的衛(wèi)星節(jié)點(diǎn)記為D(lod,lad),其中l(wèi)od和lad 分別為目的衛(wèi)星的經(jīng)度和緯度[5]。
當(dāng)前衛(wèi)星和目的衛(wèi)星之間的緯度關(guān)系滿足式(3)時(shí),可選路徑的方向向上。
當(dāng)前衛(wèi)星和目的衛(wèi)星之間的緯度關(guān)系滿足式(4)時(shí),可選路徑的方向向下。
當(dāng)前衛(wèi)星和目的衛(wèi)星之間的經(jīng)度關(guān)系滿足式(5)時(shí),可選路徑的方向向左。
當(dāng)前衛(wèi)星和目的衛(wèi)星之間的經(jīng)度關(guān)系滿足式(6)時(shí),可選路徑的方向向右。
當(dāng)前衛(wèi)星與目的衛(wèi)星之間的經(jīng)緯度關(guān)系總滿足上述4 個(gè)條件中的2 個(gè),即該算法存在2 個(gè)方向的可選下一跳衛(wèi)星。在數(shù)據(jù)分組域中設(shè)置過極區(qū)標(biāo)識(shí),如果經(jīng)過極區(qū),則將其置1,反之置0。此時(shí)由于極區(qū)上空的衛(wèi)星關(guān)閉軌間鏈路,如果數(shù)據(jù)分組路由到達(dá)極區(qū),但目的衛(wèi)星不在極區(qū),則數(shù)據(jù)需保持進(jìn)入極區(qū)的路由方向直至離開極區(qū),然后通過星間鏈路到達(dá)目的衛(wèi)星節(jié)點(diǎn),防止根據(jù)最小跳算法在極區(qū)發(fā)送到軌間鏈路上造成數(shù)據(jù)分組丟失。
衛(wèi)星發(fā)生擁塞現(xiàn)象時(shí),隊(duì)列中緩存的數(shù)據(jù)分組將會(huì)增加,從而造成排隊(duì)時(shí)延的增加。此時(shí),根據(jù)衛(wèi)星負(fù)載狀態(tài)更新策略檢測(cè)出擁塞等級(jí)。相鄰衛(wèi)星接收到狀態(tài)信令后,將減少發(fā)往擁塞節(jié)點(diǎn)的數(shù)據(jù)分組。當(dāng)衛(wèi)星節(jié)點(diǎn)A 具有2 個(gè)可選下一跳衛(wèi)星B 和C時(shí),此時(shí)采用負(fù)載判決機(jī)制,根據(jù)可選衛(wèi)星的擁塞等級(jí)進(jìn)行判斷。當(dāng)LB=LC時(shí),下一跳衛(wèi)星按比例0.5隨機(jī)選擇。如果LB≠LC,當(dāng)時(shí),下一跳衛(wèi)星按比例0.7 選擇負(fù)載等級(jí)低的衛(wèi)星,按比例0.3選擇負(fù)載等級(jí)高的衛(wèi)星,當(dāng)時(shí),下一跳衛(wèi)星按比例0.85 選擇負(fù)載等級(jí)低的衛(wèi)星,按比例0.15 選擇負(fù)載等級(jí)高的衛(wèi)星。如果當(dāng)前衛(wèi)星與目的衛(wèi)星在同一軌道面或具有相同軌內(nèi)編號(hào)時(shí),采取改進(jìn)的最小跳算法為緩解擁塞,可能將數(shù)據(jù)分組路由到非最小跳數(shù)的路徑方向,造成路由的跳數(shù)增加。
當(dāng)源衛(wèi)星節(jié)點(diǎn)為104、目的衛(wèi)星節(jié)點(diǎn)為306 時(shí),如圖5 所示,源節(jié)點(diǎn)首先判斷與節(jié)點(diǎn)204 之間的鏈路是否連接。如果鏈路斷開,選擇節(jié)點(diǎn)105 作為下一跳衛(wèi)星。反之,如果鏈路連接,則根據(jù)節(jié)點(diǎn)105和節(jié)點(diǎn)204 的負(fù)載情況選擇下一跳衛(wèi)星。如果選擇節(jié)點(diǎn)105,則給數(shù)據(jù)分組設(shè)置極區(qū)標(biāo)志,表示其經(jīng)過極區(qū)的方向。然后當(dāng)前衛(wèi)星再根據(jù)極區(qū)標(biāo)志判斷下一跳衛(wèi)星是106,此時(shí)和目的節(jié)點(diǎn)在同一水平環(huán)內(nèi),途經(jīng)衛(wèi)星節(jié)點(diǎn)206 轉(zhuǎn)發(fā)數(shù)據(jù)分組到目的節(jié)點(diǎn)。如果選擇節(jié)點(diǎn)204,由于源節(jié)點(diǎn)與節(jié)點(diǎn)304 的軌間鏈路關(guān)閉,只能選擇到下一跳衛(wèi)星節(jié)點(diǎn)205,同理途經(jīng)節(jié)點(diǎn)206 到達(dá)目的節(jié)點(diǎn)。
考慮到極地區(qū)域業(yè)務(wù)負(fù)載比較少,衛(wèi)星在極區(qū)關(guān)閉軌間鏈路的情況下,對(duì)極地地區(qū)和非極地地區(qū)的業(yè)務(wù)分布進(jìn)行單獨(dú)建模。星座中共包含66 顆衛(wèi)星,對(duì)應(yīng)將地球表面劃分為66 個(gè)服務(wù)區(qū)域,每個(gè)區(qū)域?qū)?yīng)一顆LEO 衛(wèi)星承擔(dān)區(qū)域中的通信業(yè)務(wù)。在衛(wèi)星節(jié)點(diǎn)建模的過程中使用模擬數(shù)據(jù)源,用以模擬衛(wèi)星在實(shí)際過程中接收到的地面終端發(fā)送的數(shù)據(jù)分組[15]。考慮極地地區(qū)和非極地地區(qū)業(yè)務(wù)負(fù)載不均衡,將星座中信元生成負(fù)載情況按照衛(wèi)星在運(yùn)行中所處的緯度進(jìn)行更新。
衛(wèi)星網(wǎng)絡(luò)中模擬業(yè)務(wù)源的數(shù)據(jù)產(chǎn)生速率為10.24 kbit/s×W×W0。其中,W為不同衛(wèi)星產(chǎn)生模擬通信業(yè)務(wù)的權(quán)重參數(shù),W0為全網(wǎng)衛(wèi)星設(shè)置的初始權(quán)重參數(shù)。衛(wèi)星業(yè)務(wù)權(quán)重參數(shù)W如表3 所示。
表3 衛(wèi)星業(yè)務(wù)權(quán)重參數(shù)W
OPNET 是商業(yè)化仿真軟件,其中Modeler 能夠?qū)Χ喾N業(yè)務(wù)進(jìn)行模擬,繪制仿真圖和輸出仿真報(bào)告。在仿真的過程中,Modeler 能夠收集統(tǒng)計(jì)量數(shù)據(jù)、查看網(wǎng)絡(luò)運(yùn)行的動(dòng)畫和調(diào)試程序。Modeler 在仿真時(shí)維護(hù)一個(gè)全局事件列表,在仿真運(yùn)行的時(shí)刻執(zhí)行排在當(dāng)前列表最前面的事件,并將基于數(shù)據(jù)分組的統(tǒng)計(jì)方法結(jié)合基于數(shù)學(xué)統(tǒng)計(jì)的建模方法[16]。
Iridium 星座網(wǎng)絡(luò)層模型如圖5 所示,主要建模星座的拓?fù)浣Y(jié)構(gòu),是實(shí)現(xiàn)仿真分析LEO 路由算法的基礎(chǔ)。在OPNET 的網(wǎng)絡(luò)層導(dǎo)入修改后的STK 生成的軌道文件,每條軌道對(duì)應(yīng)生成一個(gè)衛(wèi)星節(jié)點(diǎn),圖5 中包含66 顆衛(wèi)星節(jié)點(diǎn)和一個(gè)接收主詢配置。接收主詢模塊通過基于衛(wèi)星的經(jīng)緯度、鏈路可視性以及衰落現(xiàn)象判斷數(shù)據(jù)分組是否可達(dá)、星間鏈路是否連通,控制衛(wèi)星之間數(shù)據(jù)分組的路由轉(zhuǎn)發(fā)經(jīng)過鏈路的連接情況。
Iridium 星座節(jié)點(diǎn)層模型如圖6 所示,用于模擬衛(wèi)星節(jié)點(diǎn)實(shí)現(xiàn)的通信功能,是實(shí)現(xiàn)路由算法的硬件條件。天線的指向通過ant_point 模塊進(jìn)行周期調(diào)整,數(shù)據(jù)分組的接收和發(fā)送都是通過無線收發(fā)信機(jī)模塊來實(shí)現(xiàn)的,每個(gè)無線收發(fā)信機(jī)對(duì)應(yīng)一條ISL。其中,虛線為狀態(tài)連接線,傳輸隊(duì)列模塊的存儲(chǔ)信息;實(shí)線為數(shù)據(jù)分組發(fā)送、接收的路徑。
圖6 中的app_gen 模塊用于模擬業(yè)務(wù)源的產(chǎn)生;sink 模塊用于統(tǒng)計(jì)數(shù)據(jù)分組的傳輸時(shí)延,銷毀數(shù)據(jù)分組釋放仿真運(yùn)行占用的內(nèi)存空間;LEO_route 模塊用于數(shù)據(jù)分組下一節(jié)點(diǎn)的選擇。由于衛(wèi)星路由考慮星間鏈路,每顆衛(wèi)星節(jié)點(diǎn)需要有4 條星間鏈路,因此節(jié)點(diǎn)層需要4 對(duì)無線鏈路收發(fā)信機(jī)。
無線信號(hào)在仿真過程中需要配置14 個(gè)管道階段,包括調(diào)制方式、噪聲系數(shù)、接收增益、背景噪聲、信噪比、比特誤碼率等模擬真實(shí)無線信號(hào)傳輸?shù)沫h(huán)境。模擬信號(hào)產(chǎn)生后通過分組流連接線傳輸?shù)铰酚赡K,選擇合適的下一跳衛(wèi)星節(jié)點(diǎn),傳輸?shù)綄?duì)應(yīng)鏈路的緩存隊(duì)列queue 模塊,然后經(jīng)收發(fā)信機(jī)進(jìn)行發(fā)送。
節(jié)點(diǎn)域模塊中每個(gè)模塊都有不同的進(jìn)程層模型,進(jìn)程層是通過有限狀態(tài)機(jī)模型進(jìn)行建模的,每個(gè)狀態(tài)機(jī)對(duì)應(yīng)進(jìn)程模型的一個(gè)狀態(tài),通過狀態(tài)連接線實(shí)現(xiàn)狀態(tài)的轉(zhuǎn)移。在進(jìn)程層中,狀態(tài)分為強(qiáng)制性狀態(tài)和非強(qiáng)制性狀態(tài)2 種,強(qiáng)制性狀態(tài)是綠色標(biāo)識(shí),非強(qiáng)制性狀態(tài)是紅色標(biāo)識(shí)[10]。當(dāng)進(jìn)程執(zhí)行強(qiáng)制性狀態(tài)時(shí),直接執(zhí)行入口代碼和出口代碼,然后跳入其他狀態(tài)或終止。當(dāng)進(jìn)程執(zhí)行非強(qiáng)制性狀態(tài)時(shí),先執(zhí)行狀態(tài)的入口代碼,然后將控制器交給仿真核心,等待其他進(jìn)程或者事件的觸發(fā)返回再執(zhí)行出口代碼。
1) ant_point 模塊
由于衛(wèi)星處在不停的運(yùn)行過程中,衛(wèi)星之間的位置會(huì)發(fā)生改變,因此需要天線校準(zhǔn)模塊及時(shí)地跟蹤?quán)従有l(wèi)星節(jié)點(diǎn)的位置,其狀態(tài)轉(zhuǎn)移如圖7 所示。其中,實(shí)線表示狀態(tài)轉(zhuǎn)移的起始路徑,虛線表示狀態(tài)返回路徑。
圖7 中point 模塊是獲取相鄰衛(wèi)星的位置參數(shù)進(jìn)行天線校準(zhǔn)的狀態(tài)。首先獲取相鄰衛(wèi)星節(jié)點(diǎn)的ID,依次獲取其經(jīng)度、緯度和高度信息,然后賦值給天線的指向參數(shù)。天線指向跟蹤的調(diào)整時(shí)間間隔為1 s,通過設(shè)置天線校準(zhǔn)模塊提高發(fā)射增益,減少數(shù)據(jù)路由的誤碼率和數(shù)據(jù)分組丟失率。
2) LEO_route 模塊
數(shù)據(jù)分組的路由需要LEO_route模塊選擇合適的下一跳,路由模塊內(nèi)的有限狀態(tài)機(jī)模型如圖8 所示。其中,實(shí)線表示狀態(tài)轉(zhuǎn)移的起始路徑,虛線表示狀態(tài)返回路徑。
STATE 狀態(tài)為當(dāng)前衛(wèi)星節(jié)點(diǎn)進(jìn)行檢測(cè)自身的4 條鏈路的緩存情況,并劃分相應(yīng)的擁塞等級(jí)。SEND_HELLO 狀態(tài)為當(dāng)前節(jié)點(diǎn)發(fā)送的信令分組,將STATE 狀態(tài)統(tǒng)計(jì)的衛(wèi)星節(jié)點(diǎn)的緩存數(shù)據(jù)和緯度信息存入信令分組。
RCV_LOCAL 狀態(tài)為接收到本節(jié)點(diǎn)產(chǎn)生的模擬數(shù)據(jù)分組后執(zhí)行的操作。RCV_NEIGH 狀態(tài)首先判斷接收到的數(shù)據(jù)是信令分組還是數(shù)據(jù)分組,如果是數(shù)據(jù)分組則判斷其目的地址,再判決是執(zhí)行銷毀還是路由轉(zhuǎn)發(fā)。
在研究過程中,改變網(wǎng)絡(luò)中模擬數(shù)據(jù)分組的產(chǎn)生速率,與典型的最小跳路由算法進(jìn)行比較,通過分析數(shù)據(jù)分組的端到端時(shí)延、數(shù)據(jù)分組丟失率、平均路由跳數(shù)指標(biāo),判斷星座網(wǎng)絡(luò)的擁塞處理能力[17]。
1) 平均端到端時(shí)延
平均端到端時(shí)延為星座網(wǎng)絡(luò)中數(shù)據(jù)分組從模擬信源中產(chǎn)生的時(shí)刻開始,到通過路由轉(zhuǎn)發(fā)到達(dá)目的衛(wèi)星節(jié)點(diǎn)時(shí)刻的間隔的平均值。
其中,Tavg為數(shù)據(jù)發(fā)送到接收的平均時(shí)延,N為接收到的數(shù)據(jù)分組的數(shù)量,Ti為在星座中傳輸?shù)膯蝹€(gè)數(shù)據(jù)分組的端到端時(shí)延。
2) 數(shù)據(jù)分組丟失率
數(shù)據(jù)分組在星座網(wǎng)絡(luò)傳輸?shù)倪^程中會(huì)遇到緩存溢出、誤判決和路徑損耗等數(shù)據(jù)分組丟失的現(xiàn)象,丟失的數(shù)據(jù)分組數(shù)量與網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)分組的總數(shù)的比值即數(shù)據(jù)分組丟失率。
其中,Nloss為在傳輸過程中丟失的數(shù)據(jù)分組的總數(shù),Nsend為網(wǎng)絡(luò)中發(fā)送的數(shù)據(jù)分組的總數(shù),Rloss為數(shù)據(jù)分組丟失率。
3) 平均路由跳數(shù)
在路由過程中,平均路由跳數(shù)是所有數(shù)據(jù)分組到達(dá)目的節(jié)點(diǎn)經(jīng)過的跳數(shù)的平均值。
其中,Havg為平均路由跳數(shù),N為接收到的數(shù)據(jù)分組的數(shù)量,Hi為網(wǎng)絡(luò)中單個(gè)數(shù)據(jù)分組的路由跳數(shù)。
本文采用BPSK 進(jìn)行數(shù)據(jù)編碼,并將衛(wèi)星天線的校準(zhǔn)周期設(shè)置為1 s,本文仿真參數(shù)設(shè)置如表4所示。
表4 仿真參數(shù)設(shè)置
本文采用的比較路由性能的2種算法為文獻(xiàn)[5]提出的最小跳路由算法及其改進(jìn)型,均為分布式路由算法。
1) 固定路徑的路由算法(FPRA,fixed path routing algorithm)
衛(wèi)星節(jié)點(diǎn)在路由決策時(shí)不考慮負(fù)載狀況,當(dāng)數(shù)據(jù)分組到達(dá)時(shí),按照當(dāng)前衛(wèi)星和目的衛(wèi)星的經(jīng)緯度位置,依據(jù)最小跳算法采用固定方向的策略選擇下一跳節(jié)點(diǎn)進(jìn)行路由。
2) 隨機(jī)選擇路徑的路由算法(RSRA,random select routing algorithm)
衛(wèi)星節(jié)點(diǎn)不考慮負(fù)載狀況,當(dāng)數(shù)據(jù)分組到達(dá)時(shí),衛(wèi)星按照最小跳路由算法計(jì)算的2 條備選方向隨機(jī)選擇一條作為下一跳衛(wèi)星節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)分組,能夠避免衛(wèi)星網(wǎng)絡(luò)在一些鏈路上的傳輸引起擁塞,從而增強(qiáng)網(wǎng)絡(luò)的路由能力。
1) 平均端到端時(shí)延
分組產(chǎn)生間隔越小,衛(wèi)星節(jié)點(diǎn)的負(fù)載越重,所以端到端時(shí)延呈向上增長(zhǎng)的趨勢(shì)。仿真結(jié)果如圖9所示。
分組產(chǎn)生間隔在0.08~0.14 s 時(shí),3 種路由算法為相對(duì)空閑狀態(tài),端到端時(shí)延在0.167 s 左右。分組產(chǎn)生間隔為0.04~0.08 s 時(shí),3 種路由算法為相對(duì)繁忙狀態(tài),DRNL 路由算法依然保持穩(wěn)定的路由能力,端到端時(shí)延保持在0.2 s 以下。分組產(chǎn)生間隔為0.03 s時(shí),網(wǎng)絡(luò)達(dá)到擁塞狀態(tài),3 種算法端到端時(shí)延大幅度上升,但DRNL 時(shí)延維持在0.538 s。仿真結(jié)果表明,DRNL 具有緩解網(wǎng)絡(luò)擁塞、降低時(shí)延的能力。
2) 數(shù)據(jù)分組丟失率
仿真結(jié)果表明,隨著網(wǎng)絡(luò)負(fù)載加重,數(shù)據(jù)分組丟失率增加,如圖10 所示。當(dāng)分組產(chǎn)生間隔為0.03 s時(shí),3 種路由算法的數(shù)據(jù)分組丟失率均顯著上升,這是由于網(wǎng)絡(luò)的擁塞現(xiàn)象加重,部分節(jié)點(diǎn)的緩存隊(duì)列出現(xiàn)溢出、數(shù)據(jù)分組同時(shí)到達(dá)收發(fā)信機(jī)引起沖突造成數(shù)據(jù)分組丟失,但是當(dāng)分組產(chǎn)生間隔低于0.03 s時(shí),DRNL 的數(shù)據(jù)分組丟失率維持在0.005%左右,保持較好的性能。
3) 平均路由跳數(shù)
數(shù)據(jù)分組路由的跳數(shù)增加會(huì)造成時(shí)延增大,需要考慮衛(wèi)星在自由空間的傳播時(shí)延。同軌道面內(nèi)衛(wèi)星均勻分布,星間距離保持固定,即軌道內(nèi)相鄰衛(wèi)星之間通信具有固定的時(shí)延,如式(10)所示。
其中,R是軌道面的半徑,M是軌道面內(nèi)衛(wèi)星數(shù),c 是電磁波傳播速度。
軌道間衛(wèi)星之間的距離隨著衛(wèi)星的相對(duì)運(yùn)動(dòng)不斷發(fā)生變化。在赤道附近緯度較低,衛(wèi)星的分布比較稀疏,傳輸時(shí)延最大,計(jì)算式為
其中,N是軌道面的數(shù)量,lat 是衛(wèi)星的緯度。
3 種算法平均路由跳數(shù)的仿真結(jié)果如圖11 所示。當(dāng)分組產(chǎn)生間隔大于0.07 s 時(shí),網(wǎng)絡(luò)相對(duì)空閑,F(xiàn)PRA 和RSRA 的路由跳數(shù)基本保持不變;DRNL的平均路由跳數(shù)最小,使平均端到端時(shí)延最小。當(dāng)分組產(chǎn)生間隔小于0.04 s 時(shí),F(xiàn)PRA 和RSRA 平均路由跳數(shù)下降,但由圖9 可知,端到端時(shí)延仍呈上升趨勢(shì)。
端到端時(shí)延需考慮排隊(duì)時(shí)延和傳播時(shí)延,若平均路由跳數(shù)減少,則傳播時(shí)延降低,但是排隊(duì)時(shí)延增加。這是因?yàn)閿?shù)據(jù)分組丟失率的增加導(dǎo)致數(shù)據(jù)分組不能到達(dá)目的地,在路由過程中丟失。由于DRNL中數(shù)據(jù)分組采用迂回路由轉(zhuǎn)發(fā),具有局部擁塞緩解的功能,此時(shí)數(shù)據(jù)分組丟失率依舊很低,但是隨著網(wǎng)絡(luò)負(fù)載增加,DRNL 平均路由跳數(shù)逐漸增加。
DRNL 考慮相鄰衛(wèi)星的負(fù)載狀態(tài),衛(wèi)星采用分布式思想,使每顆衛(wèi)星能夠獨(dú)立進(jìn)行負(fù)載均衡路由判決,實(shí)時(shí)響應(yīng)衛(wèi)星網(wǎng)絡(luò)中負(fù)載的變化以及鏈路的通斷問題。DRNL 以相對(duì)較低的運(yùn)算復(fù)雜度換取端到端時(shí)延和數(shù)據(jù)分組丟失率的降低,但是以網(wǎng)絡(luò)中相對(duì)較低的信令開銷為代價(jià),使星座具有一定的抗毀性。
當(dāng)前,世界掀起新一輪衛(wèi)星網(wǎng)絡(luò)建設(shè)風(fēng)潮,建設(shè)低軌衛(wèi)星網(wǎng)絡(luò)成為關(guān)系國計(jì)民生的重大戰(zhàn)略性工程。路由算法是衛(wèi)星網(wǎng)絡(luò)的核心技術(shù),本文提出的DRNL 能夠通過較低的信令開銷獲取緩解網(wǎng)絡(luò)擁塞的能力,滿足一定的實(shí)時(shí)性要求。DRNL 通過信令分組及時(shí)獲取鄰居衛(wèi)星節(jié)點(diǎn)的負(fù)載狀態(tài)和鏈路的連接情況,提升了網(wǎng)絡(luò)的穩(wěn)健性,能夠滿足我國對(duì)低軌衛(wèi)星網(wǎng)絡(luò)通信系統(tǒng)的發(fā)展需要。