物聯網LwM2M協議了解一下!
LwM2M全稱lightweight Machine to Machine,是OMA(open Mobile Alliance)定義的物聯網協議,主要可以使用在資源受限(包括存儲、功耗等)的嵌入式設備上。其官方網站http://www.openmobilealliance.org,協議的下載地址http://openmobilealliance.org/release/LightweightM2M/。主要理解下LwM2M協議實現功能及網路框架,對具體的實現定義、加密處理等流程還是參考協議比較清晰(基於V1.0.1版本)。具體內容參考協議說明文檔。
名詞解釋
OMA-open Mobile Alliance
CoAP-Constrained Application Protocol
LwM2M-Lightweight Machine to Machine
DTLS-Datagram Transfer Layer Security
SMS-Short Messaging Service
TLV-Type-Length-Value
JSON-JavaScript Object Notation
網路基本框架
協議定義了四種介面,並對應不同的功能:
Bootstrap、Client Registration、Device managment and Service Enablement及Information Report。
這些介面的操作對象為:對象Object,對象實例Object Instance及資源Resources。為實現不同功能劃分,協議定義了八種對象,ID及命名分別為0.Security Object、1. Server Object、2. Access Control Object、3. Device Object、4. Connectivity Monitoring Object、5. Firmware Update Object、6. Location Object、7. Connectivity Statistics Object。對象和對象實例比較好理解,資源協議的說明為邏輯概念,相當於一個對象實現一個功能所佔用的資源。資源可以配置不同的許可權: 只讀、或讀寫,可由操作Access Control對象進行維護。在介面對元素進行操作時,可以在不同屬性級別上進行操作:O、OI、R,概要講優先順序R>OI>O。
伺服器客戶端網路關係
一個終端至少可以接入一個服務商伺服器,也可以接入多個服務伺服器,多個伺服器時需要進行選擇操作,依據為bootstrap引導時獲取的相關信息。而服務商可以和網路商屬於同一家,亦可是不同家,其大概關係。
協議的流程及操作
主要流程:需要先進行Bootstrap獲取相應信息,完成後進行Client Registration處理,只有成功在伺服器端註冊相關信息後,才可通過Device managment and Service Enablement及Information Report介面來控制和傳送相關需要的信息。
協議定義的相關介面的操作和操作方向如下:Uplink表示客戶端到伺服器端的傳送,而Downlink表示伺服器端到客戶端的傳送。理解上LwM2M的消息沒有對稱的反饋消息,由於LwM2M承載在CoAP協議上,使用CoAP的get、post、put、delete方式(協議詳細說明每種operation對應的CoAP操作方式),對於相應消息成功或失敗的反饋是通過CoAP協議本身的交互來實現的。LwM2M載荷支持四種格式 plain text、Opaque、TLV、JSON,這四種協議要求伺服器端必須都要支持,而在客戶端必須支持TLV格式。
Bootstrap屬於邏輯功能,不一定存在真實交互,流程可以分為四種:Factory Bootstrap:廠家存儲相應信息在設備中;Bootstrap from Smartcard:信息存儲在Smartcard中;Client Initiated Bootstrap:客戶端請求伺服器引導信息數據;Server Initiated Bootstrap:伺服器發起引導程序,前提是bootstrap server已經確定客戶端可以訪問。而在Bootstrap過程實現的嘗試流程:Smartcard mode => Factory Bootstrap mode =>採用存儲的信息進行register=> Server Initiated Bootstrap ClientHoldOffTime內=>發起重新bootstrap流程。
在Bootstrap完成後進行Registration操作,這個過程有一些能力信息。如終端伺服器交互工作模式:U(UDP)、UQ(UDP with Queue Mode)、S(SMS)、SQ、US、UQS(UDP with Queue Mode and SMS),而UQSQ and USQ 在V1.0.1版本中不支持。理解上這些需要和客戶端的工作模式設置一致,如在NB的PSM模式下無法使用實時接收伺服器側數據,則需要啟用Q模式進行Buffer相應數據。
在Registration完成後,才可啟用Device Management and Service Enablement及Information Report的介面服務,而這兩類介面服務的主控方為伺服器端。如Information Reporting介面,網路可以通過Observe、Cancel Observation來進行客戶端Notify信息上報開關的控制。
協議層次結構
LwM2M屬於應用層協議,位於CoAP協議之上,而CoAP可以進行DTLS加密處理,最後通過UDP或SMS方式傳送。
TAG:嵌入式ARM |