ESP32 官方文档(十五)ESP-MESH

ESP-MESH

本指南提供有关 ESP-MESH 协议的信息。有关 API 使用的更多信息,请参阅 MESH API 参考

概述

ESP-MESH 是一种基于 Wi-Fi 协议构建的网络协议。ESP-MESH 允许在大的物理区域(室内和室外)上分布的多个设备(以下称为节点)在单个 WLAN(无线局域网)下互连。ESP-MESH 具有自组织和自我修复功能,意味着网络可以自主构建和维护。

简介

传统的 Wi-Fi 网络架构
传统的 Wi-Fi 网络是一点对多点网络,其中称为接入点(AP)的单个中心节点直接连接到所有其他节点(station)。AP 负责仲裁和转发节点之间的传输。一些 AP 还通过路由器中继与外部 IP 网络的传输。传统的 Wi-Fi 网络由于要求每个站必须在一定范围内以直接与 AP 连接而具有有限覆盖区域的缺点。此外,传统的 Wi-Fi 网络易于过载,因为网络中允许的最大站数受到 AP 容量的限制。

在这里插入图片描述
ESP-MESH 与传统的 Wi-Fi 网络的不同之处在于节点不需要连接到中心节点。相反,允许节点与相邻节点连接。节点相互负责传递彼此的传输。这允许 ESP-MESH 网络具有更大的覆盖区域,因为节点仍然可以实现互连而无需在中心节点的范围内。同样,ESP-MESH 也不易受到过载的影响,因为网络上允许的节点数量不再受单个中心节点的限制。

ESP-MESH概念

术语

术语 说明
节点 任何属于或可以属于 ESP-MESH 网络的设备
根节点 网络中的顶级节点
子节点 当节点 X 连接到另一节点 Y 时,节点 X 是子节点,其中连接使节点 X 比根节点更远离节点 Y(就连接数而言)。
父节点 子节点的相反概念
子孙节点 通过从父节点到子节点重复进行都可以访问的任何节点(例:父->子->子孙)
同级节点 共享同一父节点的节点
连接 AP 与站之间的传统 Wi-Fi 关联。ESP-MESH 中的节点将使用其工作站接口与另一个节点的 SoftAP 接口关联,从而形成连接。连接过程包括 Wi-Fi 中的认证和关联过程。
上游连接 从节点到其父节点的连接
下游连接 从节点到其子节点之一的连接
无线跳数 源节点和目标节点之间的路径部分,对应于单个无线连接。遍历单个连接的数据包称为单跳,而遍历多个连接称为多跳。
子网 一个子网是 ESP-MESH 网络的细分,它由一个节点及其所有后代节点组成。因此,根节点的子网由 ESP-MESH 网络中的所有节点组成。
MAC 地址 媒体访问控制地址,用于唯一标识 ESP-MESH 网络中的每个节点或路由器。
DS 分配系统(外部 IP 网络)

树状网络拓扑结构

ESP-MESH 基于 Wi-Fi 协议构建,可以被视为将许多单独的 Wi-Fi 网络组合到单个 WLAN 中的网络协议。在 Wi-Fi 中,Station 在任何时候都限于与 AP(上游连接)的单个连接,而 AP 可以同时连接到多个 Station(下游连接)。然而,ESP-MESH 允许节点同时充当 Station 和 AP。因此,ESP-MESH 中的节点可以使用其 SoftAP 接口具有多个下游连接,同时使用其 Station 接口具有单个上游连接。这就是具有由多个层组成的父子层次结构的树状网络拓扑结构。

ESP-MESH 树状网络拓扑结构
ESP-MESH 是多跳网络,意味着节点可以通过一个或多个无线“跳跃”将数据包发送到网络中的其他节点。因此,ESP-MESH 中的节点不仅传输自己的数据包,还同时用作其他节点的中继。如果物理层上的任何两个节点之间存在路径(通过一个或多个无线跳),则 ESP-MESH 网络内的 任何两个节点(节点对) 都可以进行通信。

ESP-MESH 网络中的大小(节点总数)取决于网络中允许的最大层数,以及每个节点可以拥有的最大下游连接数。可以通过配置这两个变量限制网络的大小。

节点类型

ESP-MESH 节点类型
根节点: 根节点是网络中的顶级节点,并且是 ESP-MESH 网络和外部 IP 网络之间的唯一接口。 根节点连接到传统的 Wi-Fi 路由器,并将数据包中继到外部 IP 网络或从中继到 ESP-MESH 网络内的节点。 ESP-MESH 网络中只能有一个根节点,根节点的上游连接只可能与路由器连接。参考上图,节点 A 是网络的根节点。

叶节点: 叶节点是不允许具有任何子节点(没有下游连接)的节点。因此,叶子节点只能发送或接收自己的数据包,但不能转发其他节点的数据包。如果节点位于网络的最大允许层上,则将其指定为叶节点。这可以防止节点形成任何下游连接,从而确保网络不会添加额外的层。由于需要为任何下游连接提供 SoftAP 接口,因此一些没有 SoftAP 接口(仅限 Station)的节点也将被指定为叶节点。参考上图,节点 L/M/N 位于网络最大允许层上,因此已被指定为叶节点。

中间父节点: 既不是根节点也不是叶节点的连接节点是中间父节点。中间父节点必须具有单个上游连接(单个父节点),但可以具有零到多个下游连接(零到多个子节点)。因此,中间父节点可以发送和接收数据包,但也可以转发从其上游和下游连接发送的数据包。参考上图,节点 B 到 J 是中间父节点。没有下游连接的中间父节点(例如节点 E/F/G/I/J)不等同于叶节点,因为它们在将来仍然允许形成下游连接。

空闲节点: 尚未加入网络的节点被指定为空闲节点。空闲节点将尝试与中间父节点形成上游连接,或尝试在正确的情况下成为根节点(请参阅自动根节点选择)。参考上图,节点 K 和 O 是空闲节点。

信标帧(Beacon 帧)和 RSSI 阈值

ESP-MESH 中能够形成下游连接(即具有 SoftAP 接口)的每个节点将周期性地发送 Wi-Fi 信标帧。节点使用信标帧来允许其他节点检测其存在并知道其状态。空闲节点将监听信标帧以生成潜在父节点的列表,空闲节点将与其中一个形成上游连接。ESP-MESH 使用信标帧中的供应商信息(Vendor IE)元素来存储(传输)元数据,例如:

  • 节点类型(根节点,中间父节点,叶节点,空闲节点)
  • 当前节点层
  • 网络中允许的最大层数
  • 当前子节点数
  • 要接受的最大下游连接数

潜在上游连接的信号强度由潜在父节点的信标帧的 RSSI(接收信号强度指示)表示。为了防止节点形成弱上游连接,ESP-MESH 为信标帧实现了 RSSI 阈值机制。如果节点检测到 RSSI 低于预先配置的阈值的信标帧,则在形成上游连接时将忽略发送该信标帧的节点。

RSSI 阈值的影响
上图中的面板 A 展示了 RSSI 阈值如何影响空闲节点具有的候选父节点的数量。

上图中的面板 B 展示了 RF 屏蔽对象如何降低潜在父节点的 RSSI。由于 RF 屏蔽对象,节点 X 的 RSSI 高于阈值的区域显着减小。这导致空闲节点忽略节点 X,即使节点 X 在物理上相邻。由于更强的 RSSI,空闲节点将改为与物理上远的节点Y形成上游连接。

节点在技术上仍然接收 MAC 层上的所有信标帧。RSSI 阈值是 ESP-MESH 功能,它只是过滤掉所有接收到的低于预先配置阈值的信号帧。

首选父节点

当空闲节点具有多个候选父节点(潜在父节点)时,空闲节点将与首选父节点形成上游连接。首选父节点基于以下标准确定

  • 候选父节点位于哪个层
  • 候选父节点当前具有的下游连接(子节点)的数量

首选父节点的选择将始终优先考虑网络最浅层(包括根节点)上的候选父节点。这有助于在形成上游连接时最小化ESP-MESH网络中的层总数。例如,给定第二层节点和第三层节点,第二层节点将始终是首选的。

如果在同一层内存在多个候选父节点,则具有最少子节点的候选父节点将是首选的。该标准具有平衡同一层的节点之间的下游连接数的效果。

首选父节点
上图中的面板 A 展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值