iperf 移植并与WIN10之间测wifi

来源:互联网 发布:java des加密算法 编辑:程序博客网 时间:2024/06/17 00:40

iperf是一个开源软件,其源码在GitHub上,地址:https://github.com/esnet/iperf

1 下载

下载最新版本源码包,下载地址:http://downloads.es.net/pub/iperf/。本文以 iperf-3.0.3.tar.gz版本为例。

2 解压

$ mkdir ~/iperf

$cp iperf-3.0.3.tar.gz ~/iperf

$ cd ~/iperf

$ tar xzfiperf-3.0.3.tar.gz

$ cd iperf-3.0.3/

命令中的“~”表示当前用户目录,比如在Linux主机上面工作的用户是:veryarm,那么命令中的“~”就代表路径:/home/veryarm/目录

3 配置

$ mkdir ../install

$ export PATH=$PATH:/usr/local/arm-2010q1/bin#交叉编译工具路径加入系统环境变量!

$ ./configure--host=arm-none-linux-gnueabi --prefix=/home/veryarm/iperf/install

其中,

我们交叉编译工具路径:$exportPATH=$PATH:/usr/local/arm_linux_4.2/arm-none-linux-gnueabi/bin

$ ./configure--host=arm-none-linux-gnueabi --prefix=/home/iperf/install

·        --host指定交叉编译工具,一般为arm-none-linux-gnueabiarm-linux-gnueabihfarm-linux等,具体要和目标板用的交叉编译工具对应。

·        --prefix指定安装目录,编译后的文件会全部放在安装目录中。必须是绝对路径!

4 编译

$ make                  #编译,如果是多核CPU,如四核,使用make -j4可提高编译速度

$ make install          #安装

完成后,文件会自动安装到上面指定的 install 目录。

将软件安装到/home/iperf/install文件夹中了!下面有三个文件夹BIN,INCLUDE,LIB

 

 5去除调试信息并压缩

使用交叉编译工具 strip 去除镜像的调试信息,在不影响使程序使用的情况下,程序大小一般可以减小50%左右。本程序我们仅用到其中2个文件,bin下的iperf3  lib下的libiperf.so.0.0.0

$ cd ../install                                        # 进入安装目录
$ arm-none-linux-gnueabi-strip bin/iperf3              # 去除iperf3镜像调试信息
$ arm-none-linux-gnueabi-strip lib/libiperf.so.0.0.0   # 去除共享库的调试信息
$ rm lib/libiperf.a lib/libiperf.la                    # 删除两个不用的库文件
$ tar jcf iperf-3.0.3.tar.bz2 bin lib                  # 压缩binlib目录

可能有一些祛除不掉,没有关系,我们空间很大。

6 复制

将打包后的 iperf-3.0.3.tar.bz2 压缩包通过U盘、FTP或者NFS等方式拷贝到目标板,并分别解压到/bin/sbin目录。

$ cp iperf-3.0.3.tar.bz2 ~                  # 将复制压缩包到目标板用户目录
$ tar jxf iperf-3.0.3.tar.bz2 bin -C /usr   # 解压镜像到/usr/bin
$ tar jxf iperf-3.0.3.tar.bz2 lib -C /usr   # 解压库文件到/usr/lib

 

 

安装好软件后,就可以使用了。PC端的软件安装请看另一个教程。

PC端软件安装好后,让PC端进入host模式。就是让PC做服务器。


安装Iperf

对于windows版的Iperf,直接将解压出来的iperf.execygwin1.dll复制到%systemroot%目录即可

就是复制到C盘根目录吧!

 

然后再CMD中运行:iperf.exe

使用Iperf(以windows版本为例)

在命令提示符中输入iperf命令即可运行Iperf,使用命令Iperf –help可以查看iperf的帮助

下面看看这个软件的一些测试命令介绍:可以baidu就不写了!

那么怎么应用这个软件呢?举个栗子吧!


OK,通了,可以使用iperf工具了:

1,工作电脑(WIN7)通过putty登录11.7.16.108,

$ iperf -s

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 85.3 KByte(default)

------------------------------------------------------------

 

2,开发板

arm-linux$ iperf -c 11.7.16.108

------------------------------------------------------------

Client connecting to 11.7.16.108,TCP port 5001

TCP window size: 16.0 KByte(default)

------------------------------------------------------------

[  3] local 192.168.1.44port 42700 connected with 11.7.16.108 port 5001

[ ID]Interval       Transfer    Bandwidth

[  3]  0.0-10.1sec  10.8 MBytes  8.95 Mbits/sec

arm-linux$ iperf -c 11.7.16.108-i 2

------------------------------------------------------------

Client connecting to 11.7.16.108,TCP port 5001

TCP window size: 16.0 KByte(default)

------------------------------------------------------------

[  3] local 192.168.1.44port 42701 connected with 11.7.16.108 port 5001

[ ID]Interval       Transfer    Bandwidth

[  3]  0.0- 2.0sec  2.12 MBytes  8.91 Mbits/sec

[  3]  2.0- 4.0sec  2.12 MBytes  8.91 Mbits/sec

[  3]  4.0- 6.0sec  2.00 MBytes  8.39 Mbits/sec

[  3]  6.0- 8.0sec  2.25 MBytes  9.44 Mbits/sec

[  3]  8.0-10.0sec  2.25 MBytes  9.44 Mbits/sec

[  3]  0.0-10.1sec  10.9 MBytes  9.08 Mbits/sec

 测出来啦,带宽也就8-9M的样子。


Iperf使用方法与参数说明

 

参数说明

-s 以server模式启动,eg:iperf -s

-chost以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 -c222.35.11.23 -i 2

-l 缓冲区大小,默认是8KB,eg:iperf -c222.35.11.23 -l 16

-m 显示tcp最大mtu值

-o 将报告和错误信息输出到文件eg:iperf -c222.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 -c222.35.11.23 -n 100000

-r 单独进行双向传输测试

-t 测试时间,默认10秒,eg:iperf -c222.35.11.23 -t 5

-F 指定需要传输的文件

-T 指定ttl值

 

应用实例

使用 iperf -s 命令将 Iperf 启动为 server模式,在客户机上使用 iperf -c启动client模式。

iperf –s

————————————————————

Server listening on TCP port 5001

TCP window size: 8.00 KByte(default)

————————————————————

 

iperf -c 59.128.103.56

上面使用服务端和客户端的默认设置进行测试

 

iperf -s -w 300K

————————————————————

Server listening on TCP port 5001

TCP window size:  300 KByte

————————————————————

 

iperf -c 59.128.103.56 -f K -i 2-w 300K

设定报告间隔为2秒,服务器端和客户端的TCP窗口都开到300KB

 

iperf -c 59.128.103.56 -f K -i 2-w 300K –n 1000000

测试传输约1MB数据

 

iperf -c 59.128.103.56 -f K -i 2-w 300K –t 36

测试持续36秒

 

iperf -c 59.128.103.56 -f K -i 2-w 300K -n 10400000 –d

测试双向的传输

 

iperf -c 59.128.103.56 -f K -i 2-w 300K –u

UDP测试

 

其中 -i参数的含义是周期性报告的时间间隔(interval),单位为秒;在上面的例子中,表示每隔2秒报告一次带宽等信息。



原创粉丝点击