蓝牙mesh网络:走进数据包
2018-03-13
作者:Szymon Slupik
有很多理由能够说服我们,蓝牙mesh网络 将成为最成功的低功耗物联网标准。
其1.0版本大幅超出了所有人的预期。它具备所有的基本要素,包括极度深入且灵活的应用层(详见mesh模型与mesh设备属性规格)。它将改变我们周围事物的通信方式,在此之前,让我们先看看到底是什么让这一全新的全球化技术具有如此革命性的意义。
蓝牙mesh涉及了许多新颖而独特的概念,但其主要资产在于数据包,这也是它的一个差异化因素。它非常紧凑,这种紧凑性有助于确保蓝牙mesh网络的频谱效率和吞吐量。
走进数据包
蓝牙mesh是首个能够满足物联网之巨大期望的无线标准。
无线电是一种共享型媒介,而冲突就是其需要解决的主要问题之一。这很简单:更短小的数据包就会意味着更少的冲突。但是能做到多么短小呢?答案就在mesh配置文件规格 3.4.4节:最多29个字节。
当然,这样的设计也是从基础开始的:压缩的二进制有效载荷,而非文本表示。覆盖广泛的用例(包括互联照明、楼宇自动化和传感器),应用程序有效载荷的11个字节看起来也正合适。操作码为1-2个字节,参数最多为10个字节,参数包括传感器的测量值、或具有转换时间的多维照明(亮度、色调、饱和度)。
安全与控制
除此以外,有两个项目可能被视为额外但是必要的负担:寻址/传输控制(SRC、DST、CTL + TTL:共5个字节)和安全性(IVI + NID、SEQ 、AppMIC和NetMIC)。
IVI + NID为1个字节。这一字节有助于识别网络(这是否为我所知、并拥有密钥可与之交互的网络?)。SEQ是3个字节,连同缓慢传输的IV索引这一独特的概念,形成了一个7字节长的序列号。在mesh网络上发送的每个数据包都根据给定的SRC地址,具有唯一的序列号。这里的智能之处在于空中接口数据包中仅包含3个字节。其余的4个字节变化缓慢,并且被网络所知晓。
序列的必要性体现在两个方面:检测中继数据包(非常小规模的安全攻击),同时也是作为当前网络和应用程序的关键组成部分 - 参见上述规格 的第3.8.5节。
信息完整性检查
MIC(消息完整性检查)定义了系统的安全级别。蓝牙mesh网络具有双层安全保护--网络层和应用层。消息可以通过两个独立的密钥来进行保护。这对于中继节点是有用的,能让其在网络层上对消息进行认证,但却无法篡改应用有效载荷。将信息中继到门锁的灯泡无法将有效载荷从打开改变为关闭,而只能检查数据包是否属于它自己所在的网络。
网络层MIC可为8或4个字节长。当其为较短的形式时,它与应用层MIC结合,仍可为8或4个字节长。最终的结果是应用程序的有效载荷具有强大安全性、以及灵活的寻址能力,足以满足几乎所有楼宇自动化、照明控制和传感器应用程序所需。
而这一切都存在于非常紧凑的外形中。结合低功耗蓝牙(Bluetooth Low Energy)提供的调制方案,它也是“身轻如燕”,且包括了所有必要的无线接口字段,如前导码、访问地址和CRC,总共为47个八位字节。结果上,单一频率上的单次传输时间少于400μs。相较于当前其他无线技术,其传输类似消息所需的时间要少10倍。当采用蓝牙5引入的全新2M PHY时,这一优势还可能会翻倍。
频谱效率
任何无线系统的成功从根本上都有赖于频谱效率。这就像一架客机的成功从根本上有赖于其燃油效率一样。谈到低功耗、超短消息等,蓝牙mesh比其他无线解决方案强出一个数量级。就数据传输而言,这是首个能够满足物联网时代巨大期望的无线标准。