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方面:

  1. 测量网络带宽
  2. 报告MSS/MTU值的大小和观测值
  3. 支持TCP窗口值通过套接字缓冲
  4. 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接

UDP方面:

  1. 客户端可以创建指定带宽的UDP流
  2. 测量丢包
  3. 测量延迟
  4. 支持多播
  5. 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)

其他方面:

  1. 在适当的地方,选项中可以使用K(kilo-)和M(mega-)。例如131072字节可以用128K代替。
  2. 可以指定运行的总时间,甚至可以设置传输的数据总量。
  3. 在报告中,为数据选用最合适的单位。
  4. 服务器支持多重连接,而不是等待一个单线程测试。
  5. 在指定时间间隔重复显示网络带宽,波动和丢包情况。
  6. 服务器端可作为后台程序运行。
  7. 服务器端可作为Windows 服务运行。
  8. 使用典型数据流来测试链接层压缩对于可用带宽的影响。

安装

Linux、Unix

使用包管理工具安装:

1
2
apt-get install iperf3
yum install iperf3

Windows

直接下载 Win 版对应的压缩包解压后打开控制台执行即可。

使用

Iperf可以运行在任何IP网络上,包括本地以太网、接入因特网、Wi-Fi网络等。在工作模式上,iperf运行于服务器、客户端模式下,其服务器端主要用于监听到达的测试请求,而客户端主要用于发起测试连接会话,因此要使用iperf至少需要两台服务器,一台运行在服务器模式下,另一台运行在客户端模式下。

服务端

监听 9999 端口并每一秒打印一次带宽状态。

1
2
iperf3 -s -i [间隔时间] -p [监听端口]
iperf3 -s -i 1 -p 9999

客户端

连接客户端 192.168.100.100 的 9999 端口,每一秒打印一次带宽状态,共测试 60 秒。

1
2
iperf -c [服务端地址] -i [间隔时间] -t [总测试时间] -p [监听端口]
iperf -c 192.168.100.100 -i 1 -t 60 -p 9999

命令

在完成iperf安装后,执行“iperf3 –h”即可显示iperf的详细用法。iperf的命令行选项共分为三类,分别是客户端与服务器端公用选项、服务器端专用选项和客户端专用选项。

常用参数

  1. -s–server:iperf服务器模式,默认启动的监听端口为5201,例如:iperf -s
  2. -c–client host:iperf客户端模式,host是server端地址,例如:iperf -c 222.35.11.23
  3. -i–interval:指定每次报告之间的时间间隔,单位为秒,例如:iperf3 -c 192.168.12.168 -i 2
  4. -p–port:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。
  5. -u–udp:表示采用UDP协议发送报文,不带该参数表示采用TCP协议。
  6. -l–len:设置读写缓冲区的长度,单位为 Byte。TCP方式默认为8KB,UDP方式默认为1470字节。通常测试 PPS 的时候该值为16,测试BPS时该值为1400。
  7. -b–bandwidth [K|M|G]:指定UDP模式使用的带宽,单位bits/sec,默认值是1 Mbit/sec。
  8. -t–time:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认10秒。
  9. -A:CPU亲和性,可以将具体的iperf3进程绑定对应编号的逻辑CPU,避免iperf进程在不同的CPU间调度。

通用参数

  1. -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
  2. -p–port:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。
  3. -i–interval:指定每次报告之间的时间间隔,单位为秒,例如:iperf3 -c 192.168.12.168 -i 2
  4. -F:指定文件作为数据流进行带宽测试。例如:iperf3 -c 192.168.12.168 -F web-ixdba.tar.gz

服务端专用参数

  1. -s–server:iperf服务器模式,默认启动的监听端口为5201,例如:iperf -s
  2. -c–client host:如果iperf运行在服务器模式,并且用-c参数指定一个主机,那么iperf将只接受指定主机的连接。此参数不能工作于UDP模式。
  3. -D:Unix平台下将Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。
  4. -R:卸载Iperf服务(仅用于Windows)。
  5. -o:重定向输出到指定文件(仅用于Windows)。
  6. -P–parallel:服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接。

客户端专用参数

  1. -c–client host:iperf 客户端模式,host 是 server 端地址,例如:iperf -c 222.35.11.23
  2. -u–udp:表示采用 UDP 协议发送报文,不带该参数表示采用 TCP 协议。
  3. -b–bandwidth [K|M|G]:指定 UDP 模式使用的带宽,单位 bits/sec,默认值是 1 Mbit/sec。
  4. -t–time:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认 10 秒。
  5. -l–len:设置读写缓冲区的长度,单位为 Byte。TCP 默认为 8KB,UDP 默认为 1470 字节。通常测试 PPS 的时候该值为 16,测试 BPS 时该值为 1400。
  6. -n–num [K|M|G]:指定传输数据包的字节数,例如:iperf3 -c 192.168.12.168 –n 100M
  7. -P–parallel:指定客户端与服务端之间使用的线程数。默认是 1 个线程。需要客户端与服务器端同时使用此参数。
  8. -w–window:指定套接字缓冲区大小,在 TCP 方式下,此设置为 TCP 窗口的大小。在 UDP 方式下,此设置为接受 UDP 数据包的缓冲区大小,用来限制可以接收数据包的最大值。
  9. -B–bind:用来绑定一个主机地址或接口,这个参数仅用于具有多个网络接口的主机。在 UDP 模式下,此参数用于绑定和加入一个多播组。
  10. -M–mss:设置 TCP 最大信息段的值。
  11. -N–nodelay:设置 TCP 无延时。
  12. -V:绑定一个 IPv6 地址。
  13. -d–dualtest:运行双测试模式。将使服务器端反向连接到客户端,使用-L 参数中指定的端口(或默认使用客户端连接到服务器端的端口)。使用参数-r 以运行交互模式。
  14. -L–listenport:指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口。
  15. -r–tradeoff:往复测试模式。当客户端到服务器端的测试结束时,服务器端反向连接至客户端。当客户端连接终止时,反向连接随即开始。如果需要同时进行双向测试,请尝试-d 参数。

其它参数

  1. -h–help:显示命令行参考并退出。
  2. -v–version:显示版本信息和编译信息并退出。

JPerf

jperf是基于iperf开发的图形界面程序,简化了复杂命令行参数的构造,而且还能够保存测试结果,同时实时图形化显示结果。JPerf可以测试TCP和UDP带宽质量。JPerf可以测量最大TCP带宽,具有多种参数和UDP特性。JPerf可以报告带宽,延迟抖动和数据包丢失。

运行环境要求: Java 运行环境

image.png

  1. 客户端设置,电脑作为客户端,连接到服务器中(即我们的开发板作为服务器),服
  2. 务器地址需要填写正确,端口号默认是 5001,并发流默认是 1 个。
  3. 服务器设置,电脑作为服务器,我们的开发板作为客户端,client limit 选项表示仅允许指定客户端连接,Num Connections 指定最大允许连接的数量,为 0 不限制。
  4. 开始和停止 JPerf 的运行。
  5. 兼容旧版本(当 server 端和 client 端版本不一样时使用),默认不勾选,Transmit 设置测试模式,我们一般指定发送的时间,以秒为单位,当然也可以指定发送的数据大小,以字节为单位。
  6. 如果勾选 Dual 表示同时进行双向传输测试,如果勾选 Trade 表示单独进行双向传输测试,默认不勾选。
  7. 指定需要传输的文件以及显示最大 TCP 报文段。
  8. 传输层设置,我们一般用来测试 TCP 连接的速度,Buffer Length 选项用于设置缓冲区大小,TCP Window Size 用于指定 TCP 窗口大小,Max Segment Size 用于设定最大 MTU 值,TCP No Delay 用于设定 TCP 不延时。
  9. 网速显示窗口,以折线图的形式显示出来。
  10. 网速相关数据输出窗口,以文本的形式。

参考

  1. Iperf3网络性能测试工具详解教程 - pycod - 博客园 (cnblogs.com)
  2. iperf3工具测试带宽、上下行速率TCP 测试_iperf3测试上行下行速率-CSDN博客
  3. 第十八节 使用JPerf 工具测试网速-CSDN博客
  4. 局域网测速:iperf实现局域网点对点测试传输速度_iperf3: parameter error - must either be a client -CSDN博客

ierf3 点对点带宽上下行速率工具
https://hexo.leelurker.com/posts/46080
作者
LeeLurker
发布于
2024年8月2日
许可协议