「物联网」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-Java 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方式传送。