基于WinPcap的战术网络性能管理系统研究
扫描二维码
随时随地手机看文章
引 言
战术网络是由指挥车、战车等多用途车辆,以其车内局域网为节点组成的广域网络。采用各种战术电台通信,其环境情况由于复杂的电磁干扰和快速移动的自身特点而多变,通信保障人员需要随时掌握战场通信网络态势,因此提供一种行之有效的网络性能管理方法至关重要。
网络管理系统的性能指标包括系统吞吐率、链路使用率、网管消息的延迟时间、丢包率、网管消息的冗余度等[1]。网络流量监控是网络性能管理的一个重要方法,包括实时获悉流量信息,长时间的流量收集、分析与统计,为网络管理人员提供带宽规划与趋势分析报告等[2]。
通常采用的网络流量监控技术包括基于网络流量全镜像监测技术、基于SNMP的监测技术和基于NetFlow的监测技术 [3]。上述三种技术各有优缺点,均需依赖网络设备提供硬件支持。战术环境下网络设备通常会处理多种设备的报文交换和其他数据交互,网络设备负荷较重,且通信链路带宽较窄, 研究一种不依赖网络设备、尽可能减少带宽占用的网络流量监测方法能够有效提高战术网络环境中的网络性能管理。
本文针对战术通信环境的特点设计了一种基于 WinPcap[4] 的分布式数据包捕获分析系统,以减轻网络设备负荷,高效、快速的对车内局域网的网络性能状况进行监控和数据包分析, 为通信人员提供决策辅助。通过逐级上报,将各节点网络性能数据汇总到网络管理中心后进行统计分析即可明确全网性能态势。
1 战术环境下的通信系统特点分析
战术通信环境可视为一个广域网,由多种有线网、无线电台网和野战局域网组成。野战局域网分布于不同用途的车辆中,由多种通信设备,一台交换设备(网关)和一至多台战术终端和服务器构成。数据由终端和服务器产生,经网关由通信设备传输至广域网。战术通信以大量电台作为通信手段,但其通信带宽有限,网络拓扑动态变化,移动设备的计算能力有限 [5] ;战场电磁环境复杂,干扰严重,影响数据传输,丢包率较高[6] ;由于网关承担了对外数据交换的任务,导致网关负荷较重。
在战斗和训练过程中,通信保障人员关注的重点是车内局域网对当前需要发送的报文、短语的承载能力,因此网络性能监测的主要目标是网络节点连通性和拓扑变化情况,节点间通信手段的变化情况、通信容量和吞吐量,报文的网络带宽占用率等内容[7],以及性能指标时延、带宽、流量、丢包率等指标[8]。
2 战术环境下的网络性能管理系统设计
针对战术通信系统的特点,采用数据包捕获分析的分布式模型设计网络性能管理系统。战术终端和图形服务器的负荷相对于网关较轻,其配置也较高。将性能管理的工作分配到每一台终端和服务器上,构成一套分布式系统,不仅减轻了网关的计算工作量,还可通过多台计算机的分布式处理弥补计算能力不足的缺陷。
通过数据包捕获的方式从网卡采集数据,不占用有限的带宽,方式灵活,还可对战术网络通信数据进行有针对性的抓取,并统计分析,以图文报表的形式呈现给指挥人员作为解决网络瓶颈、提高网络性能的依据。
2.1 WinPcap简介
WinPcap 是 Politecnico di Torino 的 NetGroup 小 组 开发的基于Win32 平台的数据库捕获和网络分析的基础架构,从UNIX 下的Libpcap 移植而来,用于用户层次的数据包捕获工作。
WinPcap 采用内核过滤机制,主要包括内核级的数据包监听设备驱动程序,低级动态链接库(Packet.dll)和高级系统无关库(Wpcap.dll)。WinPcap 内部结构[9]如图 1 所示。
WinPcap 三个模块的作用如下所示:
(1) NPF(NetgroupPacketFilter,NPF) 是一个虚拟设备驱动程序文件,工作在网卡驱动上,是 WinPcap架构的核心。可过滤数据包,并将这些数据包原封不动地传给用户态模块。
(2) Packet.dll是一个用户级动态链接库,为Win32平台提供了一个公共接口。Packet.dll直接映射了内核的调用,运行在用户层,将应用程序和数据包监听设备驱动程序隔离开,使得应用程序可以不加任何修改的运行在不同版本的Windows 系统中。
(3) Wpcap.dll也是一个用户级动态链接库, 工作在Packet.dll上,与应用程序链接,使用下层Packet.dll提供的服务向应用程序提供完善的监听接口和更加友好、功能更加强大的函数调用[10]。
WinPcap不依赖其它设备提供硬件支持,例如SNMP需要网络设备或通信设备提供设备代理,提供MIB供网络管理系统查询以获取网络流量监控信息。WinPcap可以直接采集本机网卡的原始数据包进行分析和统计,不耗费有限的带宽资源。
2.2 分布式网络性能管理系统设计
针对战术网络的特点,将网络性能管理系统设计分为服务器 / 客户端架构,如图 2 所示。
在车内局域网的每台战术终端部署以 WinPcap 为基础构 成的流量分析客户端。由客户端有针对性地抓取和存储数据 包,按照设置的时间段统计分析数据,并通过图文报表的形 式将本机的网络流量及告警信息实时展现给用户;同时将统计 数据汇总到服务器,由服务器承担全车数据的汇总分析任务。 将所有客户端的流量数据汇总后可将其视为本车节点在广域网 中的交互数据,因此由服务器进一步分析本节点流量数据后可 掌握本车的有效带宽、报文来源、报文协议、长度等,构成了 分布式网络性能管理系统。
车内局域网将本节点的网络性能数据上报至上级网络管 理中心,通过逐级汇总至顶层分析全网性能,由此构成广域网 的网络性能态势信息。
2.3 性能管理系统客户端模块设计
根据性能管理系统的功能区分,将性能管理系统客户端分为数据包抓取、数据包分析、数据存储、人机界面和数据上报/ 汇总五个模块。客户端的模块设计结构和工作流程分别如图 3 和图 4 所示。
数据包抓取分为流量统计和包过滤两部分。流量统计可根据 WinPcap 提供的统计模式实现流量统计功能。包过滤方式无法与统计模式并存,因此采用多线程方式可同时实现两种模式的数据包抓取。
数据包抓取完成后由数据包分析模块根据数据包头的协议类型分析数据包,根据报文、短语协议类型设计了 TCP、UDP、ICMP 等分析对象,通过解析以太网帧获得源、目的IP 地址、端口、包长等详细信息。通过进一步分析可以获取当前网络的性能指标,如根据统计流量计算出当前有效数据量;统计一个时间段内的数据量,结合当前信道的带宽计算出网络拥塞率 ;根据有效数据和主机收发的所有数据计算出有效带宽等。
数据存储模块通过WinPcap转储功能将包数据保存为自定义格式的文件,为适应大数据计算的需要,还可考虑采用非关系型数据库如MongoDB等数据库存储数据。
人机界面模块可以实时为用户展示当前流量信息,采用柱状图、饼图等统计图表呈现直观的数据信息。
数据上报/ 汇总模块分别处于客户端和服务器端,客户端通过数据上报模块将本终端采集的数据汇总后上报至服务器端;服务器端除完成本端数据采集汇总后,还负责将车内局域网的所有统计数据进一步汇总后形成本车局域网的数据统计分析。
2.4 广域网数据的采集分析
通过局域网收集的数据需要上报到上级网络管理中心进行本域的网络性能分析。但受限于战术网络的带宽,无法将大量数据上传到上级管理中心。因此采用按需索取的方式,由上级管理中心主动索取,各节点选择主要的性能数据上报到上级管理中心。根据实际编制可分为一级或多级管理域,由各级管理中心汇集本域内的性能数据进行分析,通过逐级上报的方式汇总到顶层网络管理中心,由此绘制出本广域网的性能态势。同时采用离线方式采集各节点的数据汇总到管理中心。借助大数据技术对海量数据进行挖掘处理,分析各时间段内报文、短语数据的发送特点,优化通信网络结构,合理使用通信设备, 充分发挥通信网络效能。
3 结 语
通过本文设计的分布式网络性能管理系统,可降低对网络设备的依赖,不占用有限带宽,将数据采集、分析等耗费计算机资源的工作分摊到车内局域网的各种终端和服务器上, 减少了计算机的负担,可以有效提高网络性能管理的效率。
通过该系统的设计能够实时监测网络性能,然而由于战术环境带宽的限制,如何以尽量少的开销实时上报性能数据, 车内局域网产生的海量数据如何高效、快捷地汇总并进行数据挖掘处理都是难点,而这也是下一步需要解决的问题。