成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為物聯網不斷前行的藍牙Mesh

企業動態
從本質上來講,藍牙Mesh技術并非無線通信技術,而是一種網絡(組網)的技術,用于構建“多對多通信連接”的網絡。從最新的組網構架(Mesh組網)中,讓我們逐漸地看清了藍牙技術聯盟對物聯網通信的預想,以及對邊緣網絡的理解。

從本質上來講,藍牙Mesh技術并非無線通信技術,而是一種網絡(組網)的技術,用于構建“多對多通信連接”的網絡。

縱觀藍牙技術的發展旅程,SIG不斷地追求著無線連接的性能:傳輸速率(EDR-Enhanced Data Rate、AMP)、低功耗(Sniff Subrating、BLE)、網絡接入(6LoWPAN、Mesh)和安全配對(SSP),以滿足各種應用對近距離通信的需求。

原本,SIG主要是聚焦于“以人為中心的邊緣網絡”進行技術創新,而如今,藍牙適用的范圍已經逐漸拓展到所有物聯網邊緣場景:“藍牙增強速率技術(BR / EDR)”的應用從無線耳機發展到鼠標鍵盤;“藍牙低功耗技術”應用于手表、手環,發掘了可穿戴市場;而“藍牙Mesh組網技術”則瞄準了整個(邊緣域)物聯網市場,包括消費領域和工業領域。

從最新的組網構架(Mesh組網)中,讓我們逐漸地看清了藍牙技術聯盟對物聯網通信的預想,以及對邊緣網絡的理解。

一、為物聯網不斷前行的藍牙Mesh

為了開發和應用的方便,藍牙技術聯盟在藍牙Mesh中加入了“情景(Scene)”這一概念,可以將網絡中的一部分節點、元素、狀態、操作行為“捆綁”在一起,形成“物”的聯動機制,使得應用的內涵豐富多姿,且易于開發和理解。

通過攜帶特殊的16位情景序號,一個觸發節點可以通過發布一個消息,就實現一組節點設備改變各自運行狀態,形成物與物內在關聯的場景。開發人員可以利用豐富的情景預設,向用戶交付最佳的應用體驗。

在安全方面,藍牙技術聯盟從應用到網絡,設計、部署了多層次的防護措施。

  1. 在藍牙Mesh技術中,引入各類秘鑰:Netkey、AppKey、DevKey,以對應用、網絡、節點進行全面的認證。并且,網絡中的啟動配置設備(配網節點-Provisioner:負責其它所有節點入網的認證和密鑰分配)可以配置黑名單,并控制全網更改秘鑰(秘鑰刷新程序),將嫌疑節點踢出藍牙Mesh網絡;
  2. 通過NetKey派生的隱私Key,可以模糊化藍牙網絡PDU報頭,以防止定向的竊聽和追蹤;
  3. 通過在網絡PDU中引入序列號(Sequence Number)和IV索引(IV Index),避免“重放攻擊”,欺騙節點作出未授權的處理和響應。

縱觀藍牙Mesh技術,它轉變了傳統藍牙以“人”為中心的網絡特性(集中化網絡),而轉向“多點對多點”的網絡架構,以滿足“物”的連接需求為協議開發的宗旨。

在局部空間中,從應用到網絡連接,設計了一整套基礎網絡構建的規范和標準,簡化開發和運營的難度。它兼容低功耗藍牙技術,滿足電池驅動設備低頻低量的連接需求。

它采取強制執行的安全策略:入網必須認證、連接必須加密,以及具有秘鑰動態更新、關鍵字節等其它安全措施。其技術的開放性,為物聯網應用生態的構建提供了基礎。

從藍牙Mesh技術中也能看到,它并沒有關于互聯網連接、服務的設計。在實際應用開發中,該部分主要由應用的開發者自己來完成。此外,泛洪的信息傳播模式(“管理型網絡泛洪”),雖然采用了一些優化措施(TTL等),但對網絡的擴展擴容有較大影響,還需要進一步地設計優化方案。

在物聯網的邊緣,越來越多的網絡技術開始考慮“物”的連接需求,Mesh組網、多點對多點、低功耗連接、非對等網絡等理念,不斷嵌入到局部空間的網絡設計當中,邊緣網絡作為物聯網技術的先行者,將成為物聯網生態建立的基石和保證。

二、藍牙Mesh網絡架構

 

藍牙Mesh通過網狀網的組網結構,可以實現室內的大范圍網絡覆蓋。節點(Node)組成了藍牙Mesh的主干網絡,在Node之間使用了低功耗藍牙的技術進行對連,而具有不同能力特性的節點在網絡中承擔了不同的角色。

承擔網絡角色,需要節點之間遵守藍牙Mesh的語法(通信規則、數據格式)進行對話,通過協商組成網絡并向應用提供網絡路由服務。

節點間的網絡協商過程,是通過“消息攜帶組網信息”,從“源地址向目的地址傳遞”,并形成“網絡信息的交互”而構成的。

1. 網絡地址

藍牙Mesh網絡中,統一的地址長度為16位,分四種類型:單播地址(unicast address)、組播地址(group address)、虛擬地址(virtual address)、未分配地址(unassigned)。

(1)單播地址(Unicast Address)

單播地址在藍牙Mesh網絡中具有唯一性,可以標識出節點內的一個元素,節點在接入網絡的時候被分配獲得。一個mesh網絡可以有32767個單播地址。

(2)組播地址(group address)

組播地址即是多播地址,標識一個或多個元素。SIG預定義了四類組播:“All-proxies”, “All-friends”,“All-relays” 和 “All-nodes”。開發者也可以將多個元素自定義到一個多播地址,便于應用的統一控制和管理。

(3)虛擬地址(Virtual Address)

虛擬地址可以賦給一個或多個元素,且可以由多個節點共有。虛擬地址類似于標簽,可以在設備出廠前就配置,標簽可以使得節點容易在網絡被識別和應用。例如,可以表示某個廠商生產的某一個特定型號的攝像頭。

(4)未分配地址(unassigned)

16位全零的地址,表示元素還沒有配置地址。

2. 消息(Message)

藍牙mesh網絡通過消息承載數據信息進行通信。一個節點可以通過消息來詢問其它節點的狀態,也可以將自己狀態消息發送給別的節點。在藍牙mesh技術規范中,定義了很多種類型的消息。

在藍牙mesh網絡中,無論節點間相距多遠,所有節點均可以訂閱某一節點發布的狀態數據。

(1)消息的應用類型:

消息有兩種應用類型:控制消息(Control Message)和接入消息(Access Message)

  • 控制消息(Control Message),是與藍牙mesh網絡操作有關的消息,例如Low Power Node和Friend Node之間的連接請求消息。
  • 接入消息(Access Message),該類消息會攜帶節點中的模型和狀態值,用來實現節點之間對模型狀態的查詢和控制。應用層通過接入消息中的操作碼(opcode) 和參數,來識別并執行設備的相關操作。

接入消息有兩種交互類型:有應答(acknowledged)消息和無應答(unacknowledged)消息。

  • 有應答消息:表示該消息需要“提問-應答”式的交互,消息發送方需要接收方的響應。響應消息攜帶相關的狀態信息,以向發送方表示某種操作執行成功,并反饋操作執行后的狀態值。如果沒有響應,發送方可以重復發送該消息。
  • 無應答消息:發送方向接收方發送消息,但不需要回復。

(2)消息的操作類型

消息中包含三種消息的操作類型:GET、SET、STATUS。三種操作類型對應三種信息操作的方式:

  • GET:發送節點使用GET消息,向一個或多個節點請求元素模塊中的狀態值。
  • SET:發送節點使用SET消息,向一個或多個節點設置或改變某些狀態值。
  • STATUS:該消息是應答消息,是對GET消息或SET消息的響應。STATUS消息中會攜帶當前的狀態值,返回給GET/SET消息的發送節點。

3. 節點模式

根據節點在實際應用中承擔的不同角色,將其分成三類模式:服務器模式(Server Model)、客戶端模式(Client Model)、控制模式(Control Model)。

(1)服務器模式(Server Model)

“服務器”,可以理解為“處理器”和“執行器”,其對兩部分內容進行了定義:

  • 數據的定義:定義了元素模型中的狀態屬性(格式、類型)和相關消息。狀態屬性包括狀態(state)、狀態轉換(state transitions), 狀態綁定(state bindings)等等。
  • 行為的定義:定義了各類實體操作(Behaviors),以及這些操作和狀態參數的對應關系。例如,當藍牙電燈就收到一個“開關狀態為‘On’”的消息時,它就給燈泡通電發光。

(2)客戶端模式(Client Model)

“客戶端”可以理解為“操作端”或“觸發器”,它沒有狀態信息,但定義了消息的格式和收發方式,用于獲取“服務器”提供的應用服務:發送信息、查詢狀態、控制開關、調節級別等等。“客戶端”就像是電視機的遙控機,由人來操作并切換電視頻道。

(3)控制模式(Control Model)

控制模式兼具了服務器模式和客戶端模式,并且還定義了各模式之間數據交互的處理邏輯(規則和行為),即稱為“控制器邏輯(Controller logic)”。

4. Publish/Subscribe 發布和訂閱

在實際應用中,節點發送應用消息的行為稱為“發布”。消息的發布方向是組地址或者虛擬地址。在應用設計中,組地址或者虛擬地址通常代表一個空間區域或同一類設備,易于用戶和應用系統統一辨識和使用。

“訂閱”就是某個節點被配置成可以接受某個特定消息。換一種說法,節點“訂閱”了某消息,就意味著它可以讀取該消息的內容。

生成消息的節點(客戶端)“發布”消息,使用消息的節點(服務器)“訂閱”消息。

發布和訂閱關系舉例:

在由電燈和開關組成的藍牙Mesh網絡應用中:

  • 開關1可以發布消息到廚房組地址
  • 電燈1號、2號、3號訂閱了廚房組地址的消息
  • 開關2可以發布消息到客廳組地址
  • 電燈3號訂閱了客廳組地址的消息

當開關1發布消息(其模型中攜帶“開燈”的狀態)至藍牙Mesh網絡時,因為存在訂閱關系,所以電燈1號、2號、3號接收到開關1的消息,會執行其中表達的指令---將燈(1號、2號、3號)點亮。

當開關2發布消息(其模型中攜帶“關燈”的狀態)至藍牙Mesh網絡時,因為存在訂閱關系,所以電燈3號接收到開關2的消息,會執行其中表達的指令---將燈熄滅。其他電燈(1、2)雖然也會收到2的消息,但因為它們訂閱的消息地址并不包括客廳組地址,所以2的消息會被丟棄。

消息的發布/訂閱模式的使用,結合組地址和虛擬地址的配置,可以方便地在藍牙網絡中移除或添加節點,其它在網節點無需做任何配置。

5. 節點間的連接類型

各類節點之間形成各種類型的聯接,主要有4種:

(1)非中繼連接:普通節點之間的連接,兩節點之間可以收發數據,但是節點在收到信息后不會轉發。

(2)親友連接(也翻譯為“友誼”連接):低功耗節點和親友節點間的連接,在建立親友關系后,低功耗節點會定期向親友節點發送消息,詢問是否有自己的消息。親友節點如果有暫存的低功耗節點的消息,它會將該消息送還給低功耗節點。

(3)中繼連接:包括普通節點與中繼、代理、親友節點的連接,中繼、代理、親友節點的相互連接。在該類鏈接上,會傳遞普通的藍牙Mesh廣播消息。

(4)GATT連接:沒有藍牙Mesh組網能力的藍牙設備(具備GATT接口),需要通過代理節點幫其轉換連接模式轉發信息,這些節點和代理節點之間的連接就是GATT連接。

6. 消息轉發處理的機制

在藍牙Mesh中,當一個節點收到一個消息時,它會根據自身的節點角色(模式),與相鄰節點間的連接狀態、以及收到消息中的網絡參數,來決定是否丟棄、緩存、處理,還是轉發該消息。

在消息中,影響轉發的參數主要有:NID(網絡ID,從網絡密鑰-NetKey 派生而來的唯一公共標識符)、TTL(Time To Live,消息轉發最大允許“跳躍-Hop”次數)、SRC(Source Address,源地址)和DST(Destination Address,目的地址)。

接受消息后,轉發節點(中繼、代理、親友節點)在轉發消息前有兩部分的處理工作:消息健康檢測、消息轉發判定。

(1)健康檢測:

在收到消息后,節點先判斷該消息的發送源是否是一個已注冊節點(以NID作為判定條件),再對消息的數據包做完整性效驗(MIC),并對數據包中的源地址、目的地址進行有效性判斷,最后確認是存在重復收包的情況,即檢查轉發緩存(轉發隊列)中是否已經有該數據包。如果以上步驟中有一項未通過,則該消息會被節點丟棄,如果通過了,則進入下一個轉發判定的環節。

(2)轉發判定:

如果消息中的目的地址是本節點,則消息會被傳遞到應用層,不再轉發。如果目的地址非本節點,則根據自己的節點角色和數據包中的TTL值來確定是否轉發。非轉發類節點會將數據丟棄,轉發類節點則會檢查TTL值是否大等于2,如果滿足條件則轉發,否則也將數據丟棄。

(3)以圖例進行舉例:

  • 親友節點L、M分別和低功耗節點X、Y建立了親友連接關系
  • P為中繼節點
  • Q為非中繼節點D的代理節點,它本身也是中繼節點。

A. 低功耗節點X發消息至普通節點A

 

a) 低功耗節點X在入網時,和親友節點L建立了“友誼連接”。他在發送消息中將TTL標識設置為“3”,然后發給L,L則會對該消息進行廣播,廣播前將TTL設置為“2”。

b) 非中繼節點B和中繼節點P離L很近,它們都能收到L的消息。在收到消息后,B發現消息中的目的地址不是它,而它又不是中繼節點,故它會將該消息丟棄。

c) 中繼節點P收到L的消息后,先完成健康檢測(確認數據包信息無異常),再進行轉發判斷:發現目的地址不是它,并且TTL值等于2,于是它將TTL改成“1”后廣播了該消息。

d) 中繼節點Q在作轉發判斷時,發現該消息的TTL等于1,且該消息的目的地址并不是它,于是就將該消息丟棄。非中繼節點B收到P發來的消息,它會采取和步驟2一樣的處理方式將數據丟棄。

 

e) 非中繼節點A收到P轉來的消息,發現該消息的目的地址是它自己,于是消息在經過通過傳輸層、接入層的預處理后,被A送到其應用層(模型層)。

B. 非轉發節點(不支持藍牙Mesh)D發消息至低功耗節點Y

f) 無Mesh協議棧的藍牙節點D在入網時,和中繼節點S建立了“代理連接”,S作為D在Mesh網絡中的代理節點。他將消息中的TTL標識設置為“3”,并發送給S。

g) S作為中繼節點,將信息(TTL=2)廣播出去,節點M和P都收到了該信息。

h) 中繼節點P繼續廣播該消息(TTL=1),節點A、B、L收到后確認消息的目的地址不是自己,且TTL=1,則就將消息丟棄。

i) 親友節點M收到該消息,發現消息的目的地址是低功耗節點Y,于是將該消息放進緩存。當Y向M發送“輪詢(Poll)”消息,查問是否有它的消息時,M會將緩存的消息傳給Y。

【本文是51CTO專欄作者王峰的原創文章,轉載請聯系作者本人獲取授權】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2019-12-26 21:54:12

物聯網機器學習自動駕駛

2023-07-12 10:38:55

2020-01-06 22:56:39

物聯網安全可穿戴設備

2021-03-26 14:00:27

物聯網藍牙低功耗

2023-02-17 17:21:17

藍牙5.0物聯網

2023-02-17 15:49:07

云計算工業物聯網

2023-09-20 11:46:54

藍牙物聯網IOT

2020-10-11 17:01:18

物聯網網關工業物聯網物聯網

2023-10-10 10:37:35

2018-07-20 05:44:33

藍牙5物聯網通信

2023-06-21 16:18:20

2013-12-09 09:37:11

藍牙4.1物聯網

2021-03-16 16:07:37

物聯網藍牙連接IoT

2023-12-10 16:40:57

藍牙mesh網絡

2023-05-17 15:31:03

物聯網邊緣計算

2019-07-10 12:45:46

物聯網設備維護IOT

2023-04-13 16:30:39

物聯網IoT

2023-04-23 14:50:41

物聯網工業物聯網傳感器

2023-04-04 15:15:00

IIoT工業物聯網藍牙技術

2018-08-17 05:37:32

物聯網平臺物聯網IOT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 手机av在线 | 狠狠亚洲 | 成人在线精品视频 | 国产成人99久久亚洲综合精品 | 97久久精品午夜一区二区 | 久久成人免费 | 久久精品视频9 | 男人的天堂久久 | 自拍中文字幕 | 日韩在线免费看 | 久久久久久久久久久成人 | 99riav国产一区二区三区 | 91精品国产乱码久久久久久久 | 懂色中文一区二区在线播放 | 国产黄色小视频在线观看 | 99久久婷婷国产综合精品电影 | 成人一区在线观看 | 成人免费激情视频 | 亚洲经典一区 | 美女三区 | 91久久久久久久 | 香蕉视频久久久 | 国产高清视频一区 | 国产精品久久国产愉拍 | 黄色一级大片在线免费看产 | 亚洲高清成人 | 国产日韩欧美一区 | 亚洲精品日韩一区二区电影 | 国产精品99久久久精品免费观看 | 五月天综合网 | 三级黄色片在线观看 | 99久久婷婷国产综合精品电影 | 日本a在线 | 日韩精品一区二区三区在线播放 | 91在线 | 国产视频久久久 | 亚洲综合无码一区二区 | 久久这里只有精品首页 | 午夜小视频免费观看 | 91网站在线看 | 精品一区二区三区四区五区 |