蓝牙mesh网络基础ppt课件

上传人:风*** 文档编号:241007309 上传时间:2024-05-24 格式:PPTX 页数:29 大小:1.88MB
收藏 版权申诉 举报 下载
蓝牙mesh网络基础ppt课件_第1页
第1页 / 共29页
蓝牙mesh网络基础ppt课件_第2页
第2页 / 共29页
蓝牙mesh网络基础ppt课件_第3页
第3页 / 共29页
资源描述:

《蓝牙mesh网络基础ppt课件》由会员分享,可在线阅读,更多相关《蓝牙mesh网络基础ppt课件(29页珍藏版)》请在装配图网上搜索。

1、毕毕健健iHealth中国研中国研发发中心中心蓝蓝牙高牙高级级工程工程师师 邮箱:bi_译文版本:V1.0完成时间:2017.11.11 备 注:毕健iHealth中国研发中心蓝牙高级工程师 邮箱:bi_j11蓝蓝牙牙mesh基基础础致开致开发发者:者:2017夏,蓝牙低功耗技术引入了一种新的网络拓扑类型-Mesh。mesh的引入使得蓝牙在低功耗无线通信技术领域更具优势,在许多新兴领域 如智能家居,工业物联网,楼宇自动化等势必会得到更好的应用。蓝牙1蓝牙mesh基础致开发者:蓝牙2Bluetooth Mesh Networking/An Introduction for DevelopersC

2、ontributorsMartin WoolleyAuthorSarah SchmidtGraphic Designer目目录录 2017 Bluetooth SIG Proprietary.21.0 介介绍绍 .42.0 执掌生活.62.1 智能建筑获得真正的智能73.0 蓝牙mesh基础.83.1概念和术语93.2mesh 与 点对点93.3 设备与节点93.4 元素103.5 消息103.6 地址103.7 发布/订阅113.8 状态和属性113.9 消息,状态及属性123.10状态转变123.11 绑定状态123.12 模型133.13 通用性133.14 情景133.15 开通配置1

3、43.16 特性14Bluetooth Mesh Networking/An3Bluetooth Mesh Networking/An Introduction for Developers3.0 蓝牙mesh基础(续)17.中继节点18.低功耗节点与友节点19.代理节点20.节点配置 2017 Bluetooth SIG Proprietary.31515151 64.0 Mesh系统架构.174.1 概述184.2 承载层184.3 网络层184.4 底层传输层194.5 上层传输层194.6 接入层194.7 基础模型194.8 模型195.0 安全性.201.Mesh 网络安全特性具有

4、强制性2.Mesh 网络安全性基本原则3.关注点分离与mesh安全密钥4.节点移除,密钥刷新及垃圾桶攻击5.隐私6.重放攻击2121212222236.0 蓝牙mesh在行动.241.消息发布与传递2.多路径传递3.管理型网络泛洪4.协议栈中消息的传递252525257.0 蓝牙Mesh 正待勇士开拓的疆场.277.1参考资料28Bluetooth Mesh Networking/An4back to contentsBluetooth Mesh Networking/An Introduction for Developers1.0 介介绍绍 2017 Bluetooth SIG Propr

5、ietary.4back to contentsBluetooth Mesh5back to contentsBluetooth Mesh Networking/An Introduction for Developers1.0 介介绍绍2000年,蓝牙技术面世,用以替代线缆进行无线通 信。此后的十几年间,蓝牙得到了快速的发展,很快在无 线音频及计算机周边产品如无线鼠标,键盘等领域占据了 统治地位。2010年,蓝牙低功耗技术(BLE)面世,推动蓝牙技 术向前迈进了重要一步。其影响深远,主要体现在智能 手机,平板,以及医疗健康,智能家居,可穿戴产品等领 域。基于网状拓扑类型的无线通信系统可以覆盖

6、更大的范 围,使得通信距离变长,同时系统的鲁棒性得到加强。但 是他们仍然是一种小众技术,主要是因为与现有的大多数 计算机,智能手机等设备不兼容,因而没有得到大范围的 推广和应用。为了将mesh技术应用到蓝牙中,120个蓝牙SIG成员公 司先后参与到这项工作中。与以往情况不同,此次规模之 大,涉及范围之广,充分表明了业界对蓝牙mesh技术标准制定的迫切需求。蓝牙mesh技术的添加代表了一种技术类型的变化,这 种变化如此巨大,我们甚至可以认为这对蓝牙技术标准来 说是一次整体模式的转变。(译者注:蓝牙特别兴趣小组 The Bluetooth Special Interest Group(SIG),是

7、一个非盈利性组织,致力于蓝牙 技术标准的开发,和蓝牙技术应用及商标的授权。公司成 立于1998年,总部位于美国华盛顿。)2017 Bluetooth SIG Proprietary.5back to contentsBluetooth Mesh6back to contentsBluetooth Mesh Networking/An Introduction for Developers2.0执掌生活 2017 Bluetooth SIG Proprietary.6back to contentsBluetooth Mesh7back to contentsBluetooth Mesh Net

8、working/An Introduction for Developers2.0 执掌生活智能建筑将智能建筑将获获得真正的智得真正的智能能 想象一下,在一个天色昏暗的冬日的早晨,你驱车前 往公司。公司的安全系统识别了你的车,让你进入公司,同时分配给你一个停车位。此时,你的停车位上的灯亮 起,指引你快速停到那个位置。之后,这个车位分配系统 将自动进行更新,显示该车位已使用。进入公司大楼后,相应的传感器注意到有人进入,并 从你身上的可穿戴设备如手表等识别到你。你乘坐电梯到 达二楼,像往常一样,你是第一个到达的。当电梯门打开 时,从电梯室到办公室及开水间的灯自动打开。咖啡在你 们公司是非常重要的,

9、所以开水室的灯才会自动打开,其 它区域的灯关闭,从而节省能量。你走进办公室,屋顶灯和台灯已经打开了,并且是你最喜 欢的亮度等级。你注意到办公室温度比其它区域温度略高,这正是你之前设置的。你靠近办公电脑,此时电脑自动登 陆你的账户。现在你可以开始办公了,并且整个办公环境考虑到了个 人偏好,充分满足了你的需求。很显然这种这种系统是十分高 效的,那么它是如何实现的呢?你们公司几个月前使用了蓝牙mesh技术,最开始安装在照 明系统上,随后添加到Occupancy sensor,环境传感器,无线 暖气控制系统,停车管理系统等网络中。这样,公司可以在 电力和热力系统上省上不少费用,而且工作环境更加人性 化

10、,从而使员工的工作效率更高。整个系统的维护成本也 在下降,例如加入电灯开关不再需要布置昂贵且麻烦的电 线了。系统采集的数据可以供大楼管理人员分析,从而了 解这栋建筑,以及它所提供的服务和人们对这些服务做出 的反应,进而对整个系统进行优化。我们可以控制某栋建筑提供的服务,与其进行无线交 互,使其行为更加自动化,而蓝牙mesh正使这一切更加方便且低成本。你甚至会感到惊讶之前没有这些技术是怎 么生活的。(译者注:Occupancy sensor,一种室内运动检测 设备,检测到人体时会自动打开灯,温度调节装置及通 风系统。这种传感器多使用红外,超声,微波等技术,主要用来节省能量,提供自动控制。)图 1

11、-蓝牙mesh可以分布于办公室和停车处 2017 Bluetooth SIG Proprietary.7back to contentsBluetooth Mesh8back to contentsBluetooth Mesh Networking/An Introduction for Developers3.0蓝牙mesh基础 2017 Bluetooth SIG Proprietary8back to contentsBluetooth Mesh9back to contentsBluetooth Mesh Networking/An Introduction for Developer

12、s3.0 蓝牙mesh基础概念及概念及术语术语要认识蓝牙mesh技术,需要读者了解一些新的技术 概念与术语,这些在之前蓝牙低功耗(BLE)的世界里是没有的。本章我们将带你认识一些最基本的概念及术语。mesh vs 点点对对点点我们所见到的大多数BLE设备都是进行一对一的数据通信的。这是一种点对点的网络拓扑类型,在蓝牙核心规 范中被称为“微微网”(piconet)。假设一个智能手机与一个心率检测器建立了一个点对 点的连接,这样它们之间就可以传输数据了。蓝牙的一个 优点就是可以让设备建立多个连接,所以这台智能手机可 以再与另一个运动追踪设备建立连接。此时,手机可以同 另外两台设备进行通信,而这两台

13、设备之间无法直接进行 沟通。与以上情况相反的是,mesh拥有多对多的网络拓扑 类型。每一台设备都可以与网络中的其它设备进行通信(我们会在第6章进行更深入的讨论)。设备间的通信以消息的形式传递,一台设备可以将某一台设备发来的消息 中继到另一台设备,这样就可以扩展端到端的通信范围,这个范围远超过一个单独设备蓝牙无线电所覆盖的范围。设备设备和和节节点点mesh网络中的单台设备称做节点(node),网络外 的设备称为“未开通配置设备”(unprovisioneddevices)。将某个“未开通配置设备”转化为网络节点的过程称为“开通配置”(provisioning)。例如,你买了一 个带有mesh功能

14、的蓝牙灯,你需要把它带回家并进行简 单的配置,从而将其加入到家中原有的mesh网络中,这样你就可以通过家里的电灯开关与调光器对其进行控制 了。这一过程即为“开通配置”(provisioning)。“开通配置”过程是每一台新设备都要经历的,在这 个过程中,新设备会获取一系列的密钥,同时告知“启动 配置设备”(provisioner device,通常是智能手机或者平板电脑)有新设备加入到网络中。其中有一个密钥叫做网络 密钥,即NetKey。在后续章节我们会再对mesh的安全性进 行深入讨论。Mesh网络中的每个节点都拥有至少一个NetKey,正 是这个NetKey让其成为相应网络的一员。节点的正

15、常工作 需要满足许多条件,而NetKey则是最基本的第一步工作。随后我们会对“开通配置”的过程展开深入的讨论,在此 不再赘述。图 2-一种具有消息中继功能的多对多网络拓扑类型 2017 Bluetooth SIG Proprietary.9back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers元素元素 有些节点由多个独立的部分组成,每一个部分都可 以进行单独的控制。在蓝牙mesh中,这些独立的部分称 为元素(element)。图3即为网络中的一个

16、灯节点,它 有3个元素,每个LED灯泡有一个元素。每个节点至少拥 有一个元素,称为主元素(Primary Element)。节点中 的每个元素都有一个唯一确定的地址,称为单播地址(unicast address),这样每个元素都可以独立寻址。条响应信息。这条响应信息有两个作用:1.告知消息发送 方,消息已接收;2.返回消息接收方需要告知发送方的某 些数据。需要应答的消息如果没有得到响应,则可能会被发送 多次,所以这种消息必需具有幂等性。幂等性意味着这种 消息不论到达接收节点多少次,与其到达接收节点一次产 生的效果都是相同的。否则如果因为某些意外,消息多次到达接收节点,则有可能使接收节点的状态变

17、得不确定。不需要应答的消息不要求接收者发送响应信息。地址地址 消息必须从一个地址发送到另一个地址。蓝牙mesh协议中定义了3种地址(还有一种未分配地 址在此不做讨论)。单播地址用于唯一确定单个元素。在“开通配置”过 程中,会将单播地址赋给设备。群组地址是一种多播地址,它可以代表一个或多个元 素。群组地址要么是动态分配的,要么是蓝牙技术联盟 预先定义的(SIG固定群组地址)。蓝牙技术联盟已经定 义了4个固定群组地址,即All-proxies,All-friends,All-relays及All-nodes。在后续章节中我们会详细解释什么是 Proxy(代理),Friend(朋友)及 Relay(

18、中继)。我们可以通过配置应用程序来建立动态群组地址,这 些地址反映了一栋建筑的某种实体分配,例如为大楼里的 每一个房间定义一个群组地址。虚拟地址可以赋给一个或多个元素,横跨一个或多个 节点。虚拟地址与128位UUID的形式类似,任何元素都可 以与其相关联,它更像一个标签。虚拟地址可以在出厂前就进行预先配置,然后用于某 些特定场景,例如使某个厂商制作的投影仪的寻址更加方 便。图 3-三个元素组成一个灯节点 2017 Bluetooth SIG Proprietary.10消息消息 当某个节点需要获取其它节点的状态时,或需要以 某种方式控制其它节点,它会发送消息(message)。如果某节点需要向

19、其它节点汇报状态,它也会发送消 息。在mesh网络中,所以通信都是以消息的形式传递 的。协议规范中定义了多种消息类型,每种消息类型都 有自己唯一的操作码。消息可以统分为两种类型:需要应答和不需要应 答。需要应答的消息要求接收节点接收到消息后返回一back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers发发布布/订阅订阅 在蓝牙mesh中,发送消息称为发布(publish)。将某个节点配置成可以接收特定消息的过程称为订阅(subscribe),即如果

20、某个节点可以接收某条消息,那么我们就说这个节点“订阅”了这条消息。消息都是发往组地址或者虚拟地址的,而且这些地址都 具有可读性,具有现实意义,例如代表某一个房间。所以使 用起来既方便有直观。在图4中我们可以看到,开关1可以发布消息到厨房 组地址(上文我们已经提到,组地址可以代表某个房间)。1号,2号和3号灯节点都订阅了厨房地址,因此可 以接收和处理发往该地址的消息。也就是说,1号,2号 和3号灯可以被1号开关控制。同理,开关2可以发布消息到客厅组地址,而只有3 号灯订阅了该地址,所以开关2只能控制3号灯。从图中 我们也可以看到,一个节点可以订阅多个组地址,如3号 灯节点同时订阅了厨房和客厅两个

21、组地址。蓝牙的mesh 功能非常强大而且灵活,我们还可以看到多个开关可以 向一个组地址发布消息,如开关5,6都可以向花园组地 址发布消息。使用组地址和虚拟地址来发布和订阅消息有许多好 处。当我们移除,替换或者添加节点时,不需要重新配置 其它节点。想象一下你要在家里装一个灯有多麻烦你就知 道这种方式有多方便了。例如有新设备需要加入到客厅网 络中,只需经过“开通配置”过程并订阅相应的客厅组地 址就可以了,其它节点并不会受到影响。开关2依然可以 向客厅组地址发布消息,不过现在它可以控制3号灯与新 加入的灯了。状状态态和属性和属性 元素可能处在各种条件下,在蓝牙mesh中我们称之 为状态(state)

22、。一个元素可以有多个状态,每个状态都 是一组特定值(在下面的服务器模型中会再做介绍)。状态与特定的行为有关,不能在其它地方重用。例如,蓝牙mesh定义了通用开关状态来形容某个 电灯可能存在的状态,为其赋1(on)电灯打开,为其赋 0(off)电灯关闭,就这么简单。属性(property)与状态类似,它们都包含与元素 相关的数值,但在其它方面二者存在显著差异。发发布布 2017 Bluetooth SIG Proprietary.11订阅订阅厨房厨房客客厅厅走廊走廊卧室卧室花园花园图 4-发布/订阅Switch 6Switch 5Switch 4Switch 3Switch 2Switch 1L

23、ight 1Light 2Light 3Light 4Light 5Light 6Light 7Light 8Light 9back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers 熟悉BLE的读者应该了解特性(characteristic),它们 是一种没有与特定行为相联系的数据类型,这样它们就很 容易地得到重(chong)用。利用上面提到的属性,可以 将特性与具体含义相联系。有一点需要特别注意,这里提 到的属性(property)与我们在BLE

24、协议栈中定义的属性(attribute)是完全不同的,为了防止混淆,我们也可以 将前者翻译成“性质”(property)。为了加深对属性的认识,我们考虑一个具体的例子。有这 样一个特性,称为“温度8”,它具有多个相关属性,包括室内 温度与室外温度。当接收客户端接收到温度值时,可以根 据对应属性值,来判断这个温度是室内温度还是室外温 度。属性分为两类,分别是来自制造商的只读属性和来自 系统管理员的可读写属性。消息消息,状状态态及属性及属性 蓝牙mesh网络的正常工作依赖于消息的传递。某个特 定类型的消息可以对一个或多个状态值进行操作。消息可 以分为3类,简称为GET,SET,STATUS,对应于

25、蓝牙mesh网络支持的3种操作。GET消息可以用来向一个或多个节点请求状态值,之 后,相应节点会返回STATUS信息,告知请求的状态值。SET消息可以改变既定状态的值。有些SET消息需要 应答,要求返回一条STATUS消息,有些消息不需要应 答。STATUS消息可以用来应答GET消息,也可以用来应 答SET消息或者通过某元素中的定时器定时发送。我们可以通过消息操作码(opcode)识别到特定状 态。另一方面,我们也可以在通用属性相关消息中使用16位属性ID来直接引用属性(具体操作细节请参考蓝牙mesh相关技术文档)。状状态转变态转变 从一个状态转变为另一个状态的过程叫做状态转换,转变的过程可能

26、是瞬时的,也可能需要经过一段时间,这 段时间叫做转换时间。状态转变可能会对节点应用层的行 为产生影响。绑绑定状定状态态 状态之间也可能存在某种关系,一种状态改变会导致 另一种状态也改变,这种关系称为状态绑定(state binding)。一个状态可以与其它多个状态绑定。例如,通过一个调光器控制一盏灯。这盏灯有两种状 态,即通用开关状态和通用等级状态,他们之间相互绑 定。减少灯的亮度等级,直到亮度等级为0,这将导致通 用开关状态由开变为关。通用开关服务 器通用开关客户 端图 5-通用模型 2017 Bluetooth SIG Proprietary.12back to contentsBluet

27、ooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers 2017 Bluetooth SIG Proprietary.13模型模型 模型将之前提到的概念组合在一起,定义了元素的功 能。当前蓝牙mesh规范中一共定义了3类模型。第一种是服务器模型(server model),它定义了一 系列的状态,状态转换,状态绑定以及模型中元素可以收 发的消息。同时,它也定义了与消息,状态,状态转换相 对应的行为。客户端模型(client model)没有定义任何状态,它 只定义了几种消息。我们可以利用

28、这些消息来对相应服务 器模型中的状态进行操作,如GET,SET及STATUS。控制模型(Control model)包含一个服务器模型和一 个客户端模型。服务器模型可以用来与其它客户端模型进 行通信,而客户端模型可以用来与其它服务器模型进行通 信。我们可以通过扩展某个模型来创建新的模型。不过有 一种模型不能扩展,这种模型称为root模型。模型不能被改变,也就是说我们不能向模型中加入或 者移除相关行为。实现新模型的唯一方式就是扩展已经存 在的模型。通用性通用性 生活中我们不难看出,很多设备本质上都存在着相似 的状态。例如灯,风扇,电源插座等等,它们都具有开和 关两种状态。因此,蓝牙mesh模型规

29、范定义了许多可重用的通用状 态,例如通用开关状态(Generic OnOff),通用等级状态(Generic Level)。同理,我们还定义了一些通用消息,来对通用状态进 行处理,例如Generic OnOff Get和Generic Level Set消息。通用状态及通用消息可以用在通用模型中。通用模型 包括通用客户端模型,通用服务器模型,如通用开关服务 器,通用等级客户端等。利用通用性,不需要创建新的模型就可以将蓝牙 mesh功能添加到多个设备中。因为可以通过扩展某个模 型来创建新的模型,所以我们可以利用通用模型为新设备 快速创建合适的模型。情景情景想象一下,某天晚上,你想要将卧室的温度调

30、到20摄氏度,将卧室吊灯调到合适的亮度,再将桌上的台灯调成 令人舒适的暖色调等等。也许你会想到这需要一个一个手 动设置,那你就out啦!我们可以在应用程序上保存这些 配置,在需要的时候调用它们。这些保存的配置称为“情 景”(scene)。我们可以通过16位情景序号来识别特定 的情景,在每个mesh网络中,情景序号都是各不相同的。利用情景可以让许多节点同时到达某种既定状态,省 去了单独配置每个节点的麻烦。back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Devel

31、opers 2017 Bluetooth SIG Proprietary.14开通配置(开通配置(Provisioning)开通配置是指将某台设备加入到mesh网络中,从而变成一个节点的过程。它涉及几个阶段,期间会生成许多 安全密钥,这一过程对安全性要求比较高。开通配置通常是通过手机或者平板电脑上的应用程序 完成的。此时,手机或者平板电脑通常被称为启动配置设 备(Provisioner)。开通配置的过程涉及5个步骤,下面就每个步骤分别 展开讨论。第第 1 步步.发发送送Beacon信号信号 为了支持蓝牙mesh的不同特性,包括但不限于“开 通配置”,我们引入了新的GAP广播类型(参考蓝牙核 心

32、规范补充),包括广播类型。未开 通配置的设备(如需要加入mesh网络的灯)可以发出 广播数据包,声明自己是未开通配置的设备,可以被启动配置。用户可能需要按照一定的方 式,如键入一组按钮,或长按某个按键一段时间,从而 启动新设备的广播第第 2 步步.邀邀请请 在这一步骤中,启动配置设备(手机等)向需要加 入mesh网络的设备(如灯)发送邀请,实际上发送的 就是“开通配置邀请PDU”,一种特定格式的数据包。此时需要开通配置的设备(如灯)会返回一定的数据 包,即“开通配置能力PDU”告知自身情况。第第 4 步步.认证认证在认证的过程中,新设备会根据自身输出能力按照 某种方式输出一个或多个随机数(这一

33、点与蓝牙配对方 式有点类似)。例如新设备可以闪几下LED灯(闪烁的次数代表输出的验证值),或者有屏幕的话可以直接输 出数字。用户在启动配置设备上输入相应数字,整个 认证的过程就全部完成了。第第 5 步步.启启动动配置数据分配置数据分发发 认证完成之后,会利用两台设备的私钥和交换的对 等密钥生成一个会话密钥(Session Key)。之后利用会 话密钥来加密后续的数据分发,完成剩余的开通配置过 程,包括网络密钥(NetKey)和设备唯一地址,即单 播地址(Unicast Address)的分配。开通配置过程完成后,新设备(如灯)将会拥有网 络的NetKey,这是一个称为“IV索引(IV Inde

34、x)”的mesh安全参数,且拥有一个由启动配置设备(如手机)分配的单播地址。至此,这台新设备就正式成为节 点了。特性特性 所有的节点都可以发送和接收mesh消息,但是我们也可以单独赋予某些节点额外的特性,使其拥有某些特 定功能。一共有四种特性可以选择:中继(Relay),代理(Proxy),友(Friend)以及低功耗(Low Power)特性。每个节点都可以支持以上四种特性中的0 个或者多个,而且随时可以取消已经配置好的特性。第第 3 步步.交交换换公共密公共密钥钥 启动配置设备(如手机)和需要开通配置的设备(如灯)交换公钥。公钥可以是固定的,也可以是暂时 生成的。公钥的交换可以通过蓝牙传输

35、,也可以使用带 外数据(OOB)交换的方式。例如使用NFC或者二维 码进行数据交换,这样数据传输的安全性更高。back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers 2017 Bluetooth SIG Proprietary.15中中继节继节点点 支持中继特性的节点称为中继节点,它可以重发接收 到的消息。通过中继技术,消息可以进行多次“跳跃”(hop),这样就可以将消息传输到整个mesh网络。mesh网络PDU中有一个字段称为TTL(Time

36、ToLive)。TTL利用一个整数值来限制每条消息可以在网络 中跳跃(被中继)的次数。例如TTL等于3时,表示消息 最多被中继3次。TTL等于0则表示消息不能被中继,只能 进行单次传输。节点每隔一段时间发送一次TTL,这样可 以了解网络拓扑结构,充分利用mesh网络,避免不必要的消息中继,从而节省功耗。低功耗低功耗节节点与友点与友节节点点 有些节点可能采用电池供电,所以需要尽可能地降低 功耗。这种类型的设备可能主要关心发送消息,但也需要 偶尔接收消息。例如,有一个采用纽扣电池供电的温度传感器,当温 度超出既定阈值上限或者下限时,传感器每隔一分钟发送 一次温度值。如果温度不超出阈值,则不发送消息

37、。如果 不考虑功耗问题的话,这些行为都很容易实现。用户可能会向传感器发送消息,设置新的阈值,这种 行为比较少见,因为用户不可能有事没事地改变阈值,用 户可能会在季节改变或者新加设备时设置阈值。但是传感 器的阈值必须是能够改变的。接收消息的频率对接收器占 空比和功耗有影响。100%占空比能够确保传感器不丢失任 何一条温度阈值配置消息,但是功耗是非常大的。低占空 比可以节省功耗,但是也可能丢失某条配置消息。为了解决这一难题,蓝牙mesh引入了友节点(friend node)及友谊(friendship)的概念。在上面的例子中,温度传感器可以设计成低功耗节点(Low Power nodes)。在传感

38、器的配置数据中,会设置特定的标志,标记这是一个低功耗节点。低功耗节点会同另一个节点配合工作,这个节点对功 耗没什么特别的要求(可能接入市电,有固定的电源),这个节点称为友节点。友节点保存发往对应低功耗节点的 消息。低功耗节点会对友节点进行轮询(Poll),查看是 否有新消息。低功耗节点轮询的频率非常低,这样就可以 降低功耗,同时降低丢失配置消息的可能。当低功耗节点 对友节点进行轮询时,保存在友节点的消息就会一个接一 个地发到低功耗节点。在发出的数据包中有一个 MD(more data)标志,用来指明友节点是否还有消息需 要发送。低功耗节点与友节点的关系称为“友谊”(friend-ship)。正

39、是这种友谊关系,才使得功耗受限的节点能够 在蓝牙mesh网络中正常接收消息,在正常工作的同时保持 较低功耗。代理代理节节点点 在我们的生活中有大量的BLE设备,例如智能手机或者平板电脑。到现在为止,已经上市的蓝牙设备都还没有 集成蓝牙mesh网络协议栈,它们只使用了BLE协议栈以及 传统蓝牙协议栈。所以它们只能通过通用属性规范(Generic Attribute Profile-GATT)与其它设备进行信息交互。代理节点能够实现GATT和蓝牙mesh节点之间的信息交互。我们定义了代理协议,用于面向连接的承载层,如GATT。GATT设备(没有集成蓝牙mesh协议栈)可以通 过代理节点读写代理协议

40、PDU。总之,代理节点可以允许没有集成蓝牙mesh协议栈的BLE设备与mesh网络中的任何节点进行通信。back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for DevelopersP图 6-智能手机通过代理节点与mesh网络进行通信,P=代理节点 2017 Bluetooth SIG Proprietary.16节节点配置点配置 配置服务器模型(Configuration Server Model)定义 了许多状态,我们可以使用配置客户端模型(Configuratio

41、n Client Model)访问这些状态。配置状态与节点可以产生的行为和能力有关,与具体的应用或者设备 类型无关。例如,我们可以利用“配置服务器状态”来指明某个 节点是代理节点,中继节点还是其它节点。节点订阅的地 址保存在订阅列表中。网络和子网密钥以及应用密钥都保 存在配置块中(configuration block)。配置客户端模型与配置服务器模型可以对相应的配置 服务器模型的状态进行操作,这些操作包括GET,SET及 STATUS,它们是通过相应的配置消息完成的。back to contentsBluetooth Meshback to contentsBluetooth Mesh Ne

42、tworking/An Introduction for Developers4.0mesh系系统统架构架构 2017 Bluetooth SIG Proprietary.17back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers4.0 mesh系统架构概述概述 本章我们将深入了解蓝牙mesh的体系结构,认识mesh网络层级分布以及各个层的功能。我们还会将蓝 牙mesh结构与BLE结构进行对比说明,这将更助于我们理解。承承载层载层 发送和接收me

43、sh消息需要底层协议栈的支持,而承 载层(bearer layer)则定义了如何使用底层BLE协议栈传输 网络PDU。目前定义了两个承载层:广播承载层和GATT承载层。广播承载层利用BLE GAP广播和扫描特性来发送和接收mesh PDU。对于不支持广播承载层的设备,可以利用GATT承载层通过使用代理协议与mesh网络中的节点进行通信。代理协议封装在GATT操作中,包括特殊定义的GATT特性。mesh代理节点通过实现上述GATT特性,来支持GATT承载层和广播承载层。这样就可以在两种承载层间 转换和中继消息。网网络层络层 网络层(network layer)定义了多种消息地址类型和网 络消息格

44、式,这样传输层的PDU就可以通过承载层传输了。它可以支持多个承载层,每个承载层可以有多个网络 接口,如用于同一个节点不同元素间通信的本地接口。网络层决定了用哪一种网络接口来输出消息。来自承载层的消息会先经过一个输入滤波器,判断消息是否需要 传入网络层进行进一步处理。同理,输出消息会经过输出 滤波器,来决定消息是否要传递到承载层。我们还可以通过网络层实现代理和中继特性。从图7可以看到,蓝牙mesh网络结构的最下层是BLE。事实上,这不仅仅只有一层,而是整个BLE协议 栈。很显然,蓝牙mesh正是利用BLE进行实际上的信息通信的。接下来我们将自底向上分别介绍各个层。模型 基础模型上层传输层底层传输

45、层网络层承载层BLE接入层 2017 Bluetooth SIG Proprietary.18图 7-蓝牙mesh架构back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers 2017 Bluetooth SIG Proprietary.19底底层传输层层传输层 底层传输层(lower transport layer)可以将来自上层传 输层的PDU发到对端设备的底层传输层。它还可以进行PDU的分段和重组(这一点与BLE协议栈中的L2CAP类 似)。

46、对于那些不能放入单个PDU的长数据包,底层传输层会对其进行分段,将其放入多个PDU中传输。当其它设 备的底层传输层收到数据包后再将其重新组合,放入单个 上层传输层PDU中,再向上传输。上上层传输层层传输层 上层传输层(upper transport layer)可以将来自或者发往接入层的应用数据进行加密,解密和认证。在不同节点 之间,上层传输层还负责“传输控制消息”的生成和发 送。传输控制消息与下文将要提到的“友谊”和“心跳”有关。接入接入层层 接入层(access layer)定义了应用如何使用上层传输 层。包括:定义应用数据格式定义和控制上层传输层中的数据加密和解密过程验证从上层传输层传来

47、的数据是否对应于正确的网络 和应用,如果正确则将其传入上层协议栈中 基基础础模型模型层层 基础模型(foundation model)层负责涉及mesh网络配置和管理的基础模型的实现。模型模型层层 模型(model)层定义了模型的实现以及模型规范中定义的行为,消息,状态,状态绑定等的实现。back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers5.0安全安全性性 2017 Bluetooth SIG Proprietary.20back to co

48、ntentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers5.0 安全性安全性mesh网网络络安全特性具有安全特性具有强强制性制性 在BLE中,允许profile设计者采用不同的安全机制。例如使用不同的蓝牙配对方法,或者为某一个特性提供 单独的安全防护。也就是说,在BLE中,安全防护是可选 择的,允许设备不进行安全防护。由产品的设计者或制 造商负责分析产品的安全风险,满足具体的安全需求。相反,蓝牙mesh的安全防护是强制执行的。不管是 网络,单个应用还是具体的设备都需要

49、进行加密,并且 在任何条件下都不能人为地关闭或减弱。mesh网网络络安全性基本原安全性基本原则则 蓝牙mesh网络会采用以下几个基本原则来确保网络的安全性:1.所有的mesh消息都要经过加密和认证。2.网络安全性,应用安全性,设备安全性相互独立。也就是下面要提到的“关注点分离”。3.在mesh网络中,我们可以通过密钥刷新程序来更新 节点的安全密钥。4.消息模糊化可以让外界难以追踪网络内所发送的消 息,进而提供了一种隐私保护机制,难以让外界跟 踪节点的活动。5.蓝牙mesh安全性可保护网络免受中继攻击。6.设备添加到mesh网络从而成为节点的过程本身就是 是一个安全的过程。也就是前面提到的,开通

50、配置 过程。7.节点可以从网络中安全地移除,这样可以防止垃圾 桶攻击(trash can attack)。图 8-蓝牙mesh网络的安全性是最重要的 2017 Bluetooth SIG Proprietary.21关注点分离与关注点分离与mesh安全密安全密钥钥 蓝牙mesh网络安全性的核心是三种安全密钥。分别使用这些密钥对网络中的不同部分进行加密,这在网络 安全性方面是一种关键能力,也就是我们要说的“关注 点分离”技术。为了更好地了解这种技术,我们举一个例子。有一个已 经加入蓝牙mesh网络的灯。它可以当作一个中继节点来中继 消息。它可以中继门窗安全系统的消息,但是它不能理解消息 的具体含

51、义,只需要中继消息就行了。照明系统和门窗安全系 统相当于两个不同的子系统,它们使用不同的密钥进行加密,这样整个网络的安全性就得到了提升。蓝牙mesh网络里的每个节点都有一个相同的网络密钥(NetKey)。正是这个密钥才使得节点成为这个网络的一员。网络加密key与隐私key都是由这个网络密钥生成的。back to contentsBluetooth Meshback to contentsBluetooth Mesh Networking/An Introduction for Developers 2017 Bluetooth SIG Proprietary.22 节点可以利用NetKey来加

52、密和认证网络层,这样诸如 中继之类的网络功能就可以执行了。但是NetKey不能加密 应用数据。蓝牙mesh网络可以分成几个子网络,每个子网络都有 其单独的NetKey,这个NetKey只有当前子网络成员节点才 有,其它节点没有。这种方式可以分隔开特定的物理区 域,例如酒店中的每个房间都可以拥有一个单独的 NetKey。只有拥有应用密钥(AppKey)的节点 才能解密相应 的应用数据。在一个mesh网络中,可以有许多不同的AppKey,每个AppKey对应一种特定的应用(照明应用,热力应用,门窗安全系统应用等)。例如,灯和开关拥有 灯应用的AppKey,但是没有热力系统的AppKey,只有网 络

53、中的温度调节装置才拥有热力系统的AppKey。上层传输层会在将消息传输到接入层前,利用AppKey对消息进行解密和认证。每个AppKey只与对应的NetKey有关系,这种关系称 为“密钥绑定”(key binding)。也就意味着,一个拥有 既定AppKey的应用只能工作于某个特定网络,而一个mesh网络可以拥有多个独立的应用。最后一种密钥是设备密钥(DevKey)。这是一种特殊的应用密钥。每个节点都有一个独一无二的设备密钥,这个 密钥只有启动配置设备(如手机)知道。设备密钥可以用 在开通配置过程,以确保启动配置设备与节点之间的安全 通讯。节节点移除、密点移除、密钥钥刷新与垃圾桶攻刷新与垃圾桶

54、攻击击 如前文所述,节点包含多种mesh安全密钥。如果某个节点出现故障,需要被丢弃,或者用户想要将某个节点卖 给其他人,那么我们需要特别注意,节点中包含许多网络 密钥,不法分子可能利用这些密钥攻击你的网络,给用户 造成损失。针对以上情况,蓝牙mesh规范中定义了一套安全的流程来移除不需要的节点。启动配置设备(如手机)上的应 用程序可以将节点加入黑名单,之后发起密钥刷新程序。密钥刷新程序(Key Refresh Procedure)会向网络中 的所有节点发送新的网络密钥,应用密钥等相关数据。换 句话说,所有的安全密钥都被替换了。当然在黑名单中的 节点不会收到这些信息。因此,被移除的节点只拥有旧的

55、密钥,所以不再是网 络中的一员,也就没有威胁了。隐隐私私 隐私key是通过NetKey产生的,它可以用来模糊化网 络PDU报头,例如模糊化源地址。模糊技术可以防止不法分子通过被动窃听来追踪某台设备或者某个人的位置。它 也可以令某些攻击更加困难,如基于网络流量分析的攻 击。利用隐私key可以提供非常合适的安全防护。重放攻重放攻击击 在网络安全方面,我们经常提到重放攻击(replay attack)技术。重放攻击是指窃听者截获一个或多个消息后,再转发这些消息,以欺骗接收者,实施未授权的攻击 行为。例如我们经常提到的一个例子,汽车的无钥匙进入 系统受到攻击者的破坏,攻击者拦截了车主与汽车之间的 认证

56、序列,然后重放这些信息进入汽车实施盗窃。蓝牙mesh网络可以防止重放攻击。在蓝牙mesh网络PDU中包含两个字段,分别称为序列号(SequenceNumber)和IV索引(IV Index)。每次发布消息时,元素会增加序列号的值。当某个节点从元素接收消息时,如果 发现元素包含的序列号小于或等于上一个有效消息中的序 列号,则节点会将消息丢弃,因为很可能这则消息与重放 攻击有关。IV索引是一个单独的字段,需要与序列号一 同考虑。来自既定元素的消息中的IV索引值必须等于或 者大于该元素的上一个有效消息。back to contentsBluetooth Meshback to contentsBlu

57、etooth Mesh Networking/An Introduction for Developers6.0蓝蓝牙牙mesh在行在行动动 2017 Bluetooth SIG Proprietary.24back to contentsBluetooth Mesh24back to contentsBluetooth Mesh Networking/An Introduction for Developers 2017 Bluetooth SIG Proprietary.256.0 蓝蓝牙牙mesh在行在行动动消息消息发发布与布与传递传递 Wi-Fi网络是基于一个中央网络节点进行工作的,这

58、 个中央网络节点就是我们常见的路由器。所有的网络传输 都是通过路由器进行的。一旦路由器出现故障,整个网络 都会瘫痪。与此相反,蓝牙mesh使用一种称为管理型网络泛洪 的技术来进行消息的传递。当一条消息被某个节点发布 后,这条消息不会只路由到某个或多个特定的节点。如果 配置合适的话,在初始节点无线电覆盖范围之内的所有节 点都会收到消息,然后还可以将其中继到更远的地方,这 样在离初始节点更远(远远超过初始节点无线电覆盖范 围)的地方也能收到中继来的广播消息。这样整个通信距 离将变得更长。多路径多路径传递传递 通过使用管理型网络泛洪技术,我们可以发现,消息 可以通过网络中的多种途径到达目的地。这就使

59、得蓝牙 mesh网络的消息传输更加可靠,也正是由于这个原因,在 网络设计时,我们才采用了泛洪技术,没用采用路由的方 法。管理型网管理型网络络泛洪泛洪 蓝牙mesh网络采用网络泛洪的方式传输消息,这样 可以使整个网络更加可靠和高效。我们可以通过多种方式 来优化泛洪的工作,称之为“管理型网络泛洪”。这些方 式如下:心跳心跳 节点会周期性地向其它节点发送心跳消息,告知 其它节点该节点处于活动状态。同时心跳消息还包含 一部分数据,可以让网络了解其拓扑结构,以及传到 其它设备需要的跳数。这部分信息可以用在TTL字段 中。TTL 上文我们已经提到,TTL(time to live)是蓝牙mesh PDU中

60、包含的一块区域,它控制着某条消息允许跳跃的 最大次数。设置TTL能够让节点控制消息中继的次数,避免不必要的消息中继,从而降低功耗。心跳消息(heartbeat messages)可以用来确定每次 消息发布时应该选用的最适合的TTL值。消息消息缓缓存存 每个节点都具有消息缓存能力。缓存中包含了最近 接收的全部消息。如果发现新来的消息已经存在于缓存 中,则说明此条消息之前已经被处理过了,那么这条消 息将被立即丢弃。友友谊谊 蓝牙mesh网络中最显著的优化机制可能就是友节点 和低功耗节点的配合了。正如前文所述,友节点可以保 存消息,为低功耗节点服务,这使得低功耗节点能够以 一种极低功耗的方式运行。协

61、议栈协议栈中消息的中消息的传传递递 某个节点通过底层的BLE协议栈接收到一条消息,通 过承载层将其传输到网络层。网络层通过各种校验机制来 决定是否将其传输到上层协议栈。此外,PDU中还有一块称为网络ID的区域,我们可以 利用网络ID来识别消息加密的NetKey。如果NetKey没有被 接收节点的网络层所识别,这就表明它没有相应的 NetKey,也就是说它不是这个子网络的一员,所以这个PDU会被丢弃。PDU中还有一块消息完整性检查(MIC)区域。我们可以利用与PDU网络ID对应的NetKey来进行消息完整性检查,如果失败了,那么这条消息也会被丢弃。back to contentsBluetoot

62、h Mesh25back to contentsBluetooth Mesh Networking/An Introduction for Developers 2017 Bluetooth SIG Proprietary.26 某个节点发送的消息可以被它附近的所有节点接收,不过有些节点会很快将消息丢弃,因为他们与这个节点不 在同一个网络或者子网络,它们之间没有什么关系。同样的原则也适用于协议栈的上层传输层。PDU中有 一个字段称为应用标识符(AID),可以用来检查消息的AppKey。如果AID不能被节点识别,上层传输层就会将 这条PDU丢弃。如果消息完整性检查(MIC)失败了,那么这条消息也

63、将被丢弃。back to contentsBluetooth Mesh26back to contentsBluetooth Mesh Networking/An Introduction for Developers7.0蓝蓝牙牙 mesh 正待勇士开拓的疆正待勇士开拓的疆场场 2017 Bluetooth SIG Proprietary.27back to contentsBluetooth Mesh27back to contentsBluetooth Mesh Networking/An Introduction for Developers7.0 蓝蓝牙牙 Mesh 正待勇士开拓的疆

64、正待勇士开拓的疆场场 到这里我们已经基本介绍完了蓝牙mesh相关特性,概 念及术语。如果你对蓝牙技术感兴趣,可以浏览蓝牙官方 网站获取更多技术支持。需要强调的是这里介绍的蓝牙技术与以往提及的蓝牙 不同,它是一种全新的蓝牙网络拓扑类型。这将使蓝牙在 低功耗无线通信技术领域的应用更加广泛,特别是对于一 些新的领域,如工业物联网,智能家居等等,它将更具竞 争优势。参考参考资资料料1Bluetooth SIG,Bluetooth Mesh Specificationhttp:/ SIG,Bluetooth Mesh Model Specificationhttp:/ SIG,Bluetooth 5 C

65、ore Specificationhttp:/ SIG,Bluetooth Core Specification Supplement See: 2017 Bluetooth SIG Proprietary.28back to contentsBluetooth Mesh28术语表蓝牙低功耗.bluetooth low energy(BLE)协议数据单元.protocol data unit(PDU)发布.publish订阅.subscribe状态.state消息.message管理型网络泛洪.managed flooding代理节点.proxy node中间人攻击.man in the mi

66、ddle attack关注点分离.separation of concerns开通配置.provisioning启动配置设备.provisioner承载层.bearer layer基础模型.foundation models接入层.access layer元素.elements特征.features微微网.piconet主安全资料.master security material好友安全资料.friend security material带外.out of band(OOB)协议数据单元.protocol data unit(PDU)对称加密.symmetric cryptography密钥刷新程序.key refresh procedure译者注:相关术语的翻译参考互联网,可能有断章取义之嫌,具体含义请以英文原文为准。:)术语表蓝牙低功耗.29

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!