日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BLE Mesh(2)—— 基本术语及含义

發布時間:2025/4/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BLE Mesh(2)—— 基本术语及含义 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1、節點(node)

2、開通配置(provisioning)

3、元素(element)

4、消息(message)

5、地址(Address)

6、消息的發布/訂閱(Publish / Subscribe)

7、狀態與屬性(State / Property)

7.1、狀態

7.1.1 狀態的綁定

7.2、屬性

8、特性

8.1、中繼(Relay)

8.2、低功耗 & 友節點(Low Power & Friend)

8.3、代理節點(Proxy)

9、安全

在深入了解 mesh 機制原理之前,很有必要先了解和認識他的大致結構以及常用的術語和他們之間的關系,這樣能夠首先從整體上有一個大致的認識(組成的部分),站在這個基礎之上,在后面再進行細致的分析;

1、節點(node)
mesh 是基于 BLE 的星形網狀拓撲結構,Spec 中,將處于網狀結構的每一個 BLE 設備稱之為節點(node),數據在節點之間進行傳遞。

2、開通配置(provisioning)
設備在正式成為 mesh 網絡節點之前,只能被稱之為一個“未開通配置設備”(unprovisioned devices),也就是說,這種未開通配置的設備并沒有辦法與一個已知的 mesh 網絡中的節點進行數據交互。想要成為某個 mesh 網絡的節點,需要有一個流程叫“開通配置”,即,將某個“未開通配置設備”轉化為網絡節點的過程成為“開通配置”(provisioning),比如,你購買了一個帶有 mesh 功能的燈,你希望他能夠加入到你家里現有的 mesh 網絡中,并能夠通過 mesh 網絡來控制他,那么首先需要為其開通配置,并入這個 mesh 網絡。

開通配置的過程稍微繁瑣,在以后的章節會詳細介紹

3、元素(element)
節點并非 mesh 網絡中的最小單元,在一個 node 中,可以包含多個元素(element),每個元素都有唯一確定的地址,叫做單播地址(unicast address),每個單元都可以獨立尋址,以便進行單獨的控制。

打個比方:一個 BLE mesh 燈節點 X,這個節點包含了 3 盞燈 A/B/C,這個 X-A、X-B、X-C 我們稱之為這個 X 節點的元素(element),每個元素會分配獨立的地址;

元素的定義有什么好處呢?比如上面那個燈的場景,一組燈,三個燈泡,沒有必要用三個 BLE 產品吧?一個 BLE 產品搞定一組情況!

4、消息(message)
節點與節點之間的數據傳輸,我們稱之為 message,在規范中定義了多種消息的類型,每種消息都有自己唯一的操作碼來進行區分,這里不做具體描述,后面描述細節的時候,在詳細分析。

消息交互中,分為兩類:

1、需要應答的(ACK)

2、不需要應答的(No ACK)

1、需要應答的消息類型,需要對方在收到消息后,回復一條響應信息。主要作用是:

1-1、通知對端,消息已經被成功收到

1-2、給對端回復一些數據

需要應答的消息如果沒有收到期望的回答,則其可能被發送多次;

2、不需要應答的消息,則不期望收到對端的回復

5、地址(Address)
既然 mesh 中存在多個 BLE 節點,節點中又包含了不同的元素,那么消息在傳輸的時候,就需要指定接收消息的具體的那個最小單位,即元素。

在 mesh 網絡,為每一個存在于其中的元素分配了唯一確定的地址,讓其能夠被尋址,稱之為單播地址;

mesh 也支持群組地址,這是一種多播地址,它可以代表一個或多個元素。 群組地址要么是動態分配的,要么是藍牙技術聯盟預先定義的(SIG固定群組地址)。藍牙技術聯盟已經定 義了4個固定群組地址,即 All-proxies, All-friends, All-relays 及 All-nodes。在后續章節中我們會詳細解釋什么是 Proxy(代理), Friend(朋友)及 Relay(中繼) 。

mesh 支持虛擬地址可以賦給一個或多個元素,橫跨一個或多個 節點。虛擬地址與128位UUID的形式類似,任何元素都可以與其相關聯,它更像一個標簽。虛擬地址可以在出廠前就進行預先配置,然后用于某 些特定場景,例如使某個廠商制作的投影儀的尋址更加方便。

打個比方,一個 BLE mesh 網絡中,有一組燈(2個燈泡單獨控制),一個門,一個蜂鳴器,所以一共有 4 個元素,他們分別會有單播地址,門和蜂鳴器可以被分成為一組,當門開了,蜂鳴器就響;

6、消息的發布/訂閱(Publish / Subscribe)
在藍牙 mesh中,消息的發送成為發布(Publish),將 mesh 節點中配置成為可以接收特定消息的過程,稱之為訂閱(Subscribe);

如圖所示,可以看到,Switch 1 可以發布消息到 Kitchen 組,而 L1/L2 都訂閱了 Kitchen 組,所以可以接收來自 Kitchen 的消息,換句話說,Switch 1 可以控制 L1/L2 的開關;

7、狀態與屬性(State / Property)
7.1、狀態
狀態代表了一個元素當前處于的情況,打個比方,一個燈,可能處于開,也可能處于關,這兩者就稱之為 State;

狀態是可以發生變化的,狀態的變化可能是瞬間,也可能是一個過程時間,如果是一個過程時間,那么稱之為轉換時間;

7.1.1 狀態的綁定
如果一個狀態的變化引起了另一個狀態的變化,那么稱之為狀態綁定,比如調整燈光的強度,調整到最低時刻,就關掉燈;

7.2、屬性
屬性的代表了具體含義的數據,比如一個溫度傳感器元素來的數據,那么到底是室外溫度還是室內溫度,這就是他的屬性

8、特性
mesh 網絡中,所有的節點都可以收發數據,但并不是每個節點的特性都一樣,mesh 根據場景,為節點增加了特性的描述,一共有 4 種特性:

1、中繼(Relay)

2、代理(Proxy)

3、友(Friend)

4、低功耗(Low Power)

當然,并不是所有的節點都支持上述的特性,也可以不支持上述 4 種,僅僅作為一個普通節點即可。當然,也可以同時支持上述特性的幾個組合,同時擁有多種功能;

8.1、中繼(Relay)
顧名思義,擁有中繼特性的節點,能夠將收到的消息再次發送出去,消息可以多次跳躍到其他的節點,以覆蓋整個 mesh 網絡。但是消息并不是無限制的跳躍,消息跳躍的次數,是受到一個稱之為 TTL(Time To Live) 的字段進行控制,他指定了消息在 mesh 網絡中的跳躍次數,每次被中繼一次,TTL 減一,當 TTL 為 0 的時候,停止中繼;

中繼特性能夠使得 mesh 網絡擴張得很大,覆蓋的范圍更廣;

8.2、低功耗 & 友節點(Low Power & Friend)
為何要將他們一起說呢,因為他們之間是一起出現的。

在 mesh 網絡中,有的節點對功耗敏感(可能安裝的是電池),有的節點可能對功耗不敏感(插電),那么就有一種方案是:低功耗的節點盡量的去睡眠,以節約功耗,隔一段時間醒來收取消息;那么它睡眠期間的消息需要被另一個一直處于活躍的節點緩存,等待低功耗節點來翻牌子,并把他要的數據吐給他;

mesh 網絡中,將上述情況定義為,長期處于休眠并偶爾喚醒接收數據并交互的節點為“低功耗”節點(Low Power Node);存儲低功耗節點消息,并在低功耗節點醒來時刻將消息發送給低功耗節點的那個節點為 “友” 節點(Friend Node);他們之間的關系成為“友誼”(Friendship)

所以,友節點,是為了低功耗節點的存在而存在的;

8.3、代理節點(Proxy)
那么還有一種情況,有一個現有的 mesh 網絡,還有一個不支持 mesh 的手機,這個手機也想加入 mesh 的這個網絡搞事情,那咋辦?明顯是不行的,因為這個手機不支持 mesh,所以他不明白這個網絡里面到底在搞啥事情。

針對這種情況,藍牙組織定義了一個叫做 Proxy 特性的節點,這個 Proxy 節點的特性是,支持傳統的 BLE 藍牙協議棧(GATT 規范)的同時,也支持 mesh 協議棧,那么就可以讓這個不支持 mesh 特性的手機,通過 GATT 與 Proxy 交互,而這個 Proxy 節點又將手機的意圖翻譯為 mesh 網絡懂得起的含義,在網絡中存活,那不就相當于這個手機加入了這個 mesh 網絡嗎?所以這個 Proxy 節點就做了這個事兒:允許沒有集成藍牙 mesh 協議棧的 BLE 設備與 mesh 網絡中的任何節點進行通信。

9、安全
在傳統的 BLE 機制中,運行啟用加密,也允許不加密,進行數據的傳輸。在 mesh 網絡中,網絡加密具有強制性,即不管是網絡還是單個應用的數據,都需要加密;

所有的mesh消息都要經過加密和認證

網絡安全性,應用安全性,設備安全性相互獨立

在mesh網絡中,我們可以通過密鑰刷新程序來更新 節點的安全密鑰

消息模糊化可以讓外界難以追蹤網絡內所發送的消 息,進而提供了一種隱私保護機制,難以讓外界跟 蹤節點的活動

設備添加到mesh網絡從而成為節點的過程本身就是 是一個安全的過程。也就是前面提到的,開通配置 過程

節點可以從網絡中安全地移除,這樣可以防止垃圾 桶攻擊(trash can attack)

藍牙mesh網絡安全性的核心是三種安全密鑰。分別使用這些密鑰對網絡中的不同部分進行加密

我們舉一個例子。有一個已經加入藍牙mesh網絡的燈。它可以當作一個中繼節點來中繼消息。它可以中繼門窗安全系統的消息,但是它不能理解消息的具體含義,僅僅對消息進行中繼。照明系統和門窗安全系統相當于兩個不同的子系統,它們使用不同的密鑰進行加密, 這樣整個網絡的安全性就得到了提升;

藍牙mesh網絡里的每個節點都有一個相同的網絡密鑰 (NetKey)。正是這個密鑰才使得節點成為這個網絡的一員。 網絡加密key與隱私key都是由這個網絡密鑰生成的。節點可以利用NetKey來加密和認證網絡層,這樣諸如中繼之類的網絡功能就可以執行了。但是NetKey不能加密應用數據。

藍牙mesh網絡可以分成幾個子網絡,每個子網絡都有 其單獨的NetKey,這個NetKey只有當前子網絡成員節點才 有,其它節點沒有。

只有擁有應用密鑰(AppKey)的節點 才能解密相應 的應用數據。在一個mesh網絡中,可以有許多不同的 AppKey,每個AppKey 對應一種特定的應用(照明應用, ?熱力應用,門窗安全系統應用等)。例如,燈和開關擁有 燈應用的 AppKey,但是沒有熱力系統的AppKey,只有網 絡中的溫度調節裝置才擁有熱力系統的 AppKey。

最后一種密鑰是設備密鑰(DevKey)。這是一種特殊的應用密鑰。每個節點都有一個獨一無二的設備密鑰,這個 密鑰只有啟動配置設備(如手機)知道。設備密鑰可以用 在開通配置過程,以確保啟動配置設備與節點之間的安全通訊
————————————————
版權聲明:本文為CSDN博主「愛洋蔥」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhoutaopower/article/details/101422119

總結

以上是生活随笔為你收集整理的BLE Mesh(2)—— 基本术语及含义的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。