本文介绍如何利用iperf3就行windows 和 ubuntu的带宽测试。本文的写作原因是在进行webrtc通信时发现带宽利用率极低,只有20M左右,而我设置的动态瓶颈带宽最低都有80M。一开始是想利用tcp连接不停发送数据来利用nload查看网络吞吐量观察带宽变化。实现之后发现因为每次写入的数据太小,完全无法达到测试带宽的目的(在一个无限循环种每次循环发送255(8bit),未设置休眠时间)。无奈之下只好放弃这个方案,最后看到iperf3可以完成这个工作。
首先是windows 和ubuntu下载iperf3。注意为避免麻烦最好两端都下载相同版本,windows上我只找到了iperf3,而ubuntu上之前装了一个iperf2,当我这样通信时发现会拒绝连接,最终两个都改成iperf3就能正常连接。
接下来进行一些指令介绍:
iperf3 -c ip_address: 将此端设置为client端,访问ip为ip_adress的server端。如果在server端没有设置端口号,采用默认端口的话就不需要用-p设置端口了,如果修改了最好还是设置一下,不过我并没有进行实验验证是否需要设置。
iperf3 -s:将此端设置为server端,windows和ubuntu的默认端口不同,需要注意区分,运行时会显示默认端口。
-b:设置参数bandwidth,udp默认1M,tcp无限制。
-u :采用udp传输,默认为tcp,所以只有测试udp的时候需要使用,需要配合-b
主要参数就是如上,接下来放一下在windows端的截图。
另外还需有一点要注意一下,我们的设置的目标带宽可能大于我们的自己带宽,这种情况下如果立刻在进行一次测试会发现有很高的丢包率,而且测出来的数据不准确。所以需要稍等一段时间在进行测试,猜测可能在清空消息队列或者把没发出去的都发出去。