3、WiFi网络基础:Station模式、AP模式、WiFi Direct、WiFi Mesh(802.11s)原理
聊蓝牙Mesh之前,咱们得先把WiFi这边的家底摸清楚。很多做物联网的工程师,一上来就想着怎么把两种协议揉在一起,结果连WiFi最基本的几种工作模式都没搞透——嗯,我早年就吃过这个亏。
WiFi这玩意儿,说白了就是一套无线局域网标准。但它的工作模式远不止你家里那个路由器那么简单。我个人习惯把WiFi的组网能力分成四个层次:Station(站点)、AP(接入点)、WiFi Direct(点对点)、WiFi Mesh(802.11s)。咱们一层一层剥开看。
3.1 Station模式:最基础的“客户端”角色
Station模式,也叫客户端模式。你的手机、笔记本连上家里WiFi的时候,它们就是Station。这个模式的核心逻辑就一句话:找AP,连上去,拿IP,上网。
我在一个智能家居项目里遇到过这样的坑:设备明明连上了路由器,但就是ping不通。后来发现是Station在关联AP之后,没有完成DHCP流程。你想想看,WiFi层关联成功只代表二层通了,三层还得靠IP。很多初学者把这两件事混为一谈。
Station模式的关键流程:
- 扫描(Scan):主动发Probe Request,或被动听Beacon帧。
- 认证(Authentication):开放系统认证或共享密钥认证。
- 关联(Association):与AP建立逻辑连接,分配AID。
- DHCP:获取IP地址、网关、DNS。
这里有个避坑指南:我曾经在批量部署设备时发现,某些WiFi芯片在扫描阶段会卡在被动扫描上,导致入网时间长达30秒。后来我强制让设备先发主动Probe Request,问题就解决了。说白了,主动扫描比被动扫描快得多,但费电。
3.2 AP模式:网络的中枢神经
AP(Access Point),接入点。它负责广播Beacon帧,响应Station的关联请求,转发数据帧。家用路由器其实就是AP + 路由 + NAT的合体。
AP模式的核心能力有两个:
- BSS(基本服务集)管理:一个AP + 若干Station构成一个BSS。每个BSS有唯一的BSSID(通常是AP的MAC地址)。
- 帧转发:AP收到Station发来的数据帧,要么直接转发给同一个BSS内的其他Station,要么通过DS(分布式系统)转发到有线网络。
我记得有一次做户外WiFi覆盖,AP的发射功率调到了最大,结果覆盖范围没增加多少,反而干扰了隔壁频段。后来查资料才发现,AP的覆盖范围不是由发射功率单方面决定的,Station的上行功率才是瓶颈。你AP喊得再响,Station回不来,一样白搭。
| 参数 | AP模式 | Station模式 |
|---|---|---|
| 角色 | 网络中心 | 网络终端 |
| 发送Beacon | 是 | 否 |
| 处理关联 | 是 | 否 |
| DHCP服务 | 通常提供 | 通常请求 |
| 典型功耗 | 高(常发Beacon) | 低(可休眠) |
3.3 WiFi Direct:去中心化的点对点连接
WiFi Direct,也叫P2P(Peer-to-Peer)。它的出现是为了解决一个很实际的问题:两个设备想直接传文件,但没有路由器怎么办?
WiFi Direct的玩法是:其中一个设备扮演“软AP”(Group Owner,GO),另一个设备以Station身份连上来。但和传统AP模式不同,GO的角色可以协商切换。比如你的手机和打印机直连,手机可以当GO,打印机也可以当GO,看谁的处理能力强。
我在一个文件传输项目里用过WiFi Direct。当时有个坑:GO设备在切换信道时,所有连接的Client都会断连。后来我查了802.11标准才发现,GO的缺席时间不能超过特定值,否则Client会认为GO消失了。解决办法是让GO在切换信道前发一个Notice of Absence帧,告诉Client“我闪一下,马上回来”。
WiFi Direct vs 传统Ad-hoc:
传统Ad-hoc(IBSS)模式下,所有节点地位平等,但管理帧开销大,且不支持WPA2加密。WiFi Direct引入了GO/Client分层,支持WPA2,实际吞吐量也更高。我个人建议:新项目直接放弃Ad-hoc,用WiFi Direct。
3.4 WiFi Mesh(802.11s):真正的多跳组网
终于聊到重头戏了。WiFi Mesh,标准是802.11s。它解决的是AP模式的一个致命缺陷:覆盖范围受限。一个AP再强,穿两堵墙信号也废了。Mesh的思路是:让多个AP之间通过无线链路互联,形成一个多跳网络。
802.11s引入了几个关键概念:
- MP(Mesh Point):Mesh节点,每个MP都具备转发能力。
- MAP(Mesh Access Point):既当Mesh节点,又提供Station接入。
- MPP(Mesh Portal Point):连接Mesh网络和有线网络的网关节点。
- HWMP(Hybrid Wireless Mesh Protocol):混合无线Mesh协议,802.11s的默认路由协议。
HWMP很有意思。它结合了两种路由机制:
- 树状路由(基于RANN):MPP定期广播Root Announcement,其他MP根据信号质量选择父节点,形成一棵以MPP为根的树。数据流向MPP时走树状路径。
- 按需路由(基于AODV):当两个MP之间需要通信,但树状路径不是最优时,源MP发起PREQ(路径请求),目标MP回复PREP(路径回复),建立一条按需路径。
说白了,树状路由保证了你总能连到互联网,按需路由保证了局域网内通信不走冤枉路。
802.11s的坑,我踩过两个:
- 路由环路:HWMP虽然有防环机制,但在拓扑剧烈变化时(比如某个MP突然掉电),临时环路还是会出现。我当时的解决办法是:在MP上启用RTT(往返时间)检测,如果发现路径延迟突然增大,立即触发路由刷新。
- 多跳吞吐量衰减:每经过一跳,吞吐量大约下降50%。3跳之后基本只剩1/8。这不是协议问题,是半双工无线介质的物理限制。所以Mesh网络建议控制在3跳以内。
3.5 四种模式的对比与选型建议
咱们用一张表把这四种模式的核心差异说清楚:
| 特性 | Station | AP | WiFi Direct | 802.11s Mesh |
|---|---|---|---|---|
| 是否需要固定基础设施 | 是(需要AP) | 否(自身就是) | 否(点对点) | 否(自组网) |
| 多跳支持 | 否 | 否 | 否 | 是 |
| 最大节点数 | 取决于AP | 通常32-128 | 通常2-8 | 理论255+ |
| 典型延迟 | 低(1跳) | 低(1跳) | 低(1跳) | 中(多跳累积) |
| 适用场景 | 终端设备 | 热点覆盖 | 临时直连 | 大范围覆盖 |
我个人做选型时有个习惯:先问自己三个问题——设备需不需要移动?网络规模多大?有没有现成的AP基础设施?如果设备固定且附近有AP,用Station模式最省事。如果需要临时组网且设备少,WiFi Direct就够了。如果要做全屋覆盖或户外大范围,802.11s Mesh是正解。
下面这张图把这四种模式的关系画清楚了:
嗯,这张图把四种模式的关系和它们在混合组网中的位置都标出来了。后面咱们讲蓝牙Mesh与WiFi混合组网时,会反复用到这些概念。尤其是802.11s Mesh,它将是WiFi侧多跳骨干的核心。