朱浩文 金仲和 應樂 黃建青 段欣欣
(1 上海航天電子技術研究所,上海 201109)(2 浙江大學 航空航天學院,杭州 310013)(3 北京空間飛行器總體設計部,北京 100094)
在空間網絡式數據傳輸架構中,平臺數據和載荷數據均匯聚到高級在軌系統(AOS)鏈路網關處理器設備實現網絡數據統一下傳[1]。由于下行AOS鏈路帶寬有限且為固定速率,無法與網絡終端的波動速率進行匹配,若不進行有效控制,在網絡速率大于鏈路帶寬時會造成丟包,而網絡速率小于鏈路帶寬時會導致產生大量填充幀,降低傳輸效率。因此,需采用一種有效的流量控制策略,對網絡終端速率進行統一管理和控制[2]。過去20年間,在商用以太網領域出現了許多基于主動隊列管理的流量控制算法,如隨機早期檢測(RED)算法[3]、廣義隨機早期避免(GREEN)算法[4]、隨機指數標志(REM)[5]算法等,這些算法均是通過一定概率的丟包為代價來實現流量控制,不能適應空間高可靠應用需求。
本文提出了一種基于RED算法改進的流量控制算法,該算法基于網關內部緩存容量,通過握手協議實現終端載荷速率的動態控制,可以有效地防止數據丟包、提高AOS鏈路傳輸效率。討論了算法在空間網關設備實現的方式、步驟和軟件設計,采用Opnet網絡仿真軟件搭建空間網絡環境模型,對該流量控制策略進行了仿真分析,同時基于我國空間站網關設備在軌運行的測試數據,對流量控制算法的實際性能效果進行了分析。
空間天地一體化網路通信系統中,網絡終端均通過交換機實現數據接入。交換機連接天地AOS鏈路網關處理器,當需要與地面通信時,空間站上網絡終端數據依次通過交換機、AOS鏈路網關處理器處理后,經AOS鏈路傳輸至地面[6]。空間AOS鏈路網絡流量控制架構如圖1所示。

圖1 空間AOS鏈路網絡流量控制架構
空間站上網絡數據可分為平臺數據和載荷數據,其中平臺數據包括圖像、語音、生理、遙測等數據。平臺數據速率相對較低,對實時性要求高,一般不進行存儲,具有隨機接入、速率在一定范圍波動的特點;而載荷數據速率較高,對實時性要求不高,可進行大容量存儲,具有速率相對穩定的特點。因此,根據終端數據特性,在AOS鏈路流量控制設計中針對載荷數據終端進行流量控制。
為實現AOS鏈路與網絡鏈路的匹配傳輸,在AOS鏈路網關處理器內部開辟了高速緩存,通過對緩存隊列狀態的監控,基于一定的流量控制算法,完成對空間站上載荷網絡數據的實時流量控制[7]。
RED算法是地面以太網流量控制應用最廣泛的流量控制算法,其基于隊列管理方法進行流量控制,主要思想是:根據緩存大小設置包隊列長度的最大閾值和最小閾值,然后根據平均隊列長度與最小閾值的差值來確定相應的丟棄概率,并根據丟棄概率實施丟包,進而避免擁塞[8]。平均隊列長度基于瞬時隊列長度,通過指數加權平均滑動模型來計算得到,計算公式為
(1)

對于每一個新到達的數據包,根據隊列閾值對包進行丟棄,其丟棄概率為
(2)
式中:qmin為緩存區隊列最小閾值;qmax為緩存區隊列最大閾值,qmin必須小于qmax;pmax為緩存隊列長度在qmax與qmin之間時最大丟棄概率。
一方面,該算法通過一定概率的包丟棄為代價來保證緩存隊列處于合適長度,而在高可靠的空間應用場景中對鏈路丟包率有嚴格要求,甚至不允許丟包,這就決定了該算法無法直接應用于空間網絡;另一方面,空間AOS鏈路存在鏈路速率不對稱、輸出帶寬瓶頸等問題,與地面鏈路存在較大差別,隊列管理雖然可以通過丟包來引起網絡終端降低速率進而適應中間節點的輸出能力,但是這種調節速度相對較慢,對于AOS鏈路千兆級別的帶寬差值,整個網絡顯然無法做出迅速響應,因此也無法適用于空間網絡。
基于1.2節分析,為適應空間網絡的高穩定、高可靠應用要求,在不丟包的基礎上對RED流量控制算法進行改進,包括以下3個方面。
(1)相對于地面網絡,空間網絡不允許丟包,且網絡拓撲結構相對固定、終端數量少,容易實現閉環控制,因此將地面算法的丟包機制改進為網絡終端速率調整控制機制。
(2)地面算法僅針對網絡速率過高造成擁塞采取了流量控制措施,由于空間AOS鏈路帶寬有限,為充分利用寶貴的中繼帶寬,不僅要在擁塞時降低終端速率,還要在鏈路空閑時提升終端速率,因此相對地面算法增加網絡空閑時的流量控制措施。
(3)進行隊列管理時,地面RED算法僅設置了最小閾值和最大閾值,為了更加精準的進行流量控制,結合速率調整機制,設置了流量提升閾值、流量降低閾值和流量警戒閾值。
改進后的算法仍基于隊列管理方法,既保證了重要業務數據的服務質量,又提高了AOS鏈路效率,且不以丟包為代價,使得該算法能更好的適用于空間以太網。下面對算法的具體設計進行說明。
在AOS網關內開辟一片容量為Q的緩存,并給該緩存區設置最大閾值qmax、最小閾值qmin和流量警戒閾值qalert,3個閾值的關系為qmin 若網絡系統中共有N個可流量控制網絡終端,由于網絡中不同種類終端數據重要性、實時性要求不同,需要為N個終端設置不同的速率調整權系數,根據優先級分別設置速率增加權系數和速率減少權系數,依次為a1~aN和b1~bN。假設網關固定時間間隔查詢一次緩存狀態,并據此進行流量控制,則流量控制速率與緩存隊列狀態的關系計算公式為 (3) 式中:Vsn為本輪流量控制針對終端n設置速率;Vcn為針對終端n上一輪流量控制設置速率;k1為速率增加調整系數;k2為速率減小調整系數;ηIP為以太網IP數據段中應用層數據利用率。其中,k1、k2由網絡拓撲復雜程度、流量控制終端數量等因素決定,在拓撲結構簡單、要求流量控制指令快速響應的應用環境中可取較大值,在拓撲結構復雜、要求流量控制平穩執行的應用環境中應取較小值。 根據式(3),當qt 該算法以空間網關為流量控制核心,監控網關內部緩存隊列狀態,進行速率調整計算,將計算結果通過可靠握手方式發送給對應終端,最終實現終端速率動態調整。 流量控制的實施采用網關與流量控制終端間的握手方式,流量控制終端需按照預定義協議,根據網關發送的流量控制包進行速率調整,并實時反饋當前狀態,該方式保證了流量控制實施的可靠性。流量控制過程如圖2所示。 圖2 流量控制交互過程 流量控制策略實施步驟如下: (1)流量控制終端固定時間間隔向網關匯報當前速率,網關根據各終端匯報速率更新流量控制狀態表。 (2)網關固定時間間隔查詢內部緩存列隊長度,將緩存隊列長度與緩存閾值進行比較,根據流量控制狀態表,按照1.3節的流量控制算法對流量控制終端速率進行計算,并順序向各終端發送相應的流量控制包。 (3)流量控制終端收到流量控制包后,按照流量控制包中的控制信息調整自身的發送速率,并反饋流量控制狀態包;網關收到反饋的流量控制狀態包則更新流量控制狀態表,若在一定時間內未接收到反饋,則認為相應終端退出流量控制并更新流量控制狀態表。 (4)一輪流量控制完成,跳至步驟(1)進入下一輪流量控制。 流量控制算法實現時,AOS鏈路網關處理器需選取相關的算法控制時間參數,包括查詢緩存狀態時間間隔參數TS1,流量控制終端流量匯報時間間隔參數TS2,流量匯報閾值時間間隔參數TS3和流量控制反饋閾值時間間隔參數TS4等。 在AOS鏈路網關處理器內部,實時維護一張流量控制狀態表,對每個終端的流量控制參數S、最后一次流量控制匯報時間間隔TL1、當前速率V、相對接入時間TL2、流量控制包計數C1和流量控制反饋包計數C2等進行記錄。控制參數S用于表示相應終端是否處于自動流量控制模式,若不是,則網關不對其進行流量控制;TL1計數器用于記錄相應終端最后一次流量控制匯報與當前的時間間隔,若該時間超過閾值TS3,則認為其退出了自動流量控制模式;V用于記錄當前終端的數據速率;TL2計數器用于記錄終端進入網關自動流量控制列表的相對時間,當多個終端處于相同速率時,相對接入時間決定了網關的流量調整先后順序;C1和C2分別記錄當前網關發送的流量控制包計數和收到的流量控制反饋包計數。在啟動流量控制時,軟件根據當前緩存狀態和流量控制狀態表生成流量控制包發送給相應流量控制終端。同時,AOS鏈路網關處理器把流量控制狀態表的信息通過1553B總線遙測反饋給地面,地面可實時監測網關流量控制狀態。 流量控制實現軟件包含流量控制表維護模塊和流量控制包生成模塊兩部分,基于以上流量控制參數,AOS鏈路網關處理器流量控制軟件過程如圖3所示。 注:圖中虛線箭頭表示使能置高一次,會觸發流控包生成模塊的相應過程。 上電后網關默認進入自動流量控制模式,開始等待第一個流量匯報包。收到第一個流量匯報包后,流量控制表維護模塊啟動一個定時器T1,定時器的時間賦值為TS1,流量控制功能開始正常工作。每當定時器T1產生到時中斷時,將“查詢緩存”使能置高,驅動流量控制包生成模塊產生流量控制包,即間隔固定時間TS1查詢一次緩存并據此生成流量控制包。 流量控制表維護模塊根據接收到的流量匯報包實時更新流量控制狀態表,每收到一個流量控制匯報包,先判斷包格式和內容是否符合流量控制協議。如果不符合,則認為相應終端退出自動流量控制模式,更新流量控制表中對應終端的S參數;如果符合,則進入流量控制表維護過程。先將流量匯報包中的終端信息、速率信息寫入表中,同時進行判斷,若該終端之前處于自動流量控制模式,則其相對接入時間TL2不變,若該終端之前未接入自動流量控制模式,則將流量控制表中其相對接入時間TL2更新為最新時間,同時刷新流量匯報包的時間間隔計數器TL1。 流量控制包生成模塊判斷“查詢緩存”使能的狀態,每當使能為高時,開始查詢緩存狀態,并根據當前實時流量控制表狀態,按照流量控制算法生成流量控制包進行流量控制。流量控制包生成后通過網口發送出去,同時更新流量控制表中的流量控制包計數C1并啟動T2定時器,定時器時間賦值為TS4,開始等待流量控制響應包。等待過程中若T2產生到時中斷,則認為對應終端已退出自動流量控制模式,將其流量控制狀態表中的S參數更新為“退出流量控制”狀態;等待過程中若收到流量控制反饋包,先判斷包格式和內容是否正確,如果不正確,則也認為對應終端出現故障退出自動流量控制模式,否則認為該流量控制過程正常結束,并且更新流量控制表中對應終端的參數V和C2。 利用Opnet網絡仿真工具進行建模仿真[9-10],模擬7個網絡終端(4個平臺終端和3個載荷終端)產生網絡數據,通過千兆以太網連接到核心交換機上,交換機再通過千兆以太網接口連接到天地網關設備上。網關按照上述流量控制策略對網絡流量控制終端進行流量控制。仿真環境及參數設置見表1所示。 表1 流量控制仿真環境及參數 表1中網絡終端4、5、6為支持自動流量控制算法的終端,其速率設置表示初始速率值,自動流量控制開啟后,其接受網關的流量控制包并在此初始速率基礎上進行相應的速率調整。模擬3種典型工況,對流量控制算法進行仿真,分別在AOS鏈路網關處理器開啟流量控制和關閉流量控制兩種情況下,監測AOS鏈路丟包率和傳輸效率指標,對兩種情況的仿真結果進行比對。 工況1為網絡終端總速率小于中繼鏈路帶寬情況,該工況下開啟流量控制和關閉流量控制情況下鏈路丟包率和傳輸效率仿真結果如圖4所示。 圖4 工況1仿真結果 從仿真結果可知,該工況下開啟流量控制和關閉流量控制時鏈路丟包率均為0,但開啟流量控制情況下鏈路傳輸效率從關閉流量控制時的50%左右波動提升至穩定的99%以上。 工況2為網絡終端總速率大于中繼鏈路帶寬情況,該工況下開啟流量控制和關閉流量控制情況下鏈路丟包率和傳輸效率仿真結果如圖5所示。 圖5 工況2仿真結果 從仿真結果看出,該工況下開啟流量控制和關閉流量控制的傳輸效率均能達到99%以上,但關閉流量控制時鏈路有14%左右的丟包,而開啟流量控制情況下丟包率為0。 工況3為網絡終端總速率與中繼鏈路帶寬基本相等的情況,該工況下開啟流量控制和關閉流量控制情況下鏈路丟包率和傳輸效率仿真結果如圖6所示。 圖6 工況3仿真結果 從仿真結果可知,該工況下關閉流量控制情況的丟包率在0~8%之間波動,傳輸效率在93%~100%之間波動,而開啟流量控制情況的丟包率穩定為0,傳輸效率穩定為99%以上。 在我國空間站AOS網關中實現并應用了該算法,選取空間站在軌某時間段開啟流量控制前后的網關緩存遙測狀態數據和地面接收的AOS幀原始數據,基于該數據對流量控制前后的網關緩存占用量及AOS鏈路傳輸效率進行分析,結果如圖7所示。 圖7 在軌數據分析結果 該時間段第8 s(相對時間)開啟自動流量控制功能,從數據分析結果可知,流量控制前緩存中隊列幾乎為0,流量控制后緩存占用在10%~90%之間波動,始終處于合理控制范圍內;由于流量控制后緩存中一直保持有充足數據,網關持續傳輸有效數據,在空間多終端、不同包長和包間隔的復雜混合流量環境下,流量控制后傳輸效率始終能保持99%以上。 從仿真結果可知,在3種不同的典型工況下,流量控制算法均可以有效降低丟包率、提高AOS鏈路傳輸效率,在流量控制穩定運行后,丟包率降為0、傳輸效率達99%以上。 通過分析在軌數據,自動流量控制開啟后,可以有效控制網關緩存隊列始終處于合理范圍內,未發生丟包;同時,流量控制時間段內AOS鏈路傳輸效率提升并能夠穩定保持在99%以上,與仿真結果吻合,驗證了流量控制算法的有效性、可靠性和穩定性。 對于流量控制算法穩定運行前可能出現的丟包,由于AOS鏈路處理器設計了優先級調度機制,平臺數據傳輸優先級最高,因此極端情況下只會導致低優先級載荷數據的短暫丟包,不會影響平臺關鍵數據的傳輸。 本文對提出的流量控制算法進行了設計、仿真和實現,并成功應用于空間站AOS鏈路網關處理器中,在軌實施取得了良好的效果。目前我國空間站三艙可單獨進行流量控制,也可在組合體狀態下進行集中流量控制。隨著衛星組網、星間路由等技術的發展,未來航天器網絡化、一體化是必然趨勢。該流量控制算法能夠很好地滿足空間以太網數據傳輸業務需求,解決了AOS鏈路固定帶寬與網絡波動速率的匹配問題,在后續基于網絡架構的空間應用中具有廣泛的應用前景。本文目前僅針對IPv4盡力交付類型網絡進行了設計,后續將針對該算法與IPv6網絡、時間確定性網絡等技術的結合開展進一步研究。2 流量控制算法實現
2.1 流量控制實施步驟

2.2 流量控制軟件實現

3 流量控制仿真及在軌測試
3.1 仿真分析




3.2 在軌測試情況

3.3 結果分析
4 結束語