网络带宽测试
iperf
是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。 Iperf可以报告带宽,延迟抖动和数据包丢失。利用Iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。
安装
PC
下载地址: here
交叉编译
1 | !/bin/bash |
iperf
1 | iperf --help |
命令行选项 | 描述 |
---|---|
-i, –interval | 设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。 |
-l, –len #[KM] | 设置读写缓冲区的长度。TCP方式默认为8KB,UDP方式默认为1470字节。 |
-p, –port | 设置端口,与服务器端的监听端口一致。默认是5001端口,与ttcp的一样。 |
-u, –udp | 使用UDP方式而不是TCP方式。参看-b选项。 |
Server | |
-s, –server | Iperf服务器模式 |
-c, –client host | 如果Iperf运行在服务器模式,并且用-c参数指定一个主机,那么Iperf将只接受指定主机的连接。此参数不能工作于UDP模式。 |
Client | |
-c, –client host | 运行Iperf的客户端模式,连接到指定的Iperf服务器端。 |
-t, –time # | 设置传输的总时间。Iperf在指定的时间内,重复的发送指定长度的数据包。默认是10秒钟。参考-l与-n选项。 |
-P, –parallel # | 线程数。指定客户端与服务端之间使用的线程数。默认是1线程。需要客户端与服务器端同时使用此参数。 |
-d, –dualtest | 运行双测试模式。这将使服务器端反向连接到客户端,使用-L 参数中指定的端口(或默认使用客户端连接到服务器端的端口)。这些在操作的同时就立即完成了。如果你想要一个交互的测试,请尝试-r参数。 |
示例
带宽测试通常采用UDP模式
,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为100Mbps,先用-b 100M
进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。
TCP
服务器端:
1 | iperf -s |
客户端:
1 | iperf -c 192.168.1.1 -t 60 |
在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。
1 | iperf -c 192.168.1.1 -P 30 -t 60 |
客户端同时向服务器端发起30个连接线程。
1 | iperf -c 192.168.1.1 -d -t 60 |
进行上下行带宽测试。
UDP
服务器端:
1 | iperf -u -s |
客户端:
1 | iperf -u -c 192.168.1.1 -b 100M -t 60 |
在udp模式下,以100Mbps为数据发送速率,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。
1 | iperf -u -c 192.168.1.1 -b 5M -P 30 -t 60 |
客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率。
1 | iperf -u -c 192.168.1.1 -b 100M -d -t 60 |
以100M为数据发送速率,进行上下行带宽测试。