OMA Lightweight M2M (LwM2M) 1.0 技术规范笔记

本笔记基于 OMA 发布的 Lightweight Machine to Machine Technical Specification Version 1.0.1 (OMA-TS-LightweightM2M-V1_0_1-20170704-A),旨在概述 LwM2M 1.0 协议的核心概念、架构、接口、安全机制、数据格式以及对象模型。

一、概述

LwM2M (Lightweight Machine-to-Machine) 是一种轻量级应用层通信协议,专为资源受限的物联网设备设计,旨在实现设备管理和服务使能。其主要特点包括:

  • 轻量级协议设计: 采用简洁的资源模型和高效的数据传输机制。
  • 多种数据传输格式: 支持 TLV、JSON、纯文本和二进制数据格式。
  • 多种传输协议: 支持 UDP 和 SMS 传输。
  • 基于 DTLS 的安全机制: 提供认证、机密性和数据完整性保障,支持多种凭证类型(证书、原始公钥、预共享密钥)。
  • 队列模式: 允许设备在断开连接时通知服务器,并在重新连接时接收积压的消息。
  • 多服务器支持: 允许设备与多个 LwM2M 服务器通信。
  • 安全凭证和访问控制列表的集中配置: 通过专用的 LwM2M 引导服务器 (Bootstrap Server) 进行配置。

二、架构

LwM2M 采用 客户端-服务器 (Client-Server) 架构:

  • LwM2M 设备: 作为 LwM2M 客户端 (Client),运行 LwM2M 客户端软件,负责与服务器通信并执行服务器指令。
  • M2M 服务、平台或应用程序: 作为 LwM2M 服务器 (Server),负责管理设备并提供相关服务。

LwM2M 架构包含以下四个接口:

1.

引导接口 (Bootstrap Interface):

  • 功能: 为 LwM2M 客户端提供必要的配置信息,使其能够注册到 LwM2M 服务器。
  • 主要操作:
    • Bootstrap-Request: 客户端向引导服务器发送请求以启动引导过程。
    • Write/Delete: 引导服务器向客户端写入或删除配置信息。
    • Bootstrap-Finish: 引导服务器指示客户端引导过程结束。
  • 引导模式:
    • 工厂引导 (Factory Bootstrap): 设备出厂时已预配置引导信息。
    • 智能卡引导 (Bootstrap from Smartcard): 从智能卡中读取引导信息。
    • 客户端启动引导 (Client Initiated Bootstrap): 客户端主动从引导服务器获取引导信息。
    • 服务器启动引导 (Server Initiated Bootstrap): 服务器主动配置客户端引导信息。

2.

客户端注册接口 (Client Registration Interface):

  • 功能: 客户端向服务器注册、维持注册状态以及注销。
  • 主要操作:
    • Register: 客户端向服务器发送注册请求,包含设备标识符、支持的 LwM2M 版本、对象和对象实例列表等信息。
    • Update: 客户端定期或根据事件更新注册信息,例如刷新注册生命周期、修改绑定模式或对象实例列表等。
    • De-register: 客户端通知服务器其不再可用,例如设备重置或关机。

3.

设备管理与服务使能接口 (Device Management & Service Enablement Interface):

  • 功能: 服务器访问客户端上的对象实例和资源,以实现设备管理和提供相关服务。
  • 主要操作:
    • Read: 读取资源、对象实例或对象的所有实例的当前值。
    • Discover: 发现对象、对象实例或资源上附加的 LwM2M 属性,例如观察参数。
    • Write: 修改资源或对象实例的值,支持替换和部分更新机制。
    • Write-Attributes: 修改通知属性,例如最小/最大周期、阈值等。
    • Execute: 执行资源上的操作,例如触发设备重启或执行特定功能。
    • Create: 在客户端上创建对象实例。
    • Delete: 删除对象实例。

4.

信息报告接口 (Information Reporting Interface):

  • 功能: 服务器观察客户端资源的变化,并在新值可用时接收通知。
  • 主要操作:
    • Observe: 服务器向客户端发送观察请求,指定要观察的对象、对象实例或资源。
    • Notify: 客户端在满足观察条件时向服务器发送通知,包含资源的新值。
    • Cancel Observation: 服务器取消对资源或对象实例的观察。

    三、对象模型与资源模型

    • 资源 (Resource): LwM2M 客户端提供的信息的最小单位,每个资源都属于一个对象。
      • 资源可以是可读、可写、可执行或可观察的。
      • 资源可以是单一实例或多重实例。
    • 对象 (Object): 资源的逻辑分组,每个对象由 OMA 命名机构 (OMNA) 分配唯一的对象标识符 (Object ID)。
      • 对象定义中指定了资源的操作(读取、写入、执行)和特性(必需或可选)。
      • 对象可以包含多个对象实例 (Object Instance),每个实例包含一组资源实例。
    • 访问控制对象 (Access Control Object): 用于管理对对象实例的访问权限,定义哪些服务器可以对特定对象实例执行哪些操作。

    四、安全机制

    LwM2M 1.0 基于 DTLS (Datagram Transport Layer Security) 协议实现安全通信:

    • 认证: 采用相互认证机制,确保通信双方的身份。
      • 客户端和服务器都需要在 DTLS 握手过程中验证彼此的身份。
      • 引导服务器和客户端之间的认证同样采用相互认证。
    • 机密性和数据完整性: DTLS 加密通信数据并提供完整性保护。
    • 凭证类型:
      • 预共享密钥 (Pre-Shared Keys, PSK): 双方共享的密钥,适用于资源受限的设备。
      • 原始公钥 (Raw Public Keys, RPK): 使用非对称加密技术,但无需完整的公钥基础设施。
      • X.509 证书 (X.509 Certificates): 基于公钥基础设施 (PKI) 的认证机制,提供更强大的安全保证。
    • SMS 通道安全: LwM2M 1.0 支持使用 SMS 作为传输通道,并提供两种安全模式:
      • SMS NoSec 模式: 不提供安全保护,仅用于调试或特定场景。
      • SMS Secured 模式: 使用基于 [3GPP TS 31.115] / [ETSI TS 102 225] 的安全数据包结构来保护 SMS 负载。

    五、数据格式

    LwM2M 1.0 支持以下四种数据格式:

    1.纯文本 (Plain Text): 用于传输简单的文本数据,例如设备制造商名称。

    2.不透明 (Opaque): 用于传输二进制数据,例如固件映像或特定应用的二进制格式。

    3.TLV (Type-Length-Value):

    • 适用于资源受限设备的高效二进制编码格式。
    • 最小开销为 2 字节,最大为 5 字节。
    • 支持多重资源实例的编码。
    • 自描述性,允许解析器跳过未知资源。

    4.JSON (JavaScript Object Notation):

    • 基于 [SENML] 规范,并扩展以支持 LwM2M 对象链接数据类型。
    • 适用于传输多个资源实例,例如返回对象层次结构。
    • 支持时间字段,用于传输历史版本的通知。

      六、对象定义与注册

      • 对象定义: LwM2M 对象定义遵循特定的模板,并使用 XML 文件进行描述。
        • 对象定义文件需要符合 OMA 提供的 XML Schema。
        • 对象定义中包含对象名称、对象 ID、实例类型(单一/多重)、必需/可选标志、对象 URN 以及资源定义等。
      • 对象注册: LwM2M 对象需要向 OMNA Lightweight Object registry 注册。
        • 对象 URN 的格式为 urn:oma:lwm2m:{oma,ext,x}:{Object ID}[:{version}]
        • 对象注册信息可在 OMNA 门户网站上找到。

      七、其他重要概念

      • 对象版本控制: 允许对象在不更改对象 ID 的情况下进行版本升级,以支持对象特性的演变。
        • 对象版本由主版本号和次版本号组成,例如 2.2
        • 对象版本信息在对象注册和发现操作中传达。
      • 对象链接资源: 用于引用特定对象实例,例如在对象层次结构中建立链接。
      • 队列模式: 允许 LwM2M 服务器在设备离线时将消息排队,并在设备上线时发送。
        • 设备通过发送注册更新消息来通知服务器其已上线。
        • 服务器根据应用服务器的指示决定是否发送消息。
      • 更新触发机制: 服务器可以通过执行设备对象实例中的 Registration Update Trigger 资源来触发设备发送注册更新消息,从而使其上线并注册到 UDP。

      八、总结

      LwM2M 1.0 提供了轻量级、高效且安全的设备管理和通信机制,适用于资源受限的物联网设备。其模块化设计、灵活的对象模型和多种传输协议使其能够适应各种应用场景。

      注意: 本笔记仅涵盖 LwM2M 1.0 的核心内容,建议参考官方规范以获取更详细的信息。

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值