0%

使用iperf测试网络性能

使用iperf测试网络性能

Iperf是美国伊利诺斯大学(University of Illinois)开发的一种开源的网络性能测试工具。
可以用来测试网络节点间(也包括回环)TCP或UDP连接的性能,包括带宽、抖动以及丢包率
其中抖动和丢包率适应于UDP测试,而带宽测试适应于TCP和UDP

TCP支持:

  • Measure bandwidth
  • Report MSS/MTU size and observed read sizes.
  • Support for TCP window size via socket buffers.
  • Multi-threaded if pthreads or Win32 threads are available. Client and server can have multiple simultaneous connections.

UDP支持:

  • Client can create UDP streams of specified bandwidth.
  • Measure packet loss
  • Measure delay jitter
  • Multicast capable
  • Multi-threaded if pthreads are available. Client and server can have multiple simultaneous connections.

所以,服务端通过-u来区分监听协议,而TCP协议不能计算时延与丢包率,而且不能指定发送带宽。

服务端

1
$ iperf3 -s

客户端

1
2
$ iperf3 -c IP
$ iperf3 --client IP --bandwidth 900M --window 1M

需要使用TCP来测试带宽的时候,需要指定TCP的窗口大小,

窗口的大小即网络通道的容量 capacity = bandwidth x round-trip-time

其中round-trip-time可以通过ping来得到。

参数

1
2
3
4
5
6
7
8
-c --client 标记客户端
-i --interval 设定输出值间隔
-u --udp 使用传输协议为UDP
-t --time 设定传输时间
-F --file 指定传输文件
-P --parallel 指定进程数
-b --bandwidth 指定带宽
-w --window 指定window大小,For TCP, this sets the TCP window size;For UDP it is just the buffer which data
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道