地址
- 单播地址(unicast address)
最大32767(0x7FFF),有Provisioner在配对的时候分配 - 虚拟地址(virtual address)
代表一系列目标地址,16bit的值, 范围0x8000~0xBFFF
虚拟地址的意思:
Label UUID是128bit的,一个或多个elements可以订阅该UUID,达到接收消息的目的,对该UUID做hash,即为虚拟地址。 -
组地址(Group address)
这个很好理解了。组地址的一些定义如下:
image.png
Network PDU
结构如下:
image.png
- IV Index
IV Index提供一个在应用层和网络层,用于临时加密认证的信息熵。它必须经常改变以避免相同的SEQ。 - NID
加密后的NetKey - CTL
控制位,决定该信息是一条控制信息还是一条可使用信息。 - TTL
是否继续转发 - SEQ
24bit,这让节点可以传送多达0xFFFFFF条不重复的信息。每生成新的Network PDUs,Sequence number都会增加。 - SRC和DST
起点地址和终点地址,起点地址只能是单播地址,终点可以是任何地址。 - TransportPDU
数据段,最大128bits - NetMIC
验证DST和TransportPDU未发生丢包,而导致其改变。
流程:
几个关键的点,检查NID里的NetKey是否相同,检查SRC和DST地址。
image.png
底层上,消息是可以分段和重组的。
有一个有意思的地方,在消息分段和重组机制里,利用了Segment offset number和last Segment number。
网友评论