从M2M管理平台端,我们向远程设备发送一个读取(read)操作,目的是(the intent to)从该设备上的固件资源读取值。(顺便说一下,如果我们想重启远程设备,我们会从管理平台向设备发送一个执行操作(execute)。)因此,在LWM2M逻辑操作层,我们可以读取M2M设备上的资源,向资源中写入(write)一个新值,在设备中创建(create)一个全新的对象实例,对某个资源执行(execute)一个操作并做其他真正有用的事情。

读取操作(其语义是读取某些资源(如固件版本或温度)的值)以及该资源的地址(其URI)然后映射到CoAP协议的GET方法。资源标识符是类似/{Object ID}/{Object Instance ID}/{resource ID}的路径名。

例如.“mega short”路径/3/0/3表示对象设备的对象ID为“3”,该对象只有一个实例(用“0”表示没有被克隆的M2M设备),资源“固件版本”的标识恰好为“3”(在其对象内)。

因此,在CoAP协议级别,GET method请求被发送到M2M设备,并且响应被从设备发送到M2M服务器:例如,响应代码2.05后跟一些内容(即资源“固件版本”的值,例如版本1.1.8)。

因此,实际上CoAP GET方法可以与httpget请求相媲美。CoAP GET方法作为可确认的请求(期望某种确认以确保可靠的传输)发送。在HTTP中,响应内容将作为HTTP 200 OK消息的一部分发送,而在CoAP中,它可以作为响应代码为2.05的确认消息的一部分发送。(响应内容有点像猪背向确认消息,其中后者是确认可确认请求的主要原因)。

因此,CoAP被用作类似于HTTP的传输协议

因此,设备资源上的LWM2M操作(如获取固件版本或重新启动设备)映射到REST样式的资源表示请求和响应,这些请求和响应作为CoAP消息的一部分提供。

如前所述,CoAP本身有两层:使用方法代码和响应代码的请求/响应层,在其下面是一个包含消息的消息层。所有关于消息、方法代码和响应代码的信息都放在任何有效负载之前的单个CoAP消息头中。URI和有效负载内容类型作为CoAP选项携带(选项类似于HTTP头字段)。然后全部通过UDP。

回顾一下LWM2M的level,我们会看到如下情况:

LWM2M客户端<--将逻辑操作读取到资源固件版本--LWM2M服务器

看看CoAP协议级别,我们会看到如下内容:

LWM2M服务器端CoAP客户端请求:

CON+GET coap://M2M设备的IPv4地址/3/0/3

CON代表可确认的消息。

LWM2M客户端CoAP服务器响应:

ACK,2.05内容,ct=文本/普通,有效载荷:“1.1.8”

ACK表示确认消息,ct表示内容类型。

到目前为止,您可能注意到了术语client和server的微妙用法。

在lwm2m层,区分客户端和服务器,

在coap层,客户端和服务端的角色是相对的,在不同的请求和响应中不断变化。

在管理应用层,LWM2M客户端位于M2M设备、终端或模块上,LWM2M服务器位于M2M管理平台的一侧。

在CoAP级别,您可以在M2M设备和M2M平台上找到CoAP客户机,对于CoAP源服务器也是如此。

在上面的“读取固件版本”示例中,M2M设备管理服务器将CoAP GET请求作为CoAP客户端提交,而M2M的终端设备 将GET请求的响应作为CoAP源服务器提交。

lwm2m和coap协议 简解读相关推荐

  1. CoAP协议学习——CoAP基础

    [原连接地址] 更多CoAP文章请参考博文索引--[物联网学习笔记--索引博文] 推广 <IoT开发实战:CoAP卷>已经由机械工业出版社出版,如果想学习CoAP的更多内容请于淘宝.天猫或 ...

  2. 物联网的coap协议

    1. CoAP协议的简单介绍 CoAP是一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象.REST式交互以及可扩展的头选项等.这些关键特征使得因特网由简单的文档检索机制(World ...

  3. CoAP协议学习笔记 1.2 一张表了解 CoAP 协议

    1 前言 对于CoAP协议的学习,这份100多页的文档肯定没法背下来.我们只需把协议当作工具书,大体知道主体的内容,在遇到细节问题时再去具体章节找问题. 本篇笔记中先对 CoAP 协议内容做个基础了解 ...

  4. coap php 发送,如何使用coap协议向服务器发送数据包

    如何使用coap协议向服务器发送数据包以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! CoAP的URL 在HTTP的世界 ...

  5. 【安信可NB-IoT模组EC系列应用笔记⑨】使用CoAP协议接入OneNET Studio实现数据收发

    文章目录 前言 一.OneNET Studio CoAP协议设备创建 1.产品生成 2.添加设备 3.Token 验证信息生成 二.接入OneNET Studio 1.配置入网 2.登录请求 三.数据 ...

  6. CoAP 协议解析说明(转)

    CoAP 协议全面分析 HTTP与COAP 请求与响应示例 HTTP请求(文本格式) POST https://getman.cn/echo HTTP/1.1 User-Agent: Fiddler ...

  7. 物联网基础之了解CCP协议,COAP协议,MTQQ协议等

    首先介绍下背景.最近开始研究物联网的套件.公司选中了阿里物联网套件,所以博主就开始投入到漫长的开发文档中.由于博主并非嵌入式开发者,所以一些名字没有听过,这对文档的阅读造成了不少的困扰,所以在此记录一 ...

  8. NBIOT 移远BC28模块+stm32开发板例程、教程(打通TCP、COAP协议)

    为了开发者能够快速入门BC28的开发,加快开发者的项目进度,开发出此款针对BC28的stm32开发板和完善的发送网络数据的示例程序(TCP协议.COAP协议),程序流程逻辑清楚,注释完善,上手就可以玩 ...

  9. 物联网协议Coap协议介绍

    COAP协议简介 Coap(Constrained Application Protocol)是一种在物联网世界的类web协议,它的详细规范定义在 RFC 7252.COAP名字翻译来就是" ...

最新文章

  1. 学习Mybatis与mysql数据库的示例笔记
  2. Jmeter --- 分布式测试
  3. mysql查询不到邮件_mysql – sql查询通过电子邮件获取用户列表
  4. VTK:图片之ImageCheckerboard
  5. .NET Core 中的 Generic Host快速使用指南
  6. (Android Studio)添加文本框
  7. 一分钟在Linux 环境 搭建 SFTP服务器
  8. python argparse 和opencv模块的组合使用_[记录]Python2.7使用argparse模块
  9. PostgreSQL归档配置及自动清理归档日志
  10. bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)
  11. oracle创建哈希索引,ORACLE10g新特性——全局HASH分区索引
  12. 【C语言】小游戏系列——三子棋(保姆级教程)
  13. 获取员工其当前的薪水比其manager当前薪水还高的相关信息--2-5
  14. Vmware Ubuntu虚拟机磁盘扩容(非常简单)
  15. java php同时访问数据库,Java Spring中同时访问多种不同数据库的代码实例分享
  16. 如何实现脑肿瘤红黄绿分割展示
  17. 一些常用的编程语言和他们的特点
  18. 本原勾股数的表示方法
  19. 关于if-else配对的就近原则问题(适合初学者)
  20. 女生适合学自然语言处理吗?

热门文章

  1. Tree Shaking和sideEffects配置
  2. 为什么说真正的高手都有窄门思维?
  3. 高斯判别分析- GDA原理简介
  4. 基于ARM Cortex-A8和Android 4.x的联动报警系统 (Android 、A8、Linux、驱动、NDK)
  5. 2019最新奶茶隐藏点单攻略!据说只有单身狗才会觉得好喝的餐单?
  6. 【无标题sdasd】
  7. 【路径规划】RRT(Rapidly-exploring Random Trees)算法
  8. 软考 - 01 考试范围及知识点
  9. nginx配置本地静态资源路径
  10. php视频怎么看,教你“如何巧看PHP中文网课程视频,悄悄成为高手?”