基于PCAP 格式网络数据包分析软件设计

时间:2013-07-08

  摘要:针对飞行试验过程中基于以太网络传输的机载数据采集系统,设计了一个基于VC环境下以太网络数据包分析处理软件.该软件对结构化参数信息分析处理,及以TCP,UDP等协议传输的机载采集的网络数据包进行解析处理,同时对不同时间采样的参数数据按照就近方法进行时间统一处理,提供有效的性能和状态数据的分析.经过软件测试后,该软件能够正确的提取参数数据,且效率较好.

  0 引言

  目前,大量应用于飞行试验的Kam500机载测试系统,采集记录的飞行试验数据格式为标准PCM 数据.

  PCM 格式数据由重复出现的长帧组成,每个长帧的长度是固定的,每个长帧包含若干个短帧.在网络化测试系统中网络数据包以EthernetⅡ协议广播.采集记录的飞行试验数据为网络数据包格式.每个网络数据包的大小都可以不同,并且每个网络数据包中的参数个数也可以不同.根据记录器的不同,记录的网络数据包结构可以是PCAP格式或者IRIG106-10格式.

  以太网作为一种原理简单,便于实现同时又价格低廉的局域网技术已经成为业界的主流.而更高性能的快速以太网和千兆以太网的出现更使其成为有前途的网络技术.以太网的帧是数据链路层的封装,网络层的数据包被加上帧头和帧尾成为可以被数据链路层识别的数据帧(成帧).虽然帧头和帧尾所用的字节数是固定不变的,但依被封装的数据包大小的不同,以太网的长度也在变化,其范围是64~1 518 B.用户数据报协议(User Data Protocol,UDP)是与TCP 相对应的协议.它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去.UDP适用于只传送少量数据.对可靠性要求不高的应用环境.它的通信效率高,但它的可靠性不如TCP协议高.TCP是面向连接的通信协议,通过三次握手建立连接,通信完成时要拆除链接,只能用于点对点的通信.它是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性.该协议将包排序并进行错误检查,数据包中包括序号确认,对未按照顺序收到的包可以被排序,而损坏的包可以被重传.以上的机制有效地保证数据传输的正确性.本文是在以Kam500 作为前端数据采集系统,经由网络交换机对Kam500采集的飞行数据进行打包发送到数据记录器,记录器以PCAP格式对采集的网络数据包进行记录.

  1 PCAP 格式文件结构概述

  1.1 PCAP文件的整体结构和头结构

  PCAP 格式文件的整体结构及PCAP 头的结构如图1所示.

  PCAP文件头24 B各字段说明:

  Magic:4 B 0x1A 2 B 3C 4D,用来标示文件的开始;

  Major:2 B 0×0200,当前文件主要的版本号;

  Minor:2 B 0×0400,当前文件次要的版本号;

  ThisZone:4 B,当地的标准时间;

  SigFigs:4 B,时间戳的;

  SnapLen:4 B,的存储长度;

  LinkType:4 B,链路类型.

  1.2 Packet包头和Packet数据组成

  PCAP格式文件中数据包的组成与数据包头的结构如图2所示.

  字段说明如下:

  Timestamp:时间戳高位,到s;

  Timestamp:时间戳低位,到μs;

  Caplen:当前数据区的长度,即抓到的数据帧长度,由此可以得到下一个数据帧的位置;

  Len:离线数据长度,网络中实际数据帧的长度,一般不大于Caplen,多数情况下和Caplen数值相等.

  Packet 数据即Packet(通常就是链路层的数据帧)具体内容,长度就是Caplen,这个长度的后面,就是当前PCAP 文件中存放的下一个Packet 数据包,也就是说:

  PCAP文件里面并没有规定捕获的Packet数据包之间有什么间隔字符串,下一组数据在文件中的起始位置.需要靠个Packet包确定.,Packet数据部分的格式其实就是标准的网络协议格式.

  2 软件的设计思路及结构框图

  2.1 软件设计关键技术

  因网络数据包在网络链路中传输可能出现时间滞后,数据顺序打乱甚至丢包等问题.为了解决在数据解析当中,解析数据在时间上是顺序,经过多次软件调试试验,选择定长时间5 s为时间窗,对采集到的数据进行分析排序输出,保证了因网络延迟导致的采集数据点回跳的问题.对于第N 个时间窗出现N-1个时间窗的时间点参数,本程序进行了剔除.在网络数据包解析过程中,采用了内存映射技术,通过内存映射建立了原始网络数据包到内存的映射,然后读取原始数据进行提取分析处理.该方法因减少I/O操作时间,有效的提高了处理速度,能提高处理速度20%~30%.

  2.2 软件设计结构框图

  该分析软件采用模块化设计思路,实现对KAM 采集器采集,网络传输的数据的分析处理.软件主要包括三个模块,分别为PCAP头信息分析模块,数据提取.校准.计算输出模块及参数校准信息提取模块.通过解析PCAP头信息结构,提取到参数数据的原始码制数据,然后根据提取的参数校准信息,对参数进行校准,计算输出物理量数据.软件的结构框图如图3所示.

  3 网络包数据分析软件设计

  3.1 软件主程序设计

  该软件通过分析PCAP 格式文件对数据进行解析提取,首先解析PCAP 头结构,按照头结构来寻找文件开始标识,并确定数据包的链路类型,进行文件的头结构解析处理.其次解析网络数据包的包头,确定数据包的长度,读取一个指定该长度的完整的数据包结构,该长度的数据包含以太头结构,目的和源端物理地址.IP地址.端口号等信息,然后是接收的指定传输协议和长度的块数据,按照提取参数信息提取参数的采集数据,输出结果数据文件,其主流程图如图4所示.

  3.2 提取参数信息分析

  在网络数据包的分析软件中,对所要提取参数数据需提供基本的参数信息,比如参数的位置.长度.参数取位.校线.校准方式以及结构体的参数信息等,通过提取参数信息确定参数数据信息,来提取参数数据.提取参数信息的分析是网络数据包数据提取的基础.其参数分析的流程图如图5所示.

  4 软件的测试

  在基于PCAP 格式的以太网包络数据分析软件设计的基础上,对该软件进行了软件的功能.效率.正确性.处理异常的能力等方面进行了测试,经过测试改进,该软件运行正常,并能够正确的解析PCAP格式的以太网数据包数据.该软件的运行界面如图6所示.

  5 结语

  本文在VC软件开发环境下实现了基于标准以太网传输的PCAP 格式的网络数据包分析处理软件的设计.并对该软件进行了软件测试工作,经过设计和测试,该软件能够有效地处理分析基于以太网传输的采集的PCM数据,实现了网络包形式的PCM数据解析,为飞行试验中基于网络采集的试飞数据处理提供了方便.

上一篇:基于PC104 总线的实时信号采集处理系统
下一篇:基于MSP430 单片机的便携式气象仪设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料