ierf3 点对点带宽上下行速率工具
iperf3 点对点带宽上下行速率工具
简介
下载地址:iPerf - The TCP, UDP and SCTP network bandwidth measurement tool
Iperf是美国伊利诺斯大学(University of Illinois)开发的一种开源的网络性能测试工具。可以用来测试网络节点间(也包括回环)TCP或UDP连接的性能,包括带宽、抖动以及丢包率,其中抖动和丢包率适应于UDP测试,而带宽测试适应于TCP和UDP。
Iperf是一款基于TCP/IP和UDP/IP的网络性能测试工具,可以用来测量网络带宽和网络质量,提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。网络管理员可以根据这些信息了解并判断网络性能问题,从而定位网络瓶颈,解决网络故障。
Iperf 是一款基于命令行模式的网络性能测试工具,是跨平台的,提供横跨Windows、Linux、Mac的全平台支持。iperf 全程使用内存作为发送/接收缓冲区,不受磁盘性能的影响,对于机器配置要求很低。不过由于是命令行工具, iperf 不支持输出测试图形。
Iperf可以测试TCP和UDP带宽质量,具有多种参数和UDP特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。
功能:
TCP方面:
- 测量网络带宽
- 报告MSS/MTU值的大小和观测值
- 支持TCP窗口值通过套接字缓冲
- 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接
UDP方面:
- 客户端可以创建指定带宽的UDP流
- 测量丢包
- 测量延迟
- 支持多播
- 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)
其他方面:
- 在适当的地方,选项中可以使用K(kilo-)和M(mega-)。例如131072字节可以用128K代替。
- 可以指定运行的总时间,甚至可以设置传输的数据总量。
- 在报告中,为数据选用最合适的单位。
- 服务器支持多重连接,而不是等待一个单线程测试。
- 在指定时间间隔重复显示网络带宽,波动和丢包情况。
- 服务器端可作为后台程序运行。
- 服务器端可作为Windows 服务运行。
- 使用典型数据流来测试链接层压缩对于可用带宽的影响。
安装
Linux、Unix
使用包管理工具安装:
1 |
|
Windows
直接下载 Win 版对应的压缩包解压后打开控制台执行即可。
使用
Iperf可以运行在任何IP网络上,包括本地以太网、接入因特网、Wi-Fi网络等。在工作模式上,iperf运行于服务器、客户端模式下,其服务器端主要用于监听到达的测试请求,而客户端主要用于发起测试连接会话,因此要使用iperf至少需要两台服务器,一台运行在服务器模式下,另一台运行在客户端模式下。
服务端
监听 9999 端口并每一秒打印一次带宽状态。
1 |
|
客户端
连接客户端 192.168.100.100 的 9999 端口,每一秒打印一次带宽状态,共测试 60 秒。
1 |
|
命令
在完成iperf安装后,执行“iperf3 –h”即可显示iperf的详细用法。iperf的命令行选项共分为三类,分别是客户端与服务器端公用选项、服务器端专用选项和客户端专用选项。
常用参数
-s
、–server
:iperf服务器模式,默认启动的监听端口为5201,例如:iperf -s
-c
、–client host
:iperf客户端模式,host是server端地址,例如:iperf -c 222.35.11.23
-i
、–interval
:指定每次报告之间的时间间隔,单位为秒,例如:iperf3 -c 192.168.12.168 -i 2
-p
、–port
:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。-u
、–udp
:表示采用UDP协议发送报文,不带该参数表示采用TCP协议。-l
、–len
:设置读写缓冲区的长度,单位为 Byte。TCP方式默认为8KB,UDP方式默认为1470字节。通常测试 PPS 的时候该值为16,测试BPS时该值为1400。-b
、–bandwidth
[K|M|G]:指定UDP模式使用的带宽,单位bits/sec,默认值是1 Mbit/sec。-t
、–time
:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认10秒。-A
:CPU亲和性,可以将具体的iperf3进程绑定对应编号的逻辑CPU,避免iperf进程在不同的CPU间调度。
通用参数
-f
、–farmat
[k|m|g|K|M|G]:指定带宽输出单位,“[k|m|g|K|M|G]”分别表示以Kbits, Mbits, Gbits, KBytes, MBytes,GBytes显示输出结果,默认Mbits,例如:iperf3 -c 192.168.12.168 -f
M-p
、–port
:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。-i
、–interval
:指定每次报告之间的时间间隔,单位为秒,例如:iperf3 -c 192.168.12.168 -i 2
-F
:指定文件作为数据流进行带宽测试。例如:iperf3 -c 192.168.12.168 -F web-ixdba.tar.gz
服务端专用参数
-s
、–server
:iperf服务器模式,默认启动的监听端口为5201,例如:iperf -s
-c
、–client host
:如果iperf运行在服务器模式,并且用-c参数指定一个主机,那么iperf将只接受指定主机的连接。此参数不能工作于UDP模式。-D
:Unix平台下将Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。-R
:卸载Iperf服务(仅用于Windows)。-o
:重定向输出到指定文件(仅用于Windows)。-P
、–parallel
:服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接。
客户端专用参数
-c
、–client host
:iperf 客户端模式,host 是 server 端地址,例如:iperf -c 222.35.11.23
-u
、–udp
:表示采用 UDP 协议发送报文,不带该参数表示采用 TCP 协议。-b
、–bandwidth [K|M|G]
:指定 UDP 模式使用的带宽,单位 bits/sec,默认值是 1 Mbit/sec。-t
、–time
:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认 10 秒。-l
、–len
:设置读写缓冲区的长度,单位为 Byte。TCP 默认为 8KB,UDP 默认为 1470 字节。通常测试 PPS 的时候该值为 16,测试 BPS 时该值为 1400。-n
、–num [K|M|G]
:指定传输数据包的字节数,例如:iperf3 -c 192.168.12.168 –n 100M
-P
、–parallel
:指定客户端与服务端之间使用的线程数。默认是 1 个线程。需要客户端与服务器端同时使用此参数。-w
、–window
:指定套接字缓冲区大小,在 TCP 方式下,此设置为 TCP 窗口的大小。在 UDP 方式下,此设置为接受 UDP 数据包的缓冲区大小,用来限制可以接收数据包的最大值。-B
、–bind
:用来绑定一个主机地址或接口,这个参数仅用于具有多个网络接口的主机。在 UDP 模式下,此参数用于绑定和加入一个多播组。-M
、–mss
:设置 TCP 最大信息段的值。-N
、–nodelay
:设置 TCP 无延时。-V
:绑定一个 IPv6 地址。-d
、–dualtest
:运行双测试模式。将使服务器端反向连接到客户端,使用-L 参数中指定的端口(或默认使用客户端连接到服务器端的端口)。使用参数-r 以运行交互模式。-L
、–listenport
:指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口。-r
、–tradeoff
:往复测试模式。当客户端到服务器端的测试结束时,服务器端反向连接至客户端。当客户端连接终止时,反向连接随即开始。如果需要同时进行双向测试,请尝试-d 参数。
其它参数
-h
、–help
:显示命令行参考并退出。-v
、–version
:显示版本信息和编译信息并退出。
JPerf
jperf是基于iperf开发的图形界面程序,简化了复杂命令行参数的构造,而且还能够保存测试结果,同时实时图形化显示结果。JPerf可以测试TCP和UDP带宽质量。JPerf可以测量最大TCP带宽,具有多种参数和UDP特性。JPerf可以报告带宽,延迟抖动和数据包丢失。
运行环境要求: Java 运行环境
- 客户端设置,电脑作为客户端,连接到服务器中(即我们的开发板作为服务器),服
- 务器地址需要填写正确,端口号默认是 5001,并发流默认是 1 个。
- 服务器设置,电脑作为服务器,我们的开发板作为客户端,client limit 选项表示仅允许指定客户端连接,Num Connections 指定最大允许连接的数量,为 0 不限制。
- 开始和停止 JPerf 的运行。
- 兼容旧版本(当 server 端和 client 端版本不一样时使用),默认不勾选,Transmit 设置测试模式,我们一般指定发送的时间,以秒为单位,当然也可以指定发送的数据大小,以字节为单位。
- 如果勾选 Dual 表示同时进行双向传输测试,如果勾选 Trade 表示单独进行双向传输测试,默认不勾选。
- 指定需要传输的文件以及显示最大 TCP 报文段。
- 传输层设置,我们一般用来测试 TCP 连接的速度,Buffer Length 选项用于设置缓冲区大小,TCP Window Size 用于指定 TCP 窗口大小,Max Segment Size 用于设定最大 MTU 值,TCP No Delay 用于设定 TCP 不延时。
- 网速显示窗口,以折线图的形式显示出来。
- 网速相关数据输出窗口,以文本的形式。