AFDX实时流量的时间确定性中间件接入模型研究

2013-08-29 09:17娟,何锋,王
电光与控制 2013年7期
关键词:中间件数据流数据包

易 娟,何 锋,王 彤

(北京航空航天大学电子信息工程学院,北京 100191)

0 引言

相比普通计算机网络,航空电子机载总线网络在实时性和可靠性方面具有更高的要求。实时性要求航空电子总线网络提供端到端延时控制机制,满足消息的时间确定性传输;可靠性要求航空电子总线网络提供故障隔离、冗余检错等手段确保消息的有效传输。引入了虚拟链路技术的航空电子全双工交换式以太网(Avionics Full Duplex switched ethernet,AFDX),其具备流量整形、流量管制、优先级调度等确定性控制机制[1],这极大地增强了网络的实时性和可靠性,成为大中型飞机综合化互连的事实标准[2]。

在研究AFDX网络的协议行为和具体实施方案中,需要在已有COTS(Commercial-off-the-shelf)平台上,对COTS技术进行改造,使基于TCP/IP协议的航电应用能够透明地在AFDX网络上运行,完成实时流量在AFDX网络的准确接入。在这个过程中,模拟端系统基于虚拟链路通信的通信协议中间件将成为COTS平台与AFDX网络对接的关键部件。法国图卢兹大学航空航天实验室提出的Toolkit模型作为一种COTS平台与AFDX网络的对接部件,仅实现了不同协议网络的相互通信,并未保障数据流的时间确定性。

中间件处于操作系统与用户应用软件之间[3]。它在操作系统、网络之上,用户应用软件之下,为处于自己上层的应用提供运行与开发环境,帮助系统开发者灵活、高效地开发和集成应用软件[4]。

本文通过分析与研究网络驱动接口规范中间层驱动程序框架结构,利用其在通信模型中的位置[4],设计了适用于AFDX网络的实时流量中间件接入模型,并提出了相应的时间确定性保障算法。将该中间件安装在普通以太网端,普通以太网端上的航空电子应用即能在保证时间确定性的条件下与AFDX网络正常通信。这为航空电子应用通信过程无差别地在AFDX网络运行提供了解决方案。

1 实时流量中间件接入模型

1.1 网络驱动接口规范简介

中间驱动程序是网络驱动接口规范(Network Driver Interface Specification,NDIS)所支持的3种网络驱动类型之一,它处于协议驱动程序与网卡驱动程序之间,其在通信系统中的特殊位置使得从上层向网络发送的数据包和从外界接收的数据包都须经过它之后再继续传递,因而利用中间驱动程序可实现对网络数据包过滤和协议转换,这也为AFDX网络实时流量中间件的实现提供了可能。

1.2 AFDX实时流量中间件接入模型

AFDX中间件接入模型包括配置文件解析模块、协议转换模块与流量整形模块。配置文件解析模块通过对用户配置文件的解析,为中间件其他模块提供参数。

协议转换模块用于对数据帧实施AFDX协议与TCP/IP协议帧格式的相互转换。流量整形模块的功能是对普通以太网下无序的数据流进行时间调度,在单条链路上实现BAG整形,并在此基础上实施抖动最小的多链路复合算法,保证进入到AFDX网络数据流的时间确定性。AFDX中间件接入模型系统结构以及数据流流向如图1所示。

图1 AFDX通信中间件结构图Fig.1 Structure of AFDX communication middleware

2 协议帧格式转换

为实现基于TCP/IP协议的航电应用与AFDX网络的透明通信,中间件模型需要对数据帧进行帧格式转换。AFDX网络的控制机制使其寻址方式与TCP/IP协议不同,同时其帧格式在数据域之后还存在顺序号(Sequence Number,SN)域。因此,协议转换模块须实现数据帧报头字段的重组和SN插入。AFDX协议帧寻址方式如图2所示。

图2 AFDX协议帧地址格式Fig.2 Address format of AFDX frames

在IPv4数据包结构中,总长度域的取值范围为21~1500字节,在AFDX中由于存在SN,总长度域(不将SN考虑在内)的范围是21~1499字节。SN按数据帧次序由0至255以步长1循环递增。同时,AFDX网络为保护数据流,采用冗余的A/B网络来进行数据传递,这意味着一个数据帧及其备份会分别进入到A/B网络,而它们拥有相同的SN。因此,在进行SN插入时,应区分进入不同网络的数据帧对SN分开计数,以记录数据帧的正确次序。

当数据帧在协议转换模块入口被截获后,中间件模型将数据帧展开,将用户配置的检测信息与数据帧内容进行匹配,对检测到需要处理的数据帧,实施由MAC头至UDP头的重新填充,使其满足协议格式规范要求。

在中间驱动程序中传递的数据包以NDIS_PACKET类型的结构体存在。NDIS_PACKET为包描述符,一个数据包的包描述符指示了一系列以链表形式连接的缓存描述符NDIS_BUFFER。每片缓存的虚拟地址空间分别对应数据包各层实际占用的物理内存。

依照NDIS中数据包的存储方式,采取新建NDIS_BUFFER连接在原包描述符末尾的方法实现SN插入。实施SN插入的核心算法如下。

3 时间确定性调度分析

流量整形是AFDX网络确定性机制实施的根本保障技术之一。通过对同一逻辑链路承载的前后相邻数据帧之间的时间间隔进行限制和约束,降低和平滑了VL上数据帧的突发流量,保证了VL逻辑带宽预分配机制,并增强了网络通信确定性。流量整形以单条VL为基本单元,在每个BAG间隔中发送帧的数目不会多于一个。对于多条VL上的数据流,在数据进入到接收端前,需对它们进行有效调度,以保证对于给定的VL数据帧能够在最大允许抖动内到达。

3.1 单条链路的BAG整形

在AFDX网络中,对于单条VL,数据帧没有抖动时BAG反映了两个相邻帧的起始二进制位之间的最小时间间隔。基于TCP/IP协议的航电应用通信所产生的数据流,帧间间隔并不受约束。因此当航电应用向AFDX网络发送数据时,数据流很可能无法满足AFDX网络对帧间间隔的要求。BAG整形即是完成数据流帧间间隔的调整。数据帧在经过中间件协议转换处理后包含了链路号信息。根据链路号,可将单条数据流上的数据帧划分至多条VL,然后对各VL实施BAG调整。数据流实际的帧间间隔TRealBAG与用户配置的BAG值TBAGu的大小关系是判别是否进行流量整形的条件。由AFDX协议规范可知,只有TRealBAG<TBAGu的数据帧需要被处理。BAG整形核心算法通过内核延迟实现数据帧延迟发送,使数据帧的帧间间隔增大至TBAGu,同时为保证流量整形的精确度,还对实际帧间间隔实时监控,动态调整延时长度。

3.2 多链路复合时间调度算法

经过BAG整形的各VL在进入到AFDX端系统之前,需要复合成为单条多路复用流。由于各VL数据抵达的时间不确定,因此在复合时,会出现对物理链路的争抢,导致复合后的数据流规整度降低,进入到AFDX网络的时间不确定性加大。为避免此种情况,设计了实时流量抖动最小的VL复合时间调度算法(Timing-Send,T-Send),中间件通过该算法来限定不同VL数据流抵达物理链路的时间,分时利用物理链路,从而实现VL的无冲突复合。

同理,可得到VLCj上规整后第l批数据包抵达时间为tj1_l'。假设存在数据包冲突,则有

将式(1)代入式(2)可得

假设j<i,令l″=l'-1-2i-j*(l-1)。则上式可化简为

l″为整数,故式(5)无解,因此通过上述调度能够使BAG不等的VL复合后的数据流之间无冲突。

同样可得到链路VLCi-s'上的第k'个数据包到达的时间tis'_k'。假设存在数据冲突,则有

将式(6)代入式(7)可得

令s″=s-s',k″=k'-k,化简得

4 实验和结果分析

为评价AFDX中间件接入模型的性能,验证其协议转换以及时间确定性保障功能,将AFDX中间件模型安装在普通以太网卡终端进行了实验。实验系统由一台普通以太网卡终端与一台航空电子交换式全双工以太网卡终端组成,两个网络通过网线互联进行消息发送。

为验证AFDX通信中间件协议转换功能的正确性,在配置文档中设定待处理源端口号为5,并填写其他配置参数,例如,设定用户自定义标识为0xFF32、分区标识为0b001等。在普通以太网卡终端分别以源端口137以及5向AFDX网卡终端发送数据包,在AFDX网卡终端抓包显示结果见图3。

图3 接收端抓包与发送端抓包结果数据帧解析对比Fig.3 Frame-parsing comparison between the sender and receiver

由抓包结果来看,来自于用户配置源端口(端口5)的UDP数据包被中间件处理,数据帧报头字段进行了重填,并且含有正确的SN,帧格式符合AFDX协议规范。对数据帧进行协议解析可知,经协议转换后,数据帧地址格式中所含参数与用户配置参数一致。由此可见中间件能够正确解析配置文件解析并进行协议转换。

为验证AFDX中间件的流量整形功能,设置参数TBAGu=128 ms,普通以太网卡终端数据包发送工具选择自动发送UDP包,时间间隔TSendGap分别设置为50 ms与150 ms。在收发两端同时进行抓包,对两种TSendGap下选取4000 ms内收发两端抓获的数据包时间间隔进行统计,统计结果如图4所示。

图4 单链路整形调度结果统计图Fig.4 Statistic of BAG shaping results

图4中,首个数据帧对应时刻设为0。由图4可知,当TSendGap=50 ms时,发送端数据流的帧间间隔在50 ms左右波动较大,接收端数据流规整有序,帧间间隔基本保持为128 ms。这是由于TSendGap=50 ms<TBAGu=128 ms,中间件模型对数据流进行了流量整形。当TSendGap=150 ms时,发送端的数据流帧间间隔均处于128 ms以上,但在150 ms左右波动较大。波动是由于发送端通信源的时间不确实性造成的。由于帧间间隔已符合BAG的要求,中间件模型识别出该数据流不需BAG处理,所以在接收端,接收到的数据流帧间间隔情况与发送端数据流基本无异。由此可知,中间件模型不会增加数据流的不稳定性。在时间轴上观察统计结果不难发现,以50 ms为间隔发送数据包时,发送端较为密集的数据流经过中间件的整形后变得缓和。

针对FIFO算法和T-Send算法引起各链路上的抖动延时,采用Matlab进行了仿真实验。网络仿真共使用了24条VL,总带宽设置为10 Mb/s。并根据实际需要将Lmaxi均设置为1518 Bytes,包含的TBAGu有1 ms、2 ms、4 ms、8 ms、16 ms、32 ms、64 ms、128 ms,且每个TBAGu值对应有3条虚拟链路。对于FIFO算法,无优先级。对于TSend算法,在计算由其引起的抖动延时时,将中间件模型的处理时间考虑在内,中间件模型处理时间在100~200μs范围内波动。仿真结果统计如图5所示。

由图5可知,使用FIFO算法复合后,数据流的抖动值比较大而且分布不均匀,均值为884μs,均方值为357.1μs。在同样条件下,使用T-Send算法复合后产生的抖动的均值为162μs,均方值为18.1μs。因此TSend算法通过对各链路在时间上进行有效分配使数据流复合引起的抖动时延远远小于FIFO算法,并且其抖动值更加平稳。图中所显示的T-Send算法下抖动时延为非0值,这是由于计算时包含了中间件模型处理数据流的时间。综上所述,通过单链路上的BAG整形以及多链路复合的T-Send算法,AFDX中间件接入模型能够保证进入到AFDX网络数据包流的时间确定性。

图5 多链路复合调度引起抖动时延结果图Fig.5 Statistics of jitter caused by VL multiplex algorithm

5 结束语

本文在NDIS基础上,提出了适用于AFDX网络的实时流量中间件接入模型,并针对多链路复合提出了T-Send时间调度方法,成功实施了基于TCP/IP协议的航空电子应用在AFDX网络上的确定性接入过程,已有航空电子应用(第三方应用)不会感知在接入航空电子全双工和普通以太网的不同,在网络的升级过程中,最大化保护了已有开发资源,降低了网络接入难度。而且,本文中提出的T-Send时间调度算法,结合单条链路上的BAG整形,引起的抖动时延要远小于标准的AFDX虚拟链路调度FIFO算法,使进入到AFDX网络的数据流具有更好的时间确定性。

[1]ARINC 664.Aircraft date network,part 7:Deterministic networks[M].USA:ARINCCompration,2003.

[2]熊华钢,周贵荣,李峭.机载总线网络及其发展[J].航空学报,2006,27(6):1135-1144.

[3]张云勇,张智江.中间件技术原理与应用[M].北京:清华大学出版社,2004.

[4]TILEVICH E,SMARAGDAKISY.NRMI:Natural and efficient middleware[J].IEEE Transaction on Parallel and Distributed Systems,2008,19(2):174-187.

[5]FLOROIU J W,LONCACU T C,RUPPELT R,et al.Using NDISintermediate drivers for extending the protocol stack a case study[J].Computer communications,2001,24:703-715.

[6]张勇涛,黄臻,熊华钢.保证速率的AFDX交换机实时调度算法[J].北京航空航天大学学报,2010,36(12):1412-1416.

[7]陈昕,周拥军,蒋文保,等.AFDX协议性能分析及调度算法研究[J].电子学报,2009,37(5):1001-1005.

[8]SCHARBARG J L,RIDOUARD F,FRABOUL C.A probabilistic analysis of end-to-end delays on an AFDX avionic network[J].IEEE Trans Industrail Informatics,2009,5(1):38-49.

[9]BOYER M,FRABOUL C.Tightening end to end delay upper bound for AFDX network calculus with rate latency FIFO servers using network calculus[C]//IEEE International Workshop on Factory Communication Systems.Dresden:IEEE,2008:11-20.

猜你喜欢
中间件数据流数据包
二维隐蔽时间信道构建的研究*
汽车维修数据流基础(上)
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
汽车维修数据流基础(下)
SmartSniff
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
基于数据流聚类的多目标跟踪算法
北医三院 数据流疏通就诊量
中间件在高速公路领域的应用