蓝牙 Mesh简介第1部分
发布于 2017 年 7月24日 ,作者: Martin Woolley
蓝牙Mesh网络系列的第1章
介绍
蓝牙 ®技术是世界上最知名的品牌之一,也是全球最普遍的无线通信技术之一。它自2000年以来一直存在,并已用在了数十亿甚至数十亿设备上。仅去年一年,超过30亿蓝牙设备由制造商发货。
蓝牙并没有停滞不前。蓝牙自第一次诞生以来,经过精心和系统的改进,不断满足市场需求,继续支持和激励创新。
蓝牙Mesh网络 是这一令人难以置信的技术故事中的最新篇章, 蓝牙 技术联盟的所有成员150家公司帮助创建了它。
这是我们向您介绍蓝牙Mesh网络的系列文章中的第一篇。我们从两部分概述开始,然后将在本系列的后续部分中更详细地探讨该技术的各个方面。
蓝牙Mesh制作的幕后故事
观看我们免费的按需网络研讨会,了解蓝牙网络如何改造楼宇自动化,无线传感器网络,资产跟踪等。
变体和特征
对蓝牙技术感兴趣的用户将习惯于定期查看Bluetooth SIG采用的新版本。
通常,新版本为蓝牙提供了附加功能,或者以某种方式改进了现有功能。然而,现在又一次,蓝牙的全新“变体”被发布;它是一种非常独特的蓝牙技术,它以不同的方式使用射频,并在其广泛的使用案例的设计和实现方面进行了优化。
蓝牙基本速率/增强数据速率( BR/EDR )是 第一个发布的蓝牙版本。它旨在用作电缆替代技术,并很快成为无线音频产品的主导者,并成为无线鼠标和键盘等新计算机外设的推动者。
蓝牙低功耗(LE)是下一代真正独特的蓝牙技术。它被优化使用尽可能少的能量与设备相结合,并能够只用一个硬币大小的电池操作和无线通信,通常可以持续多年。它被广泛采用。很难找到不支持 蓝牙LE 的智能手机或平板电脑 。健康,运动和健身设备,如活动追踪器,依赖于蓝牙LE 技术。可穿戴设备也如此,如智能手表。这种蓝牙变体的影响令人印象深刻并且广泛传播。
那么蓝牙Mesh网络是蓝牙的新变体吗?或者它是一个新功能?
事实上,它两者都不是。让我们来了解更多关于这个令人兴奋的新蓝牙技术,它如何与其他形式的蓝牙相关,它可以做什么以及如何工作。
The Crucial Three
通常 在智能手机等设备中 可以找到蓝牙BR/EDR和蓝牙LE ,但它们并不依赖彼此的服务和功能。出于所有意图和目的,这两种蓝牙技术独立工作。事实上,虽然他们很高兴在同一设备中共存,但无法使用蓝牙BR/EDR与蓝牙LE设备进行通信,反之亦然。他们对彼此的陪伴很满意,但他们不说话。
相比之下, 蓝牙Mesh网络 使用并取决于蓝牙LE。蓝牙LE是蓝牙Mesh使用的无线通信协议栈。
蓝牙****Mesh不是无线通信技术。这是一种网络技术。
图3显示了蓝牙BR/EDR,蓝牙LE和蓝牙Mesh之间的关系。
拓扑的故事
在最基本的层面上,蓝牙BR/EDR让一台设备连接到另一台设备并与另一台设备进行通信,建立1:1关系,反映在大多数人熟悉的术语“配对”中。一些设备可以与其他设备具有多个1:1关系,并且可以形成称为“ 微微网(piconet)” 的一种中枢/辐射拓扑(hub/spoke topology) 。
蓝牙 LE设备也可以与其他设备形成1:1和中枢/辐射(hub/spoke)关系,并以无连接方式工作,广播任何其他直接射频范围内的设备都可以接收的数据。这是一个1 :m的 拓扑,其中m可以是一个非常大的数字!如果收听广播的设备本身不进行数据传输,则广播设备自己具有射频频谱,并且对可以接收和利用其广播的其他设备的数量没有实际的限制。蓝牙信标就是这种能力的一个很好的例子。
蓝牙Mesh允许我们 在无线设备之间 建立多对多(m:m )的关系。此外,设备可以将数据中继到不在发端设备的直接射频范围内的其他设备。这样,Mesh网络可以跨越很大的物理区域并包含大量的设备。
Mesh网络的动机
蓝牙Mesh网络的诞生是因为Mesh拓扑提供了满足各种日益普遍的通信需求的最佳方式,典型的应用包括楼宇自动化和传感器网络等。这些要求包括:
· 覆盖非常大的区域
· “立即可用(Just works)的互操作性”
· 监控和控制大量设备的能力
· 优化,低能耗
· 有效利用无线资源,导致可扩展性
· 与当前可用的智能手机,平板电脑和个人电脑产品兼容
· 行业标准的政府级安全
还有其他支持Mesh拓扑的低功耗无线通信技术,但是我们的成员经常报告这些技术具有不可接受的约束和限制,并且它们对于他们试图解决的各种问题以及他们想创造的产品类型并不是最佳的。其他可比技术中的问题包括低数据传输速率,在Mesh网络中传输数据时有限的“跳跃(hops)”数量,通常由射频信道使用的方式导致的可扩展性限制,以及遵循程序改变设备组成的困难和延迟Mesh网络。
一般来说,其他Mesh技术不支持标准的智能手机,平板电脑和PC设备;一个主要的限制。
创建基于蓝牙LE的行业标准Mesh通信技术 ,为满足这些要求提供了机会,但没有相关的限制和局限。毕竟,互用性和能源效率是蓝牙LE的标志。
面向消息的通信(Message-Oriented Communication)
蓝牙Mesh网络使用 发布/订阅(publish / subscribe) 消息系统。
设备可能会发送 消息 到地址的名称和含义与用户可以理解的高级概念相对应,如“Garden Lights”。这被称为“ 发布(publishing) ”。
设备可以配置为接收由其他设备发送到特定地址的消息。这被称为“ 订阅(subscribing) ”。
当设备向特定地址发布消息时,订阅该地址的所有其他设备都会收到该消息的副本,对其进行处理并以某种方式作出反应。
想象一下,在花园里安装了一套户外灯。每个灯都已配置为订阅“Garden Lights”消息。现在,设想一个蓝牙Mesh灯开关向“Garden Lights”地址发送一个“开”信息。花园中的所有灯都会收到“开启”信息,并通过......对此做出反应。您猜对了..... 开启。
就这么简单。
消息和设备状态(Messages and Device State)
“ 状态 ”是蓝牙Mesh网络的关键概念。蓝牙Mesh网络中的设备都有一组独立的状态值,代表设备的某些状况。在我们的花园灯示例中,每个灯具有一个状态值,表示设备当前是打开还是关闭。通过发布一种类型的消息来改变它,它的定义意味着它在“开/关”状态值上起作用,这就是蓝牙Mesh灯开关如何控制灯光。更改状态值可以修改设备本身的物理状态,例如打开或关闭设备。
在称为 模型(models) 的规范中定义了消息,状态以及设备相对于这些和其他概念的行为方式 。模型由蓝牙Mesh设备实现。
我们将在本系列稍后的另一篇文章中以更正式的方式详细讨论设备,状态,消息,状态更改和模型。
下一个!
本文的第2部分 将深入介绍 蓝牙Mesh网络 的世界 概述了消息在大型Mesh网络,市场上的设备支持,安全性和Mesh Stack本身中的使用方式。我还将介绍 蓝牙Mesh网络设计中 一些有趣的性能 优化,这些优化使其非常高效,非常适合物联网时代(IoT)的Mesh网络要求。
蓝牙Mesh简介第2部分
发布于 2017 年 8月01日 , Martin Woolley
蓝牙Mesh网络系列的第2章
介绍
在本文的 第1部分 中,我介绍了新的蓝牙Mesh网络技术。如果您还没有阅读第1部分,请在阅读本文第2部分之前从那里开始。
我将在此完成对蓝牙Mesh网络的介绍性概述,并概述消息在大型Mesh网络,市场设备支持,安全性和Mesh Stack本身中的使用方式,然后我们将在随后的文章中继续探索该技术更详细的介绍。
中继(Relaying)
在第1部分中,我们了解到 蓝牙Mesh网络 设备使用消息和发布/订阅机制相互交谈。
Mesh网络允许安装设备并在非常大的区域内彼此通信。考虑购物中心,机场或办公大楼占用的空间有多大。由于墙壁和其他物理屏障,可能无法实现从建筑物一侧的设备到安装在同一建筑物远侧的设备或实际上位于另一个相邻建筑物的设备的直接射频接触。蓝牙Mesh网络通过允许网络中的一些设备被指定为“中继(relays)”来解决这个问题。
中继设备重新传输他们从其他设备收到的消息。在这样做时,他们能够与最初发布消息的设备的射频范围内的设备进行通信。一条消息可能被多次中继,被称为“跳(hops)”。最大可能有127跳,足以在一个巨大的物理区域传递消息。
受管理的泛洪(Managed Flooding)
蓝牙Mesh网络 使用一种称为“泛洪(flooding)”的方法来发布和转发消息。这意味着消息不会被一个进程路由,这个进程会导致它们沿着包含一系列只有某些设备的特定路径传输。相反,范围内的所有设备都接收消息,而那些充当中继器的设备将消息转发给范围内的所有其他设备。
总而言之,泛洪(flooding)是一种有优势和弱点的技术。但是,通过蓝牙Mesh网络,我们相信我们已经 优化了设计以保留优势,但同时解决了这些弱点。
泛洪技术的优势(The Strengths of the Flooding Technique)
我们首先考虑泛洪(Flooding)的优势。
泛洪的优势在于,不需要特定的设备来担当集中式 路由器的 特殊责任 ,故障可能导致整个网络无法运行。特定的路线不可用也可能对网络产生灾难性的影响,而且这种情况也可以通过泛洪方式来避免。
泛洪的方法也意味着通常有多条路径可以使消息到达目的地。这构筑了一个非常可靠的网络。
优化Mesh网络
蓝牙Mesh网络方法包括许多措施,可以采取泛洪(flooding)方法,但是可以优化个别设备和整个网络使用的能源。
所有数据包都包含一个称为 TTL 的字段 。这可以用来限制消息在中继时所花的跳数。由设备间隔发送的心跳消息包括允许网络了解其拓扑结构和跳跃数量的信息,每个其他设备都是。这允许设备将TTL设置为最佳值,这可以避免消息被中继不必要的次数。
每个设备都包含一个消息缓存,以便它可以确定之前是否已经看到消息,并且是否立即丢弃消息,从而避免不必要的处理。
也许最有趣的是,功率受限的设备,例如由必须持续多年的小电池供电的传感器,可以被称为“ 低功率节点(low power nodes) ”。低功率节点与一个或多个指定为“ 朋友(friends) ”的 设备一起工作 。 朋友(Friends)不受功率限制,代表低功率节点行事,存储发往低功率节点的消息,并仅在低功率节点要求时发送消息。 毫不奇怪,低功率节点和朋友之间的关系被称为“ 友谊(friendship) ”。
让我们仔细考虑友谊(friendship)在节能方面的工作原理。
低功耗设备通常花费大部分时间传输数据,传感器就是一个很好的例子。也许只要温度低于或高于指定阈值,传感器就会传输温度读数,也许这只会趋向于每天发生两次。这种不经常的传输时间表(infrequent transmission schedule)本身使得这种类型的设备的能量使用非常低。
但是如果传感器需要偶尔能够接收数据呢?例如,它需要及时了解网络中使用的安全密钥。也许这些温度阈值需要修改,以根据季节使用不同的值。为了使传感器能够直接接收消息,需要打开射频,以便它可以接收数据。大部分时间它将不会收到任何东西,但是能量已经被消耗掉了。
与朋友一起工作时,低功率节点可以以该设备认为合理的频率来安排其使用射频接收来消息,但重要的是,频率远低于必须“听”的频率,以防万一发送给它的罕见事件发生。
朋友们(Friends)为低功耗节点做了繁重的工作。它们为低功率节点存储消息,并在低功率节点明确要求时提供这些消息, 并按照他们控制的时间表运行,从而可以最有效地利用射频。
蓝牙Mesh网络 - 开发人员简介
下载此综合技术概述,以了解有关重要概念和术语,系统架构和安全机制的更多信息,以及蓝牙Mesh网络背后的独特消息发布和传输技术。
市场上的蓝牙设备支持
蓝牙Mesh网络可能是新的,但蓝牙低功耗(LE)不是。那么市场上已有数十亿设备呢?智能手机和平板电脑怎么样?他们有可能访问蓝牙Mesh网络吗?
令人高兴的是,答案是肯定的。
蓝牙Mesh网络指定被称为 代理节点(Proxy Node) 的设备角色 。代理节点包括具有两个GATT特性的标准蓝牙低功耗GATT服务。这些特性称为Mesh代理数据输入和Mesh代理数据输出。诸如智能手机之类的蓝牙LE设备可以使用这些特性来向Mesh网络发送数据以及从Mesh网络接收数据。
Mesh规范定义了一种称为 代理协议(Proxy Protocol) 的协议,并且通过由代理节点提供的两个GATT特性交换的数据由代理协议PDU组成。
我们将在本系列后面的文章中专门介绍代理节点的角色。
安全
安全是蓝牙Mesh网络设计的核心,其使用是强制性的。
每个数据包都经过加密和认证。通过明智地使用序列号来防止重放攻击。在重要的程序中,中间人攻击通过使用不对称加密来保护。提供了针对利用废弃设备的垃圾桶攻击的防护。必要时会刷新安全密钥。
“分离关注(Separation of Concerns)”是蓝牙Mesh网络安全中体现出来的一个重要原则。网络的安全性和个人应用的安全性,如照明,供暖或物理建筑安全是彼此独立的。不同的安全密钥用于保护网络层操作,如中继或保护消息的应用特定内容。例如,这样做的结果是,灯泡可以完全访问由灯开关传输的消息中的数据,因为它们具有相同的应用程序密钥。但是,虽然同一个灯泡能够将来自蓝牙物理访问令牌的消息转发到前门的锁,但它无法看到这些消息的应用层内容。
我们将在本系列的后面详细探讨安全性。我们还将密切关注称为“ 配置(provisioning) ” 的安全过程 ,这会导致设备成为蓝牙Mesh网络的成员,设备如何从网络中安全地移除以及安全密钥在需要时如何刷新。
堆栈(The Stack)
蓝牙Mesh网络引入了一种新的协议栈,如上所述,该协议栈位于蓝牙低能量之上。图4描绘了堆栈的各个层次。
该规范是彻底了解各层职责的最佳地点。简而言之,为了给你一个 关于堆栈如何工作 的 感受,堆栈的各层负责以下关键功能:
承载层(bearer layer) :承载层(bearer layer)定义了如何使用底层 LE栈 传送PDU 。目前,定义了两个承担者,即广告承载者和GATT承载者。
网络层(network layer) :网络层定义各种消息地址类型和网络消息格式。中继和代理 行为由网络层实现。
下层传输层(lower transport layer) :如果需要,下层传输层处理PDU的分段和重组。
上层传输层(upper transport layer) :负责传入和传出接入层的应用数据的加密,解密和认证。它还负责称为传输控制消息的特殊消息。这些包括与“友谊(friendship)”关系有关的心跳和消息。
接入层(access layer) :负责应用数据的格式,定义和控制在上层传输层中执行的加密和解密过程,并验证从它接收到的数据适用于正确的网络和应用,然后再将数据转发到堆栈。
基础模型(foundation models) :基础模型层负责实施与Mesh网络的配置和管理相关的模型。
模型(models) :模型层关注模型的实现,因此实现行为,消息,状态等。
蓝牙Mesh网络的未来
我们预计蓝牙Mesh网络将在广泛的行业部门和应用中得到采用。但首先,我们预计它将被应用于建筑自动化,商业照明和传感器网络等领域。商业照明是蓝牙Mesh网络的一个特别令人兴奋的应用。想想看。使用正确的固件,照明系统可以提供的不仅仅是无线灯光控制。它可以成为建筑物内各种蓝牙服务的平台,如资产跟踪和定位!
结论
这是介绍 蓝牙Mesh网络 的系列文章中的第一篇也是最后一篇 。我希望它能激起你的胃口。在接下来的部分中,我们将介绍一些正式使用的术语和概念。