Wi-Fi Technical Proposal · ESP32-C3

同名 AP 选择与 Wi-Fi 漫游方案

面向 AC 统一管理、多 AP 使用相同 SSID 的网络,说明客户端如何选择 AP、何时寻找更好的连接,以及在 ESP32-C3 上的实现建议。

版本 V1.0日期 2026-10-29适用工具链 ESP-IDF 5.5.4场景 固定网关优先,兼顾移动设备
文档状态:技术建议方案。已实现全信道择优、弱信号持续评估、候选筛选、11k/11v 与传统切换回退;尚未完成 AC/AP 实机验证。当前观察模式默认每 5 秒显示连接状态与当前信道/RSSI,每 10 秒搜索同名 AP 并显示本次 AP 数量、信道和 RSSI;未满足切换条件只列结果。实现细节见同目录 ROAMING.md。当前使用公开 k/v/r 接口及单一控制任务,未启用实验性高级漫游 App。

01方案结论

首次连接按信号择优;联网后持续观察当前链路,满足条件才寻找候选 AP;优先使用 AC 的漫游辅助能力。

首次连接

扫描同名 SSID 的多个 BSSID,按安全要求过滤,再按 RSSI 排序。允许回退到其他可连接的候选 AP。

连接保持

连接稳定时减少扫描;弱信号持续出现时评估候选,设置切换差值和冷却时间,避免来回切换。

AC 统一管理不等于客户端自动连接最强 AP。客户端主要负责漫游决定,AC/AP 提供邻居信息、目标建议或引导策略。SSID 相同也不能单独保证认证兼容、IP 不变及业务连接无中断。[1]

对固定安装的 ESP32-C3 网关,优先目标是连接稳定和故障可恢复。移动设备可以采用更积极的候选维护策略;两类场景应使用不同配置。

02附近多个同名 AP,如何判断和筛选?

SSID 是网络名称,BSSID 用于区分具体的无线接入接口。扫描时保留每个 BSSID 的独立记录;即使名称相同,也不能合并成一条结果。

SSIDBSSID(示意)信道RSSI初步判断
Hotel-WiFiAP-A1−52 dBm信号最好,优先评估
Hotel-WiFiAP-B6−68 dBm可作为候选
Hotel-WiFiAP-C11−79 dBm信号较弱

以上为解释用示例,不是实测数据。RSSI 越接近 0 越强,例如 −52 dBm 强于 −68 dBm。

  1. 筛选网络:匹配目标 SSID,确认凭据和认证方式兼容,并满足配置的最低安全要求。
  2. 筛选候选:保留 BSSID、信道、RSSI、认证类型和扫描时间,避免用过期结果决定切换。
  3. 排序尝试:优先尝试信号较强的 AP;候选连接失败时,允许回退并对反复失败的候选进行短期退避。
  4. 连接后验证:确认关联、IP 和实际业务通信。RSSI 高不能证明 AP 负载低、回程正常或业务服务器可达。

ESP32-C3 的首次连接配置建议

// wifi_config_t.sta 的关键字段;仅为配置示意
.scan_method = WIFI_ALL_CHANNEL_SCAN,
.sort_method = WIFI_CONNECT_AP_BY_SIGNAL,
.bssid_set   = false,
.channel     = 0,

WIFI_ALL_CHANNEL_SCAN 扫描允许的全部信道,再依据配置策略选择 AP;WIFI_FAST_SCAN 找到第一个符合条件的 AP 就可能停止,不能保证选到同名 AP 中信号最强的一个。[2]

日常使用不长期绑定 BSSID。绑定适合对某台 AP 做定向测试;开启网络辅助漫游时应避免固定 BSSID。认证门槛应按实际网络明确配置,不能只凭名称和信号接入。[3]

03连上之后,何时寻找更好的 AP?

需要持续观察当前连接,但不需要频繁进行全信道扫描。读取当前 AP 的 RSSI 与扫描其他 AP 是两类操作:前者开销较小,后者会占用无线时间,可能影响现有链路的延迟和吞吐量。[2]

STEP 1观察当前链路采样 RSSI 并平滑处理,记录异常和持续时间。
STEP 2按条件发现候选弱信号持续出现时,利用邻居信息或扫描寻找 AP。
STEP 3评估切换收益比较信号差值、安全兼容性、候选时效和失败记录。
STEP 4切换并验证恢复检查 BSSID、IP 与业务可达性,进入冷却或失败退避。

固定网关

建议以弱信号触发为主。连接稳定时不做高频全信道扫描;周期扫描作为可配置功能。

移动设备

可增加周期候选发现,优先利用邻居信道缩小扫描范围,结合移动速度调整间隔。

04AC 网络中的通用机制:802.11k / v / r

机制主要作用本方案使用建议
802.11k提供邻居 AP、信道等信息,帮助客户端发现候选优先验证,减少盲目全信道扫描
802.11vAP/AC 通过 BSS Transition Management 提供切换建议优先使用网络辅助漫游,并保留无辅助能力时的回退
802.11r通过 Fast Transition 加快切换认证作为降低切换中断的可选能力,验证 AC、认证模式与客户端兼容性

三者解决的问题不同:k 帮助发现,v 帮助引导,r 帮助加快认证。它们不能代替合理的触发条件,也不能只靠客户端开启就保证效果。[4]

上线前向 AC 管理方核对

即使 IP 保持不变,也要实测业务连接是否保持,以及切换期间的消息丢失和恢复时间;应用层应具备必要的重连与恢复能力。

05建议参数与切换示例

以下是面向固定网关的初始调试值,不是行业统一标准,也不是已实测的最终值。应根据天线、安装位置、AP 密度、干扰和业务延迟要求调整;若采用官方漫游模块,应映射到其实际支持的参数,额外逻辑另行实现。

项目建议起点目的
当前 RSSI 采样每 3–5 秒持续观察,不等同于扫描全部 AP
弱信号触发阈值平滑 RSSI 低于 −72 dBm触发候选评估,不立即断网
弱信号持续时间约 10 秒过滤短时抖动
候选信号优势至少强 8–10 dB确保切换具有明显收益
弱信号下再次寻找候选间隔 30–60 秒控制扫描与评估开销
成功切换后的冷却约 60 秒减少两个 AP 之间的反复切换
连接失效时处理立即进入恢复跳过正常冷却限制,优先恢复通信
当前 AP候选 AP差值示例判断
−74 dBm−71 dBm+3 dB优势小,通常继续保持
−78 dBm−60 dBm+18 dB优势明显,满足兼容性、时效及冷却条件后考虑切换
−55 dBm−48 dBm+7 dB当前连接已经较好,固定网关通常无需主动切换

候选优势按“候选 RSSI − 当前 RSSI”计算,单位为 dB;RSSI 本身以 dBm 表示。示例均不代表现场测试结果。

06ESP32-C3 工程落地建议

优先复用 ESP-IDF 官方漫游模块

本机 ESP-IDF 5.5.4 已包含 Advanced support for Wi-Fi Roaming 及 examples/wifi/roaming/roaming_app。官方模块支持低 RSSI 触发、周期扫描、候选 RSSI 差值、漫游退避,以及网络辅助和传统断开重连方式,该模块会自行立即重连,当前实现采用相同公开 k/v/r 接口,把策略统一放在现有控制任务,以保留持续时间、平滑和重连协调。[5]

  1. 首次连接择优:明确设置全信道扫描和按信号排序;配置网络所需的认证门槛。
  2. 接入官方漫游:开启相应构建选项及 STA 能力配置;先验证 k/v,按网络条件验证 r。
  3. 统一连接控制:协调启动连接、主动断开、故障重连和漫游,避免现有重连任务与官方模块同时操作连接。
  4. 区分漫游事件:识别 WIFI_REASON_ROAMING;漫游过程中的断开不能一律触发应用层强制重连或重复清理。参考官方示例的事件处理方式。[6]
  5. 恢复与观测:区分 AP 关联、IP 就绪和业务恢复,按需恢复业务连接,记录全过程时间线。

现状与拟新增范围

能力现有测试工程本方案建议
扫描、状态、RSSI、IP/DHCP、ping、iperf已实现并通过构建;待硬件验证保留,作为漫游观测和测试工具
断线自动重连已实现由同一控制任务协调漫游和重连
首次连接按最强信号择优已配置全信道扫描和按信号排序明确配置扫描与排序策略
弱信号触发、周期候选评估已实现,待实机验证复用公开 k/v/r 接口,统一控制任务实现策略
11k / 11v / 11r 联调未验证在实际 AC 网络中按功能分别测试
漫游统计与业务恢复记录已有扫描、查询、BSSID 变化、IP 恢复和失败统计增加切换原因、目标、耗时和结果记录

建议提供的调试能力

提供漫游开关、参数查看、候选列表与漫游统计;允许手动发起评估。记录旧/新 BSSID、信道、RSSI、触发原因、扫描耗时、切换耗时、IP 是否变化、业务恢复耗时及失败原因。已提供 wifi roam status/on/off/check/candidates;参数通过 menuconfig 调整,尚未提供串口动态参数修改。

07测试与验收

至少使用两个同名 SSID、认证兼容的 AP,记录 AC/AP 型号和配置、C3 固件版本、供电、安装位置、信道和测试时间。用连续 ping 与实际业务心跳共同观察中断。

场景操作重点观察
首次择优多个同名 AP 提供明显不同的 RSSI,重复启动连接实际连接的 BSSID、RSSI 与候选排序;失败后能否回退
弱信号迁移逐步衰减当前 AP 信号,保持另一个 AP 更好触发时机、候选差值、BSSID 切换和恢复时间
边界抖动让两个 AP 信号接近并小幅波动是否频繁来回切换,冷却和持续时间是否有效
无更好候选当前 AP 信号弱,但没有合适替代能否保持可用连接,扫描和重试是否退避
当前 AP 掉电直接关闭已连接 AP跳过正常冷却后恢复连接,业务是否恢复
AC 能力对比分别关闭/开启 k、v,按兼容配置测试 r候选发现、网络引导、认证和中断时间变化
IP 与业务连续性在预期网络拓扑内跨 AP 切换IP 是否变化、DHCP 行为、TCP/MQTT 是否保持或正确恢复
长稳与性能运行 8–24 小时,多次制造信号变化并测量业务延迟非必要切换、内存趋势、异常重启,以及扫描对吞吐量的影响

建议记录:每轮切换前后 BSSID/RSSI、触发原因、ping 连续丢包数、无线恢复时间、IP 就绪时间、业务恢复时间及成功率。先测现有断线重连基线,再比较漫游方案。

验收门槛由实际业务确定。不预先承诺“零丢包”“毫秒级无缝”或固定恢复时间;采用同一套环境和记录方法,证明切换收益、稳定性和业务恢复能力。

08参考资料与依据

协议与接口说明来自厂商官方资料;参数、场景划分及实施顺序为本方案的工程建议。本地能力核对基于 ESP-IDF 5.5.4,现场兼容性仍需实测。

  1. Cisco:Client Roaming — 客户端漫游决策与基础设施引导。
  2. ESP-IDF 5.5.4:ESP32-C3 Wi-Fi Driver — 扫描、连接策略及漫游相关示例。
  3. ESP-IDF 5.5.4:Wi-Fi 配置类型定义 — scan_method、sort_method、BSSID 与 k/v/r 能力字段。
  4. Cisco:Understand 802.11r/11k/11v Fast Roams — k/v/r 的作用与配合。
  5. ESP-IDF 5.5.4:Advanced Wi-Fi Roaming 模块说明 — 触发条件、扫描、差值、退避及漫游方法。
  6. ESP-IDF 5.5.4:roaming_app 示例 — 初始化和漫游断开事件处理。