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