iperf3.1源码解析笔记(1)-网络压力测试工具iperf的使用

文章目录

          • 一 iperf背景与下载
          • 二 安装及使用方式
          • 三 注意事项

一 iperf背景与下载

iperf用于测试网络性能,支持TCP、UDP和SCTP。可得到网络带宽、延迟抖动和报文丢包的实际测试数据。

  • iperf官网:iperf.fr
  • iperf源码下载地址:https://github.com/esnet/iperf
  • Windows版本二进制文件下载:32位&64位

Linux系统terminal终端下载指定版本:

  1. 执行git clone https://github.com/esnet/iperf.git 默认下载最新版本。
  2. cd iperf-3.x 进入目录,执行git tag查看历史版本。
  3. 执行git checkout 3.1.3 回退到3.1.3的历史版本。
二 安装及使用方式

iperf既可以作为服务端,也可以作为客户端运行,同时存在Windows、Linux等多个版本。本文以Windows服务端、Linux客户端为例说明iperf的使用方法。

2.1 网络连接和IP配置

服务端与客户端的网口通过网线和交换机连接,两者IP需要保持在同一网段,如下所示:

Windows系统终端 Linux系统终端
192.168.123.244 192.168.123.24

2.2 服务端iperf的安装与使用

  1. 关闭Windows系统的防火墙与杀毒软件或允许iperf通过防火墙。
  2. 拷贝iperf-3.0.11-win32.rar并解压至Windows系统的的英文路径的目录(如D盘根目录)。
  3. 按"win + R"打开Dos窗口,执行“d:” 进入D盘,再执行“cd iperf-3.0.11-win32”进入iperf3.exe所在目录。
  4. 执行iperf3 -s (或iperf3 -s -p 6100, 以指定端口号)运行iperf作为服务端,执行效果如下图所示:
    iperf3.1源码解析笔记(1)-网络压力测试工具iperf的使用_第1张图片

2.3 客户端iperf的安装与使用

git下载iperf-3.1.3-source.tar.gz至/opt目录,进入/opt目录执行tar vxzf iperf-3.0.11-source.tar.gz解压文件。

进入/opt/iperf-3.0.11-source目录,执行以下操作进行编译和安装:

  • ./configure
  • make
  • make install

2.4 测试TCP
在Linux终端执行iperf3 -c 192.168.123.244 -p 6100 -P 2 -i 1 -t 86400开始与服务端通讯,其中参数意义如下表所示。

参数 意义
-c 192.168.0.77 表示服务端的ip为192.168.0.77
-p 6100 服务端的端口号
-P 2 表示使用socket connect为2个
-i 1 表示间隔1秒打印一次数据
-t 86400 表示客户端的iperf运行周期为86400秒

Linux客户端显示如下图所示, Linux网络1的实际带宽约为250Mbps(默认TCP方式),其中Retr为0 1
iperf3.1源码解析笔记(1)-网络压力测试工具iperf的使用_第2张图片
2.4 测试UDP
在Linux客户端执行iperf3 -c 192.168.123.244 -u -p 6100 -b 100M -i 1 -t 86400开始与服务端通讯。

参数 意义
-c 192.168.123.244 表示服务端的ip为192.168.123.244
-p 6100 服务端的端口号
-u 表示以UDP方式与服务端通讯
-b 100M 表示限定发送速率为100Mbps;若测试千兆网,可设定为950Mbps
-i 1 表示间隔1秒打印一次数据
-t 86400 表示客户端的iperf运行周期为86400秒

Linux客户端显示如下图所示, Linux网络1的实际带宽约为90Mbps(UDP方式),jitter延迟抖动为0ms,丢包率为0%,网络状态良好。
iperf3.1源码解析笔记(1)-网络压力测试工具iperf的使用_第3张图片

三 注意事项
  1. Windows系统的防火墙和杀毒软件需要关闭。
  2. Linux系统下执行make install报错,可能是Linux系统处于写保护状态,需要关闭写保护。
  3. Linux端的-t 默认最大设置为86400秒,如果iperf要运行更长的时间,请修改客户端iperf/src/iperf.h文件,将变量MAX_TIME的值修改为相应数值(如8640000),并重新编译安装。
  4. iperf工具既支持作为客户端,也支持作为服务端。

  1. Retr表示报文重发次数 ↩︎

你可能感兴趣的:(iperf源码解析)