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

1. Friendship相关Control PDU
1.1. Friend Poll
由LPN发起,请求Friend发送LPN睡眠期间为LPN存储的消息。
Opcode=0x01,对应的Parameters如下所示:

| 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如下所示:

| 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如下所示:

| 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 |

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

被折叠的 条评论
为什么被折叠?



