芯片开放社区
直播中

新疆切糕

11年用户 1185经验值
私信 关注
[技术讨论]

在YoC平台上使用iperf测量网络吞吐率实战

1 概述

在设计或引入某带有网络需求的方案时,我们需要知道该方案对应的网络吞吐率,从而评估实际应用是否可以满足。例如,一个网络摄像机(IPC)方案,如果其网络吞吐率只有1Mbps,那么要想实现图像数据的实时传输,那么风险就会比较大。因此,正确地测量网络吞吐率对于方案评估非常重要。

在嵌入式设备上,我们一般使用iperf来测试网络性能。iperf是一款在PC及各种嵌入式设备上广泛使用的网络性能测量工具,支持测试TCP及UDP下的网络性能,即网络吞吐率。iperf有windows和linux两个发布版本,其它平台的iperf版本,需要用户根据平台特性自己适配。

2 基于YoC的iperf使用

2.1 YoC使能iperf功能

YoC上已经提供了成熟的iperf适配,其源码在/components/lwip/cli/cli_iperf.c。用户只需在自己的应用中调用注册iperf的接口cli_reg_cmd_iperf,即包含了iperf功能。

int main()
{
  board_yoc_init();
  ... ...
  cli_reg_cmd_iperf();
  ... ...
}2.2 iperf使用方法

2.2.1 iperf参数介绍

在运行YoC的设备上,输入cli命令iperf -h,则返回iperf的帮助信息:

-g:Set sockopt send timeout
-u:use UDP rather than TCP
-l:length of buffer in bytes to read or write (default:10KB)
-c:run in client mode, connecting to
-x:stop iperf test
-s:run in server mode
-t:time in seconds to transmit for (default 10 secs)
-p:server port to listen on/connect to
-i:seconds between periodic bandwidth reports
YoC上支持的iperf参数如上面帮助信息所示,下面对常见的参数进行详细说明。

2.2.1.1 -c -s参数

iperf分为客户端(client)和服务端(server),client向service发送数据包然后各自进行统计。

对于待测试设备来说,如果要测量设备的发送吞吐率(Tx),那么设备作为client,向server端发送数据。iperf作为client端的指令如下:

iperf -c
这里server_ip是iperf server端的ip地址,如果以安装了iperf的PC机作为server端,那么这个地址就是同一局域网下PC机的ip地址,如192.168.1.2;

反之,如果要测量设备的接收吞吐率(Rx),那么设备作为server,接收client发送的网络数据。iperf作为server端的指令如下:

iperf -s2.2.1.2 -u参数

前文有提到,iperf支持TCP/UDP的网络性能测试。iperf默认使用TCP方式进行网络数据包的收发,这里-u参数指定iperf使用UDP发送和接收网络数据包。

2.2.1.3 -i参数

该参数设定iperf每隔多少秒(s)报告一次吞吐率。YoC上默认为1s报告一次吞吐率数据。

2.2.1.4 -t参数

该参数设定iperf总的运行时间,单位为秒(s)。YoC上默认运行时间为10秒。

2.2.1.5 -p参数

该参数指定iperf的端口号,YoC上默认端口是5001。

2.2.2 iperf使用示例

我们准备一台运行YoC的网络设备,通过WiFi连接到AP,其ip地址为192.168.1.2;另外一台安装了iperf的PC以有线方式连接到AP,其ip地址为192.168.1.3。

2.2.2.1 TCP方式测试Tx吞吐率

以TCP方式测试待测设备的发送吞吐率,每隔10秒报告一次性能数据,共运行600秒。其它参数使用默认参数,YoC端命令:

iperf -c 192.168.1.3 -i 10 -t 600
PC端命令:

iperf -s2.2.2.2 TCP方式测试Rx吞吐率


以TCP方式测试待测设备的发送吞吐率,每隔10秒报告一次性能数据,共运行600秒。其它参数使用默认参数,YoC端命令:

iperf -s -i 10
PC端命令:

iperf -c 192.168.1.2 -i 10 -t 6002.2.2.3 UDP方式测试Tx吞吐率

以TCP方式测试待测设备的发送吞吐率,每隔10秒报告一次性能数据,共运行600秒。其它参数使用默认参数,YoC端命令:

iperf -c 192.168.1.3 -u -i 10 -t 600
PC端命令:

iperf -s -u2.2.2.4 UDP方式测试Rx吞吐率


以TCP方式测试待测设备的发送吞吐率,每隔10秒报告一次性能数据,共运行600秒。其它参数使用默认参数,YoC端命令:

iperf -s -u -i 10
PC端命令:

iperf -c 192.168.1.2 -u -i 10 -t 600文章转载自:平头哥芯片开放社区 作者:何佩奇

更多回帖

发帖
×
20
完善资料,
赚取积分