舰艇编队网络拥塞控制算法研究*
2021-03-16
(武汉船舶通信研究所 武汉 430205)
1 引言
舰艇编队网络通过集成HF子网、VHF子网、卫星子网等各类通信手段,运行无线异构网络互连协 议(WirelessHeterogenousRoutingProtocol,WHRP)等路由协议,建立的适应舰艇编队战术无线通信环境的无线IP网络[1]。例如,美海军通过发展自动化数字网络系统(Automatic Digital Network System,ADNS),将编队所有舰艇的话音、视频和数据信息汇集到一个双堆栈IPv4/IPv6、密文、IP核心网体系结构中,实现多种无线通信手段的综合管理和协调使用[2]。
舰艇编队网络的无线通信带宽有限、通信链路速率各异、网络结构变化剧烈、战场通信环境恶劣等原因,导致网络拥塞现象时有发生[3]。按照严重程度,舰艇编队网络的网络拥塞状态分为无拥塞、轻微拥塞、中度拥塞和重度拥塞,网络拥塞带来的影响是轻则网络服务能力降级,重则网络崩溃。因此,应对舰艇编队网络进行拥塞控制,使网络始终处于无拥塞或轻度拥塞的状态,尽可能利用有限的网络资源提供较高的网络吞吐量,同时保障高优先级业务的网络传输。
2 网络拥塞控制策略
舰艇编队网络拥塞控制的核心设备是无线路由器。如图1所示,自动化数字网络系统(Automated Digital Network System,ADNS)是美国海军舰艇编队网络的核心组网设备,集成先进极高频卫星、移动用户目标系统、宽带填隙星、转型星系统、联合战术无线电系统、国际海事卫星、国防卫星通信系统等各种无线通信手段,实现编队内和编队间以及和岸基的网络互联,面向各应用提供统一的外发数据包路由服务,网络拥塞控制是ADNS的核心能力[5]。
舰艇编队无线IP网络的拥塞控制,主要研究重点包括:一是网络拥塞预测机制,能够感知网络的拥塞状态以及预测发展趋势,以便采取干预措施保障网络的正常运行;二是网络拥塞避免机制,避免网络进入严重拥塞状态甚至网络崩溃,保持网络的低时延、高吞吐量运行。
2.1 网络拥塞预测
舰艇编队无线IP网络的网络拥塞预测,可采取的技术途径包括计算信道负载(Channel Loading,CL)和计算缓冲区占用率(Buffer Occupancy,BO)两大类。计算信道负载是采用网络探针等机制连续探测或查看信道状况,从而获取信道利用率的估计值,当估计值高于某门限后,预测网络拥塞可能发生[6~8]。如图1所示的美国海军舰载网络,集成了多达6种以上的异构网络通信手段,如果采用计算信道负载方法来进行网络拥塞预测,会大量消耗无线信道资源,因此该技术途径不可取。计算缓冲区占用率是当缓冲区占用率高于某门限后,可预测网络拥塞可能发生,进而采取主动干预措施,具有在无线路由器中实施的可行性。
图1 美国海军舰载网络系统体系结构
2.2 网络拥塞控制
舰艇编队无线IP网络的网络拥塞控制,主要的技术途径包括“主动式队列管理”(Active Queue Management,AQM)和显式拥塞通知(Explicit Cogestion Notification,ECN)[9],主动式队列管理用在组网设备中实施丢包的方式进行网络拥塞控制,信源和信宿两端感知到丢包以后降低网络报文发送速率,避免网络拥塞的加剧;显式拥塞通知则在组网设备之间或面向信源与信宿发送拥塞通知报文,通知没有流量感知能力的信源和信宿业务降低网络报文发送速率。
主动式队列管理的主要作用,一是保持较小的缓存平均排队长度,提供更大的缓存容量容纳突发数据包,适应信源和新宿端到端TCP流量调节机制,在统计层面减少总丢包数量;二是能够减少网络报文在组网设备中的排队延迟,提供了更低的延迟,可更好地适应IP话音、即时消息、视频会议等交互式通信服务;三是避免网络“死锁”现象,确保新入网的网络报文有可用的缓存空间,防止死锁行为的发生。显式拥塞通知是IETF建议使用的一种拥塞通知方式,主要作用是面向没有丢包感知能力的通信信源和信宿节点,提供一种主动的通知方式,以便及时采取拥塞避免的方案。
3 网络拥塞控制算法
随机提前检测算法(Random Early Detection,RED)是为网络拥塞控制而设计的一种主动队列管理算法[10]。依托路由器或网关等组网设备,RED算法在预测到网络拥塞发生时,缓冲区未满就开始按概率丢弃网络报文,信源和信宿两端的TCP协议栈检测到报文丢失以后,采用滑动窗口机制降低发送速率,改善网络拥塞程度;同时,采用重传机制重新传输丢弃报文,以此保障端到端可靠通信。相比弃尾(Drop Tail)算法,采用RED算法进行主动队列管理可以有效解决缓冲区高位运行、突发业务容量不足、TCP连接全局同步等问题[11],能提供更小的网络时延和更高的网络吞吐量。正是基于这些优点,RFC2309推荐RED作为因特网主动队列管理算法[12]。
3.1 算法设计原理
结合舰艇编队无线IP网络的拥塞控制策略,结合应用环境和业务特性,基于RED算法进行扩展,建立组网设备缓冲区利用率和网络流量速率的对应关系,通过主动队列管理实现网络拥塞控制,在组网设备的缓冲区预留空间,支持高优先级业务和突发业务。论文设计了基于优先级的随机提前检测算法(Priority based Random Early Detection,PRED),作为传统RED算法的改进与增强。RRED主要的改进方面包括:一是改进RED算法的无差别报文丢弃处理方式,增加IP报文头解析和优先级标记功能,可以依据报文优先级进行选择性的报文丢弃,满足舰艇编队无线IP网络的区分服务质量QoS;二是改进RED算法对通信连接两端TCP协议栈的依赖,通过显式拥塞指示的方式主动进行网络流量控制,以更小的开销和更低的时延达到控制网络拥塞的目的;三是设计可伸缩的队列管理机制,能更好地提高网络的弹性,满足实时业务和突发业务的网络承载需求。
3.2 算法流程设计
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)是最大丢弃概率的配置值。
3.3 网络拥塞控制
PRED算法的网络拥塞控制是采用主动队列管理和显式拥塞通知相结合的机制,当平均排队长度Qav>Tmin大于最低门限后,即触发主动队列管理机制,采用区分优先级的方式丢弃数据包。同时,鉴于信源和信宿端系统不一定具备TCP协议栈的丢包感知能力,PRED算法采用显式拥塞通知的机制,向信源和信宿以及组网设备发送拥塞通知数据包,降低进入网络的流量。
在以下两种情况下,路由器丢弃报文之后,要启动主动拥塞控制机制:
1)Tmin<Qav<Tmax
平均排队长度Qav处于最低门限Tmin和最高门限Tmax之间时,组网设备除按照概率丢弃低优先级数据包之外,启动显式拥塞通知机制,向各端口广播“源抑制”显式拥塞通知数据包,收到该数据包的其它组网设备向其它端口广播该数据包,同步全网网络拥塞状态并通知组网设备和信源信宿的降低发送速率。
2)Qav>Tmax
平均排队长度Qav大于最高门限Tmax,组网设备启动显式拥塞通知机制,向各端口广播“目的地不可达”数据包,收到该数据包的其它组网设备向其它端口广播该数据包,同步全网网络拥塞状态并通知组网设备和信源信宿的停止发送数据包。
4 PRED的算法实现
4.1 功能模型
舰艇编队无线IP网络的组网设备中通过植入PRED算法模块实现网络拥塞控制功能。如图3所示,组网设备包括输入缓冲区、输出缓冲区、交换矩阵、路由查找引擎、网管代理、PRED算法模块等功能部件,通过对输入缓冲区和输出缓冲区进行主动队列管理实现网络拥塞控制的功能。根据输入端口的不同,输入缓冲区开设多个队列缓存各端口输入的数据包,路由引擎根据数据包头的路由目的地信息,查找路由表找出下一跳,数据包经过交换矩阵进入输出缓冲区。
如图3所示,PRED算法模块由数据包解析与标记、平均队列长度计算、缓冲区管理、网络拥塞处理等模块组成,各模块的作用是:
图3 组网设备中的PRED算法功能框图
1)数据包解析与标记模块,解析输入缓冲区中的数据包,根据报文的优先级进行标记;
2)平均排队长度计算模块,根据式(1)计算并更新组网设备的平均排队长度;
3)网络拥塞处理模块,根据平均排队长度与缓冲区队列的最低门限和最高门限的比较结果,判断网络拥塞的状态,并根据判断结果进行主动队列管理和拥塞通知;
4)缓冲区管理模块,根据网络拥塞处理模块的指示,进行输出缓冲区的管理和优先级调度。
5)网管代理模块,完成PRED算法参数的远程配置、PRED算法运行状态的远程监控。
4.2 处理流程
舰艇编队无线IP网络的组网设备,对网络数据包的处理流程如下:
1)组网设备从各端口收到的数据包,按照端口缓冲到输入缓冲区;
2)PRED算法模块扫描输入缓冲区的数据包,解析数据包并且重新打标数据包的传输优先级;
3)路由查找引擎对打标后的数据包进行路由表查找,交换矩阵根据路由查找结果将数据包转发至各端口输出缓冲区,输出缓冲区按照端口和优先级标记进行排队;
4)PRED算法模块计算平均排队长度,判断网络拥塞状态;
5)根据网络拥塞状态,PRED算法模块计算丢包概率,根据计算结果按照优先级丢弃各端口排队数据包;
6)根据讲网络拥塞状态,PRED算法模块发出“源抑制”或“目的地不可达”数据包;
7)各组网设备接收网络拥塞通知数据包,调整发送速率。
4.3 软件编程
组网设备实现PRED算法的伪代码如下:
5 结语
论文提出的舰艇编队无线IP网络的拥塞控制机制,对于提高舰艇编队网络的稳定性、利用率具有重要的意义,可以为编队内各类应用业务提供更好的服务质量,尤其是适应一些实时性、突发性的高优先级业务。论文以美国海军ADNS网络为例,分析了舰艇编队无线IP网络的组网和运行机制,比较了源于因特网的网络拥塞检测和网络拥塞避免相关处理机制,提出适用于舰艇编队无线IP网络的基于优先级的随机提前检测算法,详细描述了算法设计原理和算法执行流程。对于算法的可实施性方面,则提出了在无线路由器中的实现方案,包括功能模型、处理流程以及软件编程方案。