ESP-IDF 例程——网络
15. network 目录
15.1 bridge
| 字段 | 描述 |
|---|---|
| 例程名称 | 以太网桥接示例 |
| 所在文件夹路径 | examples\network\bridge |
| 核心功能说明 | 演示如何使用 LwIP IEEE 802.1D 桥接功能将多个以太网接口或以太网与 WiFi AP 接口连接起来,实现不同网络之间的数据包转发 |
| 主要调用的内部/外部函数或模块 | - LwIP IEEE 802.1D 桥接功能 |
- ESP-NETIF 适配器组件
- Ethernet 驱动
- WiFi 驱动
- 支持多种 ESP32 芯片 |
| 输入输出参数说明 | 配置参数: - 启用 LwIP IEEE 802.1D 桥接选项
- 配置网络接口数量
- 以太网硬件参数
- WiFi AP 设置
输出结果:
- 桥接接口初始化状态
- 网络链路状态变化
- IP 地址获取情况
- 设备通信状态 |
| 适用场景及典型应用案例 | - 工业自动化网络中的设备互联 - 智能家居设备的网络桥接
- 大型场馆的网络覆盖扩展
- 网络拓扑简化(从树形到环形)
- 低成本网络交换机替代方案 |
15.2 eth2ap
| 字段 | 描述 |
|---|---|
| 例程名称 | 以太网到 WiFi AP 转发示例 |
| 所在文件夹路径 | examples\network\eth2ap |
| 核心功能说明 | 演示如何实现以太网和 WiFi AP 之间的数据包转发,将 ESP32 作为简单的 “路由器”,使连接到 WiFi AP 的设备能够通过以太网访问外部网络 |
| 主要调用的内部/外部函数或模块 | - WiFi 驱动(AP 模式) |
- Ethernet 驱动
- 数据包转发逻辑
- 内部 API(如 esp_wifi_internal_tx)
- 支持多种 ESP32 芯片 |
| 输入输出参数说明 | 配置参数: - WiFi AP SSID 和密码
- 最大连接数
- 以太网硬件参数
输出结果:
- 以太网和 WiFi 初始化状态
- 网络链路状态变化
- WiFi 客户端连接状态
- 数据包转发状态 |
| 适用场景及典型应用案例 | - 家庭网络扩展 - IoT 设备的有线到无线转换
- 移动设备的临时网络接入点
- 工业设备的无线连接解决方案 |
15.3 simple_sniffer
| 字段 | 描述 |
|---|---|
| 例程名称 | 简单网络嗅探器示例 |
| 所在文件夹路径 | examples\network\simple_sniffer |
| 核心功能说明 | 演示如何使用 WiFi 或以太网接口捕获网络数据包,并将其保存为 pcap 格式文件(支持 SD 卡、内存或 JTAG 输出),可用于网络分析和调试 |
| 主要调用的内部/外部函数或模块 | - WiFi 驱动(混杂模式) |
- Ethernet 驱动
- console 组件(命令行界面)
- SD 卡驱动
- app_trace 组件(JTAG 输出)
- pcap 格式处理
- 支持多种 ESP32 芯片 |
| 输入输出参数说明 | 配置参数: - 数据包存储目标(SD 卡、内存或 JTAG)
- 命令历史记录存储
- SD 卡挂载点
- 嗅探任务优先级和栈大小
- 以太网硬件参数
输出结果:
- 设备初始化状态
- SD 卡挂载状态
- 数据包捕获统计
- pcap 文件创建和关闭状态
- 数据包摘要信息 |
| 适用场景及典型应用案例 | - 网络故障诊断 - 网络流量分析
- 安全审计
- 协议开发和调试
- IoT 设备通信监控 |
15.4 sta2eth
| 字段 | 描述 |
|---|---|
| 例程名称 | WiFi 站到有线接口转发示例 |
| 所在文件夹路径 | examples\network\sta2eth |
| 核心功能说明 | 演示如何将 WiFi 站连接转换为有线连接(以太网或 USB NCM 设备),使仅支持有线连接的设备能够访问无线网络 |
| 主要调用的内部/外部函数或模块 | - WiFi 驱动(站模式) |
- Ethernet 驱动
- USB NCM 驱动(ESP32-S2/S3)
- 数据包转发逻辑
- 配置网页服务器
- 统一配网功能
- 支持多种 ESP32 芯片 |
| 输入输出参数说明 | 配置参数: - 配网方式(网页或统一配网)
- WiFi 网络参数
- 有线接口类型(以太网或 USB NCM)
输出结果:
- WiFi 连接状态
- 有线接口初始化状态
- 配网状态
- 设备 IP 地址信息
- 数据包转发状态 |
| 适用场景及典型应用案例 | - 传统有线设备的无线升级 - 工业设备的无线网络接入
- 医疗设备的无线连接
- 智能家居设备的网络扩展
- 临时网络连接解决方案 |
15.5 vlan_support
| 字段 | 描述 |
|---|---|
| 例程名称 | 以太网 VLAN 支持示例 |
| 所在文件夹路径 | examples\network\vlan_support |
| 核心功能说明 | 演示如何在以太网接口上创建虚拟 VLAN 接口,支持不同 VLAN 标签的数据包处理和转发 |
| 主要调用的内部/外部函数或模块 | - Ethernet 驱动 |
- VLAN 接口管理
- 静态 IP 配置
- DHCP 客户端
- 支持多种 ESP32 芯片 |
| 输入输出参数说明 | 配置参数: - VLAN 标签
- 静态 IP 地址、子网掩码和网关
- 以太网硬件参数
输出结果:
- 以太网和 VLAN 接口初始化状态
- 网络链路状态变化
- IP 地址获取情况
- VLAN 接口通信状态 |
| 适用场景及典型应用案例 | - 工业自动化网络中的 VLAN 隔离 - 企业网络中的多部门隔离
- 智能家居设备的网络分段
- 安全监控网络的隔离
- 多租户网络环境 |
15.6 技术要点
网络桥接技术:
- 支持多种网络接口组合(以太网-以太网、以太网-WiFi AP)
- LwIP IEEE 802.1D 桥接协议
- 数据包转发和过滤
WiFi 功能:
- 支持 AP 模式和站模式
- 混杂模式用于网络嗅探
- 内部 API 用于数据包发送
以太网功能:
- 支持多种 PHY 芯片
- 支持 SPI 以太网模块
- VLAN 标签处理
- 多以太网接口支持
数据包处理:
- pcap 格式支持
- 数据包过滤
- 数据包转发
- 流量控制
配网方式:
- 网页配网
- 统一配网
- 手动配网
15.7 构建与运行
所有 network 例程的构建方法基本一致:
- 配置项目:
idf.py menuconfig - 设置网络参数和硬件配置
- 构建项目:
idf.py build - 烧录并监控:
idf.py -p PORT flash monitor - 根据具体例程的要求进行网络连接和测试
15.8 应用场景总结
- bridge:适用于需要连接多个网络的场景,如工业自动化和智能家居
- eth2ap:适用于将有线网络转换为无线网络的场景,如家庭网络扩展
- simple_sniffer:适用于网络分析和调试场景,如网络故障诊断和安全审计
- sta2eth:适用于将无线网络转换为有线网络的场景,如传统设备的无线升级
- vlan_support:适用于需要网络隔离的场景,如企业网络和工业自动化
这些例程展示了 ESP-IDF 在网络方面的强大功能,从简单的数据包转发到复杂的 VLAN 支持,满足不同场景下的网络需求。开发者可以根据自己的应用场景选择合适的例程作为基础,进行二次开发和扩展。
ESP-IDF 例程——网络
https://blog.zhaosn.top/ESP32-examples/15.network/