软件介绍/功能
Iperf官方版是一个网络性能测试工具。Iperf官方版可以测试TCP和UDP带宽质量。Iperf官方版还可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。
软件功能
TCP和SCTP
测量带宽
报告MSS/MTU大小和观察到的读取大小。
通过套接字缓冲区支持TCP窗口大小。
用户数据报协议(User Datagram Protocol)
客户端可以创建指定带宽的UDP流。
测量数据包丢失
措施延迟抖动
支持多播
跨平台:Windows,Linux,Android,MacOS X,FreeBSD,OpenBSD,NetBSD,VxWorks,索拉里斯,...
客户端和服务器可以同时有多个连接(-P选项)。
服务器处理多个连接,而不是在一次测试后退出。
可以运行指定的时间(-t选项),而不是传输一定量的数据(-n或-k选项)。
以指定的时间间隔(-i选项)打印定期、中间带宽、抖动和丢失报告。
将服务器作为守护程序运行(-D选项)
使用有代表性的流来测试链路层压缩如何影响您可实现的带宽(-F选项)。
服务器同时接受单个客户端(iPerf3)和多个客户端(iPerf2)
新增:忽略TCP slowstart (-O选项)。
New:设置UDP和(新)TCP的目标带宽(-b选项)。
新增:设置IPv6流标签(-L选项)
新:设置拥塞控制算法(-C选项)
新增:使用SCTP而不是TCP ( - sctp选项)
New:以JSON格式输出(-J选项)。
新增:磁盘读取测试(服务器:iperf3 -s /客户端:iperf3 -c testhost -i1 -F文件名)
新增:磁盘写入测试(服务器:iperf3 -s -F文件名/客户端:iperf3 -c testhost -i1)
软件特色
1、测量网络带宽
2、报告MSS/MTU值的大小和观测值
3、支持TCP窗口值通过套接字缓冲
4、当P线程或Win32线程可用时,支持多线程。客户端与服务端5、支持同时多重连接
使用方法
安装Iperf
对于windows版的Iperf,直接将解压出来的iperf.exe和cygwin1.dll复制到%systemroot%目录即可
对于linux版的Iperf,请使用如下命令安装
gunzip -c iperf-.tar.gz | tar -xvf -
cd iperf-
./configure
make
make install
使用Iperf(以windows版本为例)
在命令提示符中输入iperf命令即可运行Iperf,使用命令Iperf –help可以查看iperf的帮助(可以参考下面Iperf命令)。
测试单线程TCP
在服务端运行iperf,输入命令iperf –s –p 12345 –i 1 –M 以在本机端口12345上启用iperf
在客户端运行iperf,输入命令iperf –c server-ip –p server-port –i 1 –t 10 –w 20K,其中参数说明如下:
-c:客户端模式,后接服务器ip
-p:后接服务端监听的端口
-i:设置带宽报告的时间间隔,单位为秒
-t:设置测试的时长,单位为秒
-w:设置tcp窗口大小,一般可以不用设置,默认即可
测试单线程UDP(默认带宽)
在服务端运行iperf,输入命令iperf –s -u –p 12345 –i 1 以在本机端口12345上启用iperf,并运行于udp模式
在客户端运行iperf,输入命令iperf -c server-ip -p server-port -i 1 -t 10 -b,其中参数说明如下:
-c:客户端模式,后接服务器ip
-p:后接服务端监听的端口
-i:设置带宽报告的时间间隔,单位为秒
-t:设置测试的时长,单位为秒
-b:设置udp的发送带宽,单位bit/s
Iperf命令
客户端与服务器共用选项
-f, --format [bkmaBKMA] 格式化带宽数输出。支持的格式有: 'b' = bits/sec 'B' = Bytes/sec 'k' = Kbits/sec 'K' = KBytes/sec 'm' = Mbits/sec 'M' = MBytes/sec 'g' = Gbits/sec 'G' = GBytes/sec 'a' = adaptive bits/sec 'A' = adaptive Bytes/sec
自适应格式是kilo-和mega-二者之一。除了带宽之外的字段都输出为字节,除非指定输出的格式,默认的参数是a。
注 意:在计算字节byte时,Kilo = 1024, Mega = 1024^2,Giga = 1024^3。通常,在网络中,Kilo = 1000, Mega = 1000^2, and Giga = 1000^3,所以,Iperf也按此来计算比特(位)。如果这些困扰了你,那么请使用-f b参数,然后亲自计算一下。
-i, --interval # 设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。
-l, --len #[KM] 设置读写缓冲区的长度。TCP方式默认为8KB,UDP方式默认为1470字节。
-m, --print_mss 输出TCP MSS值(通过TCP_MAXSEG支持)。MSS值一般比MTU值小40字节。通常情况
服务器端专用选项
-s, --server perf服务器模式
-D (v1.2或更高版本) Unix平台下Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。
-R(v1.2或更高版本,仅用于Windows) 卸载Iperf服务(如果它在运行)。
-o(v1.2或更高版本,仅用于Windows) 重定向输出到指定文件
-c, --client host 如果Iperf运行在服务器模式,并且用-c参数指定一个主机,那么Iperf将只接受指定主机的连接。此参数不能工作于UDP模式。
-P, --parallel # 服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接。
客户端专用选项
-b, --bandwidth #[KM] UDP模式使用的带宽,单位bits/sec。此选项与-u选项相关。默认值是1 Mbit/sec。
-c, --client host 运行Iperf的客户端模式,连接到指定的Iperf服务器端。
-r, --tradeoff 往复测试模式。当客户端到服务器端的测试结束时,服务器端通过-l选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。当客户端连接终止时,反向连接随即开始。如果需要同时进行双向测试,请尝试-d参数。
-t, --time # 设置传输的总时间。Iperf在指定的时间内,重复的发送指定长度的数据包。默认是10秒钟。参考-l与-n选项。
-L, --listenport # 指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口。
-P, --parallel 线程数。指定客户端与服务端之间使用的线程数。默认是1线程。需要客户端与服务器端同时使用此参数。
软件问答
如何验证网络是否正常?
1、在服务端打开iperf带宽测试软件
2、输入-s,回车执行命令
3、在客户端打开软件,输入-c且指定ip地址,回车执行,得到结果
perf带宽测试软件用文件作为数据源无效?
先设定目标ip,然后指定文件即可
TCP发不出去包?
设置宽带上限后重试即可
历史版本
- Iperf3.17.1 正式版 多语言 win7或更高版本 2024-09-23
- Iperf3.0.11 正式版 多语言 win7或更高版本 2022-12-19