MeshProfile

Mesh Profile

V 1.0.1

translate By Tyler

1 介绍

蓝牙网络配置文件规范定义SIG mesh的基本要求,用来实现低功耗蓝牙的无线网络解决方案

1.1 一致性

如果符合本规范,那么需要按照指定的方式实现此规范内的所有功能。这也适用于其他支持的可选或者条件功能

1.2 蓝牙规范一致性

本规范必须遵循至少V5.0以上的蓝牙规范

1.3 技术术语

1.3.1 技术术语规约

SIG蓝牙组织已经定义了下面一些词语所蕴含的意义:shall、must、will、should、may、can、is和note。请参看源文件

1.3.2 为将来保留

如果数据包、协议单元和其他数据结构体有被描述为“为将来保留”,那么除非有特殊说明,那么这些位都会被赋值为0

1.3.3 只读数据

如果数据包、参数内部有标记为被禁止的,那么此部分为只读或者禁止区域

1.3.4 缩略词

  • ACK:Acknowledgment

  • AD:Advertising Data

  • AES:Advanced Encryption Standard

  • AID:Application Key Identifier

  • AKF:Application Key Flag

  • ASCII:American Standard Code for Information Interchange

    。。。。

1.3.5 术语

  • Adress:一个或多个节点中的元素的标识
  • Configuration Client:实现配置客户端模型的节点
  • Destination:消息发送地址
  • Device:未配置到Mesh网络内的设备
  • Element:每个节点至少一个元素。元素是可寻的实体地址
  • Message:从源地址发送到目标地址的8进制信息
  • Neighbors:2.4G范围内的节点
  • Network:公共地址内的一组节点
  • Node:一个被允许加入的设备
  • Provision:认证并将基本信息(单播地址/网络密钥)提供给设备的过程,必须配置设备才能成为节点。设置之后,节点可以在网络中发送或者接受消息
  • Provisioner:能将未配置的设备添加到网络内的节点
  • Relay:接收并重新转发消息的节点
  • Source:发送消息的地址
  • State:公开元素状态的值0/1
  • Subnet:可以互相通信的一组节点

2 Mesh 网络架构

本章节主要描述Mesh网络预览和分层系统的介绍

2.1 Mesh网络层介绍

mesh 网络层介绍如图2.1所示

MeshProfileLayer

2.1.1 Model Layer

Model Layer定义了一些标准模型,用于典型设备用户场景。更详细的模型介绍可以参考Mesh Model Specification。现有的主要是照明与传感器模型

2.1.2 Foundation Model layer

Foundation Model layer定义了状态、消息、模型请求配置、管理网络

2.1.3 Access layer

Access layer定义了高层的应用如何访问Uper transport 层。他定义了数据格式和与上层数据传输时的数据加密&数据解密。并且查看网络密钥与程序密钥是否符合,如若符合转发数据到更高层

2.1.4 Upper transport layer

本协议层主要提供加密、解密、认证应用数据用于提供消息的机密性。它还定义了如何使用传输控制消息来管理节点之间的上层传输层,包括friend节点使用

2.1.5 Lower transport layer

本协议层定义了数据传输拼接重组,用于upper transport层或者其他节点之间的传输。分为控制消息与数据消息

2.1.6 Network layer

本协议层定义了数据如何传输到每个节点或者每个元素。他定义了Bearer layer层的数据如何传输PDU的格式。定义了数据是否要中继/转发。数据的加解密也是在此层验证通过的

2.1.7 Bearer layer

本协议层定义了两个节点之间的数据如何传输,现在有两种传输方式GATT承载、广播承载。将来会有更多的承载方式

2.2 Mesh网络操作概述

mesh网络根据如下规格书定义:

  • 消息可以从一个节点发送到一个或者多个元素
  • 允许消息被转发、中继,达到远程通信的效果
  • 具有安全消息加密的功能,防止多种安全攻击
  • 在现有的设备上工作
  • 消息传递的实时性
  • 当一个或多个节点被移除或者停止的时候,整个网络保持要继续工作。
  • 能够兼容老版本,并且兼容新版本

本规格书定义了一个基于泛洪式的mesh网络,通过广播通道来传输信息,达到其他节点接收到信息与转发信息的效果,达到扩展消息的效果。只要有足够大的网络存在,那么在Mesh网络内的任意一个设备就可以在任何时间发送任意的消息给到其他设备。有可能增加路由功能和最优路径的功能

在Mesh网络中,本规范规定了多种防止消息被重复转发的方法。两种主要的方式是消息缓存与消息存活周期(TTL)

网络内的消息缓存机制是节点中继的消息会被缓存到一个缓存列表内。当消息再次接收到,节点会检查消息是否在消息列表内,如果在,将会忽略此次的消息。如果不在,放到缓存列表内,用于下次接收消息的检查。但是因为消息的增加,缓存列表会有长度限制。

每个消息内部包涵一个TTL值,TTL值限制了消息的转发次数。每次转发一次消息,TTL会减少1.TTL的最大值是127。当转发到0的时候,不在转发

2.2.1 网络与子网

一个Mesh网络是由4部分公共资源组成:

  • 用于标识消息地址与源地址的信息
  • 网络秘钥用于在Network layer层消息的加密与认证
  • 应用秘钥被用于Access layer层的加密与认证
  • IV Index被使用在Networ内的生存周期