WANem弱网环境模拟工具的使用探索

Posted dvlinker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WANem弱网环境模拟工具的使用探索相关的知识,希望对你有一定的参考价值。

目录

1、WANem简介

2、使用WANem工具时需要用到的其他辅助工具

3、WANem网损环境部署与测试场景

3.1、WANem网损环境部署

3.2、测试场景与测试参照

4、模拟网络损伤分析

4.1、丢包

4.2、延时

5、总结


       WANem工具可以对网络损伤进行模拟,该工具在软件系统的网络测试中有着广泛的应用,可以模拟网络丢包、网络抖动。那么WANem所模拟的网络损伤对数据包会对网络环境和软件系统造成怎样的影响呢?本文将对WANem进行详细的分析探索,以便更好地了解WANem工具的特性,为我们的软件测试服务。

1、WANem简介

       WANem全称Wide Area Network emulator,广域网网络仿真器(弱网络环境模拟工具),是一款基于GPL授权的开源软件工具。WANem旨在在局域网环境下模拟广域网/互联网的真实网络环境体验。使用可用于模拟广域网的网络环境特性,如网络延迟、数据包丢失、数据包损坏、断开连接、数据包重新排序、抖动等。

       测试软件系统时,很多时候会因为业务的需要,需要在局域网环境中模拟Internet互联网的网络环境,目的是尽可能模拟出真实环境中的用户请求和数据交互,以检验软件系统对弱网环境的适应性。局域网的网络特点是高带宽、低延迟、丢包率低;Internet相对局域网而言,Internet的网络特点是低带宽、高延迟、有丢包且网络抖动。因此我们需要寻找一款工具,能人为地去控制带宽、丢包率、抖动、延迟。弱网络环境模拟工具WANem,是个不错的选择,今天我们就来详细讲述一下该工具的使用。

2、使用WANem工具时需要用到的其他辅助工具

       在使用WANem是,还需要使用到WireShark和iPerf两个辅助分析工具。

       网路抓包分析工具WireShark,在辅助分析时主要用于分析包流量、丢包率、两个包之间的平均间隔时间,以及包乱序的情况。

Wireshark是一个网络数据包抓取及分析工具,是排查网络问题的利器。使用该工具可以抓取网卡上发出去及收到的所有网络数据,通过分析这些网络数据包可以去排查网络上的故障,也可以去分析软件交互数据上的问题。作为IT从业人员,必须要掌握该工具的使用。

        网络性能测试工具iPerf,在辅助分析时主要用于分析网络的丢包率、抖动情况。

iPerf是一个网络性能测试工具,使用iPerf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。

3、WANem网损环境部署与测试场景

3.1、WANem网损环境部署

        部署的环境如下所示:

在两台PC上均安装要测试的客户端软件与iperf工具;若需要设置PC A端的客户端软件的上行(发送)丢包、延时、抖动,则选择eth0进行相关设置;若需要设置PC A端的客户端软件的下行(接收)丢包、延时、抖动,则选择eth1进行相关设置。

3.2、测试场景与测试参照

3.2.1、测试场景

       客户端A和客户端B之间进行点对点opus纯音频会议, 客户端A麦克风采集声音,扬声器静音; 客户端B扬声器播放声音,麦克风哑音。在 客户端B所在PC抓取数据包并对音频包进行分析。

注:opus没有丢包重传机制。

3.2.2、测试参照

       客户端的音频包发包间隔是固定的,每20ms发一个音频包,即每秒50包。未设置网络损伤的情况下抓包,得到音频包流量如下所示:

从上图可以看出,未设置网络损伤情况下,客户端的收包流量是每秒50包。‘

       Wireshark中丢包率统计如下所示:

从上图可以看到,未设置网络损伤情况下丢包率Lost RTP pacekets的统计结果0.00%,网络状况良好没有丢包。

       两台PC机上分别安装iperf工具,PC A运行iperf的客户端命令以768K的码率发udp包,PC B运行iperf的服务器端命令,统计网络状况的结果报告,未设置网络损伤情况下iperf工具测试网络结果如下所示:

 服务器端收到的udp包在每秒768K左右,Jitter值均为0.000ms表示无网络抖动,Datagrams均为0%表示无丢包,网络状况良好。

4、模拟网络损伤分析

4.1、丢包

        纯音频点对点OPUS会议,WANem模拟丢包20%,音频包流量:

图中,纵坐标代表每秒包的流量个数,可以看到丢包20%情况下,音频包流量曲线明显没有达到50的刻度,音频包流量在每秒50包以下。

       下面我们来看一下纯音频点对点OPUS会议,模拟丢包20%,Wireshark音频丢包统计:

从图中可以看到丢包率Lost RTP pacekets的统计结果20.55%,平均丢包率和设置的20%的丢包率非常接近。图中粉色底纹的条目为Wrong sequence number,结合前面的Sequence序号来看,出现Wrong sequence number的前面均有丢包情况,丢包1个到几个不等,丢包较随机,且没有突发丢包的情况出现,因此WANem模拟的丢包为随机丢包。

       iperf工具的丢包统计情况:

从上图看到,经过WANem后服务器端收包的Bandwidth明显减小,丢包率统计在12%~32%之间,丢包率统计值在20%左右较为集中。WANem模拟丢包没有造成网络抖动。

4.2、延时

4.2.1、单纯延时

       WANem单纯设置延时500ms,点对点OPUS纯音频会议,音频包流量统计:

音频包流量为一条直线,说明发包间隔较均匀,500ms的延时对所有包起作用。

两个音频包之间的平均时间间隔在20ms左右,波动很小。

       我们再看看单纯设置延时500ms,点对点OPUS纯音频会议,音频包Wrong Number的统计情况:

Lost RTP pacekets值为1,仅有一个Wrong sequence number是由于上一个包丢掉了造成的,没有乱序现象。

        iperf工具的测试结果如图4-2-4所示:

从上图中看到,经过WANem后服务器端收包的Bandwidth和768K较为接近,丢包率统计为0%,Jitter值均为0.000ms表示无网络抖动,单纯的WANem模拟延时不会造成网络抖动及丢包。

4.2.2、延时+抖动

       延时500ms,抖动10ms,点对点OPUS纯音频会议,流量统计:

音频包流量较平稳,在每秒50包上下浮动。两个包的每秒平均时间间隔如下图所示:

对比上面两个图发现,当设置延时500ms+抖动10ms的时候,两个包的每秒平均时间间隔的曲线比单纯设置500ms延时的情况波动略大,有轻微的抖动。

       下面我们再结合音频包Wrong Number统计看一下抖动10ms是否会造成包乱序现象,统计如下:

上图仅为截取的一段有代表性的统计结果,我们可以看到粉色底纹处的两个相邻的包Sequence号是连续的,但顺序是颠倒的,由此可知,延时500ms加10ms的抖动情况下没有造成丢包,但有乱序情况出现,乱序不严重,仅为偶尔的相邻的两个包做乱序。

       ipef工具统计的网络情况:

从上图中看到,经过WANem后服务器端收包的Bandwidth和768K较为接近,丢包率统计为0%,Jitter值均为10ms以内, WANem模拟延时500ms+抖动10ms的情况会造成轻微的网络抖动,不会造成丢包。

       如果加大抖动值,会出现怎样的乱序呢?是否会造成丢包呢?下面我们继续抓包分析。延时500ms,抖动400ms,点对点OPUS纯音频会议,包流量情况:

音频包流量较平稳,但比抖动值为10ms的情况,流量波动要严重一些。

对比上面两个图会发现,当设置延时500ms+抖动400ms的时候,两个包的每秒平均时间间隔的曲线比单纯设置抖动10ms的情况明显波动大,有明显的抖动。

       下面我们再结合音频包Wrong Number统计看一下抖动10ms会造成怎样的包乱序现象。

上图仅为截取的一段有代表性的统计结果,我们可以看到统计数据全部是粉色底纹,再来观察Sequence号发现顺序比较错乱,由此可知,延时500ms加400ms的抖动情况下包乱序情况较严重。

        ipef工具统计的网络情况如下:

从上图可以看到,经过WANem后服务器端收包的Bandwidth在700K左右到800K左右之间有波动,丢包率统计不为0%,Jitter值有较大的波动, WANem模拟延时500ms+抖动400ms的情况会造成严重的网络抖动。

5、总结

       从上面的测试,我们可以得到结论:

1)WANem模拟丢包为随机丢包,不会造成网络抖动、包的乱序;
2)WANem单纯模拟延时,针对所有经过的包加固定的延时值,不会造成网络的抖动、包的乱序;
3)WANem模拟延时+抖动的情况,抖动值设置越大(抖动值的设置小于延时值),网络的抖动越严重。

以上是关于WANem弱网环境模拟工具的使用探索的主要内容,如果未能解决你的问题,请参考以下文章

工具之广域网模拟器WANEM使用介绍

WANem广域网环境模拟

弱网测试(资料罗列篇)

网络模拟器WANem使用配置图文教程

charles如何模拟弱网环境

[转]FaceBook ATC 弱网测试工具环境搭建