一、软件下载

iperf官网

iperf官网下载地址 所有版本都可以在这个网址中下载

iperf的命令文档

二、软件使用 基本命令

解压- 存放路径- cmd命令操作

step1:首先检查一下下载下来的软件是否包含两个文件

step2:将这个文件夹放置到一个全英文路径里面。

比如 放到D盘 那么这个文件夹的路径就为 D:\iperf-3.1.3-win64。

step3:打开cmd 进行操作

D:  改变路径 英文符号

输入 cd  \iperf-3.1.3-win64    可以tab补齐

打开server

D:\iperf-3.1.3-win64 iperf3.exe –s

打开client

D:\iperf-3.1.3-win64 iperf3.exe -c 192.168.100.168 server ip

Client端输出

Server端输出

Iperf常用参数说明

-c host    以客户端模式启动 host是数据源所在的服务器端地址 比如 iperf -c 222.35.11.23 -i sec  以秒为单位显示报告间隔 比如 iperf -c 222.35.11.23 -i 2 -u  使用UDP协议 发送UDP数据包 默认使用TCP连接 -w  指定TCP窗口大小 默认是8KB 此参数比较重要 需要针对不同的带宽和时延进行调整 -t  测试时间长 默认10秒 比如 iperf -c 222.35.11.23 -t 5 -n  (一般配合UDP协议时使用)指定传输的字节数 比如 iperf -c 222.35.11.23 -n 100000 -P  (大写)指定同时进行的TCP/UDP连接数 对于高带宽测速 需要该参数建立多条TCP/UDP连接以测得更准确的速率 -s  以server模式启动 eg iperf -s-p  指定服务器端使用的端口或客户端所连接的端口

下行UDP灌包 从服务器向终端灌包

服务器侧CMD窗口中启动如下命令

iperf -c xx.xx.xx.xx -u -b 100m -p 6001 -t 9999

UE侧PC CMD窗口中启动如下命令

iperf -s -u -p 6001

参数说明

参数

说明

c xx.xx.xx.xx

表示向xx.xx.xx.xx灌包 xx.xx.xx.xx为UE ip地址

-u

表示启动UDP灌包 如果是灌TCP则不需要-u这个参数

-b 100m

表示指定灌包大小 这里表示灌100M的数据

-p 6001

表示指定灌包的端口为6001 可根据需要更改

-t 99999

表示指定灌99999秒 可根据需要修改灌包时长

-s

表示启动iperf服务器

上行UDP灌包 从UE灌向服务器

服务器侧CMD窗口中启动如下命令

Iperf –s –u –p 6002

UE侧PC CMD窗口中启动如下命令

Iperf –c xx.xx.xx.xx –u –b 100m –p 6002 –t 99999

参数说明

参数

说明

c xx.xx.xx.xx

表示向xx.xx.xx.xx灌包 xx.xx.xx.xx为服务器地址

下行TCP灌包

服务器侧CMD窗口中启动如下命令

Iperf –c xx.xx.xx.xx –p 6003 –w 512k –t 99999

UE侧PC CMD窗口中启动如下命令

Iperf –s –w 512k–p 6003

参数说明

参数

说明

c xx.xx.xx.xx

表示向xx.xx.xx.xx灌包 xx.xx.xx.xx为UE ip地址

-w

指定TCP窗口大小

需要特别注意的是千万不要 b 否则就成为UDP灌包。

 

上行TCP灌包

服务器侧CMD窗口中启动如下命令

Iperf –s –w 512k–p 6004

UE侧PC CMD窗口中启动如下命令

Iperf –c xx.xx.xx.xx –p 6004 –w 512k –t 99999

参数说明

参数

说明

c xx.xx.xx.xx

表示向xx.xx.xx.xx灌包 xx.xx.xx.xx为服务器地址

-w

指定TCP窗口大小

需要特别注意的是千万不要 b 否则就成为UDP灌包。

 IPERF其他命令参数说明

IPERF参数大全

公共选项参数

-f format

速率报告的格式 是采用Kbits, Mbits, Kbytes 还是MBytes

-i interval

周期性带宽报告的时间间隔。单位 秒

-l len

读写缓冲区的长度。对于TCP 默认 8KB 对于UDP 默认 1470B

-m print_mss

打印TCP最大段的大小(MTU - TCP/IP header)

-p port

Iperf server监听的服务端口 或Iperf client连接的服务端口。

在Iperf server和Iperf client两边的端口必须是相同的。默认服务端口 5001

-u UDP

使用UDP进行测量

-w window

设置套接字缓冲区大小为指定的数值。对于TCP 本选项将设置TCP窗口大小 对于UDP 本选项是接收数据报文的缓冲 所以它被限制到最大的接收数据报文大小

-B bind

绑定到主机的一个接口或组播地址。对于Iperf client 本选项设置的是对外的接口 对于Iperf server 本选项设置的是进入的接口。本选项参数仅用于多宿主主机 它有多个网络接口

-C compatibility

兼容模式 允许和低版本的Iperf一起使用。兼容模式对于互用性并不是必需的 但是高度建议的。在某些案例里 当在使用典型的流 streaming 时 你可能会引起1.7版本的Iperf server冲突 或造成一些不希望发生的连接尝试

-M mss

通过TCP_MAXSEG选项 设置TCP最大段大小 Maximum Segment Size 。对于TCP/IP头部来说 MSS通常是MTU - 40 bytes 对于以太网 MSS是1640 bytes(1500 byte MTU)。在很多OSes里 本选项没有被执行

-N no delay

设置TCP为零时延选项 禁止Nagle算法。通常 对于像Telnet这样的交互式应用程序 此选项仅被禁止

-V

绑定到一个IPv6地址。从V1.6或更高版本开始支持。其格式是

    Server 侧 $ iperf -s -V 

Client侧 $ iperf -c Server IPv6 Address -V

注意 在V1.6.3版本或更高版本 一个特定的IPv6地址并不需要用“-B”选项来绑定 V1.6以前的版本需要。同样 在大多数的OSes里 本选项的使用 也取决于使用IPv4映射地址的IPv4客户端

Iperf server特定选项参数

-s server

Iperf运行在server模式下

-D daemon

让server运行为守护神程序 Unix平台 。在Win32平台 服务是有效的 Iperf将作为一个服务运行。本选项从Iperf的V1.2或更高版本开始支持

-R Remove

删除Iperf服务 如果它正在运行 。本选项仅仅对于Windows有效 从Iperf的V1.2或更高版本开始支持

-o

输出报告或错误信息到一个指定的文件里。 仅适用于windows。从Iperf的V1.2或更高版本开始支持

-c client host

如果Iperf运行在server模式下 那么用“-c”指定一个主机将限制Iperf将要接受的指定主机的连接。本选项对UDP支持得不是很好

-P parallel

在关闭前被server处理的连接数目。默认 0 这意味着永久接受连接

Iperf client特定选项参数

-b bandwidth

带宽。UDP的发送带宽 单位 bits/sec。这暗示着使用“-u”选项。默认 1 Mbit/sec

-c client host

运行在client模式 连接到运行在主机上的Iperf server

注意 -c后面一定要有host的IP地址 即格式是 -c 10.0.0.79。否则 命令执行失败。Host的IP地址指的是Iperf server端的IP地址

-d dualtest

同时进行双向传输测试 运行Iperf在双向测试模式下。这将引起server在用“-L”选项指定的端口 或client连接到server所用的默认端口 上 重新连接回client。这是立即完成的 所以同时地运行测试。如果你想用单独的交互式测试 请尝试“-r”选项

-n number

要发送的字节数。单位 Kbyte/s Mbyte/s。通常 Iperf发送数据的时间为10秒。“-n”选项改写了这个时间 它发送完指定大小的数据 而不管这个过程花费了多长时间。请参考“-l”、“-t”选项

-r tradeoff

单独进行双向传输测试 运行Iperf在折衷测试 tradeoff testing 模式下。这将引起server在用“-L”选项指定的端口 或client连接到server所用的默认端口 上 重新连接回client。随着client连接的终止 这个过程就完成了 所以单独地运行测试。如果你想用同时的测试 请尝试“-d”选项

-t time

传送数据的测试时间。单位 秒。默认 10秒。当与“–n”参数同时使用时 以“ -n ”选项为准。即设置的测试时间失效。请参考“-l”、“-n”选项

-L listenport

本选项指定一个监听端口 server从这个端口连接回client。默认的监听端口是client连接server所使用的端口

-P parallel

并行运行的client数目。默认值 1。需要client和server之间的线程支持

-S tos

发出的数据包的服务类型。 很多路由器忽略TOS域 。你可以用十六进制“0x”为前缀 以八进制“0”为前缀 或以十进制为前缀。例如 (0x10)16 (020)8 (16)10。

在RFC 1349里 对TOS的定义如下

        IPTOS_LOWDELAY 最小时延    0x10

        IPTOS_THROUGHPUT 最大吞吐量   0x08

        IPTOS_RELIABILITY 最大可靠性  0x04

        IPTOS_LOWCOST 最小成本   0x02

-T TTL

发出的组播包的存活期 time-to-live 。这是报文穿越路由器跳数的基本数字。默认值 1

-F fileinput

  name

使用一个典型的流 stream 来测量带宽。从Iperf的V1.2或更高版本开始支持。例如

    $ iperf -c server address -F file-name