一、软件下载
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 9999UE侧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 6002UE侧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 99999UE侧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 6004UE侧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