iperf 概述
iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能。Iperf具有多种参数和UDP特性,可以根据需要调整。Iperf可以报告带宽,延迟抖动和数据包丢失。
测试环境搭建
windows 端下载链接:
https://iperf.fr/download/windows/iperf-3.1.3-win64.zip
Android 端下载链接:
链接:https://pan.baidu.com/s/1jQM3mqPYeLBWtwtUlyCzlw
提取码:r05t
1.windows下载对应软件包后解压
2.Android端安装下载的apk
测试步骤
1.服务器端(windows)&客户端(Android)连接同一网络
2.打开CMD,服务器端(windows)进入刚才iperf的解压路径中后执行:iperf3 -s

image.png
3.再开一个CMD,进入shell后客户端(Android)执行:iperf3 -c 192.168.x.xxx -i 1 -w 1M
(注意将ip地址换成自己电脑的ip)

image.png
测试结果如上图,从左至右依次为: 线程id 时间 接收数据大小 每秒大小 延时 丢包/总包 丢包率
iperf 测试AndroidWi-Fi吞吐量基本流程就是这样,谢谢~
附录:常用命令
| H | H |
|---|---|
| 公用命令 | : |
| -p, | --port 服务端监听或客户端连接的端口(客户端与服务端应该指定相同的端口,默认5201) |
| -f, | --format 格式化带宽输出:Kbits, Mbits, Kbytes, Mbytes |
| -i, | --interval 以秒为单位周期性输出带宽报告,默认显示时间间隔为1秒,0表示不显示 |
| -F, | --file name 传输或接收特定的文件(客户端从文件中读取然后写进网络,代替使用随机数据;服务端从网络读取然后写进文件,代替丢弃数据) |
| -B, | --bind 绑定特定的接口 |
| -V, | --verbose 显示更多详细的输出 |
| -J, | --json 以JSON格式输出 |
| -d, | --debug 显示调试输出信息 |
| -v, | --version 显示iperf的版本信息 |
| -h, | --help 显示iperf的帮助信息 |
| 服务端专用 | : |
| -s, | --server 以server模式启动,默认TCP方式,例如 iperf3 -s |
| -D, | --daemon 在后台以守护进程启动服务端 |
| -I, | --pidfile file 写PID文件 |
| -1, | --one-off 处理一个客户端连接,然后退出 |
| 客户端专用 | : |
| -c, | --client 主机以client模式启动 |
| -u, | --udp 使用UDP而不是TCP |
| -b, | --bandwidth 指定目标带宽(0表示无限制),UDP默认为1Mbit/sec,TCP无限制 |
| -t, | --time 以秒为单位指定传输时间,默认10秒 |
| -n, | --bytes 指定传输的字节数,指定字节传输完,传输过程结束(可以代替-t参数以说明何时结束传输) |
| -k, | --blockcount 指定传输的数据包数(代替-t或-n参数)(-t, -n, -k参数都是指定传输结束的条件,所以不能同时指定) |
| -l, | --len 读写缓冲区的大小(TCP默认128KB,UDP默认8KB) |
| -P, | --parallel 运行的并行客户端流的数量 |
| -R, | --reverse 以颠倒模式启动(服务端发送,客户端接收) |
| -w, | --window 设置窗口或者socket缓冲大小,默认8KB |
| -M, | --set-mss 设置TCP/SCTP最大分片大小(MTU - 40bytes) |
| -N, | --no-delay 设置TCP/SCTP 无延时 |
| -4, | --version4 仅使用IPv4协议 |
| -6, | --version6 仅使用IPv6协议 |
| -S, | --tos N 设置IP首部TOS字段服务类型 |
| -Z, | --zerocopy 使用发送数据的“zero copy”方法 |
| -O, | --omit N 省略最初的N秒 |
| -T, | --title str 在每个输出行显示str前缀 |