文章目录

  • 背景
  • 术语
    • Managed Flooding
    • Models
    • Scenes
  • 架构
  • Node Features
    • 中继节点
    • 代理节点
    • 友元节点和低功耗节点
    • 示例
    • BLE Mesh Networking 在智能家居中是如何工作的?
  • The Provisioning Process
    • Step 1: Beaconing
    • Step 2: Invitation
    • Step 3: Public Key Exchange
    • Step 4: Authentication
    • Step 5: Provision Data Distribution
  • Security in Bluetooth mesh
    • 节点移除
    • 隐私
    • 重放攻击
  • 对标ZigBee
  • 参考文献

背景

我们先了解下传统的拓扑网络:

  • 最常见最广泛使用的星型结构是以中央节点作为核心,其他节点都连接至中央节点上,这种结构的成本较高、可靠性较低,但是其延迟小、结构简单便于管理。

  • 总线型结构则是各个网络设备都挂接在一条总线上,没有明显的中心,优点是结构简单、可扩展性好,但是缺点同样明显,比如维护困难、分支结构故障查找困难。

  • 为了在使用中更安全、更高效,目前绝大部分运行中的商用局域网都采用多种网络拓扑模式组合的方式,尽可能发挥局域网的性能并避免阻碍的产生。

目前典型的局域网布置都采用星型结构或者多层星型结构,网络通过主路由器接入,再分配至各个分路由器,最后连接至不同的主机和设备上。这样的布线实现起来比较简单,并且所需的线缆数量也比较少。这样的布置方式和布置思想横跨了有线和无线时代,比如在家庭中,用户会从电信、联通等网络服务商处接入网络,再通过无线路由器转出多路信号或者无线信号供家中的多个有线、无线设备使用,这也是一个典型的星形结构。

随着互联网的大爆发和无线网络的发展,之前的星型网络和总线型网络的问题数据中心暴露的愈发突出,比如数据中心的安全性和可靠性、总线型布置维护难度等。

自2010年 BLE标准颁布以来,其在IOT领域大放异彩,可物有所长,必有其短,在其初级阶段缺乏的一件事是支持多对多拓扑(网状网络),即其中多个BLE设备可以相互手法消息并将消息中继到网络中的其他设备。于是,在2017年7月Bluetooth SIG发布了新的支持方案——Bluetooth mesh standard,而其具有的网状网络结构在处理上诉瓶颈时也更加契合时代发展。

蓝牙mesh网络的目标是增加 BLE 网络的范围的同时,增加更多利用 BLE 技术的工业应用。在蓝牙mesh发布之前,BLE只支持两种拓扑:

  • 一对一:当两个 BLE 设备相互连接时。
  • 一对多:当 BLE 设备处于广播状态时,例如在 Beacons 中。

借助蓝牙mesh网络,为 BLE 网络引入了一种新的拓扑结构:设备现在可以在多对多拓扑中运行。


Mesh网络有两个主要好处:

  • 扩展范围:由于节点可以通过它们之间的节点将消息中继到远处的节点,这
    允许网络扩展其范围并扩大设备的覆盖范围。
  • Self-healing 自愈能力:自愈是指不存在单点故障的事实。如果一个节点从网状网络掉线,其他节点仍然可以参与并向另一个节点发送消息。然而,这仅适用于蓝牙网状网络,因为它具有不同的网络中的节点类型,其中一些其他节点可能依赖。我们会本章稍后将介绍不同类型的节点。

以下是有关蓝牙网状网络的一些重要说明:

  • 蓝牙网状网络支持所有 BLE 版本(即使是原始版本 4.0)并且不需要更改硬件。
    但是,它确实需要安装设备的软件更新字段才能支持该标准。
  • 蓝牙网状网络是独立于 BLE 的标准,并且有自己的规范文档,可在此链接中找到。
  • 蓝牙网状网络 1.0 版不支持 任何蓝牙 5 功能,例如广播扩展和编码的 PHY。
    这在未来的版本中很可能会改变。

术语

属于蓝牙网状网络一部分的设备称为 Node / 节点。 不属于网络的设备称为未配置设备。未配置的设备无法发送或接收网格消息;但是,它会向 Provisioners 宣传其存在。

Provisioner 将在其经过身份验证后邀请未配置的设备进入网状网络,将未配置的设备转换为节点。 一旦未配置的设备被配置,它就会加入网络并成为一个节点。

一个节点可能包含多个可以独立控制的部分。 例如,一个灯具可能包含多个可以独立打开/关闭的灯泡。 单个节点的这些不同部分称为 Elements / 元素。

Messages / 消息 在蓝牙网状网络中,网络内的所有通信都是面向消息的,节点发送消息以控制或中继信息,消息是调用节点操作的机制。如果一个节点需要报告它的状态,它也会通过消息发送它。给定的消息类型表示对一个状态或多个状态值集合的操作。

蓝牙mesh中有三种类型的消息,每一种都由一个唯一的操作码(操作码)定义:

  • GET 消息:从一个或多个节点请求状态的消息。
  • SET 消息:更改给定状态值的消息。
  • 状态消息:状态消息用于不同的场景:
    • 响应 GET 消息时发送,包含状态值。
    • 响应已确认的 SET 消息时发送
    • 独立于任何消息发送以报告元素的状态。一个示例是由在发送此消息的元素上运行的计时器触发的消息。某些消息需要原始消息的接收者发送确认消息。

确认消息有两个目的:

  • 确认收到消息。
  • 返回与接收到的消息相关的数据。

在发送方未收到对消息的响应或收到意外响应的情况下,发送方可以重新发送该消息。一个节点收到的多个确认消息不影响行为(就好像消息收到一次一样) 。

蓝牙网状网络中的消息必须发送到地址或从地址发送。 Address / 地址分为三种类型:

  1. Unicast Address / 单播地址:唯一标识在provisioning / 配置过程中分配的单个节点的地址。
  2. Group Address / 组地址:用于标识一组节点的地址。组地址通常反映节点的物理分组,例如特定房间内的所有节点。组地址可以是:
    • 由蓝牙 SIG 定义,也称为 SIG 固定组地址。这些包括全代理、全朋友、全中继和全节点组地址。
    • 动态组地址,由用户通过配置应用程序定义。
  3. Virtual Address / 虚拟地址:可以分配给一个或多个元素的地址,跨越一个或多个节点。它充当label / 标签并采用 128 位 UUID 的形式,任何元素都可以与之关联。虚拟地址很可能在制造时预先配置。

在蓝牙网状网络中交换消息的方式是通过发布订阅模式。 来自维基百科关于发布订阅模式的页面:

在软件架构中,发布-订阅是一种消息传递模式,其中消息的发送者(称为发布者)不会将消息编程为直接发送给特定的接收者(称为订阅者),而是将已发布的消息分类,即使不知道哪些订阅者(如果有)。

类似地,订阅者表示对一个或多个类感兴趣并且只接收感兴趣的消息,而不知道有哪些发布者。

Publishing / 发布是发送消息的行为。Subscribing / 订阅是一种配置,用于允许将选择的消息发送到特定地址进行处理。通常,消息被寻址到组地址或虚拟地址。

这是一个家庭中网状网络的例子,它由 6 个电灯开关和 9 个灯泡组成。网络利用发布-订阅方法允许节点相互发送消息。


节点可以订阅多个地址,例如本示例中的 light #3,它订阅了厨房和餐厅组地址。此外,多个节点可能会发布到同一地址:例如本示例中的开关 #5 和 #6。这两个开关控制位于花园中的同一组灯。使用组地址或虚拟地址的好处是添加或删除节点不需要重新配置节点。

Managed Flooding

许多网状网络使用路由机制(routing mechanisms)在网络上中继消息,另一个极端是在不考虑这些消息到达其预期目的地所需采取的最佳路由的情况下,用正在中继的消息淹没网络(flood the network)。蓝牙网状网络使用的技术是这两种技术的折衷方案。

这种技术被称为管理泛洪(Managed Flooding)。本规范使用多种方法来限制托管洪水网状网络中消息的无限制中继。使用的两种主要方法是网络消息缓存方法和生存时间方法。

泛洪管理依赖于向发送方节点范围内的所有节点广播消息,并添加了一些优化:

  • 消息分配了TTL :TTL 代表生存时间,这限制了消息在mesh网络中可以跨越多个节点的越点数。零值表示消息尚未中继且不应中继。这意味着节点可以向其直接无线电范围内的其他节点发送消息,并指示接收节点不应中继该消息。

    如果发送的消息的 TTL ≥ 2,则每次中继时,TTL 值都会递减。TTL 值为 1 意味着该消息可能至少已中继一次,但不应再次中继。

  • Message Cache / 消息缓存:所有节点都需要消息缓存,并要求立即丢弃已存在于缓存中的接收消息。
  • Heartbeat / 心跳消息定期发送:心跳消息用于向其他节点指示发送方在网络中处于活动状态。每个节点定期发送Heartbeat消息,通知其他节点它是活跃的。并且它还可以帮助接收节点计算向心跳源节点发送消息所需的希望数。
  • Friendship / 友谊:友谊是指两个节点之间的关系。这两种节点类型是:
    • 低功率节点或 LPN( low-power node),可以节省功率并且不能一直接收网格消息。该节点大部分时间都在关闭无线电。
    • 一个实时供电的节点称为朋友节点(friend node),它可以作为 LPN 的代理。友元节点为LPN缓存消息以节省电量,使LPN可以大部分时间保持睡眠,只是偶尔醒来。当 LPN 醒来时,它会轮询朋友节点以读取缓存的消息并将它需要发送的任何消息发送到网状网络。

Models

Models / 模型定义给定 element / 元素的部分或全部功能。模型分为三类:

  1. Server model:是包含模型的元素可以发送或接收的状态、状态转换、状态绑定和消息的集合。
  2. Client model:没有定义任何状态; 相反,它只定义了诸如发送到服务器模型的 GET、SET 和 STATUS 消息之类的消息。
  3. Control model:包含服务器和客户端模型,允许与其他服务器和客户端模型进行通信。

Scenes

Scenes / 场景是存储的状态集合,由 16 位数字标识,该数字在网状网络中是唯一的。场景允许触发一个动作来设置不同节点的多个状态。它们可以按需触发或在指定时间触发。

例如,可以将场景配置为将房间的温度设置为 72 度,将客厅的灯设置为某个亮度级别,并关闭百叶窗。

架构

蓝牙MESH基于低功耗蓝牙,并与该协议共享最低层。蓝牙MESH物理层与现有的低功耗蓝牙设备兼容,因为MESH消息包含在BLE广播包的有效负载中。 但是蓝牙MESH指定了一个全新的主机层,尽管一些概念是共享的(例如Host层),但蓝牙MESH与低功耗Host 层是不兼容的。

但蓝牙mesh网络依然建立在 BLE 之上,它专门利用了 BLE 设备的广播状态。蓝牙mesh网络中的设备不像传统的 BLE 设备那样相互连接。相反,它们使用广播和扫描状态来相互中继消息。在可以成为网状网络一部分的特殊设备中,有一个例外(我们将在“Node Type”一节中介绍)

  1. Bluetooth Low Energy layer:蓝牙低功耗层

    正如我们之前提到的,蓝牙网状网络构建在 BLE 之上,因此它需要在设备上运行完整的 BLE 协议栈。它利用在mesh网络内的设备之间广播和扫描状态发送和接收消息,它还支持称为代理节点 / proxy node的特殊设备的连接状态和 GATT。

  2. Bearer layer:承载层

    承载层定义了网络消息(Protocol Data Units or PDUs)如何在节点之间传输。 定义了两种承载,广播承载和 GATT 承载。 未来可能会定义额外的承载。

    1. 广播承载:该承载利用BLE的广播和扫描状态设备。
    2. GATT 承载:该承载利用 BLE 设备的连接状态。它允许非网状支持设备通过 GATT 操作与网状网络交互。这是通过称为代理节点的特殊节点完成的。
  3. Network layer:网络层

    网络层定义了传输消息如何寻址到一个或多个 elements / 元素。它定义了允许承载层传输传输 PDU 的网络消息格式。网络层决定是中继/转发消息,接受它们以供进一步处理,还是拒绝他们。它还定义了如何加密和验证网络消息。

  4. Lower transport layer:下层运输层

    较低的传输层定义了如何将Upper transport layer消息分段并重新组合成多个较低的传输 PDU供 layer below(bearer layer),以将较大的 Upper transport layer消息传递给其他节点。它还定义了单个控制消息来管理分段和重组。

  5. Upper transport layer:上层传输层

    上层传输层对应用程序数据进行加密、解密和验证,旨在提供访问消息的机密性。它还定义了如何使用传输控制消息来管理节点之间的上层传输层,包括何时被 Friend feature使用。

  6. Access layer:接入层

    接入层定义了higher layer应用程序如何使用upper transport layer。它定义了应用程序数据的格式; 它定义和控制在上层传输层执行的应用程序数据加密和解密; 并检查传入的应用程序数据是否已在正确的网络和应用程序密钥的上下文中接收,然后再将其转发到the higher layer。

  7. Foundation Models layer:基础模型层

    基础模型层定义了配置和管理网状网络所需的状态、消息和模型。

  8. Models layer:模型层

    模型层定义了用于标准化典型用户场景操作的模型,并在蓝牙mesh网络模型规范 或其他更高层规范中定义。 更高层模型规范的示例包括照明和传感器模型,包括行为、消息、状态和状态绑定。

Node Features

所有类型的节点都可以发送和接收网格消息。但是,可选功能赋予特定节点特殊功能。以下是启用了可选功能的不同类型的节点:

  • Relay feature : 中继特性,通过广播载体接收和重传网状消息的能力,以支持更大的网络。
  • Proxy feature :代理特性,在GATT 和 广播载体之间接收和重新传输网状消息的能力。没有 Mesh 协议栈的设备可以使用代理节点的 GATT 承载与 BLE mesh 中的设备进行交互。
  • Friend feature :友元节点,通过在低功耗​​节点轮询时存储和转发发往低功耗节点的消息,与低功耗节点一起工作。
  • Low power feature :低功耗节点,大部分时间都处于低功耗状态并且射频处于关闭状态,仅在与支持 Friend 功能的节点结合使用时,才能在网状网络内以显着降低的接收器占空比运行。

节点可能不支持、部分或全部这些可选功能,这些可选功能可以随时启用或禁用。
例如,单个节点可能同时具有中继节点、代理节点和朋友节点的特征。

中继节点

中继节点是支持中继功能的节点。 这意味着它可以重新传输由其他节点广播的消息。 这可以扩展这些消息的范围,并允许它们在原始传输节点的范围之外遍历整个网络。

代理节点

为了允许来自不支持网状网络的 BLE 设备与网状网络进行通信,可以使用一种称为代理节点的特殊类型的节点。代理节点充当中介,并利用 GATT 操作允许网状网络之外的其他节点与网络接口和交互。

在这种情况下使用的协议称为代理协议,旨在与启用连接的设备(使用 GATT)一起使用。该协议建立在 GATT 之上,允许设备从代理节点公开的 GATT 特征中读取和写入代理协议 PDU。

代理节点执行代理协议 PDU 和网状 PDU 之间的转换。例如,这允许未实现蓝牙网状网络协议的智能手机通过代理设备通过 GATT 操作与网状网络交互。

友元节点和低功耗节点

朋友节点和低功耗节点(LPN)彼此密切相关。事实上,为了让低功耗节点加入蓝牙mesh网络,它需要与另一个节点建立友谊关系,称为友元节点。

以下是这两种类型的节点如何协同工作:

  • 低功率节点通常具有有限的电源(例如电池),因此它们需要通过尽可能经常关闭无线电来节省能源。
  • 低功率节点可能更关心发送消息而不是接收消息。以由纽扣电池供电的温度传感器为例:每当读数高于或低于设定限制时,它可能需要每分钟发送一次温度读数。如果用户决定更改阈值限制,则会向温度传感器发送消息。为了让传感器不会错过此阈值配置消息,它需要一直处于开启状态,这意味着它会消耗大量电量。
  • 为了解决上一点提到的问题,引入了友元节点的概念。友元节点让低功耗节点保持更长时间的睡眠状态。
  • 友元节点通过缓存发往低功耗节点的消息使这成为可能。低功耗节点在其控制下唤醒并轮询友元节点以获取这些缓存消息。当它轮询消息时,它还向其友元节点发送它需要中继到网络的任何消息。
  • 友元节点和低功耗节点之间的关系称为“友谊”。
  • 友谊是允许功率受限节点参与网状网络同时保持其功耗优化的关键。

示例

支持上述各种功能的节点可以形成mesh网络。 mesh网络的图示如下图 2.8 所示。

图 2.8 显示了三个中继节点:Q、R 和 S。

支持好友功能的三个节点是N、O、P,但是N没有任何好友关系;因此只有 O 和 P 是有缘节点。

有五个低功耗节点:I、J、K、L 和 M。节点 I、J 和 K 有 P 作为他们的朋友,而 L 和 M 有 O 作为他们的朋友。

节点 T 仅使用 GATT 承载连接到网状网络;因此 S 必须将所有消息转发到 T 或从 T 转发所有消息。

例如,如果一条消息要从 T 发送到 L,那么 T 将使用 GATT 承载将消息发送到节点 S。节点 S 将使用广播承载重传此消息。节点 H、R、N 和 O 在节点 S 的无线电范围内;因此他们将收到此消息。

作为节点 L 的朋友的节点 O 将存储该消息,如果该消息是分段消息,则节点 O 将在较低的传输层以确认进行响应。稍后,L 将轮询节点 O 以检查新消息,以便 O 将 T 最初发送的消息转发给 L。

BLE Mesh Networking 在智能家居中是如何工作的?

让我们假设一个有走廊和 3 个房间的智能家居。这将帮助我们了解 BLE 网格如何在不处于该设备的 BLE 范围内的情况下向任何节点发送消息。每个房间至少有 1 个灯泡。客厅和卧室也有恒温器,用于控制温度。


智能手机应用程序在单一网状网络中扮演供应商、添加灯泡和恒温器的角色,通过交换消息实现它们之间的通信。

与温控器T2通信,最直接的方式是通过blub B1-B5传递消息,到达温控器T2。但是,这条最短路径可能会被家中的墙壁或其他金属器具挡住。在这种情况下,中继节点 B2-B3-B4-B5 可以帮助智能手机应用程序到达恒温器 T2。

智能手机应用程序用于与不支持 BLE Mesh 但支持 BLE 的恒温器 T2 通信。因此,智能手机应用程序必须找到一个代理节点,该节点可以作为与网状设备通信的中介。Bulb B1 是这里的代理节点,它接收来自智能手机应用程序的消息并将消息发布到整个网状网络。

走廊里的灯泡B3只是一个中继节点,在网络中传递消息。灯泡 B4 和 B5 作为恒温器 T1 和 T2 的朋友节点,恒温器被抽象为低功耗节点。

这是一个简单的示例,用于演示 BLE 网格在智能家居中的作用。但是,BLE 网格使智能家居能够提供高级家庭自动化功能,如组、场景、日程管理等。

The Provisioning Process

配置过程是蓝牙网状网络中最重要的概念之一。它用于将设备添加到网状网络。

添加到网络的设备称为节点,用于向网络添加节点的设备称为供应器(通常是平板电脑、智能手机或 PC)。这个过程包括五个步骤:

Step 1: Beaconing

步骤 1 涉及所谓的 beaconing / 信标,其中未配置的设备通过在广播数据包中发送网格信标广播来宣布其可用性。

这是蓝牙网状网络标准中引入的一种新型广播数据类型。触发此过程的常见方法是通过未配置设备上定义的按下按钮的顺序。

Step 2: Invitation

当供应商通过发送的信标发现 unprovisioned device / 未供应的设备时,它会向该未供应的设备发送 邀请 / Invitation。这使用了蓝牙网状网络中引入的一种新型 PDU,称为provisioning invite PDU / 供应邀请 PDU。

然后未供应设备在供应能力 PDU 中使用有关其能力的信息进行响应,其中包括: - - 设备支持的元素数量。

  • 支持的安全算法集。
  • 其公钥的可用性使用带外 (OOB) 技术。
  • 此设备向用户输出值的能力。
  • 此设备允许用户输入值的能力。

Step 3: Public Key Exchange

蓝牙网状网络中的安全性涉及对称和非对称密钥的组合使用,例如椭圆曲线 Diffie-Hellman (ECDH) 算法。在 ECDH 中,公钥在供应商和要供应的设备之间交换。

这是直接通过 BLE 或通过带外 (OOB) 通道完成的。

Step 4: Authentication

下一步是对未配置的设备进行身份验证。这通常需要用户通过与供应商和未供应设备进行交互来执行操作。身份验证方法取决于所使用的两个设备的功能。

在一种称为输出 OOB 的情况下,未配置的设备可以以某种形式向用户输出随机的一位或多位数字,例如多次闪烁 LED。然后通过某种输入方法将该号码输入到供应设备中。

其他情况包括输入 OOB,其中数字由供应商生成并输入未供应的设备、静态 OOB 或根本没有 OOB。

无论使用何种认证方法,认证还包括确认值生成步骤和确认检查步骤。

Step 5: Provision Data Distribution

身份验证完成后,每个设备使用其私钥和从其他设备发送给它的公钥派生会话密钥。

然后,会话密钥用于保护连接以交换额外的供应数据,包括网络密钥 (NetKey)、设备密钥、称为 IV 索引的安全参数以及分配给供应设备的单播地址 供应商。

在此步骤之后,未配置的设备将成为节点。

Security in Bluetooth mesh

关于蓝牙网状网络安全性的第一个重要说明是它是强制性的。这与 BLE 相比是不同的,BLE 是可选的,由开发人员决定是否包含它。以下是蓝牙网状网络安全的一些基础知识:

  • 所有网格消息都经过加密和身份验证
  • 网络安全、应用安全和设备安全都是独立处理的。
  • 在mesh网络的生命周期内可以更改安全密钥

由于网络、应用程序和设备级别之间的安全性分离,因此存在三种类型的安全密钥(每种都针对特定问题):

  • 网络密钥(NetKey)
    拥有此共享密钥使设备成为网络的一部分(也称为节点)。从 NetKey 派生出两个密钥:网络加密密钥和隐私密钥。拥有 NetKey 允许节点解密和验证网络层,允许消息中继,但不能解密应用程序数据。

  • 应用密钥(AppKey)
    这是在mesh网络中的节点子集之间共享的密钥,通常是那些参与通用应用程序的节点。例如,照明系统 AppKey 将在电灯开关和灯泡之间共享,但不与恒温器或运动传感器共享。

    AppKey 用于在应用程序级别对消息进行解密和验证,但它仅在一个网状网络内有效,而不是跨多个网络。

  • 设备密钥 (DevKey)
    这是一个特定于设备的密钥,在配置过程中使用,用于保护未配置设备和配置者之间的通信。

节点移除

mesh网络的一个主要问题是通过丢弃或移除曾经是网络一部分的设备来访问网络。这可以通过对存储在设备中的密钥进行物理访问来实现(通常称为 trash can attack / 垃圾桶攻击)。

为了防止这种攻击,蓝牙网状网络定义了一个删除节点的程序,在该程序中设备被添加到黑名单并刷新密钥。此过程将新的网络密钥、应用程序密钥和其他相关数据分发给除黑名单中的节点之外的所有节点。

隐私

另一个问题是 Privacy / 隐私。蓝牙mesh网络中解决隐私问题的方法是使用用于混淆消息头的隐私密钥。隐私密钥源自网络密钥 (NetKey)。

例如,可以混淆源地址以防止通过其地址跟踪设备。

重放攻击

我们要讨论的最后一个安全主题是重放攻击。重放攻击是指恶意设备存储一条或多条消息并稍后重放。

蓝牙网状网络通过以下方式提供针对重放攻击的保护:

  • 利用序列号 (SEQ)
    元素每次发布消息时都会增加 SEQ 值。一个节点从一个元素接收到一个消息,如果其中包含一个小于或等于最后一个有效消息中的 SEQ 值的消息,将丢弃它(因为它很可能与重放攻击有关)。
  • 使用递增的 IV 索引
    这是一个附加值,在收到消息时也会得到验证。

对标ZigBee

  • 路由机制:对于较小节点数量的网络,两者的性能相似。但当节点处于移动状态时,Zigbee的路由机制可能会受影响,因为ZigBee的动态路由维护,将交换大量路由协议消息以更新路由表,这可能会导致网络拥塞。

    但由于Zigbee节点对较大数据包的延迟较小,因此它可以封装较高层的帧头和命令,同时提供良好的性能。它可以与单播和广播结合使用以提高可靠性。当在链路上发送大于12个数据包的大小时,由于在网络层执行分包和重组,蓝牙Mesh的延迟会更高一些。因此,与Zigbee相比,在传输大量需要分包和重组的消息命令当中,蓝牙Mesh的时延会更高一些,而Zigbee表现会更好一些。

  • 数据速率:BLE 4.2标准速率为1Mbps,而BLE 5.0提高了2倍,通讯速度最高为2Mbps。Zigbee基于802.15.4,该协议将数据速率限制为最高250Kbps。
  • 范围:节点到节点范围的计算取决于多个因素,例如发射功率,工作频率,接收器灵敏度,天线等。Zigbee(在2.4GHz)通常比BLE 4.0传输距离更远,两者都不加PA(功率放大器)的情况下,Zigbee基本能做到100米。而最新发布的蓝牙5 标准的覆盖范围是蓝牙4.2 的4 倍。也就是300米,所以基于BLE 5.0的蓝牙Mesh网络将拥有更远的传输距离。
  • 功耗:Zigbee和BLE的功耗相当。此外,Zigbee中采用的路由机制使其电源效率略高。但是随着蓝牙5的速率提升,发送相同大小的数据包蓝牙Mesh将会更快,发射机和接收机的工作时间也将进一步缩短。
  • 复杂程度:Zigbee具有较小的协议栈,但其路由管理起来更为复杂。相比之下,基于BLE的蓝牙Mesh总体上来说更复杂,但是路由很简单。
  • 其他:BLE支持信标,这意味着基于蓝牙Mesh的应用除了照明以外,还可以用于资产跟踪,室内定位与导航。

总结:

凭借其更简单的路由机制,蓝牙Mesh更适用于移动节点,因为Zigbee路由协议会为维护高度移动节点的路由表带来更多网络开销。因此,在选择技术实现之前,必须考虑使用场景。

较低的硬件成本,流行的OS实现中的稳定协议栈以及智能手机控制,这是蓝牙Mesh相对Zigbee的主要优势。由于Zigbee较早进入该市场领域,因此它目前在家庭网络,工业物联网(IIoT)系统中拥有更大的生态系统。但是,作为现有BLE堆栈之上基于软件的解决方案,蓝牙Mesh可以在不久的将来迅速赶上。

参考文献

  1. Intro to Bluetooth Low Energy v1.1.pdf
  2. 什么是Mesh网络结构? - CSDN - zpznba
  3. Extend the Power of IoT Solutions with BLE Mesh Network

Bluetooth 蓝牙介绍(四):低功耗蓝牙BLE Mesh网络 Ⅰ—— 基础概念相关推荐

  1. AliOS Things SIG BLE Mesh网络的介绍和搭建

    摘要: 在最新的版本(1.2.1)中,AliOS Things 开始支持SIG BLE mesh.本文对SIG BLE mesh及如何使用AliOS Things搭建BLE mesh网络进行了详细的说 ...

  2. Android 蓝牙开发(三) -- 低功耗蓝牙开发

    Android 蓝牙开发(一) – 传统蓝牙聊天室 Android 蓝牙开发(三) – 低功耗蓝牙开发 项目工程BluetoothDemo 前面已经学习了经典蓝牙开发,学习了蓝牙的配对连接和通信,又通 ...

  3. 蓝牙mesh网络基础

    蓝牙mesh网络基础 转载于:https://blog.51cto.com/11534544/2044130

  4. 安信可TB蓝牙模组系列 APP Ble Mesh组网教程

    文章目录 一.前言 二.硬件准备 三.软件准备 四.AT指令集 五.APP 组网示例 六.数据通信 一.前言 本文以TB-02开发板为例,介绍TB系列蓝牙模组通过安卓"TelinkSigMe ...

  5. 蓝牙:深入浅出低功耗蓝牙(BLE)协议栈

    深入浅出低功耗蓝牙(BLE)协议栈 BLE协议栈为什么要分层?怎么理解BLE"连接"?如果BLE协议只有ATT层没有GATT层会发生什么? 协议栈框架 一般而言,我们把某个协议的实 ...

  6. 传统蓝牙和Bluz低功耗蓝牙的区别

    参考一 参考二 传统蓝牙(Classic Bluetooth)和低功耗蓝Bluz(Bluetooth Low Energy)1.蓝牙连接状态蓝牙BLuz的发送和接受任务快速完成传输,完成后蓝牙BLuz ...

  7. Qt低功耗蓝牙系列一(什么是低功耗蓝牙开发,低功耗蓝牙的通信机制原理)

    文章目录 前言 Android 蓝牙 BLE 低功耗蓝牙协议栈简介 蓝牙的选用 BLE 低功耗蓝牙模块具体应用场景 蓝牙灯控方案 BLE 蓝牙智能锁方案 蓝牙 MAC 地址扫描打印解决方案 蓝牙 Me ...

  8. 无线mesh网络基础知识

    "Mesh"这个词原来的意思就是指所有的节点都互相连接,无线Mesh网络接入技术是一种与传统的无线网络完全不同的网络.传统的无线网络必须首先访问集中的接入点(AP)才能进行无线连接 ...

  9. 蓝牙语音遥控器低功耗蓝牙5.1芯片XY51S03B

    蓝牙语音遥控器专用低功耗的蓝牙5.1芯片XY51S03B采用32位ARMCortex-M0内核,最高工作主频64MHz,片上集成48KB SRAM,512KB Flash.支持BLE5.1,发射电流4 ...

最新文章

  1. 人机猜拳(这是最近的一个总结)
  2. 解决MySQL自动断开连接的问题
  3. Python 的列表的一些方法
  4. STM8S103F2 EEPROM读写
  5. vue-cli4脚手架搭建实战教程
  6. Spark rdd 介绍,和案例介绍
  7. xxx in ‘Anonymous class derived from xxx clashes with ‘call(T)‘ in xxx attempting to use incompati
  8. TIMING_05 VIVADO环境下的时序约束 之 基本时钟周期约束
  9. python-turtle库的基本操作
  10. Tips/Tricks#3:利用JavaScript选择GridView行
  11. android 锁屏壁纸时钟,桌面锁屏时钟下载-桌面锁屏时钟app安卓版v2.8.0-七度网
  12. GNSS常用术语(缩略语)总结------------持续更新
  13. 黑色星期五移动购物销售额iOS设备占逾80%
  14. 【译】Using the SafetyNet API (使用SafetyNet API)
  15. 【附证明】用ArcGIS中Band Collection Statistics做相关性分析可能存在错误
  16. 常见笔顺错误的字_笔画容易出错的字?
  17. C/C++ 由int (*p)[5]与int *p[5]引发的学习与思考
  18. K8s---HPA弹性伸缩
  19. 2022年,佳能中国坚持“单反、微单两手抓”
  20. 《信号与系统》解读 第3章 强大的傅里叶时域频域分析工具-2:傅里叶分析方法的基本原理与傅里叶分析的9大步骤

热门文章

  1. nodemon:运行提示错误:无法加载文件 xxxx
  2. Java基础入门必须学好的英语词汇
  3. Partition函数实现java(含分析)
  4. 根据一段时间区间,按月份拆分成多个时间段
  5. Android音视频全面介绍与代码实践之音效(四)
  6. 2020,不一样的春节假期
  7. 拣货单Picket Ticket
  8. 逻辑门电路 逻辑运算
  9. 在CMD命令行中切换到管理员权限模式
  10. 宽带连接错误的处理办法