藍(lán)牙m(xù)esh網(wǎng)絡(luò)基礎(chǔ)課件_第1頁
藍(lán)牙m(xù)esh網(wǎng)絡(luò)基礎(chǔ)課件_第2頁
藍(lán)牙m(xù)esh網(wǎng)絡(luò)基礎(chǔ)課件_第3頁
藍(lán)牙m(xù)esh網(wǎng)絡(luò)基礎(chǔ)課件_第4頁
藍(lán)牙m(xù)esh網(wǎng)絡(luò)基礎(chǔ)課件_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

畢健iHealth中國(guó)研發(fā)中心藍(lán)牙高級(jí)工程師郵箱:bi_jian@譯文版本:V1.0完成時(shí)間:2017.11.11備注

:畢健iHealth中國(guó)研發(fā)中心藍(lán)牙高級(jí)工程師郵箱:bi_j11藍(lán)牙m(xù)esh基礎(chǔ)致開發(fā)者:2017夏,藍(lán)牙低功耗技術(shù)引入了一種新的網(wǎng)絡(luò)拓?fù)漕愋?/p>

--

Mesh。mesh的引入使得藍(lán)牙在低功耗無線通信技術(shù)領(lǐng)域更具優(yōu)勢(shì),在許多新興領(lǐng)域如智能家居,工業(yè)物聯(lián)網(wǎng),樓宇自動(dòng)化等勢(shì)必會(huì)得到更好的應(yīng)用。藍(lán)牙1藍(lán)牙m(xù)esh基礎(chǔ)致開發(fā)者:藍(lán)牙2BluetoothMeshNetworking/AnIntroductionfor

DevelopersContributorsMartin

WoolleyAuthorSarah

SchmidtGraphic

Designer目錄?2017BluetoothSIG

Proprietary.21.0

介紹

...........

....................................

42.0

執(zhí)掌生活

.........................

..............

62.1

智能建筑獲得真正的智能 73.0藍(lán)牙m(xù)esh基礎(chǔ)

........

..

.

...........................

83.1概念和術(shù)語93.2mesh

與點(diǎn)對(duì)點(diǎn)93.3設(shè)備與節(jié)點(diǎn)93.4元素103.5消息103.6地址103.7發(fā)布/訂閱113.8狀態(tài)和屬性113.9消息,狀態(tài)及屬性123.10狀態(tài)轉(zhuǎn)變123.11綁定狀態(tài)123.12模型133.13通用性133.14情景133.15開通配置143.16特性14BluetoothMeshNetworking/An3BluetoothMeshNetworking/AnIntroductionfor

Developers3.0

藍(lán)牙m(xù)esh基礎(chǔ)

(續(xù))中繼節(jié)點(diǎn)低功耗節(jié)點(diǎn)與友節(jié)點(diǎn)代理節(jié)點(diǎn)節(jié)點(diǎn)配置?2017BluetoothSIG

Proprietary.3151515164.0

Mesh系統(tǒng)架構(gòu).

.....................

...

.....

..

.

.

174.1

概述 184.2承載層184.3網(wǎng)絡(luò)層184.4底層傳輸層194.5上層傳輸層194.6接入層194.7基礎(chǔ)模型194.8模型195.0

安全性.......................................

.

20Mesh網(wǎng)絡(luò)安全特性具有強(qiáng)制性Mesh網(wǎng)絡(luò)安全性基本原則關(guān)注點(diǎn)分離與mesh安全密鑰節(jié)點(diǎn)移除,密鑰刷新及垃圾桶攻擊隱私重放攻擊2121212222236.0

藍(lán)牙m(xù)esh在行動(dòng)..

......

............................

24消息發(fā)布與傳遞多路徑傳遞管理型網(wǎng)絡(luò)泛洪協(xié)議棧中消息的傳遞252525257.0

藍(lán)牙Mesh

正待勇士開拓的疆場(chǎng)

..............

277.1

參考資料 28BluetoothMeshNetworking/An4backto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers1.0

介紹?2017BluetoothSIG

Proprietary.4backtocontentsBluetoothMesh5backto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers1.0

介紹2000年,藍(lán)牙技術(shù)面世,用以替代線纜進(jìn)行無線通信。此后的十幾年間,藍(lán)牙得到了快速的發(fā)展,很快在無線音頻及計(jì)算機(jī)周邊產(chǎn)品如無線鼠標(biāo),鍵盤等領(lǐng)域占據(jù)了統(tǒng)治地位。2010年,藍(lán)牙低功耗技術(shù)(BLE)面世,推動(dòng)藍(lán)牙技術(shù)向前邁進(jìn)了重要一步

。其影響深遠(yuǎn),主要體現(xiàn)在智能手機(jī),平板,以及醫(yī)療健康,智能家居,可穿戴產(chǎn)品等領(lǐng)域?;诰W(wǎng)狀拓?fù)漕愋偷臒o線通信系統(tǒng)可以覆蓋更大的范圍,使得通信距離變長(zhǎng),同時(shí)系統(tǒng)的魯棒性得到加強(qiáng)。但是他們?nèi)匀皇且环N小眾技術(shù),主要是因?yàn)榕c現(xiàn)有的大多數(shù)計(jì)算機(jī),智能手機(jī)等設(shè)備不兼容,因而沒有得到大范圍的推廣和應(yīng)用。為了將mesh技術(shù)應(yīng)用到藍(lán)牙中,120個(gè)藍(lán)牙SIG成員公司先后參與到這項(xiàng)工作中。與以往情況不同,此次規(guī)模之大,涉及范圍之廣,充分表明了業(yè)界對(duì)藍(lán)牙m(xù)esh技術(shù)標(biāo)準(zhǔn)制定的迫切需求。藍(lán)牙m(xù)esh技術(shù)的添加代表了一種技術(shù)類型的變化,這種變化如此巨大,我們甚至可以認(rèn)為這對(duì)藍(lán)牙技術(shù)標(biāo)準(zhǔn)來說是一次整體模式的轉(zhuǎn)變。(譯者注:藍(lán)牙特別興趣小組

The

Bluetooth

SpecialInterest

Group

(SIG),是一個(gè)非盈利性組織,致力于藍(lán)牙技術(shù)標(biāo)準(zhǔn)的開發(fā),和藍(lán)牙技術(shù)應(yīng)用及商標(biāo)的授權(quán)。公司成立于1998年,總部位于美國(guó)華盛頓。)?2017BluetoothSIG

Proprietary.5backtocontentsBluetoothMesh6backto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers2.0執(zhí)掌生活?2017BluetoothSIG

Proprietary.6backtocontentsBluetoothMesh7backto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers2.0

執(zhí)掌生活智能建筑將獲得真正的智能

想象一下,在一個(gè)天色昏暗的冬日的早晨,你驅(qū)車前往公司。公司的安全系統(tǒng)識(shí)別了你的車,讓你進(jìn)入公司,同時(shí)分配給你一個(gè)停車位。此時(shí),你的停車位上的燈亮起,指引你快速停到那個(gè)位置。之后,這個(gè)車位分配系統(tǒng)將自動(dòng)進(jìn)行更新,顯示該車位已使用。

進(jìn)入公司大樓后,相應(yīng)的傳感器注意到有人進(jìn)入,并從你身上的可穿戴設(shè)備如手表等識(shí)別到你。你乘坐電梯到達(dá)二樓,像往常一樣,你是第一個(gè)到達(dá)的。當(dāng)電梯門打開時(shí),從電梯室到辦公室及開水間的燈自動(dòng)打開??Х仍谀銈児臼欠浅V匾?,所以開水室的燈才會(huì)自動(dòng)打開,其它區(qū)域的燈關(guān)閉,從而節(jié)省能量。

你走進(jìn)辦公室,屋頂燈和臺(tái)燈已經(jīng)打開了,并且是你最喜歡的亮度等級(jí)。你注意到辦公室溫度比其它區(qū)域溫度略高,這正是你之前設(shè)置的。你靠近辦公電腦,此時(shí)電腦自動(dòng)登陸你的賬戶。

現(xiàn)在你可以開始辦公了,并且整個(gè)辦公環(huán)境考慮到了個(gè)人偏好,充分滿足了你的需求。很顯然這種這種系統(tǒng)是十分高效的,那么它是如何實(shí)現(xiàn)的呢?你們公司幾個(gè)月前使用了藍(lán)牙m(xù)esh技術(shù),最開始安裝在照明系統(tǒng)上,隨后添加到Occupancy

sensor,環(huán)境傳感器,無線暖氣控制系統(tǒng),停車管理系統(tǒng)等網(wǎng)絡(luò)中。這樣,公司可以在電力和熱力系統(tǒng)上省上不少費(fèi)用,而且工作環(huán)境更加人性化,從而使員工的工作效率更高。整個(gè)系統(tǒng)的維護(hù)成本也在下降,例如加入電燈開關(guān)不再需要布置昂貴且麻煩的電線了。系統(tǒng)采集的數(shù)據(jù)可以供大樓管理人員分析,從而了解這棟建筑,以及它所提供的服務(wù)和人們對(duì)這些服務(wù)做出的反應(yīng),進(jìn)而對(duì)整個(gè)系統(tǒng)進(jìn)行優(yōu)化。我們可以控制某棟建筑提供的服務(wù),與其進(jìn)行無線交互,使其行為更加自動(dòng)化,而藍(lán)牙m(xù)esh正使這一切更加方便且低成本。你甚至?xí)械襟@訝之前沒有這些技術(shù)是怎么生活的。(譯者注:

Occupancy

sensor,一種室內(nèi)運(yùn)動(dòng)檢測(cè)設(shè)備,檢測(cè)到人體時(shí)會(huì)自動(dòng)打開燈,溫度調(diào)節(jié)裝置及通風(fēng)系統(tǒng)。這種傳感器多使用紅外,超聲,微波等技術(shù),主要用來節(jié)省能量,提供自動(dòng)控制。)圖

1

-

藍(lán)牙m(xù)esh可以分布于辦公室和停車處?2017BluetoothSIG

Proprietary.7backtocontentsBluetoothMesh8backto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers3.0藍(lán)牙m(xù)esh基礎(chǔ)?2017BluetoothSIG

Proprietary8backtocontentsBluetoothMesh9backto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers3.0

藍(lán)牙m(xù)esh基礎(chǔ)概念及術(shù)語要認(rèn)識(shí)藍(lán)牙m(xù)esh技術(shù),需要讀者了解一些新的技術(shù)概念與術(shù)語,這些在之前藍(lán)牙低功耗(BLE)的世界里是沒有的。本章我們將帶你認(rèn)識(shí)一些最基本的概念及術(shù)語。mesh

vs

點(diǎn)對(duì)點(diǎn)我們所見到的大多數(shù)BLE設(shè)備都是進(jìn)行一對(duì)一的數(shù)據(jù)通信的。這是一種點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò)拓?fù)漕愋?,在藍(lán)牙核心規(guī)范中被稱為“微微網(wǎng)”(piconet)。

假設(shè)一個(gè)智能手機(jī)與一個(gè)心率檢測(cè)器建立了一個(gè)點(diǎn)對(duì)點(diǎn)的連接,這樣它們之間就可以傳輸數(shù)據(jù)了。藍(lán)牙的一個(gè)優(yōu)點(diǎn)就是可以讓設(shè)備建立多個(gè)連接,所以這臺(tái)智能手機(jī)可以再與另一個(gè)運(yùn)動(dòng)追蹤設(shè)備建立連接。此時(shí),手機(jī)可以同另外兩臺(tái)設(shè)備進(jìn)行通信,而這兩臺(tái)設(shè)備之間無法直接進(jìn)行溝通。與以上情況相反的是,mesh擁有多對(duì)多的網(wǎng)絡(luò)拓?fù)漕愋?。每一臺(tái)設(shè)備都可以與網(wǎng)絡(luò)中的其它設(shè)備進(jìn)行通信(我們會(huì)在第6章進(jìn)行更深入的討論)。設(shè)備間的通信以消息的形式傳遞,一臺(tái)設(shè)備可以將某一臺(tái)設(shè)備發(fā)來的消息中繼到另一臺(tái)設(shè)備,這樣就可以擴(kuò)展端到端的通信范圍,這個(gè)范圍遠(yuǎn)超過一個(gè)單獨(dú)設(shè)備藍(lán)牙無線電所覆蓋的范圍。設(shè)備和節(jié)點(diǎn)mesh網(wǎng)絡(luò)中的單臺(tái)設(shè)備稱做節(jié)點(diǎn)(node),網(wǎng)絡(luò)外的設(shè)備稱為“未開通配置設(shè)備”(unprovisioneddevices)。將某個(gè)“未開通配置設(shè)備”轉(zhuǎn)化為網(wǎng)絡(luò)節(jié)點(diǎn)的過程稱為“開通配置”(provisioning)。例如,你買了一個(gè)帶有mesh功能的藍(lán)牙燈,你需要把它帶回家并進(jìn)行簡(jiǎn)單的配置,從而將其加入到家中原有的mesh網(wǎng)絡(luò)中,這樣你就可以通過家里的電燈開關(guān)與調(diào)光器對(duì)其進(jìn)行控制了。這一過程即為“開通配置”(provisioning)?!伴_通配置”過程是每一臺(tái)新設(shè)備都要經(jīng)歷的,在這個(gè)過程中,新設(shè)備會(huì)獲取一系列的密鑰,同時(shí)告知“啟動(dòng)配置設(shè)備”(provisioner

device,通常是智能手機(jī)或者平板電腦)有新設(shè)備加入到網(wǎng)絡(luò)中。其中有一個(gè)密鑰叫做網(wǎng)絡(luò)密鑰,即NetKey。在后續(xù)章節(jié)我們會(huì)再對(duì)mesh的安全性進(jìn)行深入討論。Mesh網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都擁有至少一個(gè)NetKey,正是這個(gè)NetKey讓其成為相應(yīng)網(wǎng)絡(luò)的一員。節(jié)點(diǎn)的正常工作需要滿足許多條件,而NetKey則是最基本的第一步工作。隨后我們會(huì)對(duì)“開通配置”的過程展開深入的討論,在此不再贅述。圖

2

-

一種具有消息中繼功能的多對(duì)多網(wǎng)絡(luò)拓?fù)漕愋?2017BluetoothSIG

Proprietary.9backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers元素

有些節(jié)點(diǎn)由多個(gè)獨(dú)立的部分組成,每一個(gè)部分都可以進(jìn)行單獨(dú)的控制。在藍(lán)牙m(xù)esh中,這些獨(dú)立的部分稱為元素(element)。圖3即為網(wǎng)絡(luò)中的一個(gè)燈節(jié)點(diǎn),它有3個(gè)元素,每個(gè)LED燈泡有一個(gè)元素。每個(gè)節(jié)點(diǎn)至少擁有一個(gè)元素,稱為主元素(Primary

Element)。節(jié)點(diǎn)中的每個(gè)元素都有一個(gè)唯一確定的地址,稱為單播地址(unicast

address),這樣每個(gè)元素都可以獨(dú)立尋址。條響應(yīng)信息。這條響應(yīng)信息有兩個(gè)作用:1.告知消息發(fā)送方,消息已接收;2.返回消息接收方需要告知發(fā)送方的某些數(shù)據(jù)。

需要應(yīng)答的消息如果沒有得到響應(yīng),則可能會(huì)被發(fā)送多次,所以這種消息必需具有冪等性。冪等性意味著這種消息不論到達(dá)接收節(jié)點(diǎn)多少次,與其到達(dá)接收節(jié)點(diǎn)一次產(chǎn)生的效果都是相同的。否則如果因?yàn)槟承┮馔?,消息多次到達(dá)接收節(jié)點(diǎn),則有可能使接收節(jié)點(diǎn)的狀態(tài)變得不確定。

不需要應(yīng)答的消息不要求接收者發(fā)送響應(yīng)信息。地址

消息必須從一個(gè)地址發(fā)送到另一個(gè)地址。

藍(lán)牙m(xù)esh協(xié)議中定義了3種地址(還有一種未分配地址在此不做討論)。

單播地址用于唯一確定單個(gè)元素。在“開通配置”過程中,會(huì)將單播地址賦給設(shè)備。

群組地址是一種多播地址,它可以代表一個(gè)或多個(gè)元素。

群組地址要么是動(dòng)態(tài)分配的,要么是藍(lán)牙技術(shù)聯(lián)盟預(yù)先定義的(SIG固定群組地址)。藍(lán)牙技術(shù)聯(lián)盟已經(jīng)定義了4個(gè)固定群組地址,即All-proxies,

All-friends,

All-relays及All-nodes。在后續(xù)章節(jié)中我們會(huì)詳細(xì)解釋什么是Proxy(代理),

Friend(朋友)及

Relay(中繼)

。

我們可以通過配置應(yīng)用程序來建立動(dòng)態(tài)群組地址,這些地址反映了一棟建筑的某種實(shí)體分配,例如為大樓里的每一個(gè)房間定義一個(gè)群組地址。

虛擬地址可以賦給一個(gè)或多個(gè)元素,橫跨一個(gè)或多個(gè)節(jié)點(diǎn)。虛擬地址與128位UUID的形式類似,任何元素都可以與其相關(guān)聯(lián),它更像一個(gè)標(biāo)簽。

虛擬地址可以在出廠前就進(jìn)行預(yù)先配置,然后用于某些特定場(chǎng)景,例如使某個(gè)廠商制作的投影儀的尋址更加方便。

3

-

三個(gè)元素組成一個(gè)燈節(jié)點(diǎn)

?2017BluetoothSIG

Proprietary.10消息

當(dāng)某個(gè)節(jié)點(diǎn)需要獲取其它節(jié)點(diǎn)的狀態(tài)時(shí),或需要以某種方式控制其它節(jié)點(diǎn),它會(huì)發(fā)送消息(message)。如果某節(jié)點(diǎn)需要向其它節(jié)點(diǎn)匯報(bào)狀態(tài),它也會(huì)發(fā)送消息。

在mesh網(wǎng)絡(luò)中,所以通信都是以消息的形式傳遞的。協(xié)議規(guī)范中定義了多種消息類型,每種消息類型都有自己唯一的操作碼。

消息可以統(tǒng)分為兩種類型:需要應(yīng)答和不需要應(yīng)答。需要應(yīng)答的消息要求接收節(jié)點(diǎn)接收到消息后返回一backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers發(fā)布/訂閱

在藍(lán)牙m(xù)esh中,發(fā)送消息稱為發(fā)布(

publish

)。將某個(gè)節(jié)點(diǎn)配置成可以接收特定消息的過程稱為訂閱(subscribe),即如果某個(gè)節(jié)點(diǎn)可以接收某條消息,那么我們就說這個(gè)節(jié)點(diǎn)“

訂閱

”了這條消息。

消息都是發(fā)往組地址或者虛擬地址的,而且這些地址都具有可讀性,具有現(xiàn)實(shí)意義,例如代表某一個(gè)房間。所以使用起來既方便有直觀。

在圖4中我們可以看到,開關(guān)1可以發(fā)布消息到廚房組地址(上文我們已經(jīng)提到,組地址可以代表某個(gè)房間)。1號(hào),2號(hào)和3號(hào)燈節(jié)點(diǎn)都訂閱了廚房地址,因此可以接收和處理發(fā)往該地址的消息。也就是說,1號(hào),2號(hào)和3號(hào)燈可以被1號(hào)開關(guān)控制。

同理,開關(guān)2可以發(fā)布消息到客廳組地址,而只有3號(hào)燈訂閱了該地址,所以開關(guān)2只能控制3號(hào)燈。從圖中我們也可以看到,一個(gè)節(jié)點(diǎn)可以訂閱多個(gè)組地址,如3號(hào)燈節(jié)點(diǎn)同時(shí)訂閱了廚房和客廳兩個(gè)組地址。藍(lán)牙的mesh功能非常強(qiáng)大而且靈活,我們還可以看到多個(gè)開關(guān)可以向一個(gè)組地址發(fā)布消息,如開關(guān)5,

6都可以向花園組地址發(fā)布消息。

使用組地址和虛擬地址來發(fā)布和訂閱消息有許多好處。當(dāng)我們移除,替換或者添加節(jié)點(diǎn)時(shí),不需要重新配置其它節(jié)點(diǎn)。想象一下你要在家里裝一個(gè)燈有多麻煩你就知道這種方式有多方便了。例如有新設(shè)備需要加入到客廳網(wǎng)絡(luò)中,只需經(jīng)過“開通配置”過程并訂閱相應(yīng)的客廳組地址就可以了,其它節(jié)點(diǎn)并不會(huì)受到影響。開關(guān)2依然可以向客廳組地址發(fā)布消息,不過現(xiàn)在它可以控制3號(hào)燈與新加入的燈了。狀態(tài)和屬性

元素可能處在各種條件下,在藍(lán)牙m(xù)esh中我們稱之為狀態(tài)(state)。一個(gè)元素可以有多個(gè)狀態(tài),每個(gè)狀態(tài)都是一組特定值(在下面的服務(wù)器模型中會(huì)再做介紹)。狀態(tài)與特定的行為有關(guān),不能在其它地方重用。

例如,藍(lán)牙m(xù)esh定義了通用開關(guān)狀態(tài)來形容某個(gè)電燈可能存在的狀態(tài),為其賦1(on)電燈打開,為其賦0(off)電燈關(guān)閉,就這么簡(jiǎn)單。屬性(property)與狀態(tài)類似,它們都包含與元素相關(guān)的數(shù)值,但在其它方面二者存在顯著差異。發(fā)布?2017BluetoothSIG

Proprietary.11訂閱廚房客廳走廊臥室花園圖

4

-

發(fā)布/訂閱Switch

6Switch

5Switch

4Switch

3Switch

2Switch

1Light

1Light

2Light

3Light

4Light

5Light

6Light

7Light

8Light

9backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers

熟悉BLE的讀者應(yīng)該了解特性(characteristic),它們是一種沒有與特定行為相聯(lián)系的數(shù)據(jù)類型,這樣它們就很容易地得到重(chong)用。利用上面提到的屬性,可以將特性與具體含義相聯(lián)系。有一點(diǎn)需要特別注意,這里提到的屬性(property)與我們?cè)贐LE協(xié)議棧中定義的屬性(attribute)是完全不同的,為了防止混淆,我們也可以將前者翻譯成“性質(zhì)”(property)。

為了加深對(duì)屬性的認(rèn)識(shí),我們考慮一個(gè)具體的例子。有這樣一個(gè)特性,稱為“溫度8”,它具有多個(gè)相關(guān)屬性,包括室內(nèi)溫度與室外溫度。當(dāng)接收客戶端接收到溫度值時(shí),可以根據(jù)對(duì)應(yīng)屬性值,來判斷這個(gè)溫度是室內(nèi)溫度還是室外溫度。屬性分為兩類,分別是來自制造商的只讀屬性和來自系統(tǒng)管理員的可讀寫屬性。消息,狀態(tài)及屬性藍(lán)牙m(xù)esh網(wǎng)絡(luò)的正常工作依賴于消息的傳遞。某個(gè)特定類型的消息可以對(duì)一個(gè)或多個(gè)狀態(tài)值進(jìn)行操作。消息可以分為3類,簡(jiǎn)稱為GET,SET,STATUS,對(duì)應(yīng)于藍(lán)牙m(xù)esh網(wǎng)絡(luò)支持的3種操作。

GET消息可以用來向一個(gè)或多個(gè)節(jié)點(diǎn)請(qǐng)求狀態(tài)值,之后,相應(yīng)節(jié)點(diǎn)會(huì)返回STATUS信息,告知請(qǐng)求的狀態(tài)值。

SET消息可以改變既定狀態(tài)的值。有些SET消息需要應(yīng)答,要求返回一條STATUS消息

,有些消息不需要應(yīng)答。

STATUS消息可以用來應(yīng)答GET消息,也可以用來應(yīng)答SET消息或者通過某元素中的定時(shí)器定時(shí)發(fā)送。我們可以通過消息操作碼(opcode)識(shí)別到特定狀態(tài)。另一方面,我們也可以在通用屬性相關(guān)消息中使用16位屬性ID來直接引用屬性(具體操作細(xì)節(jié)請(qǐng)參考藍(lán)牙m(xù)esh相關(guān)技術(shù)文檔)。狀態(tài)轉(zhuǎn)變從一個(gè)狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€(gè)狀態(tài)的過程叫做狀態(tài)轉(zhuǎn)換,轉(zhuǎn)變的過程可能是瞬時(shí)的,也可能需要經(jīng)過一段時(shí)間,這段時(shí)間叫做轉(zhuǎn)換時(shí)間。狀態(tài)轉(zhuǎn)變可能會(huì)對(duì)節(jié)點(diǎn)應(yīng)用層的行為產(chǎn)生影響。綁定狀態(tài)狀態(tài)之間也可能存在某種關(guān)系,一種狀態(tài)改變會(huì)導(dǎo)致另一種狀態(tài)也改變,這種關(guān)系稱為狀態(tài)綁定(statebinding)。一個(gè)狀態(tài)可以與其它多個(gè)狀態(tài)綁定。例如,通過一個(gè)調(diào)光器控制一盞燈。這盞燈有兩種狀態(tài),即通用開關(guān)狀態(tài)和通用等級(jí)狀態(tài),他們之間相互綁定。減少燈的亮度等級(jí),直到亮度等級(jí)為0,這將導(dǎo)致通用開關(guān)狀態(tài)由開變?yōu)殛P(guān)。通用開關(guān)服務(wù)器通用開關(guān)客戶端圖

5

-

通用模型?2017BluetoothSIG

Proprietary.12backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers?2017BluetoothSIG

Proprietary.13模型模型將之前提到的概念組合在一起,定義了元素的功能。當(dāng)前藍(lán)牙m(xù)esh規(guī)范中一共定義了3類模型。第一種是服務(wù)器模型(server

model),它定義了一系列的狀態(tài),狀態(tài)轉(zhuǎn)換,狀態(tài)綁定以及模型中元素可以收發(fā)的消息。同時(shí),它也定義了與消息,狀態(tài),狀態(tài)轉(zhuǎn)換相對(duì)應(yīng)的行為。客戶端模型(client

model

)沒有定義任何狀態(tài),它只定義了幾種消息。我們可以利用這些消息來對(duì)相應(yīng)服務(wù)器模型中的狀態(tài)進(jìn)行操作,如GET,SET及STATUS??刂颇P停–ontrol

model)包含一個(gè)服務(wù)器模型和一個(gè)客戶端模型。服務(wù)器模型可以用來與其它客戶端模型進(jìn)行通信,而客戶端模型可以用來與其它服務(wù)器模型進(jìn)行通信。我們可以通過擴(kuò)展某個(gè)模型來創(chuàng)建新的模型。不過有一種模型不能擴(kuò)展,這種模型稱為root模型。

模型不能被改變,也就是說我們不能向模型中加入或者移除相關(guān)行為。實(shí)現(xiàn)新模型的唯一方式就是擴(kuò)展已經(jīng)存在的模型。通用性

生活中我們不難看出,很多設(shè)備本質(zhì)上都存在著相似的狀態(tài)。例如燈,風(fēng)扇,電源插座等等,它們都具有開和關(guān)兩種狀態(tài)。因此,藍(lán)牙m(xù)esh模型規(guī)范定義了許多可重用的通用狀態(tài),例如通用開關(guān)狀態(tài)(Generic

OnOff),通用等級(jí)狀態(tài)(Generic

Level)。同理,我們還定義了一些通用消息,來對(duì)通用狀態(tài)進(jìn)行處理,例如Generic

OnOff

Get和Generic

Level

Set消息。

通用狀態(tài)及通用消息可以用在通用模型中。通用模型包括通用客戶端模型,通用服務(wù)器模型,如通用開關(guān)服務(wù)器,通用等級(jí)客戶端等。

利用通用性,不需要?jiǎng)?chuàng)建新的模型就可以將藍(lán)牙m(xù)esh功能添加到多個(gè)設(shè)備中。因?yàn)榭梢酝ㄟ^擴(kuò)展某個(gè)模型來創(chuàng)建新的模型,所以我們可以利用通用模型為新設(shè)備快速創(chuàng)建合適的模型。情景想象一下,某天晚上,你想要將臥室的溫度調(diào)到20攝氏度,將臥室吊燈調(diào)到合適的亮度,再將桌上的臺(tái)燈調(diào)成令人舒適的暖色調(diào)等等。也許你會(huì)想到這需要一個(gè)一個(gè)手動(dòng)設(shè)置,那你就out啦!我們可以在應(yīng)用程序上保存這些配置,在需要的時(shí)候調(diào)用它們。這些保存的配置稱為“情景”(scene)。我們可以通過16位情景序號(hào)來識(shí)別特定的情景,在每個(gè)mesh網(wǎng)絡(luò)中,情景序號(hào)都是各不相同的。利用情景可以讓許多節(jié)點(diǎn)同時(shí)到達(dá)某種既定狀態(tài),省去了單獨(dú)配置每個(gè)節(jié)點(diǎn)的麻煩。backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers?2017BluetoothSIG

Proprietary.14開通配置(Provisioning)

開通配置是指將某臺(tái)設(shè)備加入到mesh網(wǎng)絡(luò)中,從而變成一個(gè)節(jié)點(diǎn)的過程。它涉及幾個(gè)階段,期間會(huì)生成許多安全密鑰,這一過程對(duì)安全性要求比較高。

開通配置通常是通過手機(jī)或者平板電腦上的應(yīng)用程序完成的。此時(shí),手機(jī)或者平板電腦通常被稱為啟動(dòng)配置設(shè)備(Provisioner)。開通配置的過程涉及5個(gè)步驟,下面就每個(gè)步驟分別展開討論。第

1

步.

發(fā)送Beacon信號(hào)為了支持藍(lán)牙m(xù)esh的不同特性,包括但不限于“開通配置”,我們引入了新的GAP廣播類型(參考藍(lán)牙核心規(guī)范補(bǔ)充),包括<<Mesh

Beacon>>廣播類型。未開通配置的設(shè)備(如需要加入mesh網(wǎng)絡(luò)的燈)可以發(fā)出<<Mesh

Beacon>>廣播數(shù)據(jù)包,聲明自己是未開通配置的設(shè)備,可以被啟動(dòng)配置。用戶可能需要按照一定的方式,如鍵入一組按鈕,或長(zhǎng)按某個(gè)按鍵一段時(shí)間,從而啟動(dòng)新設(shè)備的廣播第

2

步.

邀請(qǐng)?jiān)谶@一步驟中,啟動(dòng)配置設(shè)備(手機(jī)等)向需要加入mesh網(wǎng)絡(luò)的設(shè)備(如燈)發(fā)送邀請(qǐng),實(shí)際上發(fā)送的就是“開通配置邀請(qǐng)PDU”,一種特定格式的數(shù)據(jù)包。此時(shí)需要開通配置的設(shè)備(如燈)會(huì)返回一定的數(shù)據(jù)包,即“開通配置能力PDU”告知自身情況。第

4

步.

認(rèn)證在認(rèn)證的過程中,新設(shè)備會(huì)根據(jù)自身輸出能力按照某種方式輸出一個(gè)或多個(gè)隨機(jī)數(shù)(這一點(diǎn)與藍(lán)牙配對(duì)方式有點(diǎn)類似)。例如新設(shè)備可以閃幾下LED燈(閃爍的次數(shù)代表輸出的驗(yàn)證值),或者有屏幕的話可以直接輸出數(shù)字

。用戶在啟動(dòng)配置設(shè)備上輸入相應(yīng)數(shù)字,整個(gè)認(rèn)證的過程就全部完成了。第

5

步.

啟動(dòng)配置數(shù)據(jù)分發(fā)認(rèn)證完成之后,會(huì)利用兩臺(tái)設(shè)備的私鑰和交換的對(duì)等密鑰生成一個(gè)會(huì)話密鑰(Session

Key)。之后利用會(huì)話密鑰來加密后續(xù)的數(shù)據(jù)分發(fā),完成剩余的開通配置過程,包括網(wǎng)絡(luò)密鑰(NetKey)和設(shè)備唯一地址,即單播地址(Unicast

Address)的分配。開通配置過程完成后,新設(shè)備(如燈)將會(huì)擁有網(wǎng)絡(luò)的NetKey,這是一個(gè)稱為“IV索引(IV

Index)”的mesh安全參數(shù),且擁有一個(gè)由啟動(dòng)配置設(shè)備(如手機(jī))分配的單播地址。至此,這臺(tái)新設(shè)備就正式成為節(jié)點(diǎn)了。特性

所有的節(jié)點(diǎn)都可以發(fā)送和接收mesh消息,但是我們也可以單獨(dú)賦予某些節(jié)點(diǎn)額外的特性,使其擁有某些特定功能。一共有四種特性可以選擇:中繼(Relay),代理(Proxy),友(Friend)以及低功耗(LowPower)特性。每個(gè)節(jié)點(diǎn)都可以支持以上四種特性中的0個(gè)或者多個(gè),而且隨時(shí)可以取消已經(jīng)配置好的特性。第

3

步.

交換公共密鑰

啟動(dòng)配置設(shè)備(如手機(jī))和需要開通配置的設(shè)備(如燈)交換公鑰。公鑰可以是固定的,也可以是暫時(shí)生成的。公鑰的交換可以通過藍(lán)牙傳輸,也可以使用帶外數(shù)據(jù)(OOB)交換的方式。例如使用NFC或者二維碼進(jìn)行數(shù)據(jù)交換,這樣數(shù)據(jù)傳輸?shù)陌踩愿摺acktocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers?2017BluetoothSIG

Proprietary.15中繼節(jié)點(diǎn)

支持中繼特性的節(jié)點(diǎn)稱為中繼節(jié)點(diǎn),它可以重發(fā)接收到的消息。通過中繼技術(shù),消息可以進(jìn)行多次“跳躍”(hop),這樣就可以將消息傳輸?shù)秸麄€(gè)mesh網(wǎng)絡(luò)。

mesh網(wǎng)絡(luò)PDU中有一個(gè)字段稱為TTL(Time

ToLive)。TTL利用一個(gè)整數(shù)值來限制每條消息可以在網(wǎng)絡(luò)中跳躍(被中繼)的次數(shù)。例如TTL等于3時(shí),表示消息最多被中繼3次。TTL等于0則表示消息不能被中繼,只能進(jìn)行單次傳輸。節(jié)點(diǎn)每隔一段時(shí)間發(fā)送一次TTL,這樣可以了解網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),充分利用mesh網(wǎng)絡(luò),避免不必要的消息中繼,從而節(jié)省功耗。低功耗節(jié)點(diǎn)與友節(jié)點(diǎn)有些節(jié)點(diǎn)可能采用電池供電,所以需要盡可能地降低功耗。這種類型的設(shè)備可能主要關(guān)心發(fā)送消息,但也需要偶爾接收消息。

例如,有一個(gè)采用紐扣電池供電的溫度傳感器,當(dāng)溫度超出既定閾值上限或者下限時(shí),傳感器每隔一分鐘發(fā)送一次溫度值。如果溫度不超出閾值,則不發(fā)送消息。如果不考慮功耗問題的話,這些行為都很容易實(shí)現(xiàn)。用戶可能會(huì)向傳感器發(fā)送消息,設(shè)置新的閾值,這種行為比較少見,因?yàn)橛脩舨豢赡苡惺聸]事地改變閾值,用戶可能會(huì)在季節(jié)改變或者新加設(shè)備時(shí)設(shè)置閾值。但是傳感器的閾值必須是能夠改變的。接收消息的頻率對(duì)接收器占空比和功耗有影響。100%占空比能夠確保傳感器不丟失任何一條溫度閾值配置消息,但是功耗是非常大的。低占空比可以節(jié)省功耗,但是也可能丟失某條配置消息。為了解決這一難題,藍(lán)牙m(xù)esh引入了友節(jié)點(diǎn)(friendnode)及友誼(friendship)的概念。在上面的例子中,溫度傳感器可以設(shè)計(jì)成低功耗節(jié)點(diǎn)(Low

Power

nodes)。在傳感器的配置數(shù)據(jù)中,會(huì)設(shè)置特定的標(biāo)志,標(biāo)記這是一個(gè)低功耗節(jié)點(diǎn)。低功耗節(jié)點(diǎn)會(huì)同另一個(gè)節(jié)點(diǎn)配合工作,這個(gè)節(jié)點(diǎn)對(duì)功耗沒什么特別的要求(可能接入市電,有固定的電源),這個(gè)節(jié)點(diǎn)稱為友節(jié)點(diǎn)。友節(jié)點(diǎn)保存發(fā)往對(duì)應(yīng)低功耗節(jié)點(diǎn)的消息。低功耗節(jié)點(diǎn)會(huì)對(duì)友節(jié)點(diǎn)進(jìn)行輪詢(Poll),查看是否有新消息。低功耗節(jié)點(diǎn)輪詢的頻率非常低,這樣就可以降低功耗,同時(shí)降低丟失配置消息的可能。當(dāng)?shù)凸墓?jié)點(diǎn)對(duì)友節(jié)點(diǎn)進(jìn)行輪詢時(shí),保存在友節(jié)點(diǎn)的消息就會(huì)一個(gè)接一個(gè)地發(fā)到低功耗節(jié)點(diǎn)。在發(fā)出的數(shù)據(jù)包中有一個(gè)MD(more

data)標(biāo)志,用來指明友節(jié)點(diǎn)是否還有消息需要發(fā)送。

低功耗節(jié)點(diǎn)與友節(jié)點(diǎn)的關(guān)系稱為“友誼”(friend-ship)。正是這種友誼關(guān)系,才使得功耗受限的節(jié)點(diǎn)能夠在藍(lán)牙m(xù)esh網(wǎng)絡(luò)中正常接收消息,在正常工作的同時(shí)保持較低功耗。代理節(jié)點(diǎn)

在我們的生活中有大量的BLE設(shè)備,例如智能手機(jī)或者平板電腦。到現(xiàn)在為止,已經(jīng)上市的藍(lán)牙設(shè)備都還沒有集成藍(lán)牙m(xù)esh網(wǎng)絡(luò)協(xié)議棧,它們只使用了BLE協(xié)議棧以及傳統(tǒng)藍(lán)牙協(xié)議棧。所以它們只能通過通用屬性規(guī)范(Generic

Attribute

Profile-GATT)與其它設(shè)備進(jìn)行信息交互。

代理節(jié)點(diǎn)能夠?qū)崿F(xiàn)GATT和藍(lán)牙m(xù)esh節(jié)點(diǎn)之間的信息交互。我們定義了代理協(xié)議,用于面向連接的承載層,如GATT。GATT設(shè)備(沒有集成藍(lán)牙m(xù)esh協(xié)議棧)可以通過代理節(jié)點(diǎn)讀寫代理協(xié)議PDU。總之,代理節(jié)點(diǎn)可以允許沒有集成藍(lán)牙m(xù)esh協(xié)議棧的BLE設(shè)備與mesh網(wǎng)絡(luò)中的任何節(jié)點(diǎn)進(jìn)行通信。backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

DevelopersP圖

6-

智能手機(jī)通過代理節(jié)點(diǎn)與mesh網(wǎng)絡(luò)進(jìn)行通信,P

=

代理節(jié)點(diǎn)?2017BluetoothSIG

Proprietary.16節(jié)點(diǎn)配置

配置服務(wù)器模型(Configuration

Server

Model)定義了許多狀態(tài),我們可以使用配置客戶端模型(Configuration

ClientModel)訪問這些狀態(tài)。配置狀態(tài)與節(jié)點(diǎn)可以產(chǎn)生的行為和能力有關(guān),與具體的應(yīng)用或者設(shè)備類型無關(guān)。例如,我們可以利用“配置服務(wù)器狀態(tài)”來指明某個(gè)節(jié)點(diǎn)是代理節(jié)點(diǎn),中繼節(jié)點(diǎn)還是其它節(jié)點(diǎn)。節(jié)點(diǎn)訂閱的地址保存在訂閱列表中。網(wǎng)絡(luò)和子網(wǎng)密鑰以及應(yīng)用密鑰都保存在配置塊中(configuration

block)。配置客戶端模型與配置服務(wù)器模型可以對(duì)相應(yīng)的配置服務(wù)器模型的狀態(tài)進(jìn)行操作,這些操作包括GET,SET及STATUS,它們是通過相應(yīng)的配置消息完成的。backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers4.0mesh系統(tǒng)架構(gòu)?2017BluetoothSIG

Proprietary.17backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers4.0

mesh系統(tǒng)架構(gòu)概述本章我們將深入了解藍(lán)牙m(xù)esh的體系結(jié)構(gòu),認(rèn)識(shí)mesh網(wǎng)絡(luò)層級(jí)分布以及各個(gè)層的功能。我們還會(huì)將藍(lán)牙m(xù)esh結(jié)構(gòu)與BLE結(jié)構(gòu)進(jìn)行對(duì)比說明,這將更助于我們理解。承載層

發(fā)送和接收mesh消息需要底層協(xié)議棧的支持,而承載層(bearer

layer)則定義了如何使用底層BLE協(xié)議棧傳輸網(wǎng)絡(luò)PDU。目前定義了兩個(gè)承載層:廣播承載層和GATT承載層。

廣播承載層利用BLE

GAP廣播和掃描特性來發(fā)送和接收mesh

PDU。

對(duì)于不支持廣播承載層的設(shè)備,可以利用GATT承載層通過使用代理協(xié)議與mesh網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行通信。

代理協(xié)議封裝在GATT操作中,包括特殊定義的GATT特性。mesh代理節(jié)點(diǎn)通過實(shí)現(xiàn)上述GATT特性,來支持GATT承載層和廣播承載層。這樣就可以在兩種承載層間轉(zhuǎn)換和中繼消息。網(wǎng)絡(luò)層

網(wǎng)絡(luò)層(network

layer)定義了多種消息地址類型和網(wǎng)絡(luò)消息格式,這樣傳輸層的PDU就可以通過承載層傳輸了。它可以支持多個(gè)承載層,每個(gè)承載層可以有多個(gè)網(wǎng)絡(luò)接口,如用于同一個(gè)節(jié)點(diǎn)不同元素間通信的本地接口。

網(wǎng)絡(luò)層決定了用哪一種網(wǎng)絡(luò)接口來輸出消息。來自承載層的消息會(huì)先經(jīng)過一個(gè)輸入濾波器,判斷消息是否需要傳入網(wǎng)絡(luò)層進(jìn)行進(jìn)一步處理。同理,輸出消息會(huì)經(jīng)過輸出濾波器,來決定消息是否要傳遞到承載層。

我們還可以通過網(wǎng)絡(luò)層實(shí)現(xiàn)代理和中繼特性。

從圖7可以看到,藍(lán)牙m(xù)esh網(wǎng)絡(luò)結(jié)構(gòu)的最下層是BLE。事實(shí)上,這不僅僅只有一層,而是整個(gè)BLE協(xié)議棧。很顯然,藍(lán)牙m(xù)esh正是利用BLE進(jìn)行實(shí)際上的信息通信的。接下來我們將自底向上分別介紹各個(gè)層。模型

基礎(chǔ)模型上層傳輸層底層傳輸層網(wǎng)絡(luò)層承載層BLE接入層?2017BluetoothSIG

Proprietary.18圖

7

-

藍(lán)牙m(xù)esh架構(gòu)backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers?2017BluetoothSIG

Proprietary.19底層傳輸層

底層傳輸層(lower

transport

layer)可以將來自上層傳輸層的PDU發(fā)到對(duì)端設(shè)備的底層傳輸層。它還可以進(jìn)行PDU的分段和重組(這一點(diǎn)與BLE協(xié)議棧中的L2CAP類似)。對(duì)于那些不能放入單個(gè)PDU的長(zhǎng)數(shù)據(jù)包,底層傳輸層會(huì)對(duì)其進(jìn)行分段,將其放入多個(gè)PDU中傳輸。當(dāng)其它設(shè)備的底層傳輸層收到數(shù)據(jù)包后再將其重新組合,放入單個(gè)上層傳輸層PDU中,再向上傳輸。上層傳輸層

上層傳輸層(upper

transport

layer)可以將來自或者發(fā)往接入層的應(yīng)用數(shù)據(jù)進(jìn)行加密,解密和認(rèn)證。在不同節(jié)點(diǎn)之間,上層傳輸層還負(fù)責(zé)“傳輸控制消息”的生成和發(fā)送。傳輸控制消息與下文將要提到的“友誼”和“心跳”有關(guān)。接入層

接入層(access

layer)定義了應(yīng)用如何使用上層傳輸層。包括:定義應(yīng)用數(shù)據(jù)格式定義和控制上層傳輸層中的數(shù)據(jù)加密和解密過程驗(yàn)證從上層傳輸層傳來的數(shù)據(jù)是否對(duì)應(yīng)于正確的網(wǎng)絡(luò)和應(yīng)用,如果正確則將其傳入上層協(xié)議棧中基礎(chǔ)模型層

基礎(chǔ)模型(foundation

model)層負(fù)責(zé)涉及mesh網(wǎng)絡(luò)配置和管理的基礎(chǔ)模型的實(shí)現(xiàn)。模型層

模型(model)層定義了模型的實(shí)現(xiàn)以及模型規(guī)范中定義的行為,消息,狀態(tài),狀態(tài)綁定等的實(shí)現(xiàn)。backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers5.0安全性?2017BluetoothSIG

Proprietary.20backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers5.0

安全性mesh網(wǎng)絡(luò)安全特性具有強(qiáng)制性在BLE中,允許profile設(shè)計(jì)者采用不同的安全機(jī)制。例如使用不同的藍(lán)牙配對(duì)方法,或者為某一個(gè)特性提供單獨(dú)的安全防護(hù)。也就是說,在BLE中,安全防護(hù)是可選擇的,允許設(shè)備不進(jìn)行安全防護(hù)。由產(chǎn)品的設(shè)計(jì)者或制造商負(fù)責(zé)分析產(chǎn)品的安全風(fēng)險(xiǎn),滿足具體的安全需求。相反,藍(lán)牙m(xù)esh的安全防護(hù)是強(qiáng)制執(zhí)行的。不管是網(wǎng)絡(luò),單個(gè)應(yīng)用還是具體的設(shè)備都需要進(jìn)行加密,并且在任何條件下都不能人為地關(guān)閉或減弱。mesh網(wǎng)絡(luò)安全性基本原則

藍(lán)牙m(xù)esh網(wǎng)絡(luò)會(huì)采用以下幾個(gè)基本原則來確保網(wǎng)絡(luò)的安全性:1.

所有的mesh消息都要經(jīng)過加密和認(rèn)證。2.

網(wǎng)絡(luò)安全性,應(yīng)用安全性,設(shè)備安全性相互獨(dú)立。也就是下面要提到的“關(guān)注點(diǎn)分離”。3.

在mesh網(wǎng)絡(luò)中,我們可以通過密鑰刷新程序來更新節(jié)點(diǎn)的安全密鑰。4.

消息模糊化可以讓外界難以追蹤網(wǎng)絡(luò)內(nèi)所發(fā)送的消息,進(jìn)而提供了一種隱私保護(hù)機(jī)制,難以讓外界跟蹤節(jié)點(diǎn)的活動(dòng)。5.

藍(lán)牙m(xù)esh安全性可保護(hù)網(wǎng)絡(luò)免受中繼攻擊。6.

設(shè)備添加到mesh網(wǎng)絡(luò)從而成為節(jié)點(diǎn)的過程本身就是是一個(gè)安全的過程。也就是前面提到的,開通配置過程。7.

節(jié)點(diǎn)可以從網(wǎng)絡(luò)中安全地移除,這樣可以防止垃圾桶攻擊(trash

can

attack)。圖

8

-

藍(lán)牙m(xù)esh網(wǎng)絡(luò)的安全性是最重要的?2017BluetoothSIG

Proprietary.21關(guān)注點(diǎn)分離與mesh安全密鑰

藍(lán)牙m(xù)esh網(wǎng)絡(luò)安全性的核心是三種安全密鑰。分別使用這些密鑰對(duì)網(wǎng)絡(luò)中的不同部分進(jìn)行加密,這在網(wǎng)絡(luò)安全性方面是一種關(guān)鍵能力,也就是我們要說的“關(guān)注點(diǎn)分離”技術(shù)。為了更好地了解這種技術(shù),我們舉一個(gè)例子。有一個(gè)已經(jīng)加入藍(lán)牙m(xù)esh網(wǎng)絡(luò)的燈。它可以當(dāng)作一個(gè)中繼節(jié)點(diǎn)來中繼消息。它可以中繼門窗安全系統(tǒng)的消息,但是它不能理解消息的具體含義,只需要中繼消息就行了。照明系統(tǒng)和門窗安全系統(tǒng)相當(dāng)于兩個(gè)不同的子系統(tǒng),它們使用不同的密鑰進(jìn)行加密,這樣整個(gè)網(wǎng)絡(luò)的安全性就得到了提升。藍(lán)牙m(xù)esh網(wǎng)絡(luò)里的每個(gè)節(jié)點(diǎn)都有一個(gè)相同的網(wǎng)絡(luò)密鑰(NetKey)。正是這個(gè)密鑰才使得節(jié)點(diǎn)成為這個(gè)網(wǎng)絡(luò)的一員。網(wǎng)絡(luò)加密key與隱私key都是由這個(gè)網(wǎng)絡(luò)密鑰生成的。backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers?2017BluetoothSIG

Proprietary.22節(jié)點(diǎn)可以利用NetKey來加密和認(rèn)證網(wǎng)絡(luò)層,這樣諸如中繼之類的網(wǎng)絡(luò)功能就可以執(zhí)行了。但是NetKey不能加密應(yīng)用數(shù)據(jù)。藍(lán)牙m(xù)esh網(wǎng)絡(luò)可以分成幾個(gè)子網(wǎng)絡(luò),每個(gè)子網(wǎng)絡(luò)都有其單獨(dú)的NetKey,這個(gè)NetKey只有當(dāng)前子網(wǎng)絡(luò)成員節(jié)點(diǎn)才有,其它節(jié)點(diǎn)沒有。這種方式可以分隔開特定的物理區(qū)域,例如酒店中的每個(gè)房間都可以擁有一個(gè)單獨(dú)的NetKey。

只有擁有應(yīng)用密鑰(AppKey)的節(jié)點(diǎn)

才能解密相應(yīng)的應(yīng)用數(shù)據(jù)。在一個(gè)mesh網(wǎng)絡(luò)中,可以有許多不同的AppKey,每個(gè)AppKey對(duì)應(yīng)一種特定的應(yīng)用(照明應(yīng)用,熱力應(yīng)用,門窗安全系統(tǒng)應(yīng)用等)。例如,燈和開關(guān)擁有燈應(yīng)用的AppKey,但是沒有熱力系統(tǒng)的AppKey,只有網(wǎng)絡(luò)中的溫度調(diào)節(jié)裝置才擁有熱力系統(tǒng)的AppKey。上層傳輸層會(huì)在將消息傳輸?shù)浇尤雽忧埃肁ppKey對(duì)消息進(jìn)行解密和認(rèn)證。

每個(gè)AppKey只與對(duì)應(yīng)的NetKey有關(guān)系,這種關(guān)系稱為“密鑰綁定”(key

binding)。也就意味著,一個(gè)擁有既定AppKey的應(yīng)用只能工作于某個(gè)特定網(wǎng)絡(luò),而一個(gè)mesh網(wǎng)絡(luò)可以擁有多個(gè)獨(dú)立的應(yīng)用。最后一種密鑰是設(shè)備密鑰(DevKey)。這是一種特殊的應(yīng)用密鑰。每個(gè)節(jié)點(diǎn)都有一個(gè)獨(dú)一無二的設(shè)備密鑰,這個(gè)密鑰只有啟動(dòng)配置設(shè)備(如手機(jī))知道。設(shè)備密鑰可以用在開通配置過程,以確保啟動(dòng)配置設(shè)備與節(jié)點(diǎn)之間的安全通訊。節(jié)點(diǎn)移除、密鑰刷新與垃圾桶攻擊如前文所述,節(jié)點(diǎn)包含多種mesh安全密鑰。如果某個(gè)節(jié)點(diǎn)出現(xiàn)故障,需要被丟棄,或者用戶想要將某個(gè)節(jié)點(diǎn)賣給其他人,那么我們需要特別注意,節(jié)點(diǎn)中包含許多網(wǎng)絡(luò)密鑰,不法分子可能利用這些密鑰攻擊你的網(wǎng)絡(luò),給用戶造成損失。針對(duì)以上情況,藍(lán)牙m(xù)esh規(guī)范中定義了一套安全的流程來移除不需要的節(jié)點(diǎn)。啟動(dòng)配置設(shè)備(如手機(jī))上的應(yīng)用程序可以將節(jié)點(diǎn)加入黑名單,之后發(fā)起密鑰刷新程序。

密鑰刷新程序(Key

Refresh

Procedure)會(huì)向網(wǎng)絡(luò)中的所有節(jié)點(diǎn)發(fā)送新的網(wǎng)絡(luò)密鑰,應(yīng)用密鑰等相關(guān)數(shù)據(jù)。換句話說,所有的安全密鑰都被替換了。當(dāng)然在黑名單中的節(jié)點(diǎn)不會(huì)收到這些信息。因此,被移除的節(jié)點(diǎn)只擁有舊的密鑰,所以不再是網(wǎng)絡(luò)中的一員,也就沒有威脅了。隱私

隱私key是通過NetKey產(chǎn)生的,它可以用來模糊化網(wǎng)絡(luò)PDU報(bào)頭,例如模糊化源地址。模糊技術(shù)可以防止不法分子通過被動(dòng)竊聽來追蹤某臺(tái)設(shè)備或者某個(gè)人的位置。它也可以令某些攻擊更加困難,如基于網(wǎng)絡(luò)流量分析的攻擊。利用隱私key可以提供非常合適的安全防護(hù)。重放攻擊

在網(wǎng)絡(luò)安全方面,我們經(jīng)常提到重放攻擊(replayattack)技術(shù)。重放攻擊是指竊聽者截獲一個(gè)或多個(gè)消息后,再轉(zhuǎn)發(fā)這些消息,以欺騙接收者,實(shí)施未授權(quán)的攻擊行為。例如我們經(jīng)常提到的一個(gè)例子,汽車的無鑰匙進(jìn)入系統(tǒng)受到攻擊者的破壞,攻擊者攔截了車主與汽車之間的認(rèn)證序列,然后重放這些信息進(jìn)入汽車實(shí)施盜竊。

藍(lán)牙m(xù)esh網(wǎng)絡(luò)可以防止重放攻擊。在藍(lán)牙m(xù)esh網(wǎng)絡(luò)PDU中包含兩個(gè)字段,分別稱為序列號(hào)(SequenceNumber)和IV索引(IV

Index)。每次發(fā)布消息時(shí),元素會(huì)增加序列號(hào)的值。當(dāng)某個(gè)節(jié)點(diǎn)從元素接收消息時(shí),如果發(fā)現(xiàn)元素包含的序列號(hào)小于或等于上一個(gè)有效消息中的序列號(hào),則節(jié)點(diǎn)會(huì)將消息丟棄,因?yàn)楹芸赡苓@則消息與重放攻擊有關(guān)。IV索引是一個(gè)單獨(dú)的字段,需要與序列號(hào)一同考慮。來自既定元素的消息中的IV索引值必須等于或者大于該元素的上一個(gè)有效消息。backtocontentsBluetoothMeshbackto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers6.0藍(lán)牙m(xù)esh在行動(dòng)?2017BluetoothSIG

Proprietary.24backtocontentsBluetoothMesh24backto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers?2017BluetoothSIG

Proprietary.256.0

藍(lán)牙m(xù)esh在行動(dòng)消息發(fā)布與傳遞

Wi-Fi網(wǎng)絡(luò)是基于一個(gè)中央網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行工作的,這個(gè)中央網(wǎng)絡(luò)節(jié)點(diǎn)就是我們常見的路由器。所有的網(wǎng)絡(luò)傳輸都是通過路由器進(jìn)行的。一旦路由器出現(xiàn)故障,整個(gè)網(wǎng)絡(luò)都會(huì)癱瘓。

與此相反,藍(lán)牙m(xù)esh使用一種稱為管理型網(wǎng)絡(luò)泛洪的技術(shù)來進(jìn)行消息的傳遞。當(dāng)一條消息被某個(gè)節(jié)點(diǎn)發(fā)布后,這條消息不會(huì)只路由到某個(gè)或多個(gè)特定的節(jié)點(diǎn)。如果配置合適的話,在初始節(jié)點(diǎn)無線電覆蓋范圍之內(nèi)的所有節(jié)點(diǎn)都會(huì)收到消息,然后還可以將其中繼到更遠(yuǎn)的地方,這樣在離初始節(jié)點(diǎn)更遠(yuǎn)(遠(yuǎn)遠(yuǎn)超過初始節(jié)點(diǎn)無線電覆蓋范圍)的地方也能收到中繼來的廣播消息。這樣整個(gè)通信距離將變得更長(zhǎng)。多路徑傳遞通過使用管理型網(wǎng)絡(luò)泛洪技術(shù),我們可以發(fā)現(xiàn),消息可以通過網(wǎng)絡(luò)中的多種途徑到達(dá)目的地。這就使得藍(lán)牙m(xù)esh網(wǎng)絡(luò)的消息傳輸更加可靠,也正是由于這個(gè)原因,在網(wǎng)絡(luò)設(shè)計(jì)時(shí),我們才采用了泛洪技術(shù),沒用采用路由的方法。管理型網(wǎng)絡(luò)泛洪

藍(lán)牙m(xù)esh網(wǎng)絡(luò)采用網(wǎng)絡(luò)泛洪的方式傳輸消息,這樣可以使整個(gè)網(wǎng)絡(luò)更加可靠和高效。我們可以通過多種方式來優(yōu)化泛洪的工作,稱之為“管理型網(wǎng)絡(luò)泛洪”。這些方式如下:心跳

節(jié)點(diǎn)會(huì)周期性地向其它節(jié)點(diǎn)發(fā)送心跳消息,告知其它節(jié)點(diǎn)該節(jié)點(diǎn)處于活動(dòng)狀態(tài)。同時(shí)心跳消息還包含一部分?jǐn)?shù)據(jù),可以讓網(wǎng)絡(luò)了解其拓?fù)浣Y(jié)構(gòu),以及傳到其它設(shè)備需要的跳數(shù)。這部分信息可以用在TTL字段中。TTL

上文我們已經(jīng)提到,TTL(time

to

live)是藍(lán)牙m(xù)eshPDU中包含的一塊區(qū)域,它控制著某條消息允許跳躍的最大次數(shù)。設(shè)置TTL能夠讓節(jié)點(diǎn)控制消息中繼的次數(shù),避免不必要的消息中繼,從而降低功耗。

心跳消息(heartbeat

messages)可以用來確定每次消息發(fā)布時(shí)應(yīng)該選用的最適合的TTL值。消息緩存

每個(gè)節(jié)點(diǎn)都具有消息緩存能力。緩存中包含了最近接收的全部消息。如果發(fā)現(xiàn)新來的消息已經(jīng)存在于緩存中,則說明此條消息之前已經(jīng)被處理過了,那么這條消息將被立即丟棄。友誼藍(lán)牙m(xù)esh網(wǎng)絡(luò)中最顯著的優(yōu)化機(jī)制可能就是友節(jié)點(diǎn)和低功耗節(jié)點(diǎn)的配合了。正如前文所述,友節(jié)點(diǎn)可以保存消息,為低功耗節(jié)點(diǎn)服務(wù),這使得低功耗節(jié)點(diǎn)能夠以一種極低功耗的方式運(yùn)行。協(xié)議棧中消息的傳遞

某個(gè)節(jié)點(diǎn)通過底層的BLE協(xié)議棧接收到一條消息,通過承載層將其傳輸?shù)骄W(wǎng)絡(luò)層。網(wǎng)絡(luò)層通過各種校驗(yàn)機(jī)制來決定是否將其傳輸?shù)缴蠈訁f(xié)議棧。此外,PDU中還有一塊稱為網(wǎng)絡(luò)ID的區(qū)域,我們可以利用網(wǎng)絡(luò)ID來識(shí)別消息加密的NetKey。如果NetKey沒有被接收節(jié)點(diǎn)的網(wǎng)絡(luò)層所識(shí)別,這就表明它沒有相應(yīng)的NetKey,也就是說它不是這個(gè)子網(wǎng)絡(luò)的一員,所以這個(gè)PDU會(huì)被丟棄。PDU中還有一塊消息完整性檢查(MIC)區(qū)域。我們可以利用與PDU網(wǎng)絡(luò)ID對(duì)應(yīng)的NetKey來進(jìn)行消息完整性檢查,如果失敗了,那么這條消息也會(huì)被丟棄。backtocontentsBluetoothMesh25backto

contentsBluetoothMeshNetworking/AnIntroductionfor

Developers?2017BluetoothSIG

Proprietary.26

某個(gè)節(jié)點(diǎn)發(fā)送的消息可以被它附近的所有節(jié)點(diǎn)接收,不過有些節(jié)點(diǎn)會(huì)很快將消息丟棄,因?yàn)樗麄兣c這個(gè)節(jié)點(diǎn)不在同一個(gè)網(wǎng)絡(luò)或者子網(wǎng)絡(luò),它們之間沒有什么關(guān)系。同樣的原則也適用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論