蓝牙mesh基本概念

蓝牙网格是由蓝牙SIG开发和发布的配置文件规范。这里介绍蓝牙网格的基本概念,概述了配置文件的操作和功能,并解释了网状设备的生命周期。

1、与蓝牙低能耗的关系

蓝牙网格基于蓝牙4.0规范的蓝牙低功耗部分,并与该协议共享​​最低层。在广播中,蓝牙网格物理表示与现有的蓝牙低能量设备兼容,因为网状消息包含在蓝牙低能量广告分组的有效载荷内。但是,蓝牙网格指定了一个全新的主机层,虽然共享了一些概念,但蓝牙网格与蓝牙低功耗主机层不兼容。

蓝牙网格蓝牙低能耗规范之间的关系:
蓝牙网格和蓝牙低能耗规范之间的关系

2、应用领域

蓝牙网格主要针对简单的控制和监控应用,如光控或传感器数据采集。数据包格式针对小型控制数据包进行了优化,发出单个命令或报告,不适用于数据流或其他高带宽应用程序。

使用蓝牙网格会导致比传统蓝牙低功耗应用更高的功耗。这主要是因为需要保持收音机不断运行。因此,与蓝牙低功耗广告商不同,主动网状设备不能长时间地使用纽扣电池。

蓝牙网状网在网络中最多支持32767个设备,最大网络直径为126跳。

3、网络拓扑和中继

蓝牙网状网是一种基于广播的网络协议,其中网络中的每个设备都向无线电范围内的所有设备发送和接收所有消息。网状网络中没有连接的概念。网络中的任何设备可以中继来自任何其他设备的消息,这使得网状设备可以通过让一个或多个其他设备将消息中继到目的地来向无线电范围之外的设备发送消息。此属性还允许设备随时移动和进出网络。

4、网格运输

Bluetooth Mesh利用蓝牙低功耗广告客户和扫描仪角色,通过蓝牙低功耗广告数据包进行通信。广告包由附近的网状设备拾取并像其他蓝牙低能量广告包一样处理。网状数据包用唯一的AD类型表示,并添加到广告数据包有效负载中。

蓝牙低功耗设备以规则的广告间隔发送广告包,网状包也不例外。然而,与传统广告商不同,网状设备将在每次传输时改变其广告有效载荷,当它们在堆栈中排队时广播新的网状分组。每个蓝牙网格广告仅针对每个设备传输一次,并且如果网格中没有流量,则设备保持静默。

5、中继

蓝牙网状网通过中继消息扩展网络范围任何网状设备都可以配置为充当中继,并且不需要专用的中继设备来构建网络。作为中继的每个设备都会减少接收消息中的生存时间(TTL)值,如果TTL为2更高,则转发它们。这种无向中继被称为消息泛滥,并确保消息传递的高概率,而不需要任何关于网络拓扑信息网状配置文件规范不提供任何路由机制,所有消息都由所有中继转发,直到TTL值达到0。为了避免消息被反复转发,所有网状设备都维护消息缓存。此缓存用于过滤设备已处理数据包

基于洪泛的消息中继方法可能导致大量空中流量,这可能会影响网络的吞吐量可靠性。因此,强烈建议限制网络中的继电器数量以限制此影响。网络中的中继设备速率是消息路由冗余可靠性之间的折衷。应根据网络密度,流量,网络布局以及可靠性和响应性要求进行调整。

扫描二维码关注公众号,回复: 6508751 查看本文章

6、能量消耗

为了实现基于广播的通信,设备必须持续保持其收音机处于收听模式,导致功耗显着高于典型的蓝牙低功耗设备。为了使低功耗设备能够参与网状网络,蓝牙网状网络包含低功耗友好功能。该协议允许低功率设备与常规网状设备建立关系,然后将定期缓存并将消息转发到低功率设备。这使得低功率设备不必继续监听传入的消息。

7、GATT代理

为了支持不支持接收网状数据包的传统蓝牙低功耗设备,蓝牙网状网定义了一个单独的协议,用于通过蓝牙低功耗GATT协议隧道化网状消息。为此,网状配置文件规范定义了GATT承载和相应的GATT代理协议。该协议允许传统蓝牙低功耗设备通过建立与启用了代理功能的网状设备的GATT连接来参与网状网络。

为旧设备分配一个地址和必要的密钥,以成为网络的正式成员。设备通过常规配置过程或通过一些带外机制接收安全凭证。

8、解决

蓝牙网格寻址方案不同于蓝牙低能量寻址方案。它有三种类型的地址:

  • 单播地址:每个设备都是唯一的
  • 组地址:允许形成一组设备并一次解决所有设备
  • 虚拟地址:具有大地址空间的未跟踪的基于UUID的地址

将设备添加到网络时,会为其分配一系列代表它的单播地址。设备的单播地址无法更改,并且始终是顺序的。单播地址空间支持在单个网状网络中具有32767个单播地址。任何应用程序都可以使用单播地址直接向设备发送消息。

组地址作为网络配置过程的一部分进行分配和分配。组地址可以表示任意数量的设备,并且设备可以是任意数量的组的一部分。网状网络中最多可以有16127个通用组地址。

虚拟地址可以被认为是组地址的特殊形式,并且可以用于表示任意数量的设备。每个虚拟地址都是从文本标签生成的128位UUID。虚拟地址不必由网络配置设备跟踪,并且以这种方式,用户可以在部署之前生成虚拟地址,或者可以在网络中的设备之间临时生成地址。

9、模型和元素

为了标准化来自不同供应商的设备之间的通信,网状配置文件规范定义了一个接入层,该接入层在设备中的各种模型之间路由网格消息。模型表示特定的行为或服务,并定义一组状态和消息,这些状态和消息作用于这些状态。网格配置文件规范和网格模型规范各自定义了一组模型,以涵盖典型的使用场景,如设备配置,传感器读数和灯光控制。除此之外,供应商可以自由定义自己的模型,并附带消息和状态。

设备中的模型属于元素。每个设备都有一个或多个元素,每个元素都充当网格中的虚拟实体,具有自己唯一的单播地址。每个传入消息都由元素中的模型实例处理。为了能够唯一地解决消息的处理方式,每个元素只有一个模型实例可以为特定的消息操作码实现处理程序。如果设备具有相同模型的多个实例,则必须将每个实例分配给单独的元素。同样,如果两个模型为同一个消息实现处理程序,则这些模型必须位于不同的元素中。

为了表示具有最小消息和状态重复的复杂行为,模型可以由其他模型组成,可能跨越多个元素。这些模型称为扩展模型。纯粹自包含的模型称为根模型。

模型通过发布和订阅系统相互通信。每个模型都可以订阅一组组和虚拟地址,模型只处理发布到其订阅地址之一或包含元素的单播地址的消息。任何模型都可以维护发布消息的发布地址。此发布地址可以是任何类型。

访问层结构:
在这里插入图片描述

10、配置

在设备可以参与正常网格操作之前,必须先进行配置。在配置期间,设备被添加到网络并被分配单播地址,网络密钥和设备密钥。供应由供应商完成,供应商是可信设备,可访问网络中的完整设备列表及其地址。在配置新设备之后,预计配置器将使用新设备的设备密钥来建立安全通道来配置它。

11、配置网络

蓝牙网格将网络配置留给中央网络配置器。设备不应自行进行任何类型的服务发现。为了控制其他设备,必须通过用户交互或通过从数据库加载预定配置,由配置器配置诸如灯开关之类的设备。每个设备必须在其第一个元素中实现强制配置服务器模型,该元素用于配置其余模型。

配置完成后,配置程序将使用其Configuration Client模型的实例为新设备提供一组应用程序密钥和地址。除非重新配置,否则设备将在网络上的生命周期内使用这些密钥和地址。

12、示例场景:灯泡和开关

配置新的灯开关后,配置器中的配置客户端模型会读出新设备的模型和元素的列表,并将其呈现给用户。用户在设备的模型列表中找到灯开关模型,并为其提供“灯光控制”应用程序键。接下来,用户将模型的发布地址设置为“厨房区域”组地址,厨房中的所有灯泡都订阅该地址。下次按下新的灯开关时,厨房中的所有灯泡都会亮起。

13、安全

蓝牙网状网采用多种安全措施来防止第三方干扰和监控。

14、认证

设备身份验证是配置过程的一部分,并允许用户确认添加到网络中的设备确实是他们认为的设备。网状配置文件规范定义了一系列带外认证方法,例如灯光闪烁,密码输出和输入,以及针对预共享密钥的静态认证。为了确保供应过程,使用椭圆曲线Diffie-Helman(ECDH)公钥密码术。设置完设备后,它就是网络的一部分,其所有消息都被认为是经过身份验证的。

15、邮件加密

Bluetooth Mesh具有两级AES-CCM加密功能,128位密钥可用于通过网络传输的所有消息。

最低层,网络加密,保护网状网络中的所有消息不被不属于网络的设备读取。加密是使用网络加密密钥完成的,任何网络都可能包含多达4096个不同的子网,每个子网都有自己的网络密钥。共享网络密钥的所有设备都被视为网络的一部分,可以通过它发送和中继消息。通过使用多个网络密钥,网络管理员可以有效地将其网络划分为多个子网,因为网状中继仅转发使用已知网络密钥加密的消息。

第二加密层是传输加密。此加密层通过使用应用程序或设备密钥加密应用程序有效负载来限制哪些设备可以在网络中执行哪些操作。例如,考虑部署在酒店的网状网络,希望限制一些功能由工作人员控制(如配置密钥卡或访问存储区域)和一些可供客人使用的功能(如控制房间照明或空调)。为此,我们可以为访客提供一个应用程序密钥,为员工提供一个应用程序密钥,允许消息在同一网络中进行中继,同时防止访客和工作人员阅读彼此的消息。

虽然应用程序密钥用于将访问权限分离到网络中的不同应用程序,但设备密钥用于管理网络中的设备。每个设备都有一个唯一的设备密钥,只有供应商和设备本身才知道。除了设置其他特定于设备的参数之外,在使用新加密密钥(网络或应用程序密钥)或地址配置设备时使用设备密钥。它还可用于通过将新密钥传输到网络中的所有其他设备(在传输密钥时使用其各自的设备密钥)从网络中驱逐恶意设备。此过程称为密钥刷新过程。

每个加密层都包含一个消息完整性检查值,用于验证消息内容是否使用指示的加密密钥加密。

16、隐私

所有网状消息有效负载都是完全加密的。诸如源地址和消息序列号之类的消息元数据使用从网络密钥导出的隐私密钥进行模糊处理,即使对于公共报头字段也提供有限的隐私。

17、重播保护

为了防止恶意设备重放先前的消息,每个设备都保留一个正在运行的序列号,用于出站消息。使用唯一的序列号和源地址对发送每个网格消息。当接收消息时,接收设备存储序列号并确保它比从相同源地址接收的最后序列号更新。

猜你喜欢

转载自blog.csdn.net/Hongwei_1990/article/details/90582044