南平 网站建设百度推广合作

当前位置: 首页 > news >正文

南平 网站建设,百度推广合作,电器网站建设,扬州网站建设推广专家Mesh系统结构1 Mesh网络分层1.1 模型层(Model layer)1.2 基础模型层(Foundation Model layer)1.3 接入层(Access layer)1.4 上层传输层(Upper transport layer)1.5 下层传输层(Lower transport layer)1.6 网络层(Network layer)1.7 承载层(Bearer layer)1.8 BLE内核规范(BLE Co… Mesh系统结构1 Mesh网络分层1.1 模型层(Model layer)1.2 基础模型层(Foundation Model layer)1.3 接入层(Access layer)1.4 上层传输层(Upper transport layer)1.5 下层传输层(Lower transport layer)1.6 网络层(Network layer)1.7 承载层(Bearer layer)1.8 BLE内核规范(BLE Core Specification)2 Mesh概述2.1 网络和子网2.1.1 网络地址用于识别消息来源和目的地。2.1.1.1 未分配地址2.1.1.2 单播地址2.1.1.3 虚拟地址2.1.1.4 组地址2.1.2 网络密钥用于在网络层对消息进行安全认证。2.1.3 应用密钥用于在访问层对消息进行安全认证。2.1.4 一个用于提供网络寿命的IV Index。2.2 设备和节点2.3 添加设备到Mesh网络2.4 通讯保障2.5 支持低功耗3 Mesh架构概念3.1 状态(States)3.2 绑定状态(Bound states)3.3 消息(Messages)3.4 元素(Elements)3.5 地址(Addresses)3.6 模型(Models)3.7 发布-订阅和信息交换(Publish-subscribe and message exchange)3.8 安全(Security)3.8.1 应用与网络安全(Application and network security)3.8.2 模糊化(Obfuscation)3.8.3 网络和应用密钥(Network and application key identifiers)3.8.4 初始向量索引(Initialization vector index)3.9 朋友(Friendship)3.10 功能(Features)3.11 拓扑(Topology)4 Mesh网关5 并发限制和约束1 Mesh网络分层 1.1 模型层(Model layer) 模型层定义了用于规范典型用户场景操作的模型并在蓝牙Mesh模型规范或其他更高层的规范中定义。高层模型规范的例子包括照明和传感器的模型。 1.2 基础模型层(Foundation Model layer) 基础模型层定义了配置和管理mash网络所需的状态、消息和模型。 1.3 接入层(Access layer) 接入层定义了上层应用如何使用上层传输层。它定义了应用程序数据的格式它定义并控制在上层传输层执行的应用程序数据加密和解密并且在将传入的应用数据转发到更高层之前在正确的网络和应用密钥的上下文中检查是否已经接收到传入的应用数据。 1.4 上层传输层(Upper transport layer) 上层传输层对应用数据进行加密、解密和认证旨在提供访问消息的机密性。它还定义了如何使用传输控制消息来管理节点之间的上层传输层包括当Friend特性使用时。 1.5 下层传输层(Lower transport layer) 下层传输层定义了如何将上层传输层消息分段并重新组合成多个下层传输PDU从而将大的上层传输层消息传递给其他节点。它还定义了单个控制消息来管理分段和重组。 1.6 网络层(Network layer) 网络层定义了如何向一个或多个元素寻址传输消息。它定义了允许由承载层传输的PDU网络消息格式。网络层决定是否中继/转发消息接受消息进行进一步处理或者拒绝消息。它还定义了网络消息如何被加密和认证。 1.7 承载层(Bearer layer) 承载层定义了网络消息如何在节点间传输。定义了两个承载者广播承载者和GATT承载者。未来可能会定义额外的承载者。 1.8 BLE内核规范(BLE Core Specification) 蓝牙技术联盟中定义的mesh协议栈
2 Mesh概述 Mesh网络特性 1.使消息能够从一个元素发送到一个或多个元素。 2.允许消息通过其他节点进行中继以扩展通信范围。 3.信息安全抵御包括窃听攻击、中间人攻击、重放攻击、垃圾桶攻击、暴力破解密钥攻击以及其他可能的安全攻击。 4.在当今市场上的现有设备上工作。 5.及时传递消息。 6.当一个或多个设备移动或停止运行时继续工作。 7.具有向前兼容性以支持未来版本的Mesh Profile规范。 mesh网络通过多种方式来防止消息的无限中继。两种主要的方式是消息缓存和存活时间(Time to Live)消息缓存是通过限制缓存的个数存活时间是通过限制中继的次数每次接收到一条消息然后由设备中继(最高可达126倍)TTL值递减1。 2.1 网络和子网 一个网络可以有一个或多个子网便于区域隔离(例如,酒店网络中的独立客房子网)。子网是可以在网络层中互相通讯的一组节点因为他们共享网络密钥。一个节点通过知道一个或多个网络密钥可能属于一个或者多个子网。一个设备可以使用配置模型被添加到一个或者多个子网。 在主NetKey的基础上有一个特殊的子网叫做主子网。主子网上的节点参与IV更新过程并将IV更新传播给其他子网而其他子网上的节点只将IV Index更新传播给这些子网。 网络资源由实现Configuration Client模型的节点管理称为Configuration Client(通常是智能手机或其他移动计算设备)并在配置时使用Configuration Server模型分配给节点。具体来说配置角色(Provisioner)管理地址的分配以确保没有重复的单播地址被分配而Configuration Client生成和分发网络和应用程序密钥并确保需要相互通信的设备为网络和访问层共享适当的密钥。Configuration Client还知道设备密钥用于与每个节点进行安全通信包括分发更新的网络密钥和应用密钥。 一个Mesh网络由共享四个公共资源的节点组成 2.1.1 网络地址用于识别消息来源和目的地。 网络层定义了地址的四种基本类型未分配、单播、虚拟和组。地址占用16位定义如下
2.1.1.1 未分配地址 未分配地址是节点的元素尚未配置或未分配地址时的一种地址未分配地址的值应该是0x0000。例如可以通过将模型的发布地址设置为未分配的地址来禁用模型的消息发布。未分配的地址不得用于消息的源或目的地址字段。 2.1.1.2 单播地址 单播地址是分配给每个元素的唯一地址。单播地址范围0x0001至0x7FFF。单播地址必须用于消息的源地址字段也可以用于消息的目的地址字段。发送到单播地址的消息最多只能由一个元素处理。
2.1.1.3 虚拟地址 虚拟地址表示一组目的地址。单播地址范围0x8000至0xBFFF。每个虚拟地址在逻辑上表示一个Label UUID它是一个128位的值不需要集中管理。一个或多个元素可以被编程来发布或订阅一个Label UUID。虚拟地址的0-13位是hash值该hash值是Label UUID的派生使得每个哈希表示多个Label UUIDs。当Access消息被接收到具有匹配哈希的虚拟地址时上层传输层将每个对应的Label UUID作为作为消息认证的额外一部分数据直到找到匹配。虚拟地址的一个缺点是在配置过程中需要多段消息将Label UUID传输到发布或订阅节点。控制消息不可以使用虚拟地址。
2.1.1.4 组地址 组地址是被编程为零个或多个元素的地址。0xFF00到0xFFFF范围内的组地址保留给固定组地址0xC000到0xFEFF范围内的地址一般可用于其他用途。组地址只能在消息的目的地址字段中使用。发送到组地址的消息应传递给所有订阅该组地址的模型实例。 组地址有两种动态分配的和那些固定的 发送到全代理地址的消息应由启用代理功能的所有节点的主元素处理。 发送到全好友地址的消息应由启用好友功能的所有节点的主元素处理。 发送到全中继地址的消息应由启用中继功能的所有节点的主元素处理。 发送到全节点地址的消息应由所有节点的主元素处理。 2.1.2 网络密钥用于在网络层对消息进行安全认证。 网络密钥( NetKey )使用随机数发生器生成。
2.1.3 应用密钥用于在访问层对消息进行安全认证。 应用密钥( AppKey)使用随机数发生器生成。
2.1.4 一个用于提供网络寿命的IV Index。 IV Index是共享网络资源(即Mesh网络中的所有节点共享相同的IV Index值,并将其用于它们所属的所有子网)的32位值。IV Index从0x00000000开始。如果一个节点在一段时间内不在网状网络中它可以扫描安全网络信标Secure Network beacons或使用IV Index Recovery过程从而自主设置IV Index值。 2.2 设备和节点 不属于mesh网络成员的设备称为未配置设备。作为mesh网络成员的设备称为节点。配置角色用于管理未配置的设备和节点之间的转换。未配置的设备不能发送或接收mesh网络消息但是它可以向配置角色宣传自己的存在。配置角色在认证完毕后会邀请这个未配置设备加入Mesh网络将其转换为节点。通过配置客户端( Configuration Client )的配置节点可以实现在Mesh网络发送或接收消息该客户端也可能是和配置角色是同一个设备。配置客户端可以从mesh网络中移除节点并将其恢复到未配置的设备。 2.3 添加设备到Mesh网络 设备通过一个配置角色添加到一个mesh网络中此时它们成为节点。将设备配置到mesh网络中不同于蓝牙无线技术中通常使用的点对点绑定和配对设备的配置可以使用简单的广播承载或基于GATT的点对点承载。两个承载者均使用单一的配置协议。所有的设备都支持基于广播承载的配置。通过提供基于GATT的承载使得传统电话(也就是说,设备不支持基于广播承载的配置)设备可以成为配置角色。 为了辅助配置多个设备一个设备有一个可以通过配置角色设置的attention timer。当设置为非零值时设备可以使用任何方法来标识自己例如设备可能闪光、发出声音或振动。当attention timer到期时设备停止标识自身。配置角色可以向设备发送一条消息使其标识自己并且设备在给定时间后自动停止标识自己。 2.4 通讯保障 许多现有设备无法在不更新的情况下发布或理解mesh消息。为了使这些设备能够在不需要进行操作系统更新或类似软硬件更新的情况下与Mesh网络中的节点通信该规范允许对所有现有设备使用GATT连接。 2.5 支持低功耗 规范不要求设备在每个连接上协调传输、建立连接或重启安全认证从而有利于低功耗运行。需要支持低功耗的设备可以使Friendship的概念将自己与代表他们存储和中继消息的常开设备关联起来。然而中继消息的设备将在大部分时间内接收消息和转发消息导致产生相对较大功耗。 3 Mesh架构概念 Mesh网络架构使用了几种不同的概念状态、消息、绑定、元素、寻址、模型、发布订阅、Mesh密钥和关联。 3.1 状态(States) 状态是表示元素的一个条件的值。 一个展示状态的元素被称为服务器。例如最简单的服务器是Generic OnOff Server表示它要么开要么关。访问状态的元素被称为客户端。例如最简单的客户端是Generic OnOff Client (一个二进制开关)它可以通过Generic OnOff模型定义的消息控制Generic OnOff Server。 3.2 绑定状态(Bound states) 当一个状态被绑定到另一个状态时一个状态的变化导致另一个状态的变化。绑定状态可能来自一个或多个元素中的不同模型。例如一种常见的绑定类型是介于Level状态和OnOff状态之间将Level改为0将OnOff状态改为Off将Level改为非零值将OnOff状态改为On。 3.3 消息(Messages) 消息由操作码、相关参数和行为组成。操作码可以是单字节(对于需要参数的最大可能负载的特殊消息)、2个字节(对于标准消息)或3个字节(针对供应商特定的消息)。 包括操作码在内的总消息大小由底层传输层决定传输层可以使用分段和重组( Segmentation and ResembleSAR )机制。为了最大限度地提高性能并避免SAR的开销一个设计目标是在单个段中拟合消息。传输层为非分段消息提供最多11个字节使用1个字节操作码时可供参数使用的字节最多为10个使用2个字节操作码时可供参数使用的字节最多为9个使用特定厂商的3个字节操作码时可供参数使用的字节最多为8个。传输层提供了一种能够传输多达32段SAR的机制。使用SAR时的最大消息大小为384个字节。这意味着当使用1字节操作码时参数最多可为379个字节使用2字节操作码时参数最多可为378个字节使用特定于厂商的3字节操作码时参数最多可为377个字节。 3.4 元素(Elements) 元素是节点内的可寻址实体。每个节点至少有一个元素即主元素也可能有一个或多个附加的次元素。元素的数量和结构是静态的在节点(即只要节点是网络的一部分)的整个生命周期内不会发生变化。 主元素使用配置期间分配给节点的第一个单播地址进行寻址每个额外的次要元素使用后续地址进行寻址。这些单播元素地址允许节点识别节点内哪个元素正在发送或接收消息。如果元素的数量和结构发生变化例如由于固件更新节点必须重新设置。当执行固件更新以更改元素的数量或结构时需要移除节点。消息在模型中基于操作码和元素地址进行分发。 3.5 地址(Addresses) 一个地址可以是单播地址、虚拟地址或者群组地址。还有一个特殊的值来表示消息中没有使用的未分配地址。 一个单播地址分配给一个元素并且始终代表一个节点的单个元素。每个mesh网络有32767个单播地址。 虚拟地址是多播地址可以表示一个或多个节点上的多个元素。每个虚拟地址在逻辑上表示一个Label UUID它是一个128位的值不需要集中管理。发送给Label UUID的每条消息都包含用于验证消息的消息完整性校验值中的完整Label UUID。为了减少检查每个已知标签UUID的开销使用标签UUID的哈希。共有16384个哈希值每个哈希值编码一组虚拟地址。虽然一个虚拟地址使用的哈希值只有16384个但是每个哈希值可以代表数百万个可能的Label UUID因此虚拟地址的数量被认为非常庞大。 组地址是多播地址可以表示一个或多个节点上的多个元素。每个mesh网络有16384个组地址。有一组固定的组地址用于根据节点的功能来解决节点的所有主要元素的子集。所有其他组地址称为动态分配组地址。其中固定组地址256个动态分配组地址16128个。 3.6 模型(Models) 应用定义在客户端模型、服务器模型和控制模型中。使用客户端-服务器架构与发布-订阅范式通信来指定一个mesh应用。单个设备可能包含客户端模型、服务器模型和控制模型。 服务器模型一个服务器模型由跨越一个或多个元素的一个或多个状态组成。服务器模型定义了一组它可以发送或接收的强制消息元素在发送和接收此类消息时所需的行为以及消息发送或接收后发生的任何附加行为。 客户端模型客户端模型定义了一组消息(既有强制性又有选择性)客户端用来请求、更改或消费相应的服务器状态如服务器模型所定义的。客户端模型没有状态。 控制模型控制模型可能包含客户端模型与其他服务器模型通信的功能和服务器模型与其他客户端模型通信的功能。一个控制模型也可能包含控制逻辑是协调控制模型所连接的其他模型之间相互作用的一组规则和行为。
3.7 发布-订阅和信息交换(Publish-subscribe and message exchange) mesh网络中数据的发布和订阅被描述为使用发布-订阅范式。生成消息的节点将消息发布到单播地址、组地址或虚拟地址。有兴趣接收消息的节点将订阅这些地址。生成的消息被发送到目标mesh地址这些地址可以是单播、预先配置的组地址或虚拟地址。消息可以作为对其他消息的回复发送也可以是未经请求的消息。当模型的实例发送应答消息时它使用传入消息发起者的源地址作为目的地址。当模型的实例发送未请求的消息时它使用模型发布地址作为目标地址。节点内模型的每个实例具有单一的发布地址。 在接收方节点内模型的每个实例可以订阅一个或多个组地址或虚拟地址。当发送到模型的一个订阅列表上的组地址或虚拟地址的消息到达时由节点进行处理。当消息的目的地址是接收单元的单播地址时或者消息的目的地址是该设备所属的固定组地址时也会对消息进行处理。如果一个节点有多个元素则在每个被寻址的元素上处理一次消息。 尽管节点可能会限制所支持的订阅数量但节点可以在每个模型元素的实例中拥有多个订阅。使用多个订阅地址允许节点响应发布到不同组的消息。例如一盏灯可能会订阅发送给床头灯组、卧室组、楼上组和房子组的消息。每个消息从单个单播地址(一个元素地址)发送并使用唯一的序列号进行排序以方便检测和防御重放攻击。 3.8 安全(Security) 3.8.1 应用与网络安全(Application and network security) 3.8.2 模糊化(Obfuscation) 该网络安全模型使用一种名为模糊化的隐私机制该机制使用AES加密源地址、序列号和其他使用隐私密钥的头信息。模糊化的目的是使跟踪节点更加困难。 3.8.3 网络和应用密钥(Network and application key identifiers) 3.8.4 初始向量索引(Initialization vector index) 3.9 朋友(Friendship) 低功耗节点使用Friendship来限制它们需要侦听的时间量。如果节点不能连续接收则有可能不会接收到需要处理的mesh消息。这包括维护网络安全所需的安全更新以及正常的mesh消息。如果低功耗节点没有收到这样的消息那么它可能无法正常工作也可能无法及时了解网络的最新安全状态如果这种安全状态在不知情的情况下发生了变化它最终会退出网络。 Friendship是低功耗节点与一个邻近的Friend节点之间的一种特殊关系。这些节点必须在彼此的单跳内并且在同一个子网中。Friendship首先由低功耗节点建立并发起一旦建立Friend节点执行一系列有助于降低低功耗节点功耗的操作。 Friend节点为低功耗节点维护一个Friend队列该队列存储所有发送给低功耗节点的消息。当低功耗节点请求时Friend节点将消息发送给低功耗节点。同时Friend节点向低功耗节点提供安全更新。 当一个低功耗节点和一个Friend节点建立友谊时这两个节点被认为是朋友。一个Friend节点可能是多个低功耗节点的朋友。低功耗节点只能与单个Friend节点为好友。 3.10 功能(Features) 节点的功能性由其支持的特征决定。所有节点都具有发送和接收Mesh消息的能力。节点还可以选择支持一个或多个额外的特征 中继功能在广播承载者上接收和转发网状消息的能力以实现更大的网络。 代理功能在GATT和广播承载者之间接收和转发网状消息的能力。 低功耗功能仅与支持Friend功能的节点一起在接收方占空比显著降低的mesh网络中操作。 Friend功能通过存储针对这些节点的消息来帮助支持具有低功耗功能的节点操作。 支持某个功能的节点可能启用或禁用该功能而该功能在启用时可能正在使用也可能不在使用。 支持Relay特性的节点可能会禁用该特性但它仍然会支持Relay特性只是它没有执行该特性所要求的功能。支持Relay特性并启用Relay特性的节点称为Relay节点。 支持Proxy功能的节点可能会禁用该功能但它仍然会支持Proxy功能只是它没有执行该功能所要求的功能。支持Proxy特征并启用Proxy特征的节点称为Proxy节点。 一个支持低功耗特性的节点不能禁用该特性必须与另一个支持Friend特性的节点建立友谊才能使用低功耗特性来减少接收占空比。一个支持低功耗特性且与支持Friend特性的节点有好友关系的节点称为低功耗节点。 支持Friend特性的节点可能会禁用该特性但它仍然会支持Friend特性只是它没有执行该特性所要求的功能。一个支持Friend特性、启用了Friend特性以及与一个支持Low Power特性的节点有好友关系的节点称为Friend节点。 3.11 拓扑(Topology) 支持上述各种特征的节点可以形成mesh网络。
4 Mesh网关 Mesh网关是能够在Mesh网络和非蓝牙技术之间转换消息的节点。节点可以通过Mesh网关发送和接收Mesh消息。 5 并发限制和约束 规范对节点没有并发限制或约束。