王晨陽,張亞生
(中國電子科技集團公司 第五十四研究所,石家莊 050081)
衛星通信就是以衛星作為“基站”來中繼轉發信號的通信方式,可以在多個地面站之間通信,衛星通信可以對地面的實現近乎無縫的覆蓋,由于地面基站在沙漠、極地、海洋等地形環境下難以建造,因此地面網在全球范圍內的通信都受到了限制[1],而衛星工作于幾百甚至上萬公里的太空軌道上,因此覆蓋范圍相比于傳統的移動通信系統要大得多,解決地面網的問題。
低軌衛星通信是衛星通信的重要組成部分,各種類型的低軌通信衛星組合在一起形成了低軌星座,其傳輸路徑包括衛星之間的星間鏈路以及衛星和地面站、用戶間的星地鏈路,低軌衛星系統可以接入高軌通信網和地面核心網,實現地網互聯等,構成空天一體的信息傳輸處理體系。
低軌衛星的主要優勢在于以下幾點。首先,由于低軌衛星軌道高度較低[2],與地面的通信鏈路和星間鏈路距離較短,因此信號的傳播路徑相較于中高軌衛星較短,傳播時延和傳播損耗均減小;其次,數顆低軌衛星構成的低軌衛星網絡可以完整的連續的實現對包括高緯度區域在內的全球覆蓋;此外,低軌衛星大多體積較小,因此發射成本更低,可以大量發射,這樣即便個別衛星節點出現問題,仍能保證通信系統的運轉,并且成本低的小型化低軌衛星更加便于衛星功能重構,達到更加靈活和部署和功能性。
但低軌衛星系統仍然存在一些缺陷和問題。衛星網絡相比較于地面網絡來說,有較大的衛星通信距離,并且擁有眾多衛星節點的無線多跳網絡使得傳播時延遠大于地面絡。另外,低軌衛星具有高動態性的特點,星間鏈路和星地鏈路高頻切換,拓撲結構容易變化[3],因此傳播時延變化也大,時間同步也難以利用。另外由于傳輸距離和鏈路信道會受到各種干擾,傳輸數據的誤碼率也大于地面網絡。
本文針對低軌衛星的問題,提出研究內容的需求,即為追求衛星通信系統的低時延、確定性和高可靠性。針對該需求,研究地面確定性網絡中的關鍵技術和相關技術標準[4],分析其優缺點和適應性,設計了一種流量交換機制,聚焦在ATS流量整形優先級和隊列選擇,著重解決確定性傳輸中隊列擁塞和丟包的問題。最終借助NS3軟件仿真,測試結果在本文提出的流量控制機制下,星上交換的流量丟包率有明顯下降,且資源利用率得到了提高。
低軌衛星系統的主要組成一般是三部分,即為用戶段、空間段以及地面段[5]。這三段各自的組成個體也不相同,并且有各自的功能。
1)用戶段:主要組成部分是各種用戶,包括各種類型的終端設備,如手機、車載終端等,終端用戶是整個系統的最邊緣部分,主要就是向衛星網絡提起各種業務請求,只要在衛星某一天線的波束覆蓋內,就可以于衛星之間形成一條通信鏈路實現信息交互和傳輸[6]。
2)空間段:主要組成部分是低軌通信衛星,由一定數量的衛星組成了衛星星座,每顆衛星是組成整個網絡各自的節點。各位衛星之間也是固定格式的衛星數據幀在星間鏈路中傳播。低軌衛星的軌道高度一般是500~2 000公里。
3)地面段:主要組成部分就是地面的信關站。信關站是地面網和衛星網之間互聯的橋梁,是實現地面用戶信息向衛星傳輸和接受自衛星的信息的重要連接點。當信關站在衛星的可視范圍內時,衛星和地面信關站之間就可以實現包括各種信令和業務信息等數據。當信關站和衛星間信號強度較弱時,就會以一定的方案選擇切換至其他衛星。
在地面網絡中,許多新興的服務和應用對網絡的性能提出了很高的要求,智能制造、汽車自動駕駛、遠程醫療等,這些應用對網絡傳輸的要求已經不僅是傳輸速率和帶寬的問題,能夠實現端到端的確定性服務同樣至關重要,這其中包括帶寬、時延、抖動和丟包等指標要求,因此確定性網絡應運而生,它是網絡技術的一種新型服務質量保障技術。
衛星網絡相較于地面網絡更加復雜,特別是低軌星座的星間拓撲頻繁變化導致數據傳輸容易震蕩,衛星相對于地面的高速移動則帶來客戶端變化頻繁、網內流量需求大規模變化的問題,因此想要在低軌星座間實現確定性傳輸更加困難。因此在衛星網絡中,假如單獨依靠低時延星載交換技術等方法,無法完全保證傳輸質量,因為地面終端設備如果不對自己傳輸行為進行控制,很容易造成星上交換機的擁塞。
網絡傳輸保證服務質量的通常手段包括擴容、流量整形、隊列調度和擁塞控制等。本文提出的問題場景在于解決丟包的問題,因此提出一種流量反饋控制機制,借助地面設備終端的行為控制,并和星上交換設備一體化處理,形成星地融合、網端一體的網絡傳輸架構,解決星上交換擁塞和丟包的問題。
星載交換機上可用的存儲資源有限,因此當網絡流量過大或存在突發流量時很很容易造成隊列的擁塞從而造成丟包,為了支撐確定性的端到端傳輸,實現低丟包甚至零丟包,必須要進行動態、高效的網絡資源分配,因此有必要設計星地一體、網端協同的傳輸架構體系。本文采用星上反饋地面設備的流量交換控制機制[7],基于圖1所示的隊列模型,這種機制的主要工作就是將星上緩存隊列狀態信息反饋給地面設備,地面設備收到廣播信息根據隊列調度算法調整相應隊列的帶寬分配,通過這種方式緩解流量過大或突發流量帶來的星上緩存擁塞問題[8]。

圖1 隊列模型和流量控制機制
地面設備調整流量隊列借助一定的流量調度算法,對發送到星上的鏈路幀進行編排,按照一定的規則分配合適的邏輯隊列[9],不同的邏輯隊列發送到星上交換設備后,轉發至交換設備輸出端口的順序和優先級是不同的,當地面設備收到星上的廣播以后,修改鏈路幀具體的字段和參數,以此來控制發送到星上后屬于不同的虛擬輸出隊列,從而達到應對突發流量,緩解星上交換部分短時間擁塞的問題,提高系統的吞吐量,減少丟包。
反饋信息有兩類,一是通知給地面設備降低較高次序邏輯隊列的發送帶寬,提高低次序邏輯隊列的發送帶寬,從而緩解高次序隊列的擁塞問題;二是通知給地面設備提高較高次序邏輯隊列的發送帶寬,相應的低次序帶寬就會提高。具體兩種反饋信息的判定依據是在星上的緩存隊列設置兩個閾值,最大閾值Qmax和最小閾值Qmin,當星上的較高次序緩存隊列到達最大閾值,即發送反饋信息一,降低高次序隊列資源分配;當星上較高次序緩存隊列到達最小閾值,即發送反饋信息二,提高高次序隊列資源分配。
衛星通信網絡的數據流量很大[10],并且由于異軌道星間距離處在不斷變化之中,導致基于時間同步的轉發機制性能受到影響,所以采用異步的流量整形機制,即不需要全網時鐘同步,選擇ATS異步流量整形算法為地面設備分配帶寬,對傳輸的鏈路幀進行控制,實現提出的反饋控制機制。即如果去往某個輸出端口的業務量較大時,采取網端一體的流量控制機制,通過星地廣播流控幀,通知地面設備減少流入的業務量,特別是去往某個端口的業務量,減少星上分組丟棄。
IEEE 802.1Qcr標準提出了基于UBS的ATS調度機制。IEEE 802.1Qcr標準中指出實現ATS調度機制的交換設備都需要對以下組件進行支持:流過濾器、服務數據單元過濾器、流門控、整形器、整形器組和傳輸選擇算法[11],其整體架構如圖2所示。

圖2 ATS調度機制的整體架構
本文將ATS整形調度算法應用于星地間的流量交換控制機制,在本文提出的流量控制機制中,整個流程在從流門控輸出以前的部分都設置于地面設備,首先當數據幀從地面設備發送前通過stream_handle(IEEE Std 802.1CB中流識別功能的一個子參數)和priority(VLAN標簽[12]中的優先級字段),這兩個字段對數據流進行識別和匹配,根據這一步的處理決定后續進入合適的流過濾器,不同的流過濾器后是相對應的流門控整形器進程處理,隨后進入數據處理單元,數據處理單元的的主要任務是過濾控制一定大小的數據幀,不符合要求的數據幀在數據處理單元處就會被丟棄;符合數據單元大小限制的數據幀會按照之前流過濾器匹配的指定,進入相應的流門控;在指定的流門控內,數據幀會被分配一個內部優先級該優先級就用于星上的隊列控制。通過地面設備的這些部分,各個數據幀被分析處理并分配了合適的內部優先級,經處理后的數據幀隨后將會被傳輸到星上,在星上將會進行后續的處理。
星上設備接收到帶有內部優先級的數據幀后,應用基于令牌桶的交織整形算法,整形后的數據幀會被分配一個合格時間,合格時間用于后續計算傳輸選擇算法,并分配不同級別的轉發隊列。在整形器之后,數據幀就會按照合格時間的映射進入不通過次序的隊列排隊發送,排隊發送的基于嚴格的優先級調度,高次序隊列傳輸先于低次序隊列,相對高次序隊列當前首個數據幀合格時間小于當前時間則發送,并重新開始執行從高次序到低次序的傳輸算法,假如出現合格時間判定異常,即為收到地面設備的處理后的地面設備的控制,則轉而發送下一較低次序的傳輸隊列中的數據幀[13],按照這樣的排隊序列,可以保證從地面設備發出的數據幀,按照發出時數據幀所要求的傳輸次序,在星上轉發時,按照要求的次序傳輸到星上交換輸出端口,從而達到緩解星上緩存隊列擁塞丟包的問題。
NS3作為一個離散事件網絡模擬器,有很強的可擴展性與易用性,提供各種用于網絡仿真的API,可以在腳本中調用這些API,來構建自己的仿真模型[14]。NS3的核心架構和各種網絡通信模型是用C++實現的,并且用Python語言綁定,這樣就可以用Python語言編寫腳本,NS3的組織結構如圖3所示,內核和Network模塊可以為網絡仿真提供一般性服務,上層模塊可以根據不同的仿真場景進行選擇搭配[15]。

圖3 NS3的組織結構
NS3內核定義了其核心功能[16],包括隨機變量(random variables)的生成、追蹤(tracing)、智能指針(smart pointers)、日志(logging)、事件調度(event scheduler)、屬性(attribute)、回調(callbacks)和時間記錄(time arithmetic)。
NS3中的基本網絡組件可分為以下四類。節點:各類通信設備的抽象化描述,可以通過添加移動模型設置初始位置與移動特征,能夠添加應用、協議、外部接口等;網卡及其驅動:能實現網絡連接的硬件設備和軟件驅動的抽象化描述,有各種不同類型的網卡:PointToPointNetDevice、WifiNetDevice等;信道:節點通過相應的信道和其它節點通信,包括CsmaChannel、WifiChannel等;應用程序:提供了管理用戶應用并設置數據收發格式的各種方法,包括UdpEchoClientApplication、UdpServerApplication等。
借助Helper類,輸入參數來節點個設置、網絡設備添加、協議棧安裝、應用程序設置、信道配置等操作,構成網絡通信的基本模型,如圖4所示。

圖4 NS3中網絡通信的基本模型
利用NS3平臺實現網絡仿真,有五個基本步驟。第一步是設計仿真場景、仿真參數,例如節點個數、開始時間和仿真時長等。第二步是創建網絡拓撲,借助Helper類在節點上添加網絡設備,安裝協議棧和應用、配置移動模型等。第三步是在調度器中添加事件,收集仿真相關參數。第四步是啟動調度器,在仿真時間內處理離散事件,完成待定任務。最后進行結果分析,可以通過Tracing收集網絡數據[17],例如數據傳輸速率、丟包率等,借助統計模塊等進行分析,也可使用Wireshark等工具進行網絡分析。
NS3具有良好的可擴展性,可以方便地自己開發需要的模塊或者構建自己的通信場景,比如本文仿真的衛星場景,就要首先設計一個衛星通信的場景,之后要將地面移動通信體制進行修改,使其適應于衛星通信系統。
衛星星座的星地鏈路間存在傳輸時延與自由空間損耗,其中影響星地時延的主要是地面用戶和衛星的距離,而星地損耗由信號頻率、傳播距離決定,最終的接收功率還與發射功率、多波束天線的增益、用戶接收增益有關[18]。
整個仿真系統,借助NS3的基礎模型,模擬整個衛星通信系統,星地鏈路模型以傳播時延模型PropagationDelayModel和自由空間傳輸損耗模型FreeSpaceLossModel為基礎,衛星模塊主要結構分model、helper、examples、doc子部分,這幾部分主要是衛星模型底層源碼、實現特定功能的Helper類、測試與仿真、文檔說明,模型實現星歷文件解析、軌跡獲取、波束設計等功能。Satellite-beam類完成波束數量、波束增益、波束增益最大指向位置等的設置,SatHelper提供創建衛星場景的接口,主程序傳入仿真時間與用戶數目等可變參數,過程需要解析星歷文件,初始化衛星相關參數,計算衛星運動軌跡、判斷是否閑置衛星等功能[19],場景設計的不同在于衛星數量與用戶規模,本文測試的場景是小范圍場景,且仿真時間短,只需要數量很少的地面用戶,同時衛星只需要加載在仿真時間內的可見衛星。建立衛星、波束節點、用戶節點后,安裝相應的移動模型與波束天線模型后,可通過NetDevice類來設置頻率、切換算法等參數,衛星場景將按既定規則運行。用戶初始位置與移動模型可以通過MobilityHelper這個幫助類進行設置,將地表某個區域隨機分布的用戶三維坐標依次添加到鏈式位置分配器(ListPositionAllocator)中,用戶運動模型可選擇固定位置、固定速度、固定加速度、隨機游走等模型[20]。
在NS3中構建網絡仿真環境,仿真參數:仿真時間t=10 s; 本文為了測試該流量控制機制的性能,設置仿真場景較簡單,星上交換設備輸入輸出端口數,Nin=1,Nout=1;地面設備發送帶寬W=300 Mbps;包長度Ldata=1 000 Byte;地面設備為去往星上交換機基本帶寬均為6%;源節點發送數據包的起始時間t0設為隨機數,t0服從均勻分布。
為了測試該流量控制機制的性能,設計了四個應用場景,在場景一中,設置星上緩存隊列長度L為200(packet); 星上緩存隊列閾值Qmax和Qmin分別為170、100。
場景二改變緩存隊列閾值: 最大閾值Qmax和最小閾值Qmin分別為150、50,該場景是為了測試當最大閾值和最小閾值都減小時,星上緩存隊列的變化。
場景三設置星上緩存隊列閾值Qmax和Qmin分別為170、130,該場景主要測試當最小閾值較大時,對星上緩存隊列的影響。
場景四測試緩存隊列長度變化對該控制機制的性能有何影響,因此星上緩存隊列長度 設置為150,星上緩存隊列閾值Qmax和Qmin分別為120、80。
地面設備向上行鏈路發送數據鏈路幀,觀察星上輸入端口的虛擬輸出隊列長度Lq變化,隨著時間增加,星上輸入端口中高次序虛擬輸出隊列Lq1長度增大。星上輸入端口中高次序隊列Lq1和低次序隊列Lq2實時隊列長度變化情況如圖5所示,從圖中可以看出,高次序隊列在持續接受地面設備發來的鏈路幀一段時間后,達到星上緩存隊列的設置長度200后,會逐漸出現丟包情況。

圖5 反饋前輸入端口0中Lq1、Lq2實時隊列長度
之后測試當流量控子模塊程序啟動后,星上實時隊列的長度。如圖6所示,可以觀察到場景1到場景3在反饋后輸入端口隊列Lq1實時長度。

圖6 三個場景星上輸入端口中Lq1實時隊列長度
首先分析場景一,當Lq1到達最大閾值Qmax后,根據流量控制機制的流程,星載交換設備將會廣播隊列狀態信息,地面設備接收星上的反饋信息,高次序分配的帶寬資源減少,Lq1的鏈路幀數量明顯降低;隨著鏈路幀的持續減少,當Lq1到達最小閾值Qmin后,與之前方式相同,地面設備接收到反饋信息,增加高次序隊列的帶寬資源分配,隨后Lq1的實時隊列長度開始增加。
對于場景二來說,與場景一對比起來,場景二減小了最小閾值的大小,相比于場景一,隊列長度增加、減少的時間間隔較小,并且最大的實時隊列長度也較小,說明減小最大閾值確實限制了實時隊列長度,但是場景二最小閾值偏小,在調整至最低點的前后一小段時間內,星上實時緩存隊列長度都保持較低的狀態,資源利用率較低。
場景三相較于場景一大幅提高了最小閾值的值,最大閾值和最小閾值相差較小,因此經反饋后星上Lq1隊列長度變化范圍較小,說明最小閾值的設置限制了緩存隊列中鏈路幀的不斷減小,隊列長度不斷在小范圍內波動變化,相較于大范圍內波動來說,總吞吐量要更加大,因此資源利用率也較高,但是星載交換機需要不斷的向地面設備廣播緩存隊列狀態信息。
反饋后場景一、二、三中星上輸入端口Lq2的實時隊列長度變化情況如圖7所示。

圖7 三個場景中星上輸入端口到Lq2實時隊列長度
為了具體衡量資源利用情況,對三個場景在流量控制機制使用前后的兩個隊列的吞吐量和總吞吐量進行計算比較,結果如表1所示。(吞吐量(bps) =包數*包長* 8 /仿真時間)

表1 反饋前后吞吐量對比 bps
在流量控制機制的作用下,反饋前高次序隊列Lq1的丟包數為440包,低次序隊列Lq2的丟包數為0;反饋后三個場景中兩個隊列的丟包率均為0,因此該機制對解決丟包的問題效果顯著。由于地面設備受到反饋信息的控制,因此高次序隊列Lq1實時隊列的長度總是處在最大閾值和最小閾值之間,幾乎不存在隊列長度數值穩定的情況,因此相較于反饋前,反饋后Lq1的總包數一定會減少,因此吞吐量也會減少,而由于Lq1的資源減少使得Lq2得到的資源分配增加,因此相較于反饋前,反饋后到低次序隊列Lq2的總包數有所增加;經計算后總吞吐量相較于反饋前也有所增加,這驗證了該流量控制機制對于提高星上資源的利用有效。對于高次序隊列Lq1來說,場景三設置的最大最小閾值間隔較小的情況下,高次序隊列Lq1的吞吐量相較于場景一來說更有優勢,但是低次序隊列Lq2的吞吐量和總吞吐量相較于場景一卻不再有優勢。
場景四在場景一的基礎上減小了星上緩存隊列長度為150,如圖8所示是場景四反饋前后,星上輸入端口中Lq1的實時隊列長度變化。

圖8 場景四反饋前后星上輸入端口Lq1實時隊列長度
從圖中可以看出,與場景三類似,場景四中減少最大最小閾值間隔,因此Lq1隊列長度不斷在小范圍內波動變化,作為對比,反饋前后,星上輸入端口中Lq2的實時隊列長度變化情況如圖9。

圖9 場景四反饋前后星上輸入Lq2實時隊列長度
與其他場景類似,在流量控制機制的影響下,高次序隊列Lq1的帶寬分配降低就會帶來低次序隊列Lq2的帶寬資源增加。
場景四中,反饋前后上行鏈路發送至兩個輸出端口的兩個隊列的包數及上行鏈路總吞吐量對比如表2所示。

表2 場景四反饋前后吞吐量對比 bps
場景四反饋前隊列丟包數為400(packet),隊列丟包數為0;反饋后隊列丟包數為15,隊列的丟包數為0。與場景一相比,場景四中反饋前后上行鏈路發往高次序隊列的吞吐量和反饋后上行鏈路總吞吐量都略有降低。值得關注的是,由于場景四中星上緩存空間有限,因此雖然反饋后,隊列的丟包問題得到改善,但是鏈路幀仍然有一定的溢出,這說明了星上緩存空間相比較于傳輸帶寬的極限仍較小時,就無法避免丟包的問題。
通過四個場景對流量控制機制進行仿真分析,首先本文提出的星地流量交換控制機制對解決星上交換的流量擁塞丟包問題有一定的優化效果,但是參數設置會在一定程度上影響流量控制機制的性能。其中,星上緩存隊列的最大最小閾值影響很大。當最大閾值設置很大,逼近甚至超越星上緩存隊列時,流量控制機制就在一定程度上失效,星上的緩存隊列仍然解決不了丟包的問題;假如像場景二中,最大閾值設置過小,則隊列長時間處于一個空閑的狀態,因此資源利用率較低;假如像場景三中,最大閾值和最小閾值之間差距較小,則緩存隊列的長度會快速波動,這樣會產生一定不必要的開銷,同時對于整個鏈路的吞吐量增大沒用幫助;另外像場景四中測試分析的,星上初始的緩存隊列長度選擇也十分重要,應當接近傳輸帶寬的極限,假如星上緩存隊列長度相較于傳輸帶寬的極限仍然較小時,即便最大閾值設置合理,那么實際的隊列長度仍然可能逼近甚至超過星上設置的緩存隊列長度,因此會造成鏈路幀的溢出,產生丟包的問題。
為了節約寶貴的衛星帶寬資源,提高衛星網絡流量轉發的效率,減少丟包。本文深入研究了確定性網絡的相關技術標準,并結合低軌衛星網絡和具體特點,提出一種適用于低軌衛星的星地流量交換機制,借助ATS異步流量整形算法,提出了一種星地之間交互、網端一體的流量控制機制,并利NS3仿真,測試了該機制的性能并作出了相關分析。測試結果表明,在應用了該流量控制機制后,星上轉發效率得到提高,星上緩存資源得到充分利用,緩解了隊列擁塞的問題,解決了大流量下丟包的問題。