iv index 更新过程说明文档

手动画了一个 A节点 更新 B节点的IV index的过程:

1、A节点更新,发送sec beacon 给B节点,B节点接收后更新

2、始终保持 在更新完成之前采用 old iv index 进行TX通信。 采用上一次iv index 和当前的iv index 进行接收。保证数据在整个更新过程中始终能够交互。

3、无论设备在何种状态,TX 和RX 都可以使用 iv index 进行相互间的数据交互。

IV 索引是一个 32 位值,它是共享网络资源,网络中的所有节点共享 IV 索引的相同值,并将其用于它们所属的所有子网。 IV 索引从 0x0000000 开始,并在 IV 更新过程中递增,每个Network PDU中包含了IV Inedx的最低位,如果主子网上的设备在主子网上收到更新,则应将 IV 更新传播到所有其他子网。

  • IV Index 通过 Secure Network beacons 进行共享并指示是否需要更新。

  关于IV Index 最重要的便是IV update 了,IV Index 通过 Secure Network beacons 进行共享并指示是否需要更新:

  其中 flag 包含了IV Update Flag

1、节点主动更新IV Index

IV 索引为应用程序和网络层中用于身份验证加密 (AES-CCM) 的 nonce 提供熵。因此,必须经常更改它,以避免在 nonce 中重复使用序列号。IV 更新过程由作为主子网成员的任何节点启动。当节点认为它有耗尽其序列号的风险,或者它确定另一个节点接近耗尽其序列号时,可能会这样做。节点更改其 IV 索引,并向网格中的其他节点发送 IV 索引正在更新的指示。

针对天猫精灵mesh就明确的规定:

例如,如果 IV 索引在从"正常操作"状态转换到"正在进行的 IV 更新"状态之前为 0x00101847, 转换后,IV更新标志为1,当前IV索引为0x00101848,节点应使用IV索引0x00101847传输,接受使用IV索引0x00101847接收的消息时,网络层中的IVI字段设置为1和0x00101848时,网络层中的IVI字段为设置为 0。这允许使用旧 IV 索引处于"正常操作"状态的所有节点向此节点发送消息,并且此节点向尚未转换的节点发送消息。

  具体 IV Update Flag 与使用哪个IV Index的关系:

在"正在进行"状态的 IV 更新运行至少 96 小时后,节点应切换回 IV 正常操作状态,并且不更改 IV 索引。在转换点,节点应重置序列号为 0x000000。

例如,当转换回正常操作状态时, IV更新标志为0,当前IV索引为0x00101848,节点使用IV索引0x00101848传输,接受使用IV Index 0x00101847接收的消息,当网络层中的IVI字段设置为1和0x00101848时,网络层中的IVI字段设置为0。这允许节点向网络中的所有节点发送消息,无论它们也处于"正常操作"状态还是处于"正在进行的 IV 更新"状态。它还允许节点接收来自处于"正常操作"状态或"正在进行中的 IV 更新"状态的所有节点的消息。

2、入网过程中直接更新, 配网下发入网数据进行处理.

将节点添加到网络时,节点将被授予 IV 索引:

1、如果当网络处于正常运行状态时,该节点被添加到网络中,则该节点应在"正常"操作中至少运行 96 小时。

2、如果当网络处于"正在进行"状态的 IV 更新状态时将节点添加到网络中,则应为该节点提供新的 IV 索引值,并在"正常"操作中至少运行 96 小时

3、IV Index Recovery procedure

天猫精灵针对低功耗节点错过iv index 更新过程 ,需要采用恢复过程。

节点应支持 IV 索引恢复过程,因为长时间远离网络的节点可能会错过 IV 更新过程,在这种情况下,它无法再与其他节点通信。为了恢复 IV index ,节点必须侦听包含网络 ID 和当前 IV 索引的安全网络信标。当接收并成功验证其 IV 索引高于当前已知 IV index 的值 1 或更高的主子网的安全网络信标时,节点应从此安全网络信标中的值设置其当前 IV 索引及其当前 IV 更新过程状态。此过程忽略 96小时持续时间的限制

ble_mesh学习笔记(8) 关于IV index 更新详细理解相关推荐

  1. C++学习笔记目录链接(持续更新中)

    学习目标: C++学习笔记目录链接(持续更新中,未完待续) 学习内容: 序号 链接 0 C++ 常见bug记录(持续记录中) 1 C++学习笔记1[数据类型] 2 C++学习笔记2[表达式与语句] 3 ...

  2. MySQL 8——学习笔记03(插入、更新、删除 数据 [DML语句]、查询数据 [DQL语句])

    MySQL 8--学习笔记03(插入.更新.删除 数据 [DML语句]) 一.插入数据 1.1 插入所有字段.插入部分字段 1.2 同时插入多条记录(批量插入) 1.3 将查询结果插入到表中 二.更新 ...

  3. nrf52832 学习笔记(七)蓝牙协议层级理解

    nrf52832 学习笔记(七)蓝牙协议层级理解 本文主要由一下几篇文档摘录汇总而成 ,如有错误欢迎斧正 da14531 蓝牙协议文档 深入浅出低功耗蓝牙(BLE)协议栈 低功耗蓝牙ATT/GATT/ ...

  4. 深入理解Java虚拟机(第3版)学习笔记——JAVA内存区域(超详细)

    深入理解Java虚拟机(第3版)学习笔记--JAVA内存区域(超详细) 运行时数据区域 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 直接内存 对象的创建 对象的内存布局 ...

  5. 学习笔记之——Python中类和对象的理解

    学习笔记之--Python中类和对象的理解 面向对象的含义和特性 类 Python中类的定义.结构.创建 Python类的定义 Python类的结构 类的创建 类的属性 类的方法 对象 对象的创建 参 ...

  6. 小猫爪:i.MX RT1050学习笔记23-FreeRTOS移植之宇宙最详细

    小猫爪:i.MX RT1050学习笔记23-FreeRTOS移植之宇宙最详细 1 前言 2 准备 2.1 下载FreeRTOS源代码 2.2 准备一个RT1050的普通工程 3 移植 3.1 添加文件 ...

  7. STM32WU55蓝牙开发学习笔记(2)-协议栈更新

    STM32WU55蓝牙开发学习笔记(2) 前言 今天就稍微写一下wb55芯片协议栈的烧录吧,刚好手上新焊了一块板子.新买来的芯片都是空片,会内置一个比较老版本的FUS,并且没有协议栈,所以需要自己跟新 ...

  8. matlab中tunx_f是什么意思,MATLAB学习笔记(四)【更新ing】

    斑码教育web前端课程笔记-第十四天-CSS 斑码教育web前端课程笔记-第十四天-CSS 一.复习 定位:position static 默认值 没有定位在文档流 relative:相对定位 自己原 ...

  9. Java学习笔记整理-知识梳理+JDK1.8详细文档

    链接:java开发手册 提取码:kes8 链接:JDK1.8详细文档 提取码:n9zo JavaSE 面向对象编程(Object-oriented programming) 封装 类(class) 类 ...

  10. Python3 爬虫学习笔记 C18【爬虫框架 pyspider — 深入理解】

    Python3 爬虫学习笔记第十八章 -- [爬虫框架 pyspider - 深入理解] 文章目录 [18.1]启动参数 [18.2]运行单个组件 [18.2.1]运行 Scheduler [18.2 ...

最新文章

  1. 从 OSS 装载数据到 PostgreSQL
  2. 【开源项目】保存YUV420数据到本地
  3. 基于Matlab的跨孔电磁波\跨孔雷达的直射线追踪(一)
  4. 【转载】Scarbee Pre-Bass 贝司的使用教程
  5. SQLAlchemy Transactions
  6. file_put_contents记录的日志内容丢失
  7. 三星智能共享计算机软件,Samsung Smart View
  8. spotify电脑下载歌曲_Spotify教程
  9. 资源共享(不限领域,持续更新)
  10. springboot集成webservice接口
  11. 网络-单播、多播(组播)和广播的区别
  12. 视频会议十大开源项目排行
  13. win10商店的应用下载移植 注:.appx文件最好在win10使用 附win10商店UWP的安装包
  14. Failure recovering jobs: Lock wait timeout exceeded; try restarting transaction
  15. 基于RTEMS的阿波罗STM32F429开发板(正点原子)适配
  16. import java.sql.*;问题:The package java.sql is not accessible
  17. 细菌完成图+比较基因组分析添好文
  18. 路由器重温——ISIS路由-2
  19. ssl证书是什么,ssl证书有什么作用
  20. 东芝硬盘无法打开加密程序

热门文章

  1. 制作双系统U盘启动盘【Ventoy】
  2. cesium模型爆炸案例
  3. 深度学习中的注意力机制
  4. 斯伦贝谢宣布2020年第三季度业绩
  5. Windows7不停弹出计算机界面,拨号连接自动弹出,教您如何解决电脑总是自动弹出...
  6. 分享一些网站有免费的pdf书籍
  7. 【HDU 4699】Editor【栈】
  8. Q4实现盈利,搜狐迎来“疫”外春天?
  9. html5 监控,基于 HTML5 的 WebGL 3D 智能楼宇监控系统
  10. 计算机安全模式怎么消除计,win10如何解除安全模式,教您如何解除电脑安全模式...