OneNET协议之LWM2M+CoAP
OneNET基础通信套件架构
- SDK的架构如图所示,包括了三部分的内容,最下层是基于UDP协议的CoAP实现,中间是基于CoAP的LWM2M协议实现,最上层是在LWM2M协议里面使用的IPSO定义的资源模型,用于对传感器以及传感器属性进行标识,该部分内容遵循IPSO组织制定的Profile规范。
LWM2M协议简介
LWM2M是OMA组织制定的轻量化的M2M协议。LwM2M定义了三个逻辑实体:
- LWM2M Server 服务器;
- LWM2M Client 客户端,负责执行服务器的命令和上报执行结果;
- LWM2M 引导服务器 Bootstrap Server,负责配置LWM2M客户端。
在这三个逻辑实体之间有4个逻辑接口:
- Device Discovery and Registration:客户端注册到服务器并通知服务器客户端所支持的能力;
- Bootstrap:Bootstrap Server 配置 Client ;
- Device Management and Service Enablement:指令发送和接收;
- Information Reporting:上报其资源信息。
LWM2M协议栈:
- LWM2M Objects:每个对象对应客户端的某个特定功能实体。LWM2M规范定义了以下标准Objects,比如:
(1) urn:oma:lwm2m:oma:2; (LWM2M Server Object);
(2) urn:oma:lwm2m:oma:3; (LWM2M Access Control Object);
(3) 每个object下可以有很多 resource,比如 Firmware object 可以有 Firmware 版本号,size 等 resource;
(4) Vendor可以自己定义object。- LWM2M Protocol:定义了一些逻辑操作,比如Read, Write, Execute, Discover or Observe等。
LWM2M 协议的具体内容和消息格式可以参考OMA的网站
https://en.wikipedia.org/wiki/OMA_LWM2M
COAP协议简介
- CoAP(Constrained Application Protocol)协议是IETF提出的一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象、REST式交互以及可扩展的头选项等。CoAP协议基于REST构架,REST是指表述性状态转换架构,是互联网资源访问协议的一般性设计风格。为了克服HTTP对于受限环境的劣势,CoAP既考虑到数据报长度的最优化,又考虑到提供可靠通信。一方面,CoAP提供URI,REST式的方法如GET、POST、PUT和DELETE,以及可以独立定义的头选项提供的可扩展性。另一方面,CoAP基于轻量级的UDP协议,并且允许IP多播。为了弥补UDP传输的不可靠性,CoAP定义了带有重传机制的事务处理机制。并且提供资源发现机制,并带有资源描述。
CoAP协议栈示意图:
- CoAP由UDP作为承载,遵循UDP基本的协议报文格式,UDP数据内容部分按照CoAP协议报文格式进行写入传输。
CoAP协议格式说明如下:
- 【Ver】版本编号,指示CoAP协议的版本号。类似于HTTP 1.0 HTTP 1.1。版本编号占2位,取值为01B。
- 【T】报文类型,CoAP协议定义了4种不同形式的报文:CON报文,NON报文,ACK报文和RST报文。
- 【TKL】CoAP标识符长度。CoAP协议中具有两种功能相似的标识符,一种为Message ID(报文编号),一种Token(标识符)。其中每个报文均包含消息编号,但是标识符对于报文来说是非必须的。
- 【Code】功能码/响应码。Code在CoAP请求报文和响应报文中具有不同的表现形式,Code占一个字节,它被分成了两部分,前3位一部分,后5位一部分,为了方便描述它被写成了c.dd结构。其中0.XX表示CoAP请求的某种方法,而2.XX、4.XX或5.XX则表示CoAP响应的某种具体表现。
- 【Message ID】报文编号。
- 【Token】标识符具体内容,通过TKL指定Token长度。
- 【Option】报文选项,通过报文选项可设定CoAP主机、CoAP URI、CoAP请求参数和负载媒体类型等等。
- 【1111 1111B】CoAP报文和具体负载之间的分隔符。
CoAP支持多个Option,CoAP的Option的表示方法比较特殊,采用增量的方式描述。一般情况下Option部分包含Option Delta、Option Length和Option Val三部分:- 【Option Delta】表示Option的增量,当前的Option的具体编号等于之前所有Option Delta的总和。
- 【Option Length】表示Option Val终端设备的具体长度。
- 【Option Val终端设备】表示Option具体内容。
CoAP协议报文中具体数值的意义参考CoAP协议:IETF RFC7252
OneNET协议之LWM2M+CoAP相关推荐
- CoAP协议学习笔记——CoAP格式详解
CoAP是受限制的应用协议(Constrained Application Protocol)的代名词.在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的.但是对于小型设备而言, ...
- 物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
物联网协议 Protocol CoAP XMPP RESTful HTTP MQTT Transport UDP TCP TCP TCP Messaging Request/Response Publ ...
- IoT 设备接入服务,你从这篇博客就能快速上手~
写作前面 本篇博客涉及的内容为华为 IoT 起手知识,正式开始前优先了解一下相关概念. 华为 IoT,即设备接入服务(IoT Device Access),基于华为云的物联网平台,提供设备连接上云,设 ...
- BC26通过LWM2M协议连接ONENET,AT流程,STM32代码
onenet平台操作 登录onenet后,进入控制台 选择NB-IoT物联网套件 新建产品 产品名字.类别根据自己情况填,协议选择LWM2M 产品新建成功 点击产品名字,进入产品详情 给产品添加设备 ...
- 【安信可NB-IoT模组EC系列应用笔记⑨】使用CoAP协议接入OneNET Studio实现数据收发
文章目录 前言 一.OneNET Studio CoAP协议设备创建 1.产品生成 2.添加设备 3.Token 验证信息生成 二.接入OneNET Studio 1.配置入网 2.登录请求 三.数据 ...
- 物联网常用协议:MQTT、CoAP、LwM2M、HTTP、LoRaWAN和NB-IoT
目录 1.MQTT协议 2.MQTT-SN协议 3.CoAP协议 4.LwM2M协议 5.HTTP协议 6.LoRaWAN协议 7.NB-IoT协议 物联网,即物的互联网,属于互联网的一部分.物联网将 ...
- 主流物联网协议选择:MQTT、CoAP 还是 LwM2M?
随着物联网技术的发展与普及,越来越多的智能设备具备了网络连接与数据传输能力.由于物联网场景复杂多样,设备端硬件条件.网络稳定性.流量限制.设备功耗以及设备连接数量等多方面因素造成物联网设备的消息传递与 ...
- 物联网常用的网络协议:MQTT、AMQP、HTTP、CoAP、LwM2M
物联网常用的网络协议:MQTT.AMQP.HTTP.CoAP.LwM2M 物联网设备间沟通的语言,就是网络协议. 设备间想相互交流,通信双方必须使用同一种"语言".比如说你和中国人 ...
- CoAP协议学习笔记 3.1 CoAP协议翻译 加密基础介绍
CoAP协议学习笔记可点此查看. 1 前言 在之前的学习中,没有过多关注加密.但实际部分厂家的IoT平台(阿里云.OneNET)已经启用了相关安全处理,有必要深入学习下. 在 CoAP 协议 RFC7 ...
- NB-IoT使用CoAP协议接入华为IoT平台(NB-IoT项目实战专栏—8)
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_38106923/article/ ...
最新文章
- 考题:正则表达式 .*? 和 .* 有区别吗?
- C# 窗体实例化一次
- CTFshow 命令执行 web58
- if you feel lonely
- 奇怪吸引子---Chua
- 【数据结构与算法】之面试必考的“二分算法”系统梳理
- 前端学习(1993)vue之电商管理系统电商系统之根据id删除数据
- log4net日志文件的应用
- 武未转变服务器tp,未转变者怎么tp别人 | 手游网游页游攻略大全
- 1800万元砸向子公司 点击网络巩固SaaS业务
- PyTorch学习(8)-问答系统、文本摘要和大规模预训练语言模型
- 查天气43课-46课
- Cuda:invalid device pointer
- 批量找关键词的软件-再也不用担心找不着 关键词了
- 阿蛮歌霸未能成功访问服务器,阿蛮歌霸KTV点歌软件提示“歌库数据库连接不正常”的解决方法...
- 服务器虚拟化厂家排名,鹿死谁手?桌面虚拟化厂商实力大比拼
- [精品]CAD批量处理工具
- html级联选择器,级联选择器
- 单词记忆系统二:音标字符输入(re从字符串中提取音标字符;依序打印音标字符;输入对应序号;替换序号。-> 完成“音标输入”)
- Mysql上线长时间以后重新发起请求报错