协议标准
使用 802.11s (标准 Mesh 协议)
基础流程框架

- 连接流程本质:Beacon → Peer Link → HWMP 路径发现 → 数据传输。
- mesh与easymesh的区别
阶段详解
阶段1:Beacon广播
- 作用:周期性宣告Mesh网络存在,同步参数(如Mesh ID、信道)。
- 关键字段:SSID/Wildcard: 包含Mesh ID(如 my-mesh)、Mesh Capability:
- 特点 :
无需应答,默认间隔
双方独立广播,无先后顺序。
阶段2: Peer Link建立
- 交互流程 :
节点A → 节点B: 发送 Peer Link Open,携带本地生成的 Local Link ID=123。
节点B → 节点A: 回复 Peer Link Confirm,携带匹配的 Peer Link ID=123。
- 必要条件 :
双方认证协议一致(如 Authentication Protocol: 0x00 开放认证)。
信号质量达标(可通过 iw station dump 检查RSSI)。
阶段3: HWMP路径发现
- 作用:在双节点直连场景中,HWMP路径发现可能被优化跳过(因Peer Link已建立直连路径)。
- 若触发:
PREQ: 节点A广播路径请求(目标=节点B)。
PREP: 节点B单播回复,确认直连路径(跳数=1,METRIC基于信号质量)。
阶段4: 数据传输
- 帧结构:
如果有帧转发,数据包通过 Mesh Header 封装,包含源/目的MAC和路径信息。
如果只有两个节点,则无Mesh Header 封装。 - 特点:
直连通信无需中继,数据帧直接发送。
若启用加密,数据帧会被加密。
HWMP协议
- HWMP(Hybrid Wireless Mesh Protocol,混合无线Mesh协议)是 IEEE 802.11s标准中定义的路由协议,负责在Mesh网络中动态发现路径、维护拓扑和转发数据。HWMP是802.11s的"大脑",通过控制报文动态管理Mesh路由。
HWMP的核心作用
- 路径发现:通过交换控制报文,找到源节点到目标节点的最优路径。
- 路径维护:监控链路质量,在节点移动或信号变化时重新计算路径。
- 多跳转发:支持数据包通过中间节点中继传输
HWMP报文类型
HWMP通过以下几种控制报文实现功能:
- PREQ (Path Request) 广播发起路径请求,询问到目标节点的路径(路由请求)
- PREP (Path Reply) 目标节点或中间节点回复路径信息 (路由回复)
- PERR (Path Error) 通知其他节点某条路径失效 (路由错误)
- RANN (Root Announce) 根节点(如有)周期性广播自己的存在,简化路径发现 类似广播信标
HWMP工作流程示例(多节点情况下的流程)

- 场景:节点A想发送数据给节点D,但无直接路径。
- PREQ广播:
节点A广播PREQ报文,询问到D的路径。
中间节点(B、C)记录A的路径信息,并转发PREQ。 - PREP回复:
节点D收到PREQ后,沿反向路径(D→C→B→A)单播PREP。 - 路径建立:
各节点更新路由表,后续数据包按此路径转发。
mesh 组网
硬件设备
-
两个TP link WN722N v1版本
查看是否支持mesh point :iw list | grep -A 15 "Supported interface modes"
-
关闭 NetworkManager 和 wpa_supplicant(可能占用网卡)
sudo systemctl stop NetworkManager wpa_supplicant
-
接口确认
-
创建 Mesh 接口
sudo ip link set wlx0c826806f70a down
sudo iw dev wlx0c826806f70a interface add mesh0 type mp
新建了一个mesh网口 rename6
-
启动 mesh0 接口
sudo ip link set rename6 up
-
加入 Mesh 网络
设置相同的 Mesh ID 和信道(例如信道6,2437 MHz)
sudo iw dev rename6 mesh join my-mesh freq 2437 -
分配 IP 地址
sudo ip addr add 192.168.100.2/24 dev rename6
在另一台设备上重复操作
使用相同的 Mesh ID (my-mesh) 和 频率 (2437 MHz)。
分配不同 IP,如 192.168.100.1/24。
-
验证 Mesh 连接连通性
-
离开当前 Mesh 网络
sudo iw dev wlx0c826806f70a mesh leave
-
删除创建的 mesh0 接口(如果存在)
sudo iw dev rename6 del
-
将接口恢复为默认管理模式
sudo ip link set wlx0c826806f70a down
sudo iw dev wlx0c826806f70a set type managed
sudo ip link set wlx0c826806f70a up
-
重启 NetworkManager 和 wpa_supplicant
sudo systemctl restart NetworkManager wpa_supplicant
-
检查接口模式
iw dev wlx0c826806f70a info
确认接口已恢复为 managed 模式
输出应显示:type managed
信息查看
- 查看邻居节点
sudo iw dev rename6 station dump
如果输出为空,说明节点间未建立连接。 - 检查当前 Mesh 配置
iw dev mesh0 info
- 查看 Mesh 路径
sudo iw dev rename6 mpath dump
连接流程只需要一对Peer Link Open帧和Peer Link Confirm帧吗?
- 在802.11s Mesh网络中,Peer Link的建立确实需要一对交互帧(Open + Confirm),也是最小交互单元
从抓包看到,两个mesh的设备,都发了Peer Link Open 帧和Peer Link Confirm 帧,连接的必要条件是什么?
- 正常重传机制:无线环境不稳定时,协议可能重传Open/Confirm帧以确保可靠性,同一对节点间可能出现多组Open/Confirm,但Local Link ID相同
- 若两个节点 发起Open,可能短暂形成双向Open/Confirm,最终会收敛为单条Peer Link(通过Link ID)