更全的杂志信息网

飞行试验中UDP数据包丢失和失序处理研究

更新时间:2009-03-28

0 引言

随着我国航空工业的不断发展,研制型号和试飞型号不断增加,飞行试验中测试参数越来越多,数据流量也越来越大,使得集中式采集、分布式采集等传统的机载数据采集系统架构已经不能满足测试技术要求。2004年10月由美国发起的iNET项目开发技术得到了广泛的支持并在数年内形成了比较成熟的技术框架和技术发展路线[1]。在国内,飞行试验测试领域一直跟踪iNET的发展,于2012年提出了空天地一体化遥测网络系统[2-3]

得益于国内试飞测试技术的迅速发展,基于以太网技术的高带宽多数据流传输和记录在飞行试验中得以广泛应用,机载网络化数据采集记录系统的概念及相关产品应运而生。

机载网络化数据采集记录系统的一般架构为:多台采集器通过以太网挂接到网络交换机,在交换机上进行数据包汇聚,再由同样挂接在交换机上的网络化记录器对这些数据包进行接收记录。更为庞大的测试系统(采集终端数量多)甚至存在多级交换机的级联,而这些设备采用统一的时间源进行时间同步[4]。网络化测试系统的广泛应用使得基于以太网的高带宽多数据流的传输和分析成为了飞行试验领域的研究热点。

1 失序和丢包分析与处理

1.1 失序和丢包分析

在飞行试验领域,目前以太网数据包的传输主要采用TCP和UDP协议。TCP采用面向连接的数据管理策略并通过重传保证数据可靠传输,多用于传输通信和控制数据包等可靠性要求高的场合。但对于高带宽数据,频繁的确认和重传无法保证数据的实时传送要求,因此一般采用无连接的UDP传输协议,其目的是减少不必要的网络开销,提高传输带宽和传输效率。正因为如此,UDP传输协议不提供可靠性、流量控制和差错恢复的手段[5]

通常,在机载网络化测试系统中,数据从发送端到目的端要经过若干的中间节点,节点与节点之间对数据的传输会产生延时。由于不同数据包可能经过不同的中间节点到达目的端,因此总的延时也不同,这导致数据包到达目的端的顺序与期望顺序可能不同,即失序。此外,由于缓冲区的溢出,数据包可能被中间节点拒绝,使得数据包丢失[6]。很显然,数据失序不满足试飞数据分析对数据时间相关性的严格要求。为了满足数据分析时的时间相关性要求,需要对发生失序的数据进行重排,对丢失的数据进行补点。为此,在期望数据包全部到达之前要将到来的数据包暂存于一个缓冲区内。由此带来的问题:缓存区的大小如何确定;暂存数据在缓冲区的存放规则是什么;发生丢包时如何处理。下文将对这些问题进行讨论和分析。

按照上文对于缓存区大小确定方法的论述,T=8 ms,可以申请2个大小为的缓存区H1,H2,按照表1中数据包排放规律来对到达的数据包进行缓存和排序。

1.2 重排缓存区的确定

缓冲区的数据包排列顺序为A0A1A2B0A3A4B1A5A6B2A7C0A8B3A9A10A11C1A12A13A14A15C2,记为顺序Y,经统计,最大逆序周期为7 ms。

根据飞行试验中网络数据包传输大多具有周期性的特点,假设网络中的数据包的种类(一般由包识别字确定)为n种,它们的传输周期分别为T1T2T3,…,Tn。根据上文的论述,在发生失序的情况下,需要开辟缓存区来对失序的数据包进行重排,而对失序情况进行量化是确定缓存区大小的重要工作,其方法是在网络数据包发送的目的端对接收的网络数据包时间标签做统计计算,假设在1 s内接收到的数据包的个数为N,它们的时间标签分别为t1t2t3,…,tN,对相邻的两个包的时间标签进行如下计算

Δti=ti+1-ti (i=1,2,3,…,N)

式中:Δti为逆序时间,在Δti<0情况下,对|Δti|求最大值ΔtmaxΔtmax为最大逆序时间。

辽宁铁道职业技术学院专业教师团队与北京华晟经世集团派驻的企业高级工程师讲师团队一起与共同开展了“一课双师”嵌入式融合创新实践,在资源建设及学生培养中全面采用大学讲师和企业高级工程师相结合的组织形式,发挥各自所长,在工作协同中开展嵌入式融合,有效地解决了传统教育并轨实际工作场景的问题,充分体现了工程师自主教学、MIMPS教学法的校企联合特色教学思想,将实际工程案例与理论相结合,极大的激发了学生学习的兴趣,真正的聚集了校企优势资源,加速了通信专业群的发展;校企双方于2018年期间联合开发了《单片机应用技术》、《通信原理》等两门精品课课程资源。

当数据包按照表1中的规律到达时,将数据包内的时间标签在0~7 ms的数据包按照表1的数据包排列规律放入缓存区H1中,将数据包内的时间标签在8~15 ms的数据包按照表1的数据包排列规律放入缓存区H2中,接下来,在16 ms时刻,A16包到达,根据最大逆序时间的概念,表明0~7 ms时间段的数据包已经全部接收完毕(如果缓存区H1仍未填满,表明0~7 ms时间段的数据包有丢包发生),此时可以将之前其它任务(数据处理任务或数据存储任务)中的数据存放缓存区清空,然后将A16按照表1中的数据包排放规律放入缓存区H1。需要强调的是,如果当前数据包较前一数据包的时间跨度大于7 ms,即大于T,表明已经开始接收到新的时间段的数据包,此时需要考察数据包的时间标签tm与缓存区内数据包的时间跨度(tntn+7)的关系,判断tm是否属于(tntn+7)区间,如果当前数据包不属于缓存区H1,H2中的任何一个,则需要将缓存区H1,H2中时间靠前的缓存区进行数据包的完整性检查并对丢失的数据包按照相应的方法进行补齐,接下来将缓存区提交至其它任务后清空,然后将A16按照表1的数据包排放规律放入缓存区。具体的算法流程图如图1所示。

以实际的飞行试验数据为例,进行排序算法的分析。现有某型号某架次飞行试验数据的A,B,C三种网络数据包,周期分别为1,2,4 ms,那么顺序情况下,数据包的接收情况应如表1所示。

需要说明的是,之所以采用2个大小为L的缓存区来对数据包进行排序,而不是采用更多个数的缓存区,是考虑到尽量减小因排序带来的时间延时。

1.3 排序算法的分析与实现

据统计,6—8月,全省各县(市、区)通过山洪灾害预警平台共发布预警短信153.5万条次,涉及相关防汛责任人达12.1万人次,启动预警广播11 157站次,有效指导危险区6万多群众进行避灾转移。

逆序时间是对机载网络化测试系统中数据包逆序情况的量化描述,求出一个满足如下条件的最小值T。①TT1T2T3,…,Tn的最小公倍数;②TΔtmax

 

表1 顺序情况下的数据包接收情况

  

时间/ms包A包B包C0A0B0C01A12A2B13A34A4B2C15A56A6B37A7…………

缓冲区的数据包排列顺序为A0B0C0A1A2B1A3A4B2C1A5A6B3A7,记为顺序X。而真实的情况是该数据样本有逆序情况发生,数据包的到达情况如表2所示。

 

表2 逆序情况下的数据包接收情况

  

时间/ms包A包B包C0A01A12A2B03A34A4B15A56A6B27A7C08A8B39A910A1011A11C112A1213A1314A1415A15C2…………

根据网络交换机对数据包的缓存及转发原理,在网络拓扑结构、网络中的设备不发生改变,以及数据包在网络按周期规律传输的情况下,逆序情况也是稳定的,从实际的机载网络化测试系统中的数据包样本的时间标签的统计计算结果来看,也证明了这一点。机载网络化测试系统中,每种网络数据包的时间周期都是毫秒级(1/1024 ms~1/16 ms)的,对于一段完整的数据包样本,在考察其逆序情况时,只需分析其中1 s时间跨度内的数据包的逆序情况即可。

当到达的数据包发生失序的情况时,需要在保证到达的数据包能够全部缓存下来的前提下,对数据包进行重新排序,以达到时间对齐的目的。在发生丢包或者失序的情况下,重新排序的过程就是将缓存区数据包的排序情况由Y变成X的过程。

刚上班时我还是一个没有编制的老师,每月只有499元的基本工资。我们班有个孩子叫钱振东,家里哥仨特别困难,我以微薄的收入经常帮助他。他毕业了很长时间,他的母亲看见我告诉我,临中考前我给他的钱他没花一直放在书里。他的母亲说话不清晰,我认真听着,真的是有一种感情——叫感动.作为老师这是我最大的快乐。

企业之间的协调联动行为是多种集成要素相互作用关系的协调与整合。在众多有关组织协调及协调机制构建的文献资料中,不难发现合作协调相关影响因子的描述研究,可归结为相互信任、信息沟通、文化交融、利益分享四方面研究较为普遍的因素。

那么申请2个大小为的缓存,其中Li(i=1,2,3,...,n)为第i种数据包的大小,就可以对接收到的网络数据包进行排序。

采用C++高级程序语言实现了上文所述算法[7]

2 算法应用

在实现主要算法的基础上,完成了网数据处理软件的设计开发[8],为了验证排序算法的正确性,使用本软件对两个不同型号飞机的多架次飞行数据进行处理。图2是某型号飞机某架次飞行记录的某时间段原始数据的相关信息。其中,键值表示包的识别字,序号表示该键值的包的当前个数。从图2中排序前的信息可以看出,数据包发生了失序。图2中的右图是排序后的数据包信息,可见已实现时间对齐。

  

图1 数据包排序算法流程图

  

图2 排序前后数据包顺序对比图

本文提出的关于数据包的丢失和失序处理算法可以在飞行时间内的网络数据包实时接收时应用,以保证进入机载记录设备的数据包已经按照时间顺序进行存储。如果在飞行时间内由于机载测试系统软硬件资源的限制,不便对数据包进行实时排序,也可以在事后数据预处理环节中使用本算法。两种使用场合算法完全一致,无需作任何更改。

要从困境中走出来,活成自己的样子,也要靠钝感力。那么,怎样用好钝感力呢?首先,要有个积极的心态,坚信每个学生的本质都是向善、向上、向美的。问题只是暂时的,不过是自己目前还没有找到解决问题的办法而已。其次,要熟悉学生的年龄特点和成长规律,观察他们的行为,分析行为背后的原因,找准解决问题的根本,找到突破点,避免事倍功半。再者,要时刻掌握班上的舆论风向,了解一些“出头鸟”的动向,及时引导正确的班级舆论导向,防止不良言论的传播和扩散,利用集体的力量进行管理和监督。

5a 1H NMR(CDCl3) δ:7.79-7.76(m,1 H),7.76-7.75(m,2 H),7.55-7.53(m,3 H),7.33-7.31(m,3 H),3.82(s,3 H)

3 结论

通过对UDP传输协议和机载网络化测试系统数据包传输过程的分析,说明了数据包发生失序和丢失的原因。鉴于飞行试验数据处理分析对数据的时间相关性的严格要求,提出了开辟适当的缓存区来对失序的数据包按照时间排序的详细算法;之后,对缓存区大小的确定和排序算法进行了详细的论述,并在数据处理软件中实现了该算法的设计开发;最终的应用效果表明,该算法成功解决了飞行试验网络化测试系统中发生失序和丢包情况下的数据处理问题。

参考文献

[1]iNET system Architecture Version 2007.1[EB/OL].http//www.irig106.org.

[2]杨廷梧.新型遥测系统中网络化测试技术展望[J].测控技术,2010,29(Z):141-145.

[3]白效贤,杨廷梧,袁炳南.航空飞行试验遥测技术发展趋势与对策[J].测控技术,2010,29(11):6-9.

[4]杨廷梧,王云山,滕斌.飞行试验遥测机载测试技术的发展与应用[J].测控技术,2013,32(4):5-8.

[5]Stevens W.R.TCP/IP详解.卷1,协议[M].北京:机械工业出版社,2008.

[6]鲁宏伟.基于UDP传输协议的包丢失和失序处理[J].计算机工程与应用,2001,37(2):48-49.

[7]张永强(译).C++高级编程[M].北京:清华大学出版社,2015.

[8]陈坚.Visual C++网络高级编程[M].北京:人民邮电出版社,2001.

 
周训强
《计测技术》 2018年第02期
《计测技术》2018年第02期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号