Iperf was developed by NLANR/DAST as a modern alternative for measuring maximum TCP and UDP bandwidth performance. Iperf allows the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.
一、软件下载
Windows:http://www.noc.ucf.edu/Tools/Iperf/iperf.exe
Linux: http://sourceforge.net/projects/iperf/
二、以windows下的使用进行试验
1、CP 测试,不能测试丢包率
以一台机器上做为服务端,启动命令如下:
D:\>iperf.exe -s -i 5 -w 3M -m
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 3.00 MByte
------------------------------------------------------------
在另一台机器上进行测试,命令台下:
D:\tool>iperf.exe -c 10.1.95.68 -i 5 -t 20 -w 3M -m
------------------------------------------------------------
Client connecting to 10.1.95.68, TCP port 5001
TCP window size: 3.00 MByte
------------------------------------------------------------
[1868] local 10.1.95.65 port 1126 connected with 10.1.95.68 port 5001
[ ID] Interval Transfer Bandwidth
[1868] 0.0- 5.0 sec 59.2 MBytes 99.3 Mbits/sec
[1868] 5.0-10.0 sec 56.4 MBytes 94.6 Mbits/sec
[1868] 10.0-15.0 sec 56.3 MBytes 94.5 Mbits/sec
[1868] 15.0-20.0 sec 56.4 MBytes 94.6 Mbits/sec
[1868] 0.0-20.3 sec 228 MBytes 94.4 Mbits/sec
2、UDP测试
以一台机器 10.1.95.68 上做为服务端,启动命令如下:
D:\>iperf.exe -s -i 5 -w 1M
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 1.00 MByte
------------------------------------------------------------
[1848] local 10.1.95.68 port 5001 connected with 10.1.95.65 port 1131
[ ID] Interval Transfer Bandwidth
[1848] 0.0- 5.0 sec 56.5 MBytes 94.7 Mbits/sec
[1848] 5.0-10.0 sec 56.1 MBytes 94.1 Mbits/sec
[1848] 10.0-15.0 sec 56.4 MBytes 94.6 Mbits/sec
[1848] 15.0-20.0 sec 56.2 MBytes 94.3 Mbits/sec
[1848] 0.0-20.1 sec 226 MBytes 94.5 Mbits/sec
在另一台机器10.1.95.65上进行测试,命令台下:
D:\tool>iperf.exe -c 10.1.95.68 -i 5 -t 20 -w 1M
------------------------------------------------------------
Client connecting to 10.1.95.68, TCP port 5001
TCP window size: 1.00 MByte
------------------------------------------------------------
[1868] local 10.1.95.65 port 1131 connected with 10.1.95.68 port 5001
[ ID] Interval Transfer Bandwidth
[1868] 0.0- 5.0 sec 57.4 MBytes 96.4 Mbits/sec
[1868] 5.0-10.0 sec 56.1 MBytes 94.1 Mbits/sec
[1868] 10.0-15.0 sec 56.4 MBytes 94.6 Mbits/sec
[1868] 15.0-20.0 sec 56.4 MBytes 94.6 Mbits/sec
[1868] 0.0-20.1 sec 226 MBytes 94.5 Mbits/sec
测试可得出,TCP传输的带宽能达到90多Mb
2、UDP测试,能指定带宽和观察丢包率、延时
指定带宽使用参数-b,不指定的情况默认是1Mb。
以一台机器 10.1.95.68 上做为服务端,启动命令如下:
D:\>iperf.exe -s -i 5 -w 1M -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 1.00 MByte
------------------------------------------------------------
[1884] local 10.1.95.68 port 5001 connected with 10.1.95.65 port 1132
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[1884] 0.0- 5.0 sec 25.7 MBytes 43.1 Mbits/sec 0.113 ms 1398230852/18320 (7.
6e+006%)
[1884] 5.0-10.0 sec 26.9 MBytes 45.1 Mbits/sec 0.864 ms 0/19168 (0%)
[1884] 10.0-15.0 sec 29.6 MBytes 49.6 Mbits/sec 0.114 ms 0/21105 (0%)
[1884] 15.0-20.0 sec 26.4 MBytes 44.2 Mbits/sec 0.114 ms 0/18804 (0%)
[1884] 0.0-20.0 sec 109 MBytes 45.5 Mbits/sec 1.015 ms 0/77435 (0%)
在另一台机器10.1.95.65上进行测试,命令台下:
D:\tool>iperf.exe -c 10.1.95.68 -i 5 -t 20 -w 1M -u -b 100M
------------------------------------------------------------
Client connecting to 10.1.95.68, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 1.00 MByte
------------------------------------------------------------
[1868] local 10.1.95.65 port 1132 connected with 10.1.95.68 port 5001
[ ID] Interval Transfer Bandwidth
[1868] 0.0- 5.0 sec 25.7 MBytes 43.2 Mbits/sec
[1868] 5.0-10.0 sec 26.8 MBytes 45.0 Mbits/sec
[1868] 10.0-15.0 sec 29.6 MBytes 49.7 Mbits/sec
[1868] 15.0-20.0 sec 26.4 MBytes 44.3 Mbits/sec
[1868] 0.0-20.0 sec 109 MBytes 45.5 Mbits/sec
[1868] Server Report:
[1868] 0.0-20.0 sec 109 MBytes 45.5 Mbits/sec 1.015 ms 0/77435 (0%)
[1868] Sent 77435 datagrams
测试可得出,UDP传输能达到45Mb,也直观看到延时和丢包的情况。
三、参数说明
参数说明
-s 以server模式启动,eg:iperf -s
-c host以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23
通用参数
-f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -f K
-i sec 以秒为单位显示报告间隔,eg:iperf -c 222.35.11.23 -i 2
-l 缓冲区大小,默认是8KB,eg:iperf -c 222.35.11.23 -l 16
-m 显示tcp最大mtu值
-o 将报告和错误信息输出到文件eg:iperf -c 222.35.11.23 -o ciperflog.txt
-p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p 9999
-u 使用udp协议
-w 指定TCP窗口大小,默认是8KB
-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
-C 兼容旧版本(当server端和client端版本不一样时使用)
-M 设定TCP数据包的最大mtu值
-N 设定TCP不延时
-V 传输ipv6数据包
server专用参数
-D 以服务方式运行iperf,eg:iperf -s -D
-R 停止iperf服务,针对-D,eg:iperf -s –R
client端专用参数
-d 同时进行双向传输测试
-n 指定传输的字节数,eg:iperf -c 222.35.11.23 -n 100000
-r 单独进行双向传输测试
-t 测试时间,默认10秒,eg:iperf -c 222.35.11.23 -t 5
-F 指定需要传输的文件
-T 指定ttl值