【华为云技术分享】LwM2M协议的学习与分享
【摘要】 本文主要对于LwM2M协议进行了简单的介绍,包括协议的体系架构以及特性、对象、资源、接口的定义等,希望对你有所帮助。
1协议简介
LwM2M(Lightweight Machine-To-Machine)协议是由OMA提出并定义的一个适用于资源有限的终端设备的轻量级物联网协议,可以用于快速部署客户端、服务器模式的物联网业务。LwM2M为物联网设备的管理和应用建立了一套标准,它提供了轻便小巧的安全通信接口及高效的数据模型,以实现M2M设备管理和服务支持。
2 协议特性
1) 基于资源模型的简单对象
2) 资源操作:创建/检索/更新/删除/属性配置
3) 资源的观察/通知
4) 支持的数据格式:TLV/JSON/Plain Text/Opaque
5) 传输层协议:UDP/SMS
6) 安全协议:DTLS
7) NAT/防火墙应对方案: Queue模式
8) 支持多LwM2M Server
9) 基本的M2M功能:LwM2M Server,访问控制,设备,网络连接监测,固件更新,位置和定位服务,统计
3 体系架构

4 对象定义
首先对象是逻辑上用于特定目的的一组资源的集合。在使用对象功能之前,必须对该对象进行实例化,对象可以有多个对象实例,对象定义的格式如下。

OMA为LwM2M协议内置了8个对象。具体如下

LiteOS SDK端云互通组件配合Huawei Ocean Connect物联网开发平台能力,还支持的19号LwM2M APPDATA对象:

5 资源定义
LwM2M定义了一个资源模型,所有信息都可以抽象为资源以提供访问。资源是对象的内在组成,隶属于对象,LwM2M客户端可以拥有任意数量的资源。和对象一样,资源也可以有多个实例。
LwM2M客户端、对象以及资源的关系如图所示:

资源定义的格式

6接口定义
接口模型图如下

(1)由上图可知,协议的主体包括两部分LwM2M客户端和服务器端,服务器,部署在M2M服务供应商处或网络服务供应商处,客户端,部署在各个LwM2M设备上。
(2)图中主要包括4个逻辑接口具体如下
Bootstraping;引导接口:可以向客户端提供注册到服务器的必要信息,如服务器访问信息、客户端支持的资源信息等,不需要出厂之时预置在谁被中。
Registration:客户端注册接口,实现客户端与服务器互联,通知服务器客户端的“存在”和支持的功能。支持FOTA和SOTA。
Object/Resource Access :设备管理和服务启用接口,LwM2M允许提供程序访问对象实例和资源,从而使他可以更改设备设置和参数。设备管理与服务实现接口的主控方为LwM2M服务器,服务器向客户端发送指令,客户端对指令做出回应并将回应消息发送给服务器。
Reporting:信息上报接口,当服务不再正常运行时,用户能够从设备获取错误报告以及发送有关设备状态的查询。
(3)如图右侧可见:LwM2M协议采用了具备REST的风格的CoAP来完成消息和数据床底,同时使用了基于UDP的DTLS安全传输协议
消息流程示例

设备管理和服务实现接口
LwM2M的接口表示一类功能,设备管理和服务实现接口是LwM2M的四种接口之一。
接口的具体功能是由一系列的操作来实现的,LwM2M的4种接口被分为上行操作和下行操作。
上行操作:LwM2M Client -> LwM2M Server
下行操作:LwM2M Server -> LwM2M Client
LwM2M Server使用设备管理和服务实现接口来访问LwM2M Client的对象实例和资源。该接口包括7种操作:“Create”、“Read”、“Write”、“Delete”、“Execute”、“Write Attributes”和“Discover”。

设备管理和服务实现接口的交互过程如图所示:
设备管理和服务使能接口示例

对象创建和删除实例

以上就是对于LwM2M协议的简单介绍,包括协议的特性以及体系架构、对象、资源、接口等特性的相关定义等内容,希望对你有所帮助。

【华为云技术分享】LwM2M协议的学习与分享的更多相关文章
- 【重磅资料】ArchSummit全球架构师峰会·2019华为云技术专场资料下载
ArchSummit全球架构师峰会是InfoQ中国团队推出的重点面向高端技术管理者.架构师的技术会议,54%参会者拥有8年以上工作经验.ArchSummit聚焦业界强大的技术成果,秉承"实践 ...
- 【华为云技术分享】跟唐老师学习云网络 : Kubernetes网络实现
当今K8s独霸天下之时,咱们站在更高的角度,好好的看看K8s网络是以什么理念构筑的.以及一个容器集群的好保姆,是如何分别照顾 南北流量和东西流量的. 一.简单介绍下Kubernetes 略..容器集群 ...
- 机器学习笔记(九)---- 集成学习(ensemble learning)【华为云技术分享】
集成学习不是一种具体的算法,而是在机器学习中为了提升预测精度而采取的一种或多种策略.其原理是通过构建多个弱监督模型并使用一定策略得到一个更好更全面的强监督模型.集成学习简单的示例图如下: 通过训练得到 ...
- Python正则表达式,看完这篇文章就够了...#华为云·寻找黑马程序员#【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- 成为高手前必懂的TCP干货【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- 【我的物联网成长记6】由浅入深了解NB-IoT【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- 华为云·寻找黑马程序员#海量数据的分页怎么破?【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- MySQL 8.0新增特性详解【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- Spring Boot 最流行的 16 条实践解读!【华为云技术分享】
置顶:华为云618大促火热进行中,全场1折起,免费抽主机,消费满额送P30 Pro,点此抢购. Spring Boot是最流行的用于开发微服务的Java框架.在本文中,将与大家分享自2016年以来笔者 ...
- Python开发GUI工具介绍,实战:将图片转化为素描画!【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
随机推荐
- 不写代码、构建一个开源的 ChatGPT,总共需要几步?|Hugging News #1020
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- Memcached的基本操作
一.Memcache使用场景1.非持久化存储:对数据存储要求不高2.分布式存储:不适合单机使用3.key/value存储:格式简单,不支持list,array数据格式二.系统类$m=new Memca ...
- 多线程指南:探究多线程在Node.js中的广泛应用
前言 最初,JavaScript是用于设计执行简单的web任务的,比如表单验证.直到2009年,Node.js的创建者Ryan Dahl让开发人员认识到了通过JavaScript 进行后端开发已成为可 ...
- vue打包部署遇到的问题
网站上线中遇到的问题(跨域,404,空白页解决方案) 因为本人是后端开发工程师,对前端开发不了解,踩了很多坑,所以将踩过的坑分享出来,以供参考 网站地址:这里 这段时间将项目部署到服务器中引发了几个问 ...
- 云端golang开发,无需本地配置,能上网就能开发和运行
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 需求 学习golang的时候,需要一个IDE,还需要一 ...
- MicroSIP-3.21.3+pjproject-2.13.1+ opus-1.3.1+VS2019
本文记录了我通过VS2019编译MicroSIP-3.21.3开源项目的过程. Microsip:MicroSIP source code pjproject:Download PJSIP - Ope ...
- 解码注意力Attention机制:从技术解析到PyTorch实战
在本文中,我们深入探讨了注意力机制的理论基础和实际应用.从其历史发展和基础定义,到具体的数学模型,再到其在自然语言处理和计算机视觉等多个人工智能子领域的应用实例,本文为您提供了一个全面且深入的视角.通 ...
- go 中的循环依赖
什么是循环依赖 Go 中的循环依赖是指两个或多个包之间相互引用,形成了一个循环依赖关系.这种情况下,包 A 依赖包 B,同时包 B 也依赖包 A,导致两个包之间无法明确地确定编译顺序,从而可能引发编译 ...
- STM32F103 CAN通信波特率的计算方法
前言 以下的波特率计算和实例仅针对 STM32F1系列 最近看一下CAN通信,翻出来之前做过的STM32 CAN通信的项目代码,有些概念比较模糊了,如波特率是怎么计算的. 最近接触rt-thread比 ...
- AutoCAD ObjectARX 二次开发(2020版)--1,下载和部署开发环境--
教程说明: 本教程为2019年10月开始编撰,使用CAD官方最新版本的软件和库.对旧版本仍有参考价值. 本教程中使用的各种软件版本为官方指定匹配版本. 本教程需要你拥有编程基础,对于普通编程常识不再敷 ...