摘要:为实现网络化测试系统下非结构化海量网络数据的快速分析处理,在关键的算法和系统化集成处理方面提出解决方法。采用内存映射文件方式快速读取海量数据,并设计了时间矩阵算法,用以快速进行同步分析处理;应用分布式中间件方式实现海量数据的并发处理和数据分发,对飞行试验采集的网络数据进行了分析处理,使用这些算法的数据处理软件,可以使处理效率满足飞行试验海量网络数据处理的需求。这些都为新一代机载采集系统应用于飞行试验提供了技术保障。
关键词:IENA;XNET/INET;PCAP;飞行试验
飞行试验数据处理是飞行试验工程中非常重要的一个环节,是对各类试飞数据信息进行细致、充分和全面的分析与处理,数据处理结果是飞行试验鉴定结论的核心依据。随着计算机网络技术在飞行试验测试领域的深入应用,网络化测试技术逐渐成为飞行试验测试技术发展的另一个核心。同时随着现代飞机设计技术的发展,飞机系统越来越复杂,飞行试验科目、测试参数、测试数据种类以及测试数据总量越来越多。对飞行试验数据处理从质量、速度以及数据安全性、可靠性等方面提出了更高的要求。机载网络化测试系统架构技术应用于最新的飞机测试系统上,该系统采集记录的网络数据记录了飞机一个飞行试验起落的各类测试数据信息,新一代飞机测试参数总量激增,数据总量达到上百个GB。为缩短单架次飞行试验周期,如何高效快捷地对这些非结构化的海量网络数据包进行同步分析处理,方便科研人员的应用,就成为必须解决的实际问题。
1 网络化机载测试系统飞行试验数据的特点
在网络化机载测试系统Kam4000中,网络数据包从采集器通过二级交换机到记录器。第一级交换机可以有多个,二级交换机作为系统的时钟接入点、遥测数据和记录器的接入点、系统配置文件的加载点,结构如图1所示。网络数据包被记录器完整的记录下来,在此需要分析的是记录器记录的完整的网络数据。该网络数据是有一个个网络数据包组成,每个网络数据包的格式根据采集器的不同可以是不同的。
1.1 与Kam500采集系统的差别
现在大量应用于飞行试验的Kam500机载测试系统,采集记录的飞行试验数据格式为标准的PCM数据。PCM数据由重复出现的长帧组成,每个长帧的长度是固定的,每个长帧包含若干个短帧。网络化机载测试系统Kam4000中,采集记录的飞行试验数据为网络数据包格式。每个网络数据包的大小都可以不同,并且每个网络数据包中的参数个数也可以不同。
1.2 海量网络数据包的格式
网络化测试系统采用ARCA公司的最新采集器,采集记录的数据格式根据采集器的不同可以是IENA,或XNET/INET网络数据包格式。采用BCU105(IENA Ethernet Controller)支持的是IENA包结构。而采用BCU140(XNET Ethernet Controller)支持XNET/INET的同时,也支持IEN-A。在网络化测试系统中IENA和XNET/INET网络数据包以EthernetⅡ协议广播。根据记录器的不同,记录的网络数据包结构可以是PCAP格式或者IRIG106-10格式记录。
PCAP基本格式:
文件头 数据包头 数据包 数据包头 数据包 …
IRIG106-10基本格式:
文件头 特殊字头 数据包 特殊字头 数据包 …
根据飞行试验的测试特性,参照以往的模拟量在飞行实验中记录数据的大小,如果参数量为5 000个,一定的飞行时间内记录的飞行试验数据为12 GB左右。随着飞机系统的复杂性的增加,应用于飞行实验的网络化测试系统需测试的飞行试验参数也越来越多,单架次的飞行试验记录的模拟量数据将是现在的4倍、5倍甚至更多。
1.3 网络数据包个数多
为提高发包效率,使发包延迟时间尽可能小,将数据包在采集后快速的发送出去,ARCA公司的采集器规定每个数据包的大小在设计上不允许超过1 500 B。同时,现在的测试参数都是高采样率,在这样的测试系统条件下,一个网络数据包可记录的参数量非常有限,必然会产生惟一标示的单个网络数据包的个数激增。
1.4 网络数据包非结构化
网络数据包具有典型的非结构化。在采集器端,按照测试系统的配置采集参数,并形成网络数据包。对于交换机而言,单个网络数据包的到来和发送没有完整的规则。在记录器上记录的原始网络数据包数据,在数据包的排列顺序上是无序的,数据包的周期是不确定的。不能准确预测到下一个网络数据包到来的顺序和时间。
2 网络数据处理方法
针对以上网络数据包的特点:最新的网络数据包格式和记录格式,海量的原始数据,数目庞大的测试参数,典型的非结构化,以及上千万、上亿的单个网络数据包。根据飞行试验的特点,必须在尽可能短的时间内给出飞行试验的数据分析结果,以便试飞工程师安排接下来的飞行试验。
2.1 内存映射文件
内存映射文件,是由一个文件到一块内存的映射。WIN32提供了允许应用程序把文件映射到一个进程的函数(CreateFileMapping)。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。在处理飞行试验海量网络数据时,需不断地提取数据的,进行判断、跳过等文件操作。如果按照以往的文件指针模式去提取网络数据,在数据处理效率上有可能不能满足飞行试验海量网络数据处理的需求。针对快速读取海量原始网络数据,内存映射文件模式提供了解决方法。
2.2 时间矩阵同步分析算法
针对飞行试验原始网络数据,每个单独的网络数据包总是有时间标识的。这些时间标识在整个原始文件中又是无序存放的。飞行试验的科目所需要的数据往往存在于多个网络数据包中,这些网络数据包中的数据往往不会是同一时刻采集的,也就是说网络数据包的时间标识不会是同时刻的。针对网络数据包的这些特性,为快速进行网络数据包的时统分析,设计了时间矩阵同步分析算法。
如图2网络数据包时间顺序所示,原始网络数据包的时间在顺序上是无序的。
时间矩阵同步分析算法是一种高效的同步分析算法,是最快最逼近真实数据的一种的算法。将原始数据时间以1 s为单位,以实际需要的每秒采样率PerCyc为等分值,即将时间轴分PerCyc等分,如图3所示。
假设PerCyc为6,则在1 s内,平均提取6个时间点。以第二个时间点10为例,从图中可以看到,某个实际的网络数据包时间在10附近有08 s,09 s,12 s三点,那么在提取该网络数据包的时候,比较后选择09 s点数值为同步分析的结果数值。以此类推,对需要提取的网络数据包在10 s点的数值都可以比较逼近获得。
2.3 分布式应用中间件网络数据处理
以中间件形式(Active控件等)将网络数据包接口软件发布在分布式网络数据处理系统中。该系统在数据管理、海量数据并发处理和数据分发等方面满足海量飞行试验数据处理需求,通过基于Web的飞行试验数据处理子系统实现对所需数据信息的访问。如图4所示。
(1)客户端ActiveX根据调度服务器列表中的IP及端口号循环尝试建立Socket通信,发出计算请求;
(2)客户端ActiveX与调度服务器建立连接后,调度服务器经过负载均衡计算,返回给客户端ActiveX一个计算服务器的IP及端口号;
(3)客户端ActiveX与计算服务器建立Socket连接;
(4)客户端ActiveX发出执行计算命令;
(5)计算服务器接收到计算命令后,启动确定的分布式中间件执行分布式计算任务,并将状态信息输出到控制台,计算服务器中的状态监控程序用管道技术将分布式中间件的输出作为自己的输入,并通过Socket方式返回给客户端ActiveX;
(6)客户端ActiveX接收任务执行的状态信息,显示给用户;
(7)当分布式中间件执行完毕,计算服务器中的状态监控程序将最后的结果文件通过Socket传给客户端ActiveX;
(8)客户端ActiveX控件将文件保存至客户端,分布式计算结束。
3 结语
本文由面及点地对网络化测试系统中采集记录的网络数据进行了深层次的理解和多视角的剖析。同时为实现对非结构化海量网络数据进行快速分析处理,对数据处理算法和数据处理软件集成进行了研究,从接口软件关键算法设计到数据系统集成提出了解决方法。并且这些方法已经在飞行试验海量网络数据处理软件的设计过程中应用,通过对飞行试验中采集的网络数据进行分析处理,使用这些算法的飞行试验海量网络数据处理软件的处理效率满足飞行试验海量网络数据处理需求,解决了在飞行试验中的非结构海量网络数据快速分析处理问题,为新一代机载网络化测试系统应用于飞行试验提供了技术保障。国外许多航空公司已经在飞行试验中应用网络化测试系统,对非结构海量网络数据分析处理技术也在进行研究。