基于wireshark的udp点对点通信性能分析
2018-08-07扬州万方电子技术有限责任公司孙晏清夏小丽
扬州万方电子技术有限责任公司 陶 娅 孙晏清 夏小丽
1 引言
网络通信由于其灵活、带宽大、适应性强的特点已在各行各业中广泛使用,相较于串口、并口、CAN口通信,UDP点对点通信具有自带协议、带宽大、使用简单的特点。但实际场景中是多个设备、多个端口、多种协议、多个子网之间的复杂环境,其无连接、不可靠特性会因为恶劣的网络环境而大幅降低通信质量。为此在实际使用UDP点对点通信时应在实际的使用环境中进行大量的测试分析,从而修改、优化整个网络拓扑,最终达到在最劣情况下满足应用业务需求的目标。
点对点是终端和终端之间的直接通信,而终端的形式和系统种类都比较丰富,为此一种跨平台、兼容好的测试软件是测试业务开展的重要手段。Wireshark是一款开源、跨平台、稳定的专业网络数据抓包和分析工具,经过实际应用的检验,能抓取和分析多种网络数据,可满足点对点间UDP传输通信性能的分析需求。
2 Wireshark功能及应用场景分析
目前终端可能出现的形式有桌面式、服务器式、嵌入式,可能的连接方式为有线/无线直连、有线/无线中转连接,可能运行的操作系统可能为Windows、MAC OS、Linux和UNIX、安卓等,因此面对终端形式、连接方式、运行系统多样化的现状,选取一种体验统一、性能优良、功能丰富的网络数据抓取分析软件就显得尤为重要。
收集、分析了当前市面上可查、通用的网络数据抓取分析软件,从跨平台、费用、分析能力三个角度进行分析,为数据抓取分析软件的选型提供支撑。收集到的软件及其分析如表1所示。
表1 各网络分析工具多维度分析
通过表1的维度分析,可知选取Wireshark作为数据抓取和分析软件是。
Wireshark主要用于一般分析任务、故障任务、安全分析任务、应用程序分析任务,其功能强大,满足点对点的UDP性能测试需求。
(1)一般分析任务可用于:
A.找出一个网络内发送数据包最多的终端;
B.查看终端使用的程序;
C.抓取正常的网络通信数据;
D.验证特有的网络操作;
E.监测尝试连接无线网络的终端;
F.捕获多个子网络的数据;
G.实施无人值守数据捕获。
(2)故障任务分析可用于:
A.创建自定义的故障分析环境;
B.确定路径、客户端和服务延迟;
C.检查应用程序错误相应;
D.可视化网络问题;
E.确定重载缓冲区;
F.找出重复IP;
G.确定WLAN强度;
H.确定程序的网络片段。
(3)安全分析的任务可用于:
A.创建网络取证的自定义分析环境;
B.检查使用非标准端口的应用程序;
C.确定映射远程目标地址;
D.检查恶意畸形帧;
E.找出攻击签名的关键因素。
(4)应用程序分析任务可用于:
A.分析应用程序的协议工作状态;
B.统计应用程序的带宽使用情况。
3 典型UDP通信场景及测试方法
典型的网络场景为直连、有交换无路由、有交换有路由,直连多用于对象始终确定的情况;有交换无路由多用于同一子网内的通信;有交换有路由多用于跨子网间的通信。典型的直连场景如图1所示,有交换无路由的场景如图2所示,有交换有路由的场景如图3所示。
图1 典型直连网络场景
图2 典型有交换无路由网络场景
图3 典型有交换有路由网络场景
图4 基于wireshark的测试流程
从图1、2、3可以看出可以在能安装wireshark的终端上安装,针对不能安装的终端可以采取外接交换机的方式进行监测。在有外部交换机的基础上可以采用ARP欺骗或者端口映射的方式进行监测,ARP欺骗利用MAC地址欺骗,能够使交换机认为存在两个符合目标的终端,从而达到复制数据流的目的;端口映射需要交换机的支持,通过对交换机的配置能够使交换机将待监测的数据流进行相同复制后传给指定的能够安装wireshark的终端,从而达到进行监测的目的。
综上,使用wireshark进行数据捕捉及分析时,应首先分析整个系统的网络拓扑及终端系统,在能够安装wireshark的终端安装软件进行捕捉及分析,若该终端不能安装软件,则利用交换机进行终端数据流的镜像捕获,从而达到分析的目的。基于wireshark的测试流程如图4所示。
4 通信性能测试关键过程
通信性能测试首要是通过网卡过滤确定需要捕获的数据流,以便于分析,否则多个端口、多种协议会影响实际的判断,然后根据需求进行显示过滤,凸显需要分析的数据帧,然后根据需求进行统计分析,最终完成通信性能分析。
(1)网卡过滤操作
网卡过滤也叫捕获过滤,是网络数据经过的第一层过滤器。捕获过滤首先应确定捕获的网卡,然后根据伯克利数据包过滤器语法进行过滤语句编写。假设需捕获192.168.1.15中端口为50001端口的UDP数据,则捕获语句为:host 192.168.1. 15 and udp port 5001。
(2)帧间时延显示过滤操作
Udp数据的帧间时延是通信性能考核的重要指标,对其进行分析需要不仅需要进行显示过滤的编写,还需要进行帧显示时间格式的设置,通过将时间显示格式设置为自上一个显示分组经过的秒数,则会出现帧间间隔,如果此时需要测试时延指标,则可以使用伯克利数据包过滤器语法进行显示过滤语句的编写,如周期帧时延不得超过40ms,则过滤语句为frame.time_delta>0.040。
综上,对UDP点对点通信的测试主要依赖捕获过滤及显示过滤,通过编写过滤语句进行所需数据流的筛选,进而完成通信性能测试。
5 总结
UDP点对点通信性能因为复杂的终端形式、连接方式、操作系统及复杂的网络环境而波动,为评估和优化通信质量,介绍了wireshark的功能和优势,通过分析典型UDP通信场景及通用测试方法为实际测试提供参考,分析了wireshark进行测试的基本步骤即捕获过滤和显示过滤再配合其他功能完成性能测试。为UDP点对点的测试提供支撑,为其他网络数据的捕获及分析提供参考。