Bluetooth MESH探究

Bluetooth MESH目前采用的是基于flooding协议的MESH网络技术。在发布的协议版本中,有提到在未来的修订版本中可能会加入基于路由协议的MESH网络。

的确,flooding协议是相对比较初级的MESH网络技术。由于在网络层中的数据包都是以广播的形式发送并且转发,会在网络中产生大量重复发送的数据包,从而对网络的整体功耗有很大程度的负面影响。目前的flooding MESH协议,只适合于规模比较小的网络,而且不适合于网络数据量比较大的应用场景。

在介绍网络层协议之前,首先对BLE MESH的网络架构做个了解(图片来源于协议规范)。
在这里插入图片描述

上图中一共有四种连接,五种节点,下面分别做介绍:

四种连接:

(1) ADV(Not Relayed):两个节点之间可以互相收发广播消息,但是由于不是中继节点,不能中继转发数据包;

(2) ADV(Low power):用于low powernode与friend node之间收发数据包,如上图中的J与P之间的连接、L与O之间的连接。在这个连接上,low power node会主动发起请求建立friendship连接,以及从friend node查询是否有自己的数据。

(3) ADV Bearer:两个节点之间可以基于advertisingbearer收发广播消息,并且可以作为中继转发;

(4) GATT Bearer:用于没有ADVbearer能力的节点也能参与MESH网络。比如,节点T可以通过代理协议与其它节点在GATT连接上收发代理PDU。

五种节点:

(1) Node: 网络边缘的节点,没有relay功能。

(2) Low power node: 低功耗节点,由于有friendnode的存在,low power node不需要一直在广播信道发送或者监听数据包,可以更节省功耗。Low power node只需要定期的从它的friend node查询是否有数据到达就可以。

(3) Relay node: 是网络层扩展网络覆盖范围的核心节点,在接收到其它节点发送的数据包之后,根据网络的设定条件判断是否需要转发。

(4) Friend node: 作为low powernode的代理节点功能,当有low power node节点的数据下达时,可以在friend node缓存,等待low power node查询并且获取。

(5) Friend feature(not used): 在上图中,节点N具有friendfeature,但是它没有相应的low power node,所以friend feature没有使用。

在Provisioning节点为网络中的节点设定好相应的role之后。节点在网络层发送、中继以及接收数据包主要依赖于网络PDU的格式,其中,最主要的决定网络层行为的几个关键参数是NID、TTL、SRC以及DST。网络层PDU的组成以及描述如下表所示(图片来源于协议规范):
在这里插入图片描述

当一个节点收到网络数据包时,它需要根据下图所示的流程进行处理(图片来源于协议规范):

在这里插入图片描述

(1) 如果节点接收到数据包,首先判断NID是否匹配,如果不匹配,则直接丢弃该数据包;

(2) 判断NID满足之后,需要对网络数据包进行完整性验证,如果验证不通过,则丢弃该数据包;

(3) 对源地址和目的地址进行有效性判断,如果地址无效,丢弃该数据包;

(4) 在cache中查找是否之前已经收到过该数据包,如果收到,则丢弃该数据包;

(5) 如果没有收到,则将该数据包放入cache,并根据节点类型、TTL值以及DST值进行判断是否需要转发,只有在如下三个条件都满足的情况下才relay该数据包。

Ø 节点类型为relay node;

Ø TTL值大于等于2;

Ø DST地址不为本节点;

(6) 如果不满足relay条件,则丢弃该数据包。

(7) 如果满足条件,在relay数据包时,需要将数据包报文中的TTL值减1,然后继续广播。

下面以前文所列的拓扑图为例,介绍一个数据包的转发的完整过程:

场景:节点J需要发送数据包给节点E,TTL值设定为3.

(1) 首先,节点J发送数据包给节点P;

(2) 节点P收到收据包,由于转发条件都满足,节点P将TTL修改为2,广播该数据包。此时,节点A、Q以及H都会收到该数据包;

(3) 由于节点A以及节点H不是relay节点,将不会转发该数据包。

(4) 节点Q收到数据包后,判断转发条件都满足,节点Q将TTL修改为1,广播该数据包。此时,节点A、B、C、D、E以及R都会收到该数据包;

(5) 由于节点A、B、C、D不是relay节点,将不会转发该数据包。节点E收到数据包之后,判断DST地址是自己,则会处理并且将该数据包发给上层。节点R收到数据包时,虽然它是relay节点,但是由于TTL为1,节点R会丢弃该数据包。

小结:
BLEMESH的flooding协议虽然比较简单,但是它有比较明显的缺点,比如,大量的广播包转发消耗更多的网络能量,所以目前BLE MESH的应用范围还是比较受限。正如协议中所描述,在后续的修订版本中可能会引入基于路由协议的MESH网络,到那时BLE MESH的应用范围能够更广泛。
————————————————
版权声明:本文为CSDN博主「yangfei1328」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yangfei1328/article/details/76737664

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bluetooth Mesh是一种基于蓝牙技术的网络拓扑结构,用于实现大规模、灵活和可靠的物联网设备互联。与传统的蓝牙点对点连接不同,Bluetooth Mesh允许设备在一个广域网络中相互连接和通信。 在Bluetooth Mesh网络中,设备组成了一个网状拓扑结构,其中每个设备都可以充当路由器和终端节点。这意味着数据可以通过多个设备进行跳转传输,从而实现更大范围的覆盖和可靠性。 Bluetooth Mesh具有以下特点和优势: 1. 可扩展性:支持多达数千个设备同时连接,并且可以动态添加或删除设备,以适应不同规模的应用场景。 2. 低功耗:采用低功耗蓝牙(Bluetooth Low Energy)技术,使得设备能够以节能的方式进行通信,并且具有较长的电池寿命。 3. 高可靠性:通过多跳传输,数据可以在网络中多个设备间进行自动路由,从而提供更高的可靠性和容错性。 4. 安全性:提供安全的数据传输和身份验证机制,确保通信过程中的数据保密性和完整性。 5. 灵活性:支持多种设备类型和应用场景,可以适用于智能家居、商业建筑自动化、工业控制等不同领域。 Bluetooth Mesh网络可以通过专门的Mesh网络管理工具进行配置和管理,以确保网络的稳定性和性能。它为物联网设备提供了一种可靠、灵活和安全的互联解决方案,为各种应用场景带来了更多的可能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值