Mesh(二)----Networking

地址

  • 单播地址(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。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容