安装Iperf
对于windows版的Iperf,直接将解压出来的iperf.exe和cygwin1.dll复制到%systemroot%目录即可
对于linux版的Iperf,请使用如下命令安装
gunzip -c iperf-.tar.gz | tar -xvf -
cd iperf-
./configure
make
make install
使用Iperf(以windows版本为例)
在命令提示符中输入iperf命令即可运行Iperf,使用命令Iperf �Chelp可以查看iperf的帮助(可以参考下面Iperf命令)。
测试单线程TCP
在服务端运行iperf,输入命令iperf �Cs �Cp 12345 �Ci 1 �CM 以在本机端口12345上启用iperf
在客户端运行iperf,输入命令iperf �Cc server-ip �Cp server-port �Ci 1 �Ct 10 �Cw 20K,其中参数说明如下:
-c:客户端模式,后接服务器ip
-p:后接服务端监听的端口
-i:设置带宽报告的时间间隔,单位为秒
-t:设置测试的时长,单位为秒
-w:设置tcp窗口大小,一般可以不用设置,默认即可
测试单线程UDP(默认带宽)
在服务端运行iperf,输入命令iperf �Cs -u �Cp 12345 �Ci 1 以在本机端口12345上启用iperf,并运行于udp模式
在客户端运行iperf,输入命令iperf -c server-ip -p server-port -i 1 -t 10 -b,其中参数说明如下:
-c:客户端模式,后接服务器ip
-p:后接服务端监听的端口
-i:设置带宽报告的时间间隔,单位为秒
-t:设置测试的时长,单位为秒
-b:设置udp的发送带宽,单位bit/s
Iperf命令
客户端与服务器共用选项
-f, --format [bkmaBKMA] 格式化带宽数输出。支持的格式有: 'b' = bits/sec 'B' = Bytes/sec 'k' = Kbits/sec 'K' = KBytes/sec 'm' = Mbits/sec 'M' = MBytes/sec 'g' = Gbits/sec 'G' = GBytes/sec 'a' = adaptive bits/sec 'A' = adaptive Bytes/sec
自适应格式是kilo-和mega-二者之一。除了带宽之外的字段都输出为字节,除非指定输出的格式,默认的参数是a。
注 意:在计算字节byte时,Kilo = 1024, Mega = 1024^2,Giga = 1024^3。通常,在网络中,Kilo = 1000, Mega = 1000^2, and Giga = 1000^3,所以,Iperf也按此来计算比特(位)。如果这些困扰了你,那么请使用-f b参数,然后亲自计算一下。
-i, --interval # 设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。
-l, --len #[KM] 设置读写缓冲区的长度。TCP方式默认为8KB,UDP方式默认为1470字节。
-m, --print-mss 输出TCP MSS值(通过TCP-MAXSEG支持)。MSS值一般比MTU值小40字节。通常情况
服务器端专用选项
-s, --server perf服务器模式
-D (v1.2或更高版本) Unix平台下Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。
-R(v1.2或更高版本,仅用于Windows) 卸载Iperf服务(如果它在运行)。
-o(v1.2或更高版本,仅用于Windows) 重定向输出到指定文件
-c, --client host 如果Iperf运行在服务器模式,并且用-c参数指定一个主机,那么Iperf将只接受指定主机的连接。此参数不能工作于UDP模式。
-P, --parallel # 服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接。
客户端专用选项
-b, --bandwidth #[KM] UDP模式使用的带宽,单位bits/sec。此选项与-u选项相关。默认值是1 Mbit/sec。
-c, --client host 运行Iperf的客户端模式,连接到指定的Iperf服务器端。
-r, --tradeoff 往复测试模式。当客户端到服务器端的测试结束时,服务器端通过-l选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。当客户端连接终止时,反向连接随即开始。如果需要同时进行双向测试,请尝试-d参数。
-t, --time # 设置传输的总时间。Iperf在指定的时间内,重复的发送指定长度的数据包。默认是10秒钟。参考-l与-n选项。
-L, --listenport # 指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口。
-P, --parallel 线程数。指定客户端与服务端之间使用的线程数。默认是1线程。需要客户端与服务器端同时使用此参数。