admin管理员组

文章数量:1530353

"time

命令/time -v 命令"可以查看命令执行的时间,从而判断网速。

用Iperf工具测试网速和网络质量

Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP带宽,并可以报告UDP带宽,延迟抖动和数据包丢失。

下载地址:

https://iperf.fr/iperf-download.php

可以下载执行文件在linux(ubuntu等)或者windows下运行,在windows中需要在命令行下运行。同时需要注意防火墙设置,否者可能无法通讯。

windows下iperf-2.0.5-2-win32比iperf-2.0.5-3-win32好用,执行中途可以退出,命令行不会卡住。

如果要在嵌入式主板上运行,做需要下载源码移植。

交叉编译工具用arm-2007q1-10-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar可以编译通过,用335官方的编译工具不行。

1、下载iperf

2、解压

#tar zxf

iperf-2.0.5.tar.gz 解压到当前目录

3、配置

#cd

iperf-2.0.5

#./configure --host=arm-linux-gnueabihf

CXX=arm-linux-gnueabihf-g++ CXXFLAGS=-static

CC=arm-linux-gnueabihf-gcc CFLAGS=-static

用下面这个命令

./configure

--host=arm-none-linux-gnueabi CXX=arm-none-linux-gnueabi-g++

CXXFLAGS=-static CC=arm-none-linux-gnueabi-gcc

CFLAGS=-static

修改iperf-2.0.5/config.h,注释掉行

#define malloc

rpl_malloc -->//#define malloc

rpl_malloc

4、编译

命令行下 make

在src下会生成iperf文件,拷贝到嵌入式主板中即可使用。

cd

C:\Users\liling\Desktop\iperf\iperf-2.0.5-3-win32

iperf.exe

-s

cd

C:\Users\liling\Desktop\iperf\iperf-2.0.5-3-win32

iperf.exe -u

-s

cd

C:\Users\liling\Desktop\iperf\iperf-2.0.5-3-win32

iperf.exe -u -c

192.168.10.66 -i 1 -w 100M -b 1000M

/home/iperf -u -c

192.168.10.177 -i 1 -w 100M -b 1000M

=======================================================================

IPERF的使用:

1.确认板子和你的电脑在同一个网段,然后ping通。

2.然后在板子上跑:

board: ./iperf -s //为server

pc: iperf.exe -c ipaddress //ipaddress 为你的板子的ip

其他复杂的测试,你自己看看。

iperf具体的功能包括

TCP

测量网络带宽

报告MSS/MTU值的大小和观测值

支持TCP窗口值通过套接字缓冲

当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接

l UDP

客户端可以创建指定带宽的UDP流

测量丢包

测量延迟

支持多播

当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)

在适当的地方,选项中可以使用K(kilo-)和M(mega-)。例如131072字节可以用128K代替。

指定运行的总时间,甚至可以设置传输的数据总量。

在报告中,为数据选用最合适的单位。

服务器支持多重连接,而不是等待一个单线程测试。

在指定时间间隔重复显示网络带宽,波动和丢包情况。

服务器端可作为后台程序运行。

服务器端可作为Windows

服务运行。

使用典型数据流来测试链接层压缩对于可用带宽的影响。

参数:

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

-c

host以client模式启动,host是server端地址,eg:iperf -c

222.35.11.23

通用参数

-f

[k|m|K|M] 分别表示以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 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数据包

server专用参数

-D

以服务方式运行ipserf,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值

使用示例:

1、UDP

模式

服务器端

iperf -u -s(在linux环境下命令为:./iperf -u -s)

客户端

iperf -c 192.168.1.1 -u -P 1 -i 1 -p 5001 -f M -b 45M -t 20

-T 10

在udp模式下,以45Mbps为数据发送速率,客户端到服务器192.168.1.1上传带宽测试,测试时间为20秒。

iperf -u -c 192.168.1.1 -b 5M -P 30 -t 60

客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率。

iperf -u -c 192.168.1.1 -b 100M -d -t 60

以100M为数据发送速率,进行上下行带宽测试。

2、TCP模式

服务器端

iperf -s(在linux环境下命令为:./iperf  -s)

客户端

iperf -c 192.168.1.1 -P 1 -i 5 -p 5001 -f M -t 120

在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为120秒。

iperf -c 192.168.1.1 -P 30 -t 60

客户端同时向服务器端发起30个连接线程。

iperf -c 192.168.1.1 -d -t 60

进行上下行带宽测试。

注意:

测试htb的时候最好用udp,udp通信开销小,测试的带宽更准确

宽测试通常采用UDP模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从

客户端到服务器之间的链路的理论带宽为100Mbps,先用 -b

100M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很

多,重复测试几次,就能得出稳定的实际带宽。

===================================================================

5、使用

参数说明:

-s

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

-c

host 以client模式启动,host是server端地址,eg:iperf -c

192.168.1.100

通用参数

-f [k|m|K|M]

分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c

192.168.1.100 -f K

-i sec

以秒为单位显示报告间隔,eg:iperf -c 192.168.1.100 -i 2

-l

缓冲区大小,默认是8KB,eg:iperf -c 192.168.1.100 -l 16

-m

显示tcp最大mtu值

-o

将报告和错误信息输出到文件eg:iperf -c 192.168.1.100 -o

c:\iperflog.txt

-p

指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 192.168.1.100 -p

9999

-u

使用udp协议

-w

指定TCP窗口大小,默认是8KB

-B

绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)

-C

兼容旧版本(当server端和client端版本不一样时使用)

-M

设定TCP数据包的最大mtu值

-N

设定TCP不延时

-V

传输ipv6数据包

server专用参数

-D

以服务方式运行ipserf,eg:iperf -s -D

-R

停止iperf服务,针对-D,eg:iperf -s -R

client端专用参数

-d

同时进行双向传输测试

-n

指定传输的字节数,eg:iperf -c 192.168.1.100 -n 100000

-r

单独进行双向传输测试

-t

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

-F

指定需要传输的文件

-T

指定ttl值

操作举例:

1)TCP测试

服务器执行:#iperf -s -i

1 -w 1M

客户端执行:#iperf -c

192.168.1.100 -i 1 -w 1M

其中-w表示TCP window

size,192.168.1.100是服务器IP地址。

2)UDP测试

服务器执行:#iperf -u

-s

客户端执行:#iperf -u -c

192.168.1.100 -b 900M -i 1 -w 1M -t 60

其中-b表示

使用带宽数量,千兆链路使用90%容量进行测试就可以了。

注:以上方法经过实际验证为可行。编译过程必须静态编译,否则在android平台不能使用。错误提示为:sh:

./iperf: No such file or directory

本文标签: 网速工具质量测试网络