BLE Mesh蓝牙组网技术详细解析之Upper Transport Layer上传输层(五)

2024-01-02 12:52:37

目录

一、什么是BLE Mesh?Upper?Transport Layer上传输层?

二、Upper Transport?PDU

2.1 Upper Transport Access PDU

2.2 Upper Transport Control PDU

三、资料获取


一、什么是BLE Mesh?Upper?Transport Layer传输层

上传输层(Upper?Transport Layer)是蓝牙Mesh网络的一部分,它主要负责以下两个方面的功能:

  • 对接入层(Access Layer)进出的应用数据进行加密、解密和认证。这样可以保证数据的安全性和完整性,防止被篡改或伪造。
  • 处理一些特殊的消息,称为“传输控制消息”(Transport Control Messages),包括与“友谊”(Friendship)相关的心跳和消息。这些消息用于实现低功耗节点(Low Power Nodes)和好友节点(Friend Nodes)之间的通信,以节省电池寿命和网络资源。

上传输层(Upper Transport Layer)与底层传输层(Lower Transport Layer)协同工作,实现数据的分段和重组,以适应不同的承载层(Bearer Layer)的要求。

二、Upper Transport?PDU

Upper Transport有两种PDU,分别是Upper Transport Access PDU和Upper Transport Control PDU。Upper Transport Access PDU用于传输来自Access Layer的应用数据,Upper Transport Control PDU用于传输一些特殊的消息,如与Friendship相关的消息和Heartbeat消息。

2.1 Upper Transport Access PDU

Upper Transport Access PDU是Upper Transport Layer发送或接收的一种PDU(协议数据单元),它用于传输来自Access Layer的应用数据。Upper Transport Access PDU由两个字段组成:

  • Encrypted Access Payload:这是对Access Layer的PDU进行加密后的结果,使用Application Key或Device Key进行加密。加密后的Access Payload最大为380字节(如果TransMIC为4字节)或376字节(如果TransMIC为8字节)。
  • TransMIC:这是一个用于检查Access Payload的完整性和安全性的字段,使用Transport Message Integrity Check(TransMIC)算法生成。TransMIC的大小取决于Lower Transport Layer的SEG和SZMIC字段,如果是分段消息,TransMIC可以是4字节或8字节;如果是不分段消息,TransMIC只能是4字节。

Upper Transport Access PDU的结构如下图所示:

Field Name

Octets

Notes

Encrypted Access Payload

1 to 380

加密后的Access Layer?PDU

TransMIC

4 or 8

检查Access Payload的完整性和安全性的字段

2.2 Upper Transport Control PDU

Upper Transport Control PDU是Upper Transport Layer发送或接收的一种PDU(协议数据单元),它用于传输一些特殊的消息,称为“传输控制消息”(Transport Control Messages),包括与“友谊”(Friendship)相关的心跳和消息。这些消息用于实现低功耗节点(Low Power Nodes)和好友节点(Friend Nodes)之间的通信,以节省电池寿命和网络资源。

当CTL位为1时,上层传输PDU包含一条传输控制消息。传输控制消息有一个7位的操作码,它决定参数的格式。该Opcode字段不包含在参数字段中,但包含在下层传输PDU非分段控制消息中或分段控制消息的每一段中。

上层传输控制PDU不需要在上层传输层进行认证,而是依赖于网络层进行的认证。所有上层传输控制PDU都使用64位NetMIC。

Upper Transport Control PDU由Opcode和Parameters两个字段组成,Opcode用于标识传输控制消息的类型,Parameters用于存储传输控制消息的参数。

Value

Opcode

Notes

0x00

-

Reserved for lower transport layer

0x01

Friend Poll

LPN向Friend请求Friend存储的消息

0x02

Friend Update

Friend通知LPN安全更新和消息

0x03

Friend Request

LPN向所有Friend请求建立Friendship

0x04

Friend Offer

Friend收到LPN的请求后发出邀请

0x05

Friend Clear

Friend与LPN建立Friendship后,通知LPN之前的Friend移除Friendship

0x06

Friend Clear Confirm

Old Friend收到Clear消息响应给New Friend

0x07

Friend Subscription List Add

通知Friend添加某个LPN的订阅地址

0x08

Friend Subscription List Remove

通知Friend移除某个LPN的订阅地址

0x09

Friend Subscription List Confirm

Friend响应订阅地址操作已完成

0x0A

Heartbeat

节点发送心跳消息

0x0B–0x7F

RFU

预留为将来使用

三、资料获取


通过点击以下链接,您可以获取BLE Mesh模块原理图、源代码以及开发资料。链接地址将为您提供详细的文件资料,以供您进行参考和使用。

如果您在使用过程中遇到任何问题或疑虑,欢迎加我QQ ,一起探讨技术问题,我的QQ号是986571840,加的时候请注明CSDN。

BLE Mesh蓝牙组网模块 - 硬创社 (jlc.com)icon-default.png?t=N7T8https://x.jlc.com/platform/detail/001d23cba7b64b0d9df5b9b69720fadb

感谢各位用户点赞、分享、在看,这些行为让知识得以更加广泛地传播,从而让更多人受益。

请在转载作品时注明出处,严禁抄袭行为。

文章来源:https://blog.csdn.net/LONGSHEN1/article/details/135327386
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。