空间AOS链路网络自动流量控制设计与实现

2022-11-15 13:45朱浩文金仲和应乐黄建青段欣欣
航天器工程 2022年5期
关键词:队列控制算法网关

朱浩文 金仲和 应乐 黄建青 段欣欣

(1 上海航天电子技术研究所,上海 201109)(2 浙江大学 航空航天学院,杭州 310013)(3 北京空间飞行器总体设计部,北京 100094)

在空间网络式数据传输架构中,平台数据和载荷数据均汇聚到高级在轨系统(AOS)链路网关处理器设备实现网络数据统一下传[1]。由于下行AOS链路带宽有限且为固定速率,无法与网络终端的波动速率进行匹配,若不进行有效控制,在网络速率大于链路带宽时会造成丢包,而网络速率小于链路带宽时会导致产生大量填充帧,降低传输效率。因此,需采用一种有效的流量控制策略,对网络终端速率进行统一管理和控制[2]。过去20年间,在商用以太网领域出现了许多基于主动队列管理的流量控制算法,如随机早期检测(RED)算法[3]、广义随机早期避免(GREEN)算法[4]、随机指数标志(REM)[5]算法等,这些算法均是通过一定概率的丢包为代价来实现流量控制,不能适应空间高可靠应用需求。

本文提出了一种基于RED算法改进的流量控制算法,该算法基于网关内部缓存容量,通过握手协议实现终端载荷速率的动态控制,可以有效地防止数据丢包、提高AOS链路传输效率。讨论了算法在空间网关设备实现的方式、步骤和软件设计,采用Opnet网络仿真软件搭建空间网络环境模型,对该流量控制策略进行了仿真分析,同时基于我国空间站网关设备在轨运行的测试数据,对流量控制算法的实际性能效果进行了分析。

1 流量控制算法设计

1.1 空间网络流量控制架构

空间天地一体化网路通信系统中,网络终端均通过交换机实现数据接入。交换机连接天地AOS链路网关处理器,当需要与地面通信时,空间站上网络终端数据依次通过交换机、AOS链路网关处理器处理后,经AOS链路传输至地面[6]。空间AOS链路网络流量控制架构如图1所示。

图1 空间AOS链路网络流量控制架构

空间站上网络数据可分为平台数据和载荷数据,其中平台数据包括图像、语音、生理、遥测等数据。平台数据速率相对较低,对实时性要求高,一般不进行存储,具有随机接入、速率在一定范围波动的特点;而载荷数据速率较高,对实时性要求不高,可进行大容量存储,具有速率相对稳定的特点。因此,根据终端数据特性,在AOS链路流量控制设计中针对载荷数据终端进行流量控制。

为实现AOS链路与网络链路的匹配传输,在AOS链路网关处理器内部开辟了高速缓存,通过对缓存队列状态的监控,基于一定的流量控制算法,完成对空间站上载荷网络数据的实时流量控制[7]。

1.2 地面网络RED流量控制算法分析

RED算法是地面以太网流量控制应用最广泛的流量控制算法,其基于队列管理方法进行流量控制,主要思想是:根据缓存大小设置包队列长度的最大阈值和最小阈值,然后根据平均队列长度与最小阈值的差值来确定相应的丢弃概率,并根据丢弃概率实施丢包,进而避免拥塞[8]。平均队列长度基于瞬时队列长度,通过指数加权平均滑动模型来计算得到,计算公式为

(1)

对于每一个新到达的数据包,根据队列阈值对包进行丢弃,其丢弃概率为

(2)

式中:qmin为缓存区队列最小阈值;qmax为缓存区队列最大阈值,qmin必须小于qmax;pmax为缓存队列长度在qmax与qmin之间时最大丢弃概率。

一方面,该算法通过一定概率的包丢弃为代价来保证缓存队列处于合适长度,而在高可靠的空间应用场景中对链路丢包率有严格要求,甚至不允许丢包,这就决定了该算法无法直接应用于空间网络;另一方面,空间AOS链路存在链路速率不对称、输出带宽瓶颈等问题,与地面链路存在较大差别,队列管理虽然可以通过丢包来引起网络终端降低速率进而适应中间节点的输出能力,但是这种调节速度相对较慢,对于AOS链路千兆级别的带宽差值,整个网络显然无法做出迅速响应,因此也无法适用于空间网络。

1.3 空间流量控制算法改进设计

基于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),当qtqt>qmin时,认为网络负载与下行中继带宽处于一个相对匹配状态,此时不对网络终端的速度进行调整,保持上一次速率不变;当qaleart>qt>qmax时,认为网络负载超出了下行中继带宽,网关设备需降低流量控制终端速率以防止缓存溢出导致数据丢失,因此对网络终端n进行速率减小;若qt>qaleart,则表明网络数据量超过警戒阈值,网络处于异常状态,此时网关应根据优先级顺序依次关闭各网络终端,设置其速率为0,防止数据丢失。

该算法以空间网关为流量控制核心,监控网关内部缓存队列状态,进行速率调整计算,将计算结果通过可靠握手方式发送给对应终端,最终实现终端速率动态调整。

2 流量控制算法实现

2.1 流量控制实施步骤

流量控制的实施采用网关与流量控制终端间的握手方式,流量控制终端需按照预定义协议,根据网关发送的流量控制包进行速率调整,并实时反馈当前状态,该方式保证了流量控制实施的可靠性。流量控制过程如图2所示。

图2 流量控制交互过程

流量控制策略实施步骤如下:

(1)流量控制终端固定时间间隔向网关汇报当前速率,网关根据各终端汇报速率更新流量控制状态表。

(2)网关固定时间间隔查询内部缓存列队长度,将缓存队列长度与缓存阈值进行比较,根据流量控制状态表,按照1.3节的流量控制算法对流量控制终端速率进行计算,并顺序向各终端发送相应的流量控制包。

(3)流量控制终端收到流量控制包后,按照流量控制包中的控制信息调整自身的发送速率,并反馈流量控制状态包;网关收到反馈的流量控制状态包则更新流量控制状态表,若在一定时间内未接收到反馈,则认为相应终端退出流量控制并更新流量控制状态表。

(4)一轮流量控制完成,跳至步骤(1)进入下一轮流量控制。

2.2 流量控制软件实现

流量控制算法实现时,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。

3 流量控制仿真及在轨测试

3.1 仿真分析

利用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%以上。

3.2 在轨测试情况

在我国空间站AOS网关中实现并应用了该算法,选取空间站在轨某时间段开启流量控制前后的网关缓存遥测状态数据和地面接收的AOS帧原始数据,基于该数据对流量控制前后的网关缓存占用量及AOS链路传输效率进行分析,结果如图7所示。

图7 在轨数据分析结果

该时间段第8 s(相对时间)开启自动流量控制功能,从数据分析结果可知,流量控制前缓存中队列几乎为0,流量控制后缓存占用在10%~90%之间波动,始终处于合理控制范围内;由于流量控制后缓存中一直保持有充足数据,网关持续传输有效数据,在空间多终端、不同包长和包间隔的复杂混合流量环境下,流量控制后传输效率始终能保持99%以上。

3.3 结果分析

从仿真结果可知,在3种不同的典型工况下,流量控制算法均可以有效降低丢包率、提高AOS链路传输效率,在流量控制稳定运行后,丢包率降为0、传输效率达99%以上。

通过分析在轨数据,自动流量控制开启后,可以有效控制网关缓存队列始终处于合理范围内,未发生丢包;同时,流量控制时间段内AOS链路传输效率提升并能够稳定保持在99%以上,与仿真结果吻合,验证了流量控制算法的有效性、可靠性和稳定性。

对于流量控制算法稳定运行前可能出现的丢包,由于AOS链路处理器设计了优先级调度机制,平台数据传输优先级最高,因此极端情况下只会导致低优先级载荷数据的短暂丢包,不会影响平台关键数据的传输。

4 结束语

本文对提出的流量控制算法进行了设计、仿真和实现,并成功应用于空间站AOS链路网关处理器中,在轨实施取得了良好的效果。目前我国空间站三舱可单独进行流量控制,也可在组合体状态下进行集中流量控制。随着卫星组网、星间路由等技术的发展,未来航天器网络化、一体化是必然趋势。该流量控制算法能够很好地满足空间以太网数据传输业务需求,解决了AOS链路固定带宽与网络波动速率的匹配问题,在后续基于网络架构的空间应用中具有广泛的应用前景。本文目前仅针对IPv4尽力交付类型网络进行了设计,后续将针对该算法与IPv6网络、时间确定性网络等技术的结合开展进一步研究。

猜你喜欢
队列控制算法网关
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
基于ARM+FPGA的模块化同步控制算法研究
丰田加速驶入自动驾驶队列
LTE Small Cell网关及虚拟网关技术研究
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
应对气候变化需要打通“网关”
一种非圆旋转工件支撑装置控制算法
一种实时高效的伺服控制网关设计