iperf---网络测试工具使用方法

iperf3是iperf的3.0版本,是一款网络性能测试工具,在网络中单向传输数据流,根据需要调整传输速率和数据流大小,也可以根据需要报告带宽、延迟抖动和数据包丢失。它支持调节各种参数,比如通信协议,数据包个数,发送持续时间,测试完会报告网络带宽,丢包率和其他参数。iperf3命令是一个执行网络吞吐量测量的工具; 它可以测试TCP或UDP的吞吐量, 要执行iperf3测试,用户必须同时建立一个服务器和一个客户端。

iperf3是基于Client/Server的网络性能测试工具,通常用于测试网络上可达到的最大带宽,它能够测试TCP、UDP及SCTP的带宽质量,可以提供网络吞吐量、网络波动、网络丢包率以及最大传输单元大小等信息,能够帮助我们测试网络性能,定位网络瓶颈。可在Linux、MacOS、FreeBSD、Window、Android、iOS、Docker等平台使用,是一个简单实用的小工具

使用方法:

环境假设:

假设两台设备。

A(客户端)IP地址:192.168.3.95

B(服务端)IP地址:192.168.3.250

案例一:TCP通信测试
在B(服务端)设备启动shell窗口,输入指令

iperf -s -i 1   效果如下:

 

 

 

 

 

TCP上行测试:在A(客户端)设备启动shell窗口,输入指令

iperf3 -c 192.168.3.250 -i 1 -t 10 -b 7M
#作为客户端,连接服务端ip地址192.168.3.250,报告回显间隔1s,测试时间10s,带宽限制为7M。

测试效果如下:

 

 

 

我们这里测试吞吐量的结果为receiver 7.02M左右,是因为我们限制了测试数据的带宽就是7M,说明实际的吞吐量应该是比这个大,测试过程中,如果发现测试的带宽与限制带宽接近,说明限制设置的太小了,需要适当调整-b参数,或者参考硬件厂家给的指标测试。

那么我们调整-b参数到70M,测试结果如下:

可以看出来我们实际TCP上行的速度测试为19.1M/sec,我们还可以增加测试时间来提高测试准确性。

这里还有一点是sender结果为0bits/sec,是因为我们只测试了上行数据,那么如何测试下行通信速度呢?

TCP下行测试:在A(客户端)设备启动shell窗口,输入指令

iperf3 -c 192.168.3.250 -i 1 -t 10 -b 7M -R
#作为客户端,连接服务端ip地址192.168.3.250,报告回显间隔1s,测试时间10s,带宽限制为7M,-R为反向测试,这个参数也是iperf3的主要亮点,支持直接转换数据发送方向
测试效果如下:

 

 

 

我们这里测试TCP下行吞吐量的结果为2.4M左右。

案例二:UDP测试
可以继续使用与案例一服务器,如果未打开,参考案例一的服务器打开方式,注意不要同时打开多个服务器

在B(服务端)设备启动shell窗口,输入指令

iperf -s -i 1
# 作为服务端运行,报告回显间隔时间1s,服务端不区分tcp或udp
效果如下:

 

 

 UDP上行测试:在A(客户端)设备启动shell窗口,输入指令

iperf3 -u -c 192.168.3.250 -b 70M -i 1 -t 10
#作为客户端运行,限制带宽70M,报告回显间隔1s,测试时间10s
测试效果如下:

 

 

这里的数据发现吞吐量结果为0,应该是只显示了下行结果,所以我们看客户端的结果

我们这里测试出UDP上行吞吐量的结果为35.4M/s,延迟抖动(Jitter)为0.36ms,丢包率为12%。

测试过程中,如果发现测试的带宽与限制带宽接近,说明限制设置的太小了,需要适当调整-b参数,或者参考硬件厂家给的指标测试。

这里我们测试了UDP上行速度,那么UDP下行速度如何测试呢?

UDP下行测试:在A(客户端)设备启动shell窗口,输入指令

iperf3 -u -c 192.168.3.250 -b 70M -i 1 -t 10 -R
#作为客户端运行,限制带宽70M,报告回显间隔1s,测试时间10s
测试效果如下:

我们这里测试出UDP上行吞吐量的结果为47M/s,延迟抖动(Jitter)为0.347ms,丢包率为32%。这里要注意,-R是翻转发送者和接收者,所以统计结果都要从接收者这边来统计,否则延迟和丢包统计将没有意义。
————————————————

iperf3常用参数
  1. 通用参数:

    -v	# 查看版本信息
    -p	# 端口
    -f	# 指定带宽输出格式: Kbits、Mbits、Gbits、Tbits
    -i	# 监控报告时间间隔,单位秒(s)
    -J	# Json格式输出结果
    --logfile	# 将结果输出到指定文件中
  2. 服务端参数:    -s	# 以服务器模式运行       -D	# 后台运行服务器模式
  3. 客户端参数:

    -c	# 以客户端模式运行,连接到服务端
    -t	# 传输时间,默认10秒
    -n	# 传输内容大小,不能与-t同时使用
    -b	# 目标比特率(0表示无限)(UDP默认1Mbit/sec,TCP不受限制)
    -l	# 要读取或写入的缓冲区长度(TCP默认128 KB,UDP默认1460)
    -O	# 忽略前几秒
    -R	# 反向模式运行,即服务端发送,客户端接收
    -u	# 使用UDP协议,默认使用TCP协议
    --get-server-output #输出服务端的结果
    

    更多参数请通过帮助命令iperf3 --help

  4.  

iperf3使用

  1. linuxCentOS中使用方法

    1.1 选择一台机器做为服务端,执行以下命令,默认时间1秒,默认端口5201

    # 以服务端模式运行,设置监控时间2秒,并指定端口为8888
    iperf3 -s -i 2 -p 8888
    

    1.2 选择另一台机器做为客户端,执行以下命令进行带宽测速

    # 以客户端模式运行,host:port为服务端信息,输出结果以MB显示,每个1秒打印一次,共计5秒,忽略前3秒的结果,反向模式运行
    iperf3 -c 192.168.137.150 -p 8888 -f m -i 1 -t 5 -O 3 -R
    

    默认正向模式,TCP协议

    UDP协议,进行UDP测试,仅需增加参数-u即可

    iperf3 -c 192.168.137.150 -p 8888 -f m -i 2 -t 10 -O 5 -u -R
    

    指定比特率和传输内容大小,测试结果应无限接近指定值

    iperf3 -c 192.168.137.150 -p 8888 -f m -i 1 -b 1000M -n 100M -u
    

    通过上图测试数据可以发现UDP与TCP的结果差距很大,通过查询网上资料得知,很可能是缓存区buffer有限制导致的,通过增大缓冲区可以避免此情况,使用参数-l

    iperf3 -c 192.168.137.150 -p 8888 -f m -i 1 -b 1000M -n 100M -l 15000 -u
    
  2. Windows中使用方法

    2.1 打开程序所在文件,在空白处按住键盘Shift键不放手,点击鼠标右键,选择“在此处打开命令窗口(W)”,进入命令行窗口

    2.2 选择一台做为服务端,使用Linux系统的服务端也可以,在命令行窗口中执行以下命令

    # 启动服务端,前台或后台运行
    .\iperf3 -s -i 2 -p 6666	# 前台运行
    .\iperf3 -s -i 2 -p 6666 -D # 后台运行
    

    由于Windows版本不同,若命令前未添加.\,可能出现下图中的报错

    2.3 选择一台机器做为客户端,执行测试命令

    iperf3 -c 192.168.137.13 -p 6666 -i 2 -t 10 --get-server-output
    

    客户端默认只显示发送信息,接收信息需在服务端查看,为方便查看,可以使用参数--get-server-output同时输出服务端的信息

  3. Android中使用方法

    3.1 先在Windows系统中启动服务,即2.1的操作

    3.2 开启电脑的移动热点,然后手机连接移动热点

    3.3 打开Network Tools,点击【三】,选择【iperf3】,在输入框中输入电脑的IP地址即可,也可以直接在输入框中填写命令,下面的4个选项分别表示时间间隔、字节大小、TCP\UDP、V4\V6、前三个相当于命令参数-i、-n和-u,支持v4和v6地址;下面展示的就是客户端的运行结果

    下图是服务端运行结果

    移动端网络测试实际就是无线网络测速,会有很大损耗的,并不是握手显示多少速率就能跑多少

 

 

参考:https://blog.csdn.net/t98746194/article/details/108441889?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4-108441889-blog-123778274.pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.3&utm_relevant_index=6

posted @ 2022-11-03 11:16  konglingbin  阅读(6604)  评论(0编辑  收藏  举报