Iperf3是一款运行于windows命令行环境下的网络带宽流量测试软件,所以它的安装方式不同于其他使用.msi安装文件进行安装的软件。安装步骤如下:

打开Iperf官方下载网页:https://iperf.fr/iperf-download.php,如下图所示:

Iperf3流量测试软件详细安装方法和打流、实战使用教程_下载

Iperf3流量测试软件详细安装方法和打流、实战使用教程_iperf3_02


根据测试的操作系统类型进行选择,本例中选择windows系统版本。如下图所示:

根据操作系统的位数选择下载最新的安装包。下载完成后的几个安装文件包,下面以64位操作系统为例,解压并打开对应64位操作系统的文件夹,可以看到有两个文件:

Iperf3流量测试软件详细安装方法和打流、实战使用教程_iperf3_03

全选并复制这两个文件,打开资源管理器,然后点击窗口上方的路径栏,输入“%systemroot%” ,按下回车键;或者按组合键win+R打开“运行”,输入“%systemroot%” ,按下回车键。

Iperf3流量测试软件详细安装方法和打流、实战使用教程_下载_04

会转到C:\Windows路径之中(不保证全部计算机都是如此,尤其是修改过环境变量之后,但不影响接下来的安装),点击鼠标右键,将之前的两个文件粘贴到该路径之中,如果弹出UAC权限警告,点击“是”即可。安装完成。

将C:\Windows\iperf3.exe添加到系统环境变量下

Iperf3流量测试软件详细安装方法和打流、实战使用教程_下载_05

WIN+R打开cmd,输入iperf3 -v ,显示下述版本号

Iperf3流量测试软件详细安装方法和打流、实战使用教程_流量检测_06

二、打流 当PC1和PC2相互打流,我在PC1使用使用Linux系统(deepin),PC2使用Windows系统(系统无所谓,命令一点点差异);

拓扑如下:

前提条件:PC1和PC2可以ping通

windows系统要进入到iperf3工具的目录下输入命令

1.当PC1—>PC2

PC1当客户端(ip10.10.10.10),PC2当服务器(192.168.0.148)

首先设置PC2,打开终端,设置为服务端 且端口设置为5302 如不设置端口默认端口为5201

iperf3.exe -s -p 5302

PC1打开终端输入命令

sudo iperf3 -c 192.168.0.148(服务器地址) -p 5302(端口) -t 10000s (打多久) -i 1s (间隔) -b 10M (打多少流量)

Iperf3流量测试软件详细安装方法和打流、实战使用教程_iperf3_07

流量就可以建立起来了

三、实验 实验①:单线程测试通过 TCP 流量测试链路带宽(上传)

服务端:100.1.1.1(100M)

客户端:100.1.1.2(100M)

打开cmd,进入iperf的目录,服务端的电脑在相应路径输入iperf3 -s ,将自己设置为服务端,默认监听端口为5201,
可以通过-p参数设置自己想要的端口

服务端配置如下:

Iperf3流量测试软件详细安装方法和打流、实战使用教程_下载_08

客户端设置:iperf3 -c 100.1.1.1

Iperf3流量测试软件详细安装方法和打流、实战使用教程_下载_09

参数说明:

-c 表示以客户端方式启动  iperf,对 iPerf 服务器IP  100.1.1.1 进行测试
-t 打流的时长,默认为10秒
-i 打流的间隔,默认间隔为 1 秒
-p 服务端的监听端口,默认为5201,如果服务端设置了其它的,客户端需要通过此参数设置
Interval 代表打流的间隔,默认间隔为 1 秒
Transfer 代表打流的大小,单位为字节
Bandwidth 代表每秒打流的流量,单位为比特
从最后两行的Bandwidth(为平均值) 可以看出该链路到服务端上传流量实际压测为95.1M 每秒

实验②:单线程测试通过 TCP 流量测试链路带宽(下载)

客户端设置:iperf3 -c 100.1.1.1 -R

Iperf3流量测试软件详细安装方法和打流、实战使用教程_下载_10

重复的参数这里不做描述,只更新新的参数
-R  代表打回传的流量
从最后两行的Bandwidth(为平均值) 可以看出该链路到服务端下载流量实际压测为94.8M 每秒
实验

实验③:多线程测试通过 TCP 流量测试链路带宽(通过多线程可以更好的测试带宽的实际速度)

PS:有些应用场景单线程测试达不到实际带宽,甚至更小,建议使用多线程测试

客户端设置:iperf3 -c 100.1.1.1 -P 10

Iperf3流量测试软件详细安装方法和打流、实战使用教程_流量检测_11

-P  代表线程的数量,默认是1,此次我设置为10
从最后两行的Bandwidth(为平均值) 可以看出该链路到服务端流量实际压测为95.9M 每秒

其它的还有UDP的测试方式,这里就不一一描述了,命令如下:

iperf3 -u -c 100.1.1.1 -b 100M
-u 代表打UDP流量
-b 表示估计带宽,就是最高能跑多少, 100M代表打每个间隔打100M的流量

Iperf3流量测试软件详细安装方法和打流、实战使用教程_流量检测_12

唯一新增的就是下面多出来的一些参数
Jitter      代表网络抖动
Lost        代表丢包的数量
Total       代表你打了多少UDP的包
Datagrams   是Lost和Total的百分比

四、实战

1、测试TCP吞吐量:

服务端: iperf3.exe -s

客户端: iperf3.exe -c 10.0.0.25 -P 5 -i 2 -t 30

Iperf3流量测试软件详细安装方法和打流、实战使用教程_上传_13

我们可以看到,TCP的最大吞吐为940M左右。

Iperf3流量测试软件详细安装方法和打流、实战使用教程_上传_14

在windows自带的性能查看工具为970M左右,大体一致。

Iperf3流量测试软件详细安装方法和打流、实战使用教程_流量检测_15

通过Wireshark抓包,可以发现测试的包全是TCP协议。

此次测试符合预期。

2、UDP测试 服务端: iperf3.exe -s

    客户端:iperf3.exe -u -c 10.0.0.25 -b 1000M -t 30

Iperf3流量测试软件详细安装方法和打流、实战使用教程_上传_16

Iperf3流量测试软件详细安装方法和打流、实战使用教程_上传_17

Iperf3流量测试软件详细安装方法和打流、实战使用教程_iperf3_18

我们可以看到,UDP最大性能也在970左右, 抓包发现全是DUP协议,注意,默认发送的是8192个字节,由于以太网帧最多传输1518字节,所以进行了切片。8192/1480=5.5,所以一次发送需要6个包。

四、总结

iper3是一个轻量级的网络性能测试工具,与chariot相比,简单很多,灵活性高,不需要安装。测试2.5G和10G都可以使用。