一、概述
iPerf3是一个开源的网络性能测试工具,用于测量网络带宽和网络延迟。它是iPerf工具的后续版本,主要被网络管理员、工程师以及研究人员用来诊断和调节网络。
- 主要功能:
- 带宽测试:测量网络的最大传输速率(吞吐量),可以用来评估网络链路的质量。
- 双向测试:可以同时在上行和下行方向上进行数据传输测试。
- 多线程测试:支持使用多个并行线程进行测试,以模拟多个连接。
- 协议支持:支持TCP、UDP和其他一些协议,可以测试不同协议下的网络性能。
- 定制传输:允许用户指定传输的持续时间、传输的数据量等参数。
- 工作原理:
iPerf3的工作原理是通过在网络中的一台设备上运行服务器端(Server),在另一台设备上运行客户端(Client),然后客户端与服务器端建立连接,进行数据传输。传输过程中,iPerf3会记录数据传输的速度和其他相关的统计信息。
二、配置交叉工具环境
1、NDK包
官网自行下载linux版ndk解压到Linux服务器上
下面是我使用的r23c链接
平台 | 下载路径 |
---|---|
Windows 64-bit | android-ndk-r23c-windows.zip |
Mac OS X 64-bit | android-ndk-r23c-darwin.dmg |
Linux 64-bit | android-ndk-r23c-linux.zip |
2、配置环境变量
修改配置文件,在配置文件的最后一行加入路径配置:
vim /etc/bash.bashrc
PATH=/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin:"${PATH}"
3、环境变量生效与测试
source /etc/bash.bashrc
aarch64-linux-android28-clang -v
三、源码编译
1、源码
Github地址https://github.com/esnet/iperf下载
2.配置
路径下执行./configure --host=arm-linux CC=aarch64-linux-android28-clang LDFLAGS=-static --prefix=/root/iper3/iperf-3.1.3/aaa
3.编译
make
make install
4.报错问题解决
解决方法1:找到对应src目录下iperf-3.1.3/src/Makefile,
找到 iperf3_profile_CFLAGS 和 iperf3_profile_LDFLAGS 赋值的地方(第613行附近)去掉 -pg 参数,然后执行 make clean 命令 之后再make && make install
解决方法2:找到对应src目录下 iperf-3.1.3/src/Makefile.in 文件,找到 iperf3_profile_CFLAGS 和 iperf3_profile_LDFLAGS 赋值的地方(第613行附近),去掉 -pg参数,然后执行 ./configure 重新生成 的Makefile,再 执行 make clean 命令 之后再make && make install
四、iper3常用命令
以下是一些常见的 iper3命令及其用法:
1.服务端(在服务器上运行)
- 基本的服务端命令
iperf3 -s
- 指定端口号
iperf3 -s -p 5201
- 以服务器模式运行,但仅接受来自指定IP地址的连接
iperf3 -s -B <服务器IP地址>
2.客户端(在客户端上运行)
- 基本的客户端命令,连接到服务器默认端口(5201)
iperf3 -c <服务器IP地址>
- 指定端口号
iperf3 -c <服务器IP地址> -p 5201
- 指定测试的持续时间(例如10秒)
iperf3 -c <服务器IP地址> -t 10
- 指定传输数据的方向(双向)
iperf3 -c <服务器IP地址> -d
- 指定传输的带宽(例如100M)
iperf3 -c <服务器IP地址> -b 100M
- 使用TCP协议进行测试
iperf3 -c <服务器IP地址> --tcp
- 使用UDP协议进行测试,并指定数据包大小
iperf3 -c <服务器IP地址> -u -b 100M --length 1400
- 输出JSON格式的结果
iperf3 -c <服务器IP地址> -J
3.其他选项
- -i <时间>:设置报告间隔(秒)。
- -f <格式>:指定报告带宽的单位(例如k、m、g)。
- –window <大小>:设置TCP窗口大小。