(武漢船舶通信研究所 武漢 430205)
艦艇編隊網絡通過集成HF子網、VHF子網、衛星子網等各類通信手段,運行無線異構網絡互連協 議(WirelessHeterogenousRoutingProtocol,WHRP)等路由協議,建立的適應艦艇編隊戰術無線通信環境的無線IP網絡[1]。例如,美海軍通過發展自動化數字網絡系統(Automatic Digital Network System,ADNS),將編隊所有艦艇的話音、視頻和數據信息匯集到一個雙堆棧IPv4/IPv6、密文、IP核心網體系結構中,實現多種無線通信手段的綜合管理和協調使用[2]。
艦艇編隊網絡的無線通信帶寬有限、通信鏈路速率各異、網絡結構變化劇烈、戰場通信環境惡劣等原因,導致網絡擁塞現象時有發生[3]。按照嚴重程度,艦艇編隊網絡的網絡擁塞狀態分為無擁塞、輕微擁塞、中度擁塞和重度擁塞,網絡擁塞帶來的影響是輕則網絡服務能力降級,重則網絡崩潰。因此,應對艦艇編隊網絡進行擁塞控制,使網絡始終處于無擁塞或輕度擁塞的狀態,盡可能利用有限的網絡資源提供較高的網絡吞吐量,同時保障高優先級業務的網絡傳輸。
艦艇編隊網絡擁塞控制的核心設備是無線路由器。如圖1所示,自動化數字網絡系統(Automated Digital Network System,ADNS)是美國海軍艦艇編隊網絡的核心組網設備,集成先進極高頻衛星、移動用戶目標系統、寬帶填隙星、轉型星系統、聯合戰術無線電系統、國際海事衛星、國防衛星通信系統等各種無線通信手段,實現編隊內和編隊間以及和岸基的網絡互聯,面向各應用提供統一的外發數據包路由服務,網絡擁塞控制是ADNS的核心能力[5]。
艦艇編隊無線IP網絡的擁塞控制,主要研究重點包括:一是網絡擁塞預測機制,能夠感知網絡的擁塞狀態以及預測發展趨勢,以便采取干預措施保障網絡的正常運行;二是網絡擁塞避免機制,避免網絡進入嚴重擁塞狀態甚至網絡崩潰,保持網絡的低時延、高吞吐量運行。
艦艇編隊無線IP網絡的網絡擁塞預測,可采取的技術途徑包括計算信道負載(Channel Loading,CL)和計算緩沖區占用率(Buffer Occupancy,BO)兩大類。計算信道負載是采用網絡探針等機制連續探測或查看信道狀況,從而獲取信道利用率的估計值,當估計值高于某門限后,預測網絡擁塞可能發生[6~8]。如圖1所示的美國海軍艦載網絡,集成了多達6種以上的異構網絡通信手段,如果采用計算信道負載方法來進行網絡擁塞預測,會大量消耗無線信道資源,因此該技術途徑不可取。計算緩沖區占用率是當緩沖區占用率高于某門限后,可預測網絡擁塞可能發生,進而采取主動干預措施,具有在無線路由器中實施的可行性。

圖1 美國海軍艦載網絡系統體系結構
艦艇編隊無線IP網絡的網絡擁塞控制,主要的技術途徑包括“主動式隊列管理”(Active Queue Management,AQM)和顯式擁塞通知(Explicit Cogestion Notification,ECN)[9],主動式隊列管理用在組網設備中實施丟包的方式進行網絡擁塞控制,信源和信宿兩端感知到丟包以后降低網絡報文發送速率,避免網絡擁塞的加劇;顯式擁塞通知則在組網設備之間或面向信源與信宿發送擁塞通知報文,通知沒有流量感知能力的信源和信宿業務降低網絡報文發送速率。
主動式隊列管理的主要作用,一是保持較小的緩存平均排隊長度,提供更大的緩存容量容納突發數據包,適應信源和新宿端到端TCP流量調節機制,在統計層面減少總丟包數量;二是能夠減少網絡報文在組網設備中的排隊延遲,提供了更低的延遲,可更好地適應IP話音、即時消息、視頻會議等交互式通信服務;三是避免網絡“死鎖”現象,確保新入網的網絡報文有可用的緩存空間,防止死鎖行為的發生。顯式擁塞通知是IETF建議使用的一種擁塞通知方式,主要作用是面向沒有丟包感知能力的通信信源和信宿節點,提供一種主動的通知方式,以便及時采取擁塞避免的方案。
隨機提前檢測算法(Random Early Detection,RED)是為網絡擁塞控制而設計的一種主動隊列管理算法[10]。依托路由器或網關等組網設備,RED算法在預測到網絡擁塞發生時,緩沖區未滿就開始按概率丟棄網絡報文,信源和信宿兩端的TCP協議棧檢測到報文丟失以后,采用滑動窗口機制降低發送速率,改善網絡擁塞程度;同時,采用重傳機制重新傳輸丟棄報文,以此保障端到端可靠通信。相比棄尾(Drop Tail)算法,采用RED算法進行主動隊列管理可以有效解決緩沖區高位運行、突發業務容量不足、TCP連接全局同步等問題[11],能提供更小的網絡時延和更高的網絡吞吐量。正是基于這些優點,RFC2309推薦RED作為因特網主動隊列管理算法[12]。
結合艦艇編隊無線IP網絡的擁塞控制策略,結合應用環境和業務特性,基于RED算法進行擴展,建立組網設備緩沖區利用率和網絡流量速率的對應關系,通過主動隊列管理實現網絡擁塞控制,在組網設備的緩沖區預留空間,支持高優先級業務和突發業務。論文設計了基于優先級的隨機提前檢測算法(Priority based Random Early Detection,PRED),作為傳統RED算法的改進與增強。RRED主要的改進方面包括:一是改進RED算法的無差別報文丟棄處理方式,增加IP報文頭解析和優先級標記功能,可以依據報文優先級進行選擇性的報文丟棄,滿足艦艇編隊無線IP網絡的區分服務質量QoS;二是改進RED算法對通信連接兩端TCP協議棧的依賴,通過顯式擁塞指示的方式主動進行網絡流量控制,以更小的開銷和更低的時延達到控制網絡擁塞的目的;三是設計可伸縮的隊列管理機制,能更好地提高網絡的彈性,滿足實時業務和突發業務的網絡承載需求。
PRED算法在組網設備中的執行流程如圖2所示。組網設備接收到無線IP網絡數據包后,開始計算緩沖區平均排隊長度和解析并標記數據包優先級,利用平均排隊長度與組網設備中的最低門限和最高門限的比較關系,預測無線IP網絡的網絡擁塞程度,并根據擁塞程度進行主動隊列管理和顯式擁塞通知等網絡擁塞避免機制。
圖2中,分別采用Tmin和Tmax表示組網設備中緩沖區隊列的最低門限和最高門限,Qav表示根據新接收數據包而更新的平均排隊長度,Qav和Tmin和Tmax的比較關系反映了無線IP網絡擁塞程度:

圖2 隨機提前檢測改進算法PRED流程圖
1)Qav<Tmin,網絡處于無擁塞狀態,組網設備無須丟棄數據包,仍可繼續接收數據包;
2)Tmin<Qav<Tmax,網絡處于輕度擁塞狀態,組網設備依據數據包優先級由低到高的順序、按照丟棄概率D丟棄低優先級的數據包;
3)Qav>Tmax,網絡處于重度擁塞狀態,組網設備依據數據包優先級由低到高的順序丟棄數據包。
3.2.1 平均排隊長度計算
PRED算法中的平均排隊長度Qav是反映網絡擁塞程度的重要指標,隨著組網設備收發數據包的過程動態更新,組網設備每接收一個無線IP網絡數據包就進行實時計算更新,為避免計算結果出現瞬時效應引起誤判,采用低通濾波的方式對Qav進行平滑:

其中,Q為緩沖區排隊長度,分別是該數據包接收和上一個數據包接收時刻,組網設備緩沖區的平均排隊長度,w(0≤w≤1)為排隊權重,反映緩沖區排隊長度對計算結果的影響程度。
3.2.2 數據包丟棄概率計算
PRED算法根據平均排隊長度Qav與最低門限Tmin和最高門限Tmax的比較關系,判斷并預測無線IP網絡的擁塞程度,當滿足Tmin<Qav<Tmax條件時,組網設備在緩沖區隊列中以概率P丟棄低優先級數據包,計算公式為

其中,Pmax(0≤Pmax≤1)是最大丟棄概率的配置值。
PRED算法的網絡擁塞控制是采用主動隊列管理和顯式擁塞通知相結合的機制,當平均排隊長度Qav>Tmin大于最低門限后,即觸發主動隊列管理機制,采用區分優先級的方式丟棄數據包。同時,鑒于信源和信宿端系統不一定具備TCP協議棧的丟包感知能力,PRED算法采用顯式擁塞通知的機制,向信源和信宿以及組網設備發送擁塞通知數據包,降低進入網絡的流量。
在以下兩種情況下,路由器丟棄報文之后,要啟動主動擁塞控制機制:
1)Tmin<Qav<Tmax
平均排隊長度Qav處于最低門限Tmin和最高門限Tmax之間時,組網設備除按照概率丟棄低優先級數據包之外,啟動顯式擁塞通知機制,向各端口廣播“源抑制”顯式擁塞通知數據包,收到該數據包的其它組網設備向其它端口廣播該數據包,同步全網網絡擁塞狀態并通知組網設備和信源信宿的降低發送速率。
2)Qav>Tmax
平均排隊長度Qav大于最高門限Tmax,組網設備啟動顯式擁塞通知機制,向各端口廣播“目的地不可達”數據包,收到該數據包的其它組網設備向其它端口廣播該數據包,同步全網網絡擁塞狀態并通知組網設備和信源信宿的停止發送數據包。
艦艇編隊無線IP網絡的組網設備中通過植入PRED算法模塊實現網絡擁塞控制功能。如圖3所示,組網設備包括輸入緩沖區、輸出緩沖區、交換矩陣、路由查找引擎、網管代理、PRED算法模塊等功能部件,通過對輸入緩沖區和輸出緩沖區進行主動隊列管理實現網絡擁塞控制的功能。根據輸入端口的不同,輸入緩沖區開設多個隊列緩存各端口輸入的數據包,路由引擎根據數據包頭的路由目的地信息,查找路由表找出下一跳,數據包經過交換矩陣進入輸出緩沖區。
如圖3所示,PRED算法模塊由數據包解析與標記、平均隊列長度計算、緩沖區管理、網絡擁塞處理等模塊組成,各模塊的作用是:

圖3 組網設備中的PRED算法功能框圖
1)數據包解析與標記模塊,解析輸入緩沖區中的數據包,根據報文的優先級進行標記;
2)平均排隊長度計算模塊,根據式(1)計算并更新組網設備的平均排隊長度;
3)網絡擁塞處理模塊,根據平均排隊長度與緩沖區隊列的最低門限和最高門限的比較結果,判斷網絡擁塞的狀態,并根據判斷結果進行主動隊列管理和擁塞通知;
4)緩沖區管理模塊,根據網絡擁塞處理模塊的指示,進行輸出緩沖區的管理和優先級調度。
5)網管代理模塊,完成PRED算法參數的遠程配置、PRED算法運行狀態的遠程監控。
艦艇編隊無線IP網絡的組網設備,對網絡數據包的處理流程如下:
1)組網設備從各端口收到的數據包,按照端口緩沖到輸入緩沖區;
2)PRED算法模塊掃描輸入緩沖區的數據包,解析數據包并且重新打標數據包的傳輸優先級;
3)路由查找引擎對打標后的數據包進行路由表查找,交換矩陣根據路由查找結果將數據包轉發至各端口輸出緩沖區,輸出緩沖區按照端口和優先級標記進行排隊;
4)PRED算法模塊計算平均排隊長度,判斷網絡擁塞狀態;
5)根據網絡擁塞狀態,PRED算法模塊計算丟包概率,根據計算結果按照優先級丟棄各端口排隊數據包;
6)根據講網絡擁塞狀態,PRED算法模塊發出“源抑制”或“目的地不可達”數據包;
7)各組網設備接收網絡擁塞通知數據包,調整發送速率。
組網設備實現PRED算法的偽代碼如下:

論文提出的艦艇編隊無線IP網絡的擁塞控制機制,對于提高艦艇編隊網絡的穩定性、利用率具有重要的意義,可以為編隊內各類應用業務提供更好的服務質量,尤其是適應一些實時性、突發性的高優先級業務。論文以美國海軍ADNS網絡為例,分析了艦艇編隊無線IP網絡的組網和運行機制,比較了源于因特網的網絡擁塞檢測和網絡擁塞避免相關處理機制,提出適用于艦艇編隊無線IP網絡的基于優先級的隨機提前檢測算法,詳細描述了算法設計原理和算法執行流程。對于算法的可實施性方面,則提出了在無線路由器中的實現方案,包括功能模型、處理流程以及軟件編程方案。