Bluetooth® Mesh 网络:Friendship

如需要了解更多蓝牙相关知识,请点击下方连接

https://blog.csdn.net/weixin_47456647/article/details/155188246?spm=1011.2415.3001.5331

蓝牙低功耗(LE)是全球功耗最高效的短距无线通信技术之一,其低功耗特性广受开发者与消费者好评。随着蓝牙网状网络的推出,开发者可能会好奇:蓝牙网状网络是否也兼顾了低功耗设计?它是否继承了蓝牙 LE 的低功耗优势?

答案是肯定的!蓝牙网状网络包含多种功耗优化措施,其中一项核心特性就是 "友关系"。

概述

友关系特性在蓝牙网状网络中的应用场景十分丰富:部分产品(如灯具)由市电供电,其蓝牙网状网络模块的功耗与灯具本身的功耗相比可忽略不计;但另一类产品(如智能传感器、门锁)存在功耗限制,需依赖小型电池或能量收集技术供电 ------ 这类产品正是蓝牙网状网络友关系概念的主要应用对象。

若你读过本系列此前的文章,应该已经知道:节点是完成配置并加入网状网络的设备。节点具备与产品类型对应的功能,同时也可承担与网络运行相关的特殊职责(具体取决于节点支持的网络特性)。所有节点都能在网络中收发网状消息,此外还可选择性支持以下一项或多项额外网络特性:

  • 中继功能:通过广播承载接收并重传网状消息,以实现更大规模的网络。
  • 代理功能:在 GATT 承载与广播承载之间接收并重传网状消息。
  • 低功耗功能:能够在网状网络中以极低功耗运行,通过减少无线电接收器的开启时间来降低接收占空比。通过将接收器的开启时机限制在必要场景,可大幅降低功耗 ------ 低功耗节点(LPN)正是通过与友节点建立 "友关系" 来实现这一点。
  • 友功能:协助低功耗节点运行的能力,具体是暂存发往低功耗节点的消息,仅在低功耗节点主动向友节点请求消息时才转发。

要理解友关系如何帮助低功耗节点降低功耗,我们可以以传感器为例 ------ 传感器是典型的低功耗节点应用场景。这类设备通常大部分时间都在传输数据,很少需要接收数据:比如某传感器仅在温度超出配置阈值时才传输读数,可能一天只触发两次,这种低频率传输本身就能让设备能耗极低。

但如果需要根据季节调整温度阈值(通过向传感器发送配置消息实现)呢?若传感器要直接接收这类消息,就必须开启无线电监听 ------ 但多数时候不会收到数据,却会消耗能量。

而与友节点配合后,低功耗节点可自主调度无线电接收消息的频率(远低于持续监听的频率)。低功耗节点会主动向友节点轮询新消息,而友节点仅偶尔暂存消息 ------ 这就是实现节能的核心逻辑。

友节点与低功耗节点

低功耗节点必须与支持友功能的节点建立友关系,才能降低接收占空比、实现节能。图 1 摘取自《蓝牙网状网络规范》,展示了低功耗节点与友节点的关系,其中:

  • 浅蓝色:低功耗节点(LPN)
  • 深灰色:与特定低功耗节点建立关联并提供服务的友节点
  • 浅灰色:未与任何低功耗节点建立关系的友节点

友节点 P 与低功耗节点 I、J、K 建立了友关系;友节点 O 与低功耗节点 L、M 建立了友关系。因此,发往节点 I、J、K 的消息会由友节点 P 暂存并转发;发往节点 L、M 的消息会由友节点 O 暂存并转发。友节点仅在低功耗节点主动轮询待交付消息时,才会执行转发操作。

友关系参数

低功耗节点需要找到友节点并建立友关系,这一流程称为 "友关系建立"。我们稍后会详细介绍该流程,在此之前先介绍一些控制低功耗节点行为的核心参数(这些参数在友关系建立时配置):

  • 接收延迟(ReceiveDelay):低功耗节点向友节点发送请求后,到开始监听响应的间隔时间。这让友节点有足够时间准备并发送响应。
  • 接收窗口(ReceiveWindow) :低功耗节点用于监听响应的时长。图 2 展示了包含 "接收延迟" 与 "接收窗口" 的时序流程。
  • 轮询超时(PollTimeout) :低功耗节点向友节点发送两次连续请求的最大间隔时间。若友节点在轮询超时计时器到期前,未收到低功耗节点的请求,则友关系会被终止。

友关系建立

人与人建立友谊或许只需要一个眼神,但蓝牙网状网络中建立友关系需要多几个步骤:

  • 低功耗节点(LPN)发布一条友请求消息。这条消息不会被中继,因此只有直接无线电范围内的友节点会处理它(不支持友功能的节点会丢弃该消息)。友请求消息包含 LPN 所需的接收延迟(ReceiveDelay)、接收窗口(ReceiveWindow)和轮询超时(PollTimeout)参数。
  • 附近所有能满足友请求消息中参数要求的友节点,会准备并向 LPN 发送友提供消息。该消息包含多个参数,比如支持的接收窗口大小、可用的消息队列容量、订阅列表容量,以及友节点测量到的信号强度(RSSI)值。
  • LPN 收到友提供消息后,会通过 "厂商自定义算法" 选择合适的友节点。算法通常会综合多方面因素:有些设备可能优先考虑接收窗口大小以最大化节能,有些则更关注 RSSI 值以确保与友节点的链路质量稳定。具体算法由产品开发者决定。
  • 选定友节点后,LPN 向该友节点发送友轮询消息
  • 友节点收到 LPN 的友轮询消息后,回复友更新消息------ 这标志着友关系建立流程完成,同时会提供安全参数。至此,友关系正式建立。

友节点消息通信

友关系建立后,友节点会将所有发往 LPN 的消息暂存在友队列中,这些消息统称为 "暂存消息"。下图 4 展示了友节点与关联 LPN 之间的消息交互流程:

  • 当友节点收到发往其关联 LPN 的消息时,会将该消息缓存到 "友队列" 中。在图 4 中,消息 1 和消息 2 就是友节点为 LPN 暂存的消息。
  • LPN 会定期开启收发器,向友节点发送友轮询消息,请求友节点为其暂存的缓存消息。
  • 友节点收到友轮询消息后,会将暂存的消息发送给 LPN 作为响应。
  • LPN 在收到友节点的每条消息后,会继续发送友轮询消息,直到收到 "MD(More Data,更多数据)字段设为 0" 的友更新消息 ------ 这表示已无更多为 LPN 缓存的消息,此时 LPN 会停止向友节点轮询。

安全性

蓝牙网状网络的安全性无处不在,友关系也不例外 ------ 它使用两种专用安全凭据:

  • 受控泛洪安全素材:由网络密钥(NetKey)衍生而来,同一网络中的其他节点也可使用。用该素材加密的消息,同一网络内的任意节点都能解密。
  • 友安全素材:由网络密钥(NetKey)和低功耗节点(LPN)、友节点生成的额外计数器数值共同衍生而来。用该素材加密的消息,仅持有它的友节点与 LPN 能解密。

低功耗节点与友节点如何使用这两种安全素材?总结如下:

友安全素材加密的友关系消息包括:

  • 友轮询(Friend Poll)
  • 友更新(Friend Update)
  • 友订阅列表添加 / 移除 / 确认(Friend Subscription List Add/Remove/Confirm)
  • 友节点向 LPN 交付的暂存消息

受控泛洪安全素材加密的友关系消息包括:

  • 友清除(Friend Clear)
  • 友清除确认(Friend Clear Confirm)

低功耗节点发往友节点的消息,会根据应用设置,选择用受控泛洪安全素材或友安全素材加密。

友关系终止

在以下场景中,友关系会被终止:

  • 若友节点在 ** 轮询超时(PollTimeout)** 计时器到期前,未收到 "友轮询""友订阅列表添加" 或 "友订阅列表移除" 消息,友关系会被终止。
  • LPN 可通过向友节点发送 ** 友清除(Friend Clear)** 消息,主动发起友关系终止流程,由友节点完成终止操作。

平台选型建议

开发者在选择实现友节点与 LPN 的平台时,应考虑以下指导原则:

  • RAM 容量:可用 RAM 直接影响友节点能支持的 LPN 数量,以及为关联 LPN 缓存的消息数量。
  • LPN 相关:所选微控制器(MCU)与模块的整体功耗表现是 LPN 的关键;此外,从睡眠模式切换到运行模式的唤醒 / 预热时间,会影响 LPN 的响应速度与延迟。

作为开发者,我和大家一样期待蓝牙网状网络 SDK 的推出 ------ 届时我们就能一同体验蓝牙网状网络的友关系功能了!

相关推荐
我要添砖java3 小时前
《JAVAEE》网络编程-什么是网络?
java·网络·java-ee
华普微HOPERF3 小时前
Matter1.5版本解析,智能家居又添惊喜
物联网·智能家居·matter1.5
独行soc4 小时前
2025年渗透测试面试题总结-275(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
中屹指纹浏览器6 小时前
指纹浏览器抗检测进阶:绕过深度风控的技术实践
服务器·网络·经验分享·笔记·媒体
wu_huashan6 小时前
环路造成的IP/MAC地址漂移说明
网络·yersinia攻击·ip地址漂移·mac地址漂移
txzz88887 小时前
网络应用netstart命令
网络·windows·计算机网络·microsoft
网安小白的进阶之路8 小时前
B模块 安全通信网络 第二门课 核心网路由技术-1-OSPF之特殊区域
网络·安全
JZZC28 小时前
33.PPP——CHAP认证
网络
一条咸鱼¥¥¥9 小时前
【运维经济】思科交换机和路由器的密码重置方法
运维·网络·智能路由器