Ble - mesh淺析(未完善)

Mesh OverView

先從一張拓撲結構圖說起
在這裏插入圖片描述

  1. 數據傳遞有兩種方式ADV 和GATT, 屬於bear layer
  2. 低功耗模式
    低功耗節點跟友元節點成對出現
    low power node:主動向friend node 發生msg reuqest
    friend node: 存儲和轉發mesh 網絡中的到low power node的信息
  3. relay node 通過adv,向周圍設備轉發mesh msg

上述是mesh 初印象,深層次的思考

將一個設備增加到mesh網絡中?

https://editor.csdn.net/md/?articleId=104375184
類比ble smp 過程
不支持oob ,input oob,output oob,static oob,四種情況。
ConfirmationProvisioner AES-CMAC產生(key=ConfirmationKey, Random || AuthValue)
ConfirmationKey = k1(ECDHSecret, ConfirmationSalt, “prck”)
ConfirmationSalt = s1(ConfirmationInputs)

ProvisioningSalt = s1(ConfirmationSalt || RandomProvisioner || RandomDevice)
SessionKey = k1(ECDHSecret, ProvisioningSalt, “prsk”)

僅使用一次的session key:
SessionNonce = k1(ECDHSecret, ProvisioningSalt, “prsn”)

分發過程中,provisioning data 使用如下算法加密:
Provisioning Data = Network Key || Key Index || Flags || IV Index || Unicast Address Encrypted Provisioning Data, Provisioning Data MIC = AES-CCM (SessionKey, SessionNonce,Provisioning Data)

代理節點工作流程

https://editor.csdn.net/md/?articleId=104406107
通過GATT交互,涉及三個角色,將信息轉發給不支持GATT的mesh 節點。

proxy client:保存有需要傳遞service 信息,通過gatt write方式,配置sever
proxy server:同時支持gatt 和adv,通過GATT 從proxy 獲取信息,再將信息轉給 mesh 網絡中的其他節點
mesh node:接收 adv mesh msg node

如果發送超長Proxy PDU

通過GATT發送,所有長度受限於ATT_MTU
SAR+TYPE+DATA
SAR :01 10 11
TPYE :network,mesh becon,proxy config,provision

如何配置過濾條件,過濾不感興趣的ADV

白名單:
僅僅接受目的地地址destination addresses ,在白名單中的設備
黑名單:
除了黑名單以內的所有設備,其他destination addresses 的所有設備都會接受
client 配置 server

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章