iperf工作机制:通常,iperf要先打开server进行监听,然后再打开client发送数据到server。
iperf工作流程如下:
(1)首先解析环境变量或命令行参数。
(2)根据命令行参数判断iperf是server还是client,并进入相应的处理流程。
如果是server,则打开监听的socket。若是TCP连接,则打开一个server thread。若是UDP连接,对win32来说,只需打开一个server thread就可以处理所有数据。如果不是win32,则需要打开一条新的UDP连接。
如果是client,则打开speaker,进行client的相应处理。
-s 以server模式启动 eg:iperf –s
-c host 以client模式启动,host是server端地址 eg:iperf –c 192.168.1.2
-f [k|m|K|M] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位 eg:iperf –c 192.168.1.2 –f K
-i sec 以秒为单位显示报告间隔 eg:iperf –c 192.168.1.2 –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 c:/iperflog.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数据包
D 以服务方式运行ipserf eg:iperf –s –D
-R 停止iperf服务 eg:iperf –s –R
-d 同时进行双向传输测试
-n 指定传输的字节数,eg :iperf –c 192.168.1.2 –n 1000
-r 单独进行双向传输测试
-t 测试时间,默认10秒 eg:iperf –c 192.168.1.2 –t 5
-F 指定需要传输的文件
-T 指定ttl值
-P 指定线程数 eg:iperf –c 192.168.1.2 –P 4
-b 为UDP指定传输带宽 eg:iperf –c 192.168.1.2 –u –b 50M
