(武漢船舶通信研究所 武漢 430205)
艦艇編隊網(wǎng)絡(luò)通過集成HF子網(wǎng)、VHF子網(wǎng)、衛(wèi)星子網(wǎng)等各類通信手段,運行無線異構(gòu)網(wǎng)絡(luò)互連協(xié) 議(WirelessHeterogenousRoutingProtocol,WHRP)等路由協(xié)議,建立的適應(yīng)艦艇編隊?wèi)?zhàn)術(shù)無線通信環(huán)境的無線IP網(wǎng)絡(luò)[1]。例如,美海軍通過發(fā)展自動化數(shù)字網(wǎng)絡(luò)系統(tǒng)(Automatic Digital Network System,ADNS),將編隊所有艦艇的話音、視頻和數(shù)據(jù)信息匯集到一個雙堆棧IPv4/IPv6、密文、IP核心網(wǎng)體系結(jié)構(gòu)中,實現(xiàn)多種無線通信手段的綜合管理和協(xié)調(diào)使用[2]。
艦艇編隊網(wǎng)絡(luò)的無線通信帶寬有限、通信鏈路速率各異、網(wǎng)絡(luò)結(jié)構(gòu)變化劇烈、戰(zhàn)場通信環(huán)境惡劣等原因,導(dǎo)致網(wǎng)絡(luò)擁塞現(xiàn)象時有發(fā)生[3]。按照嚴(yán)重程度,艦艇編隊網(wǎng)絡(luò)的網(wǎng)絡(luò)擁塞狀態(tài)分為無擁塞、輕微擁塞、中度擁塞和重度擁塞,網(wǎng)絡(luò)擁塞帶來的影響是輕則網(wǎng)絡(luò)服務(wù)能力降級,重則網(wǎng)絡(luò)崩潰。因此,應(yīng)對艦艇編隊網(wǎng)絡(luò)進(jìn)行擁塞控制,使網(wǎng)絡(luò)始終處于無擁塞或輕度擁塞的狀態(tài),盡可能利用有限的網(wǎng)絡(luò)資源提供較高的網(wǎng)絡(luò)吞吐量,同時保障高優(yōu)先級業(yè)務(wù)的網(wǎng)絡(luò)傳輸。
艦艇編隊網(wǎng)絡(luò)擁塞控制的核心設(shè)備是無線路由器。如圖1所示,自動化數(shù)字網(wǎng)絡(luò)系統(tǒng)(Automated Digital Network System,ADNS)是美國海軍艦艇編隊網(wǎng)絡(luò)的核心組網(wǎng)設(shè)備,集成先進(jìn)極高頻衛(wèi)星、移動用戶目標(biāo)系統(tǒng)、寬帶填隙星、轉(zhuǎn)型星系統(tǒng)、聯(lián)合戰(zhàn)術(shù)無線電系統(tǒng)、國際海事衛(wèi)星、國防衛(wèi)星通信系統(tǒng)等各種無線通信手段,實現(xiàn)編隊內(nèi)和編隊間以及和岸基的網(wǎng)絡(luò)互聯(lián),面向各應(yīng)用提供統(tǒng)一的外發(fā)數(shù)據(jù)包路由服務(wù),網(wǎng)絡(luò)擁塞控制是ADNS的核心能力[5]。
艦艇編隊無線IP網(wǎng)絡(luò)的擁塞控制,主要研究重點包括:一是網(wǎng)絡(luò)擁塞預(yù)測機制,能夠感知網(wǎng)絡(luò)的擁塞狀態(tài)以及預(yù)測發(fā)展趨勢,以便采取干預(yù)措施保障網(wǎng)絡(luò)的正常運行;二是網(wǎng)絡(luò)擁塞避免機制,避免網(wǎng)絡(luò)進(jìn)入嚴(yán)重?fù)砣麪顟B(tài)甚至網(wǎng)絡(luò)崩潰,保持網(wǎng)絡(luò)的低時延、高吞吐量運行。
艦艇編隊無線IP網(wǎng)絡(luò)的網(wǎng)絡(luò)擁塞預(yù)測,可采取的技術(shù)途徑包括計算信道負(fù)載(Channel Loading,CL)和計算緩沖區(qū)占用率(Buffer Occupancy,BO)兩大類。計算信道負(fù)載是采用網(wǎng)絡(luò)探針等機制連續(xù)探測或查看信道狀況,從而獲取信道利用率的估計值,當(dāng)估計值高于某門限后,預(yù)測網(wǎng)絡(luò)擁塞可能發(fā)生[6~8]。如圖1所示的美國海軍艦載網(wǎng)絡(luò),集成了多達(dá)6種以上的異構(gòu)網(wǎng)絡(luò)通信手段,如果采用計算信道負(fù)載方法來進(jìn)行網(wǎng)絡(luò)擁塞預(yù)測,會大量消耗無線信道資源,因此該技術(shù)途徑不可取。計算緩沖區(qū)占用率是當(dāng)緩沖區(qū)占用率高于某門限后,可預(yù)測網(wǎng)絡(luò)擁塞可能發(fā)生,進(jìn)而采取主動干預(yù)措施,具有在無線路由器中實施的可行性。
圖1 美國海軍艦載網(wǎng)絡(luò)系統(tǒng)體系結(jié)構(gòu)
艦艇編隊無線IP網(wǎng)絡(luò)的網(wǎng)絡(luò)擁塞控制,主要的技術(shù)途徑包括“主動式隊列管理”(Active Queue Management,AQM)和顯式擁塞通知(Explicit Cogestion Notification,ECN)[9],主動式隊列管理用在組網(wǎng)設(shè)備中實施丟包的方式進(jìn)行網(wǎng)絡(luò)擁塞控制,信源和信宿兩端感知到丟包以后降低網(wǎng)絡(luò)報文發(fā)送速率,避免網(wǎng)絡(luò)擁塞的加??;顯式擁塞通知則在組網(wǎng)設(shè)備之間或面向信源與信宿發(fā)送擁塞通知報文,通知沒有流量感知能力的信源和信宿業(yè)務(wù)降低網(wǎng)絡(luò)報文發(fā)送速率。
主動式隊列管理的主要作用,一是保持較小的緩存平均排隊長度,提供更大的緩存容量容納突發(fā)數(shù)據(jù)包,適應(yīng)信源和新宿端到端TCP流量調(diào)節(jié)機制,在統(tǒng)計層面減少總丟包數(shù)量;二是能夠減少網(wǎng)絡(luò)報文在組網(wǎng)設(shè)備中的排隊延遲,提供了更低的延遲,可更好地適應(yīng)IP話音、即時消息、視頻會議等交互式通信服務(wù);三是避免網(wǎng)絡(luò)“死鎖”現(xiàn)象,確保新入網(wǎng)的網(wǎng)絡(luò)報文有可用的緩存空間,防止死鎖行為的發(fā)生。顯式擁塞通知是IETF建議使用的一種擁塞通知方式,主要作用是面向沒有丟包感知能力的通信信源和信宿節(jié)點,提供一種主動的通知方式,以便及時采取擁塞避免的方案。
隨機提前檢測算法(Random Early Detection,RED)是為網(wǎng)絡(luò)擁塞控制而設(shè)計的一種主動隊列管理算法[10]。依托路由器或網(wǎng)關(guān)等組網(wǎng)設(shè)備,RED算法在預(yù)測到網(wǎng)絡(luò)擁塞發(fā)生時,緩沖區(qū)未滿就開始按概率丟棄網(wǎng)絡(luò)報文,信源和信宿兩端的TCP協(xié)議棧檢測到報文丟失以后,采用滑動窗口機制降低發(fā)送速率,改善網(wǎng)絡(luò)擁塞程度;同時,采用重傳機制重新傳輸丟棄報文,以此保障端到端可靠通信。相比棄尾(Drop Tail)算法,采用RED算法進(jìn)行主動隊列管理可以有效解決緩沖區(qū)高位運行、突發(fā)業(yè)務(wù)容量不足、TCP連接全局同步等問題[11],能提供更小的網(wǎng)絡(luò)時延和更高的網(wǎng)絡(luò)吞吐量。正是基于這些優(yōu)點,RFC2309推薦RED作為因特網(wǎng)主動隊列管理算法[12]。
結(jié)合艦艇編隊無線IP網(wǎng)絡(luò)的擁塞控制策略,結(jié)合應(yīng)用環(huán)境和業(yè)務(wù)特性,基于RED算法進(jìn)行擴展,建立組網(wǎng)設(shè)備緩沖區(qū)利用率和網(wǎng)絡(luò)流量速率的對應(yīng)關(guān)系,通過主動隊列管理實現(xiàn)網(wǎng)絡(luò)擁塞控制,在組網(wǎng)設(shè)備的緩沖區(qū)預(yù)留空間,支持高優(yōu)先級業(yè)務(wù)和突發(fā)業(yè)務(wù)。論文設(shè)計了基于優(yōu)先級的隨機提前檢測算法(Priority based Random Early Detection,PRED),作為傳統(tǒng)RED算法的改進(jìn)與增強。RRED主要的改進(jìn)方面包括:一是改進(jìn)RED算法的無差別報文丟棄處理方式,增加IP報文頭解析和優(yōu)先級標(biāo)記功能,可以依據(jù)報文優(yōu)先級進(jìn)行選擇性的報文丟棄,滿足艦艇編隊無線IP網(wǎng)絡(luò)的區(qū)分服務(wù)質(zhì)量QoS;二是改進(jìn)RED算法對通信連接兩端TCP協(xié)議棧的依賴,通過顯式擁塞指示的方式主動進(jìn)行網(wǎng)絡(luò)流量控制,以更小的開銷和更低的時延達(dá)到控制網(wǎng)絡(luò)擁塞的目的;三是設(shè)計可伸縮的隊列管理機制,能更好地提高網(wǎng)絡(luò)的彈性,滿足實時業(yè)務(wù)和突發(fā)業(yè)務(wù)的網(wǎng)絡(luò)承載需求。
PRED算法在組網(wǎng)設(shè)備中的執(zhí)行流程如圖2所示。組網(wǎng)設(shè)備接收到無線IP網(wǎng)絡(luò)數(shù)據(jù)包后,開始計算緩沖區(qū)平均排隊長度和解析并標(biāo)記數(shù)據(jù)包優(yōu)先級,利用平均排隊長度與組網(wǎng)設(shè)備中的最低門限和最高門限的比較關(guān)系,預(yù)測無線IP網(wǎng)絡(luò)的網(wǎng)絡(luò)擁塞程度,并根據(jù)擁塞程度進(jìn)行主動隊列管理和顯式擁塞通知等網(wǎng)絡(luò)擁塞避免機制。
圖2中,分別采用Tmin和Tmax表示組網(wǎng)設(shè)備中緩沖區(qū)隊列的最低門限和最高門限,Qav表示根據(jù)新接收數(shù)據(jù)包而更新的平均排隊長度,Qav和Tmin和Tmax的比較關(guān)系反映了無線IP網(wǎng)絡(luò)擁塞程度:
圖2 隨機提前檢測改進(jìn)算法PRED流程圖
1)Qav<Tmin,網(wǎng)絡(luò)處于無擁塞狀態(tài),組網(wǎng)設(shè)備無須丟棄數(shù)據(jù)包,仍可繼續(xù)接收數(shù)據(jù)包;
2)Tmin<Qav<Tmax,網(wǎng)絡(luò)處于輕度擁塞狀態(tài),組網(wǎng)設(shè)備依據(jù)數(shù)據(jù)包優(yōu)先級由低到高的順序、按照丟棄概率D丟棄低優(yōu)先級的數(shù)據(jù)包;
3)Qav>Tmax,網(wǎng)絡(luò)處于重度擁塞狀態(tài),組網(wǎng)設(shè)備依據(jù)數(shù)據(jù)包優(yōu)先級由低到高的順序丟棄數(shù)據(jù)包。
3.2.1 平均排隊長度計算
PRED算法中的平均排隊長度Qav是反映網(wǎng)絡(luò)擁塞程度的重要指標(biāo),隨著組網(wǎng)設(shè)備收發(fā)數(shù)據(jù)包的過程動態(tài)更新,組網(wǎng)設(shè)備每接收一個無線IP網(wǎng)絡(luò)數(shù)據(jù)包就進(jìn)行實時計算更新,為避免計算結(jié)果出現(xiàn)瞬時效應(yīng)引起誤判,采用低通濾波的方式對Qav進(jìn)行平滑:
其中,Q為緩沖區(qū)排隊長度,分別是該數(shù)據(jù)包接收和上一個數(shù)據(jù)包接收時刻,組網(wǎng)設(shè)備緩沖區(qū)的平均排隊長度,w(0≤w≤1)為排隊權(quán)重,反映緩沖區(qū)排隊長度對計算結(jié)果的影響程度。
3.2.2 數(shù)據(jù)包丟棄概率計算
PRED算法根據(jù)平均排隊長度Qav與最低門限Tmin和最高門限Tmax的比較關(guān)系,判斷并預(yù)測無線IP網(wǎng)絡(luò)的擁塞程度,當(dāng)滿足Tmin<Qav<Tmax條件時,組網(wǎng)設(shè)備在緩沖區(qū)隊列中以概率P丟棄低優(yōu)先級數(shù)據(jù)包,計算公式為
其中,Pmax(0≤Pmax≤1)是最大丟棄概率的配置值。
PRED算法的網(wǎng)絡(luò)擁塞控制是采用主動隊列管理和顯式擁塞通知相結(jié)合的機制,當(dāng)平均排隊長度Qav>Tmin大于最低門限后,即觸發(fā)主動隊列管理機制,采用區(qū)分優(yōu)先級的方式丟棄數(shù)據(jù)包。同時,鑒于信源和信宿端系統(tǒng)不一定具備TCP協(xié)議棧的丟包感知能力,PRED算法采用顯式擁塞通知的機制,向信源和信宿以及組網(wǎng)設(shè)備發(fā)送擁塞通知數(shù)據(jù)包,降低進(jìn)入網(wǎng)絡(luò)的流量。
在以下兩種情況下,路由器丟棄報文之后,要啟動主動擁塞控制機制:
1)Tmin<Qav<Tmax
平均排隊長度Qav處于最低門限Tmin和最高門限Tmax之間時,組網(wǎng)設(shè)備除按照概率丟棄低優(yōu)先級數(shù)據(jù)包之外,啟動顯式擁塞通知機制,向各端口廣播“源抑制”顯式擁塞通知數(shù)據(jù)包,收到該數(shù)據(jù)包的其它組網(wǎng)設(shè)備向其它端口廣播該數(shù)據(jù)包,同步全網(wǎng)網(wǎng)絡(luò)擁塞狀態(tài)并通知組網(wǎng)設(shè)備和信源信宿的降低發(fā)送速率。
2)Qav>Tmax
平均排隊長度Qav大于最高門限Tmax,組網(wǎng)設(shè)備啟動顯式擁塞通知機制,向各端口廣播“目的地不可達(dá)”數(shù)據(jù)包,收到該數(shù)據(jù)包的其它組網(wǎng)設(shè)備向其它端口廣播該數(shù)據(jù)包,同步全網(wǎng)網(wǎng)絡(luò)擁塞狀態(tài)并通知組網(wǎng)設(shè)備和信源信宿的停止發(fā)送數(shù)據(jù)包。
艦艇編隊無線IP網(wǎng)絡(luò)的組網(wǎng)設(shè)備中通過植入PRED算法模塊實現(xiàn)網(wǎng)絡(luò)擁塞控制功能。如圖3所示,組網(wǎng)設(shè)備包括輸入緩沖區(qū)、輸出緩沖區(qū)、交換矩陣、路由查找引擎、網(wǎng)管代理、PRED算法模塊等功能部件,通過對輸入緩沖區(qū)和輸出緩沖區(qū)進(jìn)行主動隊列管理實現(xiàn)網(wǎng)絡(luò)擁塞控制的功能。根據(jù)輸入端口的不同,輸入緩沖區(qū)開設(shè)多個隊列緩存各端口輸入的數(shù)據(jù)包,路由引擎根據(jù)數(shù)據(jù)包頭的路由目的地信息,查找路由表找出下一跳,數(shù)據(jù)包經(jīng)過交換矩陣進(jìn)入輸出緩沖區(qū)。
如圖3所示,PRED算法模塊由數(shù)據(jù)包解析與標(biāo)記、平均隊列長度計算、緩沖區(qū)管理、網(wǎng)絡(luò)擁塞處理等模塊組成,各模塊的作用是:
圖3 組網(wǎng)設(shè)備中的PRED算法功能框圖
1)數(shù)據(jù)包解析與標(biāo)記模塊,解析輸入緩沖區(qū)中的數(shù)據(jù)包,根據(jù)報文的優(yōu)先級進(jìn)行標(biāo)記;
2)平均排隊長度計算模塊,根據(jù)式(1)計算并更新組網(wǎng)設(shè)備的平均排隊長度;
3)網(wǎng)絡(luò)擁塞處理模塊,根據(jù)平均排隊長度與緩沖區(qū)隊列的最低門限和最高門限的比較結(jié)果,判斷網(wǎng)絡(luò)擁塞的狀態(tài),并根據(jù)判斷結(jié)果進(jìn)行主動隊列管理和擁塞通知;
4)緩沖區(qū)管理模塊,根據(jù)網(wǎng)絡(luò)擁塞處理模塊的指示,進(jìn)行輸出緩沖區(qū)的管理和優(yōu)先級調(diào)度。
5)網(wǎng)管代理模塊,完成PRED算法參數(shù)的遠(yuǎn)程配置、PRED算法運行狀態(tài)的遠(yuǎn)程監(jiān)控。
艦艇編隊無線IP網(wǎng)絡(luò)的組網(wǎng)設(shè)備,對網(wǎng)絡(luò)數(shù)據(jù)包的處理流程如下:
1)組網(wǎng)設(shè)備從各端口收到的數(shù)據(jù)包,按照端口緩沖到輸入緩沖區(qū);
2)PRED算法模塊掃描輸入緩沖區(qū)的數(shù)據(jù)包,解析數(shù)據(jù)包并且重新打標(biāo)數(shù)據(jù)包的傳輸優(yōu)先級;
3)路由查找引擎對打標(biāo)后的數(shù)據(jù)包進(jìn)行路由表查找,交換矩陣根據(jù)路由查找結(jié)果將數(shù)據(jù)包轉(zhuǎn)發(fā)至各端口輸出緩沖區(qū),輸出緩沖區(qū)按照端口和優(yōu)先級標(biāo)記進(jìn)行排隊;
4)PRED算法模塊計算平均排隊長度,判斷網(wǎng)絡(luò)擁塞狀態(tài);
5)根據(jù)網(wǎng)絡(luò)擁塞狀態(tài),PRED算法模塊計算丟包概率,根據(jù)計算結(jié)果按照優(yōu)先級丟棄各端口排隊數(shù)據(jù)包;
6)根據(jù)講網(wǎng)絡(luò)擁塞狀態(tài),PRED算法模塊發(fā)出“源抑制”或“目的地不可達(dá)”數(shù)據(jù)包;
7)各組網(wǎng)設(shè)備接收網(wǎng)絡(luò)擁塞通知數(shù)據(jù)包,調(diào)整發(fā)送速率。
組網(wǎng)設(shè)備實現(xiàn)PRED算法的偽代碼如下:
論文提出的艦艇編隊無線IP網(wǎng)絡(luò)的擁塞控制機制,對于提高艦艇編隊網(wǎng)絡(luò)的穩(wěn)定性、利用率具有重要的意義,可以為編隊內(nèi)各類應(yīng)用業(yè)務(wù)提供更好的服務(wù)質(zhì)量,尤其是適應(yīng)一些實時性、突發(fā)性的高優(yōu)先級業(yè)務(wù)。論文以美國海軍ADNS網(wǎng)絡(luò)為例,分析了艦艇編隊無線IP網(wǎng)絡(luò)的組網(wǎng)和運行機制,比較了源于因特網(wǎng)的網(wǎng)絡(luò)擁塞檢測和網(wǎng)絡(luò)擁塞避免相關(guān)處理機制,提出適用于艦艇編隊無線IP網(wǎng)絡(luò)的基于優(yōu)先級的隨機提前檢測算法,詳細(xì)描述了算法設(shè)計原理和算法執(zhí)行流程。對于算法的可實施性方面,則提出了在無線路由器中的實現(xiàn)方案,包括功能模型、處理流程以及軟件編程方案。