sig_mesh 中关于IV index 更新详细理解说明

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 进行相互间的数据交互。

sig_mesh 中关于IV index 更新详细理解说明_第1张图片

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

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

sig_mesh 中关于IV index 更新详细理解说明_第2张图片

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

sig_mesh 中关于IV index 更新详细理解说明_第3张图片

  其中 flag 包含了IV Update Flag

sig_mesh 中关于IV index 更新详细理解说明_第4张图片

 

1、节点主动更新IV Index

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

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

sig_mesh 中关于IV index 更新详细理解说明_第5张图片

 

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

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

 

sig_mesh 中关于IV index 更新详细理解说明_第6张图片

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

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

 

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

sig_mesh 中关于IV index 更新详细理解说明_第7张图片

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

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

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

 

3、IV Index Recovery procedure

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

img

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

 

 

 

你可能感兴趣的:(telink,mesh,学习笔记,mesh,iv,index,ble)