蓝牙Mesh基础(6)Lower Transport(下层传输层)

下层传输层

功能

  • 分段----当上层传输层的PDU长度超过限制后就需要将PDU分段下发到网络层。协议中规定:Upper Transport Access PDU (access消息)超过12 byte时便分段;Upper Transport Control PDU(控制消息)超过8 byte时便分段
  • 重组----和分段相对,重组是收到来自网络层上传的分段消息时,将分段的消息进行重组,之后上传给上层传输层
  • Friend Queue----朋友队列,网络中发送给LPN节点的消息暂存在这里,当LPN醒来并索要消息是时发送给LPN
    字节续:大端

Lower Transport PDU

PDU中最高位为SEG,用于标识是不是分段消息(0-不分段;1-分段)。来自上层传输层的消息有两种,access消息和控制消息,根据每种消息是否分段可以划分成4中PDU类型:①Unsegmented Access Message;②Segmented Access Message;③Unsegmented Control Message;④Segmented Control Message

  • Unsegmented Access Message
    PDUj结构如下图所示:
    蓝牙Mesh基础(6)Lower Transport(下层传输层)
    PDU共有四个字段,每个字段的大小和解释如下表所示:
    蓝牙Mesh基础(6)Lower Transport(下层传输层)
    AKF和AID由上层传输层根据加密access消息的appkey或者devicekey设置

  • Segmented Access Message
    PDU结构如下图所示:
    蓝牙Mesh基础(6)Lower Transport(下层传输层)
    共有8个字段,每个字段的大小和解释如表所示:
    蓝牙Mesh基础(6)Lower Transport(下层传输层)

  • Unsegmented Control Message
    PDU结构如下图所示:
    蓝牙Mesh基础(6)Lower Transport(下层传输层)
    共有3个字段,每个字段的大小和解释如下表所示:
    蓝牙Mesh基础(6)Lower Transport(下层传输层)
    Opcode----操作码,model开发的时候也会用到,这里用于标识不同的控制消息,每种控制消息都有唯一的一个操作码。协议中定义的控制消息操作码主要是用于fiendship建立管理和heartbeat的。如下图所示(摘自协议73页):
    蓝牙Mesh基础(6)Lower Transport(下层传输层)
    蓝牙Mesh基础(6)Lower Transport(下层传输层)

  • Segmented Control Message
    PDU结构如下图所示:
    蓝牙Mesh基础(6)Lower Transport(下层传输层)
    共有7个字段,每个字段的大小和解释如下表所示:
    蓝牙Mesh基础(6)Lower Transport(下层传输层)