01方案结论
首次连接按信号择优;联网后持续观察当前链路,满足条件才寻找候选 AP;优先使用 AC 的漫游辅助能力。
首次连接
扫描同名 SSID 的多个 BSSID,按安全要求过滤,再按 RSSI 排序。允许回退到其他可连接的候选 AP。
连接保持
连接稳定时减少扫描;弱信号持续出现时评估候选,设置切换差值和冷却时间,避免来回切换。
AC 统一管理不等于客户端自动连接最强 AP。客户端主要负责漫游决定,AC/AP 提供邻居信息、目标建议或引导策略。SSID 相同也不能单独保证认证兼容、IP 不变及业务连接无中断。[1]
对固定安装的 ESP32-C3 网关,优先目标是连接稳定和故障可恢复。移动设备可以采用更积极的候选维护策略;两类场景应使用不同配置。
02附近多个同名 AP,如何判断和筛选?
SSID 是网络名称,BSSID 用于区分具体的无线接入接口。扫描时保留每个 BSSID 的独立记录;即使名称相同,也不能合并成一条结果。
| SSID | BSSID(示意) | 信道 | RSSI | 初步判断 |
|---|---|---|---|---|
| Hotel-WiFi | AP-A | 1 | −52 dBm | 信号最好,优先评估 |
| Hotel-WiFi | AP-B | 6 | −68 dBm | 可作为候选 |
| Hotel-WiFi | AP-C | 11 | −79 dBm | 信号较弱 |
以上为解释用示例,不是实测数据。RSSI 越接近 0 越强,例如 −52 dBm 强于 −68 dBm。
- 筛选网络:匹配目标 SSID,确认凭据和认证方式兼容,并满足配置的最低安全要求。
- 筛选候选:保留 BSSID、信道、RSSI、认证类型和扫描时间,避免用过期结果决定切换。
- 排序尝试:优先尝试信号较强的 AP;候选连接失败时,允许回退并对反复失败的候选进行短期退避。
- 连接后验证:确认关联、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]
- 防止瞬时波动:采用移动平均或指数平滑,并要求弱信号持续一段时间。
- 防止反复跳转:候选 AP 必须明显更好;切换后设置最短驻留或冷却时间。
- 没有更好候选:当前连接仍可用就继续保持,退避后再评估;不要为了扫描而先断开。
- 连接真正失效:立即进入故障恢复,不受正常漫游冷却限制。
- 业务异常辅助判断:丢包、超时或业务心跳失败可触发诊断,但先区分无线、DHCP、DNS、AP 回程和服务端故障,避免无效切 AP。
固定网关
建议以弱信号触发为主。连接稳定时不做高频全信道扫描;周期扫描作为可配置功能。
移动设备
可增加周期候选发现,优先利用邻居信道缩小扫描范围,结合移动速度调整间隔。
04AC 网络中的通用机制:802.11k / v / r
| 机制 | 主要作用 | 本方案使用建议 |
|---|---|---|
| 802.11k | 提供邻居 AP、信道等信息,帮助客户端发现候选 | 优先验证,减少盲目全信道扫描 |
| 802.11v | AP/AC 通过 BSS Transition Management 提供切换建议 | 优先使用网络辅助漫游,并保留无辅助能力时的回退 |
| 802.11r | 通过 Fast Transition 加快切换认证 | 作为降低切换中断的可选能力,验证 AC、认证模式与客户端兼容性 |
三者解决的问题不同:k 帮助发现,v 帮助引导,r 帮助加快认证。它们不能代替合理的触发条件,也不能只靠客户端开启就保证效果。[4]
上线前向 AC 管理方核对
- 该 SSID 是否实际启用了 11k、11v、11r,是否允许该类型 IoT 客户端使用。
- 各 AP 的认证方式、凭据和安全策略是否兼容;启用 11r 时核对对应漫游域和认证配置。
- AP 间的 VLAN、子网、DHCP 及 AC 转发方式是否支持预期的 IP 连续性。
- 是否启用弱信号踢除、最低接入 RSSI、负载均衡或其他引导策略,避免与客户端策略互相干扰。
即使 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]
- 首次连接择优:明确设置全信道扫描和按信号排序;配置网络所需的认证门槛。
- 接入官方漫游:开启相应构建选项及 STA 能力配置;先验证 k/v,按网络条件验证 r。
- 统一连接控制:协调启动连接、主动断开、故障重连和漫游,避免现有重连任务与官方模块同时操作连接。
- 区分漫游事件:识别
WIFI_REASON_ROAMING;漫游过程中的断开不能一律触发应用层强制重连或重复清理。参考官方示例的事件处理方式。[6] - 恢复与观测:区分 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,现场兼容性仍需实测。
- Cisco:Client Roaming — 客户端漫游决策与基础设施引导。
- ESP-IDF 5.5.4:ESP32-C3 Wi-Fi Driver — 扫描、连接策略及漫游相关示例。
- ESP-IDF 5.5.4:Wi-Fi 配置类型定义 — scan_method、sort_method、BSSID 与 k/v/r 能力字段。
- Cisco:Understand 802.11r/11k/11v Fast Roams — k/v/r 的作用与配合。
- ESP-IDF 5.5.4:Advanced Wi-Fi Roaming 模块说明 — 触发条件、扫描、差值、退避及漫游方法。
- ESP-IDF 5.5.4:roaming_app 示例 — 初始化和漫游断开事件处理。