iperf3使用

一、iperf3介绍

  Iperf是一款基于TCP/IP和UDP/IP的网络性能测试工具,它可以用来测量网络带宽和网络质量,还可以提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。网络管理员可以根据这些信息了解并判断网络性能问题,从而定位网络瓶颈,解决网络故障。

  Iperf是基于Server-Client模式实现的。在测量网络参数时,Iperf区分听者(Audience)和说者(Speaker)两种角色。说者向听着发送一定量的数据,由听者统计并记录带宽、时延抖动等参数。说者的数据全部发送完成后,听者通过向说者回送一个数据包,将测量数据告知说者。这样,在听者和说者两边都可以显示记录的数据。如果网络过于拥塞或误码率较高,当听者回送的数据包无法被说者收到时,说者就无法显示完整的测量数据,而只能报告本地记录的部分网络参数,发送的数据量、发送时间、发送带宽等,像延时抖动等参数在说者一侧则无法获得(因此在报告时,服务器和客户端所得到的信息是不同的)。 

  iperf的带宽测试分为tcp模式和udp模式,这两种模式中又分为上行链路测试和下行链路测试。

TCP模式:测量网络带宽、报告MSS/MTU值的大小和观测值、支持TCP窗口值通过套接字缓冲、当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接

UDP模式:客户端可以创建指定带宽的UDP流、测量丢包、测量抖动、支持多播、当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)

上行链路:客户端发送数据,服务端接受数据

下行链路:服务端发送数据,客户端接受数据

二、iperf3安装

  iper3下载地址:https://iperf.fr/iperf-download.php

2.1 windows下安装iperf3

  windows下安装iperf3很简单,执行要下载可执行文件即可,如下 所示:

  

选择一个版本下载,下载后有一个dll库和一个exe可执行文件,打开windows cmd命令窗口,进入到改可执行文件目录,运行 iperf3 --version,就可以打印版本信息。

2.2  ubuntu下安装iperf3

  sudo apt-get install iperf3

2.3 板端安装iperf3

  官网上已经找不到iperf3源码下载位置,可以从以下链接下载源码:

  https://downloads.es.net/pub/iperf/?spm=a2c6h.12873639.article-detail.7.23f0292a78egbq

  选择一个版本下载,解压出来,这里选择下载的版本是3.17.1。

  1、在源码包目录下新建安装目录iperf-v3.17.1-install

  2、进入源码包,执行配置命令./configure --host=aarch64-linux-gnu --prefix=$(pwd)/../iperf-v3.17.1-install --enable-shared=no   //这里示例选择gnu的编译器,实际根据板端平台芯片选择

  3、make 

  4、make install

  5、将iperf-v3.17.1-install/bin/iperf3  复制到板端即可

  

三、网络性能测试

  有一台设备A和一台服务器B,A的ip为192.168.2.35,B的ip为192.168.2.31。现在要测试一下A和B之间的网络性能。在设备A上用客户端模式,在服务器B上用服务端模式。

3.1 udp上行链路测试

  udp上下链路是iperf3客户端发送数据,iperf3服务器接收。

  1、服务器B:iperf3 -s -i 1    //-s表示作为服务端, -i 1表示每隔一秒报告一次测试结果

  2、设备A: iperf3 -u -c 192.168.2.31 -b 100M  -i 1 -t 100   //-u表示使用udp模式;-c表作为客户端;-b表示使用100Mb带宽测试,-b参数要设置的比实际带宽高,比如实际带宽是20Mb,则-b可以设置成50Mb;-t是测试总时间,这里设置100s,默认10s

  测试结果如下所示

  

 网络性能的四大指标:带宽、时延、抖动、丢包

Interval:总共用时10s

Transfer: 总共传输的数据量1.08GB

Bandwidth: 平均带宽930Mb

Jitter:抖动0.035ms

Lost/Total Datagrams:丢包的个数22/总共传输包141915个 丢包率0.016%,

3.2 udp下行链路测试 

  udp上行链路是iperf3服务端发送数据,iperf3客户端接收。

  1、服务器B:iperf3 -s -i 1    //-s表示作为服务端, -i 1表示每隔一秒报告测试结果

  2、设备A: iperf3 -u -c 192.168.2.31 -b 100M  -i 1 -t 100 -R    //-R 切换数据发送接收模式,例如默认客户端发送,服务器端接收,设置此参数后,数据流向变为客户端接收,服务器端发送

3.3 tcp上行链路 

  1、服务器B:iperf3 -s -i 1    //-s表示作为服务端, -i 1表示每隔一秒报告测试结果

  2、设备A: iperf3  -c 192.168.2.31  -i 1 -t 100

  

tcp模式给出的测试报告比较简单,没有udp模式的抖动和丢包数据

3.4 tcp下行链路 

  1、服务器B:iperf3 -s -i 1    //-s表示作为服务端, -i 1表示每隔一秒报告测试结果

  2、设备A: iperf3  -c 192.168.2.31  -i 1 -t 100 -R

四、参考资料

  1、https://blog.csdn.net/qingzhuyuxian/article/details/124380769

  2、https://blog.csdn.net/u011198687/article/details/123778274

posted @ 2023-01-05 17:00  YYFaGe  阅读(3539)  评论(0编辑  收藏  举报