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
3.再开一个CMD,进入shell后客户端(Android)执行:iperf3 -c 192.168.x.xxx -i 1 -w 1M
(注意将ip地址换成自己电脑的ip)
测试结果如上图,从左至右依次为: 线程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前缀 |