news 2026/4/23 14:09:00

不服跑个分?快速上手iperf网络性能测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
不服跑个分?快速上手iperf网络性能测试

iperf作为一款经典的网络性能测试工具,被广泛用于测量TCP和UDP带宽性能,可在客户端与服务器之间进行数据传输测试。

LuatOS提供的iperf核心库:

  • 支持server模式和client模式;

  • 支持LuatOS开发的所有产品都支持iperf核心库;

  • 需要注意的是,当前版本仅支持iperf2协议。

本文将以Air780EPM系列核心板/开发板为例,分享如何在LuatOS环境中利用iperf库进行网络测试。

一、iperf库相关API简介

LuatOS已将iperf功能封装为简洁的API,在嵌入式设备上使用极为简单。

本文示例所使用的API如下:

  • iperf.server(netType)

    启动iperf服务器模式

  • iperf.client(netType, serverIp, serverPort)

    启动iperf客户端模式并连接到指定服务器

  • iperf.abort()

    中止正在进行的iperf测试

  • netdrv.setup(type, drv, param)

    设置网络驱动参数

  • netdrv.dhcp(type, enable)

    配置DHCP客户端

  • netdrv.ipv4(type, ip, mask, gw)

    获取或设置IPv4地址信息

  • netdrv.link(type)

    获取网络连接状态

二、iperf功能示例demo

本示例使用Air780EPM系列核心板/开发板进行网络性能测试,通过服务器模式和客户端模式的配合使用,可以有效地测量网络的实际带宽和稳定性,为评估设备的网络通信能力提供重要参考。

功能特性:

  • 支持DHCP客户端模式,自动从路由器获取IP地址;

  • 服务器模式和客户端模式分离,可在不同设备上运行;

  • 增强的错误处理和超时机制;

  • 清晰的日志输出,便于调试和监控;

  • 带宽自动计算并以Mbps显示。

注意事项:

本示例可准备两套Air780EPM 开发板;如使用核心板,需搭配AirETH_1000配件板(搭载CH390H芯片的以太网小板,支持标准RJ45网口接入路由器)使用,详见合宙中心实操教程软硬件环境说明。

以下是iperf网络性能测试各种功能的实现方法和核心代码逻辑,完整demo详见源码仓库最新文件。

2.1 iperf服务器模式

iperf服务器模式允许设备作为服务器等待客户端连接,用于测量网络下行方向的带宽性能。

1)功能定义:
iperf_server.lua:iperf服务器模块,用于初始化以太网接口,配置网络参数,启动iperf服务器,并处理客户端连接和测试报告。

2)代码示例:

3)烧录运行:
使用Luatools将服务器模式代码烧录到核心板/开发板中:

烧录完毕后,将核心板外挂AirETH_1000配件板连接到路由器的LAN口。设备启动后会初始化网络并启动iperf服务器,等待客户端连接。

日志中会显示服务器IP地址和启动状态:

当有客户端连接后会自动开始iperf测试,测试完毕后会在测试报告中打印数据量、持续时间和带宽等参数:

2.2 iperf客户端模式

iperf客户端模式允许设备作为客户端主动连接到服务器,用于测量网络上行方向的带宽性能。

1)功能定义:
iperf_client.lua:iperf客户端模块,用于初始化以太网接口,配置网络参数,连接到指定的iperf服务器,进行带宽测试,并处理测试报告。

2)代码示例:

3)烧录运行:
在烧录前,需要修改iperf_client.lua文件中的服务器IP地址为服务器核心板的实际IP地址:

使用Luatools将客户端模式代码烧录到另一块核心板/开发板中:

烧录完成后,将客户端核心板外挂AirETH_1000配件板也连接到路由器的LAN口。设备启动后会初始化网络并尝试连接到服务器:

连接成功后,客户端会开始进行带宽测试,测试完毕后会在测试报告中打印数据量、持续时间和带宽等参数:

2.3 完整测试场景演示

完整的测试场景需要将两块Air780EPM开发板,或核心板外挂AirETH_1000配件板,通过路由器连接。

测试步骤:

  • 将服务器核心板烧录服务器模式代码,并连接到路由器;

  • 记录服务器核心板的IP地址;

  • 修改客户端代码中的服务器IP地址;

  • 将客户端核心板烧录客户端模式代码,并连接到路由器;

  • 同时观察两台设备的日志输出。

测试完成后,可以在日志中看到最终的带宽测试结果:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 8:20:22

从入门到精通:Open-AutoGLM改prompt的4个进阶阶段(附实操案例)

第一章:Open-AutoGLM改prompt的核心概念与应用前景Open-AutoGLM 是一种基于开源大语言模型的 prompt 自动优化框架,旨在通过可解释的反馈机制动态调整输入提示,以提升模型在特定任务中的表现。其核心思想是将 prompt 视为可学习参数&#xff…

作者头像 李华
网站建设 2026/4/23 8:21:24

Python+Vue的 大学生宿舍水电管理系统设计与实现Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍 本系统共有…

作者头像 李华
网站建设 2026/4/23 9:57:31

仅限内部流出:Open-AutoGLM群控高级功能使用手册首次公开

第一章:Open-AutoGLM群控系统概述Open-AutoGLM 是一款面向大规模语言模型(LLM)集群控制与任务调度的开源系统,专为实现多节点协同推理、自动化任务分发和统一资源管理而设计。该系统融合了现代微服务架构与智能调度算法&#xff0…

作者头像 李华
网站建设 2026/4/23 8:18:43

Open-AutoGLM运行权限揭秘:为什么顶级团队都拒绝使用root?

第一章:Open-AutoGLM需要root吗?Open-AutoGLM 是一个实验性开源框架,旨在自动化大语言模型的本地部署与推理优化。该工具设计时充分考虑了系统权限的安全边界,因此在绝大多数使用场景下并不强制要求 root 权限。运行权限需求分析 Open-AutoG…

作者头像 李华
网站建设 2026/4/23 9:57:24

Haystack、RAGFlow、LlamaIndex对比与选型

在当前的 LLM 应用开发生态中,LlamaIndex、Haystack 和 RAGFlow 是三个非常有代表性的开源框架。它们虽然都围绕 RAG(检索增强生成)展开,但在设计哲学、技术侧重和适用人群上有显著差异。 以下是对这三个框架的全方位深度对比&…

作者头像 李华
网站建设 2026/4/23 9:57:17

从零理解cogagent与Open-AutoGLM,如何构建下一代自动化机器学习系统?

第一章:从零理解cogagent与Open-AutoGLM的演进脉络在人工智能快速发展的背景下,自动化机器学习(AutoML)与智能代理系统逐渐成为推动技术落地的核心引擎。cogagent 作为一款基于认知架构构建的智能代理框架,致力于实现任…

作者头像 李华