当前位置: 首页 > news >正文

802.11s Mesh 组网框架流程

协议标准

使用 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 组网

硬件设备
  1. 两个TP link WN722N v1版本
    查看是否支持mesh point:iw list | grep -A 15 “Supported interface modes”
    在这里插入图片描述

  2. 关闭 NetworkManager 和 wpa_supplicant(可能占用网卡)
    sudo systemctl stop NetworkManager wpa_supplicant
    在这里插入图片描述

  3. 接口确认
    在这里插入图片描述

  4. 创建 Mesh 接口
    sudo ip link set wlx0c826806f70a down
    sudo iw dev wlx0c826806f70a interface add mesh0 type mp
    在这里插入图片描述
    新建了一个mesh网口 rename6

  5. 启动 mesh0 接口
    sudo ip link set rename6 up
    在这里插入图片描述

  6. 加入 Mesh 网络
    设置相同的 Mesh ID 和信道(例如信道6,2437 MHz)
    sudo iw dev rename6 mesh join my-mesh freq 2437

  7. 分配 IP 地址
    sudo ip addr add 192.168.100.2/24 dev rename6
    在另一台设备上重复操作
    使用相同的 Mesh ID (my-mesh) 和 频率 (2437 MHz)。
    分配不同 IP,如 192.168.100.1/24。
    在这里插入图片描述

  8. 验证 Mesh 连接连通性
    在这里插入图片描述

  9. 离开当前 Mesh 网络
    sudo iw dev wlx0c826806f70a mesh leave
    在这里插入图片描述

  10. 删除创建的 mesh0 接口(如果存在)
    sudo iw dev rename6 del

  11. 将接口恢复为默认管理模式
    sudo ip link set wlx0c826806f70a down
    sudo iw dev wlx0c826806f70a set type managed
    sudo ip link set wlx0c826806f70a up

  12. 重启 NetworkManager 和 wpa_supplicant
    sudo systemctl restart NetworkManager wpa_supplicant

  13. 检查接口模式
    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)
http://www.xdnf.cn/news/314281.html

相关文章:

  • 【Hive入门】Hive数据导入与导出:批量操作与HDFS数据迁移完全指南
  • Windows环境下maven的安装与配置
  • 前端取经路——工程化渡劫:八戒的构建之道
  • 在Python和C/C++之间共享std::vector<std::vector<int>>数据
  • Linux复习笔记(一)基础命令和操作
  • 信创生态核心技术栈:国产芯片架构适配详解
  • Kafka生产者send方法详解
  • spark基本介绍
  • 当当狸智能天文望远镜 TW2 | 用科技触摸星辰,让探索触手可及
  • 如何使用极狐GitLab 软件包仓库功能托管 maven?
  • Spark 处理过程转换:算子与行动算子详解
  • 团队协作的润滑剂——GitHub与协作流程
  • P1782 旅行商的背包 Solution
  • Dagger中编译import报找不到ProvideClientFactory,initialize中ProvideClientFactory爆红
  • 笔记本外接显示器检测不到hdmi信号
  • 动态规划背包问题
  • AI健康小屋:开启智能健康管理新时代
  • 以生成性学习消除AI焦虑
  • Spire.Presentation组件的使用(2)--制作标题
  • TruPlasma DC 电路管理软件通快霍廷格TruPlasma DC 4005 DC4010
  • C++ 构造函数
  • GCC:Linux x86_64 编译 Linux aarch64 上运行的程序
  • Pandas 的透视与逆透视
  • Marin说PCB之POC电路layout设计仿真案例---08
  • 内存分配的区域
  • Python 10天冲刺 《元编程(Meta-programming)》
  • 生态学领域期刊推荐
  • 26.2Linux中SPI的驱动实验(编程)_csdn
  • SUPER-VLAN基础配置
  • 社区、工地、停车场…视频桩如何实现“全场景适配”?