网络图片
最近在做监控视频系统建设和运维相关工作,其中有队友提出缺乏对网络线路带宽和质量的检查和监控手段。作为从业20多年的“资深”工程师,怎么能受得了“没办法”这样的结论呢,于是淡然推出iPerf3这个小工具。
iPerf3是用于主动侦测IP网络上最大可实现带宽的工具。它支持时序、缓冲区、协议(TCP,UDP,SCTP与IPv4和IPv6)有关的各种参数。对于每个测试,它都会报告带宽,丢包和其他参数。
iPerf3与原始iPerf不共享代码,也不向后兼容。iPerf最初由NLANR / DAST开发。iPerf3主要由ESnet/Lawrence Berkeley国家实验室开发。iPerf3采用新版BSD许可(BSD 3-clause License)。
iPerf3的官方网站:http://software.es.net/iperf/index.html
iPerf3的Github网站:https://github.com/esnet/iperf
iPerf3 v3.1.3等已编译版本的下载网站:https://iperf.fr/iperf-download.php
iPerf3 v3.1.3等已编译版本下载
因为这个监控视频系统建设和运维相关的项目主要是Windows平台,下面的介绍以iPerf3 v3.1.3 Windows 64bits版本为例。
将下载得到的“iperf-3.1.3-win64.zip”文件解压缩,得到“iperf3.exe”和“cygwin1.dll”两个文件。将这两个文件复制到“%systemroot%”(大多数Windows版本都是“Windows”这个文件夹,之所以用“%systemroot%”指代,是因为大家的“Windows”文件夹不一定都在“C”盘)文件夹的“System32”文件夹里,如果有权限相关的提示出现,都选择“允许”之类的。
完整的使用请参考官方文档网站:https://iperf.fr/iperf-doc.php
重要的内容说三遍:服务器端和客户端的命令行窗口都要以管理员身份运行!
重要的内容说三遍:服务器端和客户端的命令行窗口都要以管理员身份运行!
重要的内容说三遍:服务器端和客户端的命令行窗口都要以管理员身份运行!
服务器端和客户端的命令行窗口都要以管理员身份运行!
服务器端命令行(其中,-s表示服务器端;-p定义端口号;-i设置每次报告之间的时间间隔,单位为秒,如果设置为非零值,就会按照此时间间隔输出测试报告,默认值为零):
iperf3 -s -p 12345 -i 1
客户端命令行(其中,-c表示服务器的IP地址;-p表示服务器的端口号;-i设置每次报告之间的时间间隔,单位为秒,如果设置为非零值,就会按照此时间间隔输出测试报告,默认值为零;-t设置传输的总时间,Iperf在指定的时间内,重复的发送指定长度的数据包,默认是10秒钟;-w设置套接字缓冲区为指定大小,对于TCP方式,此设置为TCP窗口大小,对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值):
iperf3 -c 192.168.88.248 -p 12345 -i 1 -t 10 -w 100K
客户端的执行结果
说明:我的测试环境是1000Mbps局域网,从上面的截图可以看到发送和接收的平均带宽是813Mbps,损失的部分带宽可能是被IP包的控制信息等占用了。
结束