Ble Mesh技术(九)之Friendship

本文详细阐述了LPN(Low Power Node)与Friend节点在无线网络中的交互流程,包括Friendship建立、通信配置及安全机制。通过控制PDU如FriendRequest、FriendPoll等消息的交互,实现LPN节能的同时保证数据的可靠传输。

Friend直接流程建立都是通过上层传输曾的控制PDU进行交互。控制消息大部分都为不分段消息,所以这一章我们以下层传输层的为分段消息作为PDU格式的总体示意图。
unsegcontrol

1. Friendship相关Control PDU

1.1. Friend Poll

由LPN发起,请求Friend发送LPN睡眠期间为LPN存储的消息。
Opcode=0x01,对应的Parameters如下所示:
poll

Field Size(bits) Notes
Padding 7 0b0000000,固定值
FSN 1 Friend Sequence Number

TTL域设置为0。
消息使用friendship security credentials加密。

1.2. Friend Update

Friend通知LPN安全参数已经改变,或者当前消息队列为空。
Opcode=0x02,对应的Parameters如下所示:
update

Field Size(octets) Notes
Flags 1 第0个bit表示当前的Key Refresh阶段
第1个bit表示当前的IV Update状态
第2-7位RFU
IV Index 4 Friend节点当前的IV Index
MD 1 MD=0:表明Friend Queue为空
MD=1:表明Friend Queue非空

在这里插入图片描述

Field Notes
Key Refresh Flag 0:未处于阶段2
1:处于阶段2
IV Update Flag 0:未处于IV更新状态
1:处于IV更新状态中

TTL域设置为0。
消息使用friendship security credentials加密。

1.3. Friend Request

LPN发起,向所有Friend节点广播,希望与一个Friend建立Friendship。
Opcode=0x03,对应的Parameters如下所示:
request

Field Size(octets) Notes
Criteria 1 表明要与本LPN建立Friendship,Friend应该具有的最低要求
ReceiveDelay 1 LPN端要求的ReceiveDelay
0x00-0x09:Prohibited
0x0A-0xFF:Receive Delay,单位1ms
PollTimeout 3 LPN端设置的初始PollTimeout Timer值
0x000000-0x000009:Prohibited
0x00000A-0x34BBFF:PollTimerout,单位100ms
0x34BC00-0xFFFFFF:Prohibited
PreviousAddress 2 友尽前的前朋友地址
NumElement 1 当前LPN节点的元素数量,通过该值和首元素地址可以计算出该LPN的非首元素的地址,从而保证能够缓存非首元素模型的消息。
0x00:Prohibited
0x01-0xFF:元素个数
LPNCounter 2 Request命令发送次数的计数

在这里插入图片描述

Field Size(bits) Notes
RFU 1 Reserved for Future Use
RSSIFactor 2 RSSI计算精度
0b00:1
0b01:1.5
0b10:2
0b11:2.5
ReceiveWindowFactor 2 ReceiveWindow计算精度
0b00:1
0b01:1.5
0b10:2
0b11:2.5
MinQueueSizeLog 3 Friend队列能存储消息数量的最小值
0b000:Prohibited
0b001:2
0b010:4
0b011:8
0b100:16
0b101:32
0b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值