CoAP协议学习

coap协议学习之搭建coap测试环境 本篇目标:简单初步认识coap协议,以及怎么去测试自己搭建得coap协议应用。 材料准备: 55.0版本的火狐浏览器与copper插件() linux系统(搭建在虚拟机下的 Ubantu)与libcoap开源程序() COAP协议简单介绍 ... 阅读详情
CoAP(Constrained Application Protocol)协议是为资源受限情况(功率、存储空间等)下定义使用的网络传输协议。对于CoAP的底层协议,目前RFC文档中使用UDP,可以采用DTLS加密处理,加密是UDP端口5684,非加密时端口为5683,同样可以通过SMS、TCP或SCTP传输,而UDP-lite和UDP zero checksum目前协议不支持。而CoAP的协议方式定义和HTTP类似,所以可以采用代理服务器进行协议间转换。
消息结构

协议对消息的总长度做了一些定义,主要期望数据在下面协议层次封装时不需要拆包出来,所以消息的总长度,依赖于下层协议的数据包的总长度。
Version (Ver)
占用2bits,携带版本号信息,目前设置为1,其它值留于后续协议扩展使用。
Type (T)
占用2比特,指示消息类型,消息分为:confirmable(CON)-0、Non-Confirmable(NON)-1、Acknowledgement(ACK)-2、Reset(3)。UDP传输不提供可靠传输,在CoAP层添加了机制可选择用于保证传输的可靠,当然对于流程也需要更多控制,包括拥塞控制、重传间隔、重传次数、定时器等等。
Token Length (TKL)
占用4比特,指示token占用长度,其值目前定义为0-8有效,9-15目前不使用。
Token
占用长度0-8字节,其真实长度由Token Length的值获得。Token主要用来关联对应Request和Response消息。
Code
占用8比特,其中3个比特用于分类指示,剩余的5比特用于指示详细的编码类型,指示请求或者回应具体编码格式内容,具体为请求的方法及出错标志的回复等。表示方式等级.详细指示,0.00则表示为空消息(Empty)。类型分为0-a request、2-a success response、4-a client error response、5-a server error response。具体如下

关于Request的四个方法Get、Post、Put、Delete的不同,Get类似读取动作,而Post、Put请求创建、修改资源,Delete请求删除资源。关于Post和Put的具体不同,两者的定义The PUT method requests that the resource identified by the request URI be updated or created with the enclosed representation. The POST method requests that the representation enclosed in the request be processed.理解上Put、Post操作类似,而Put需要对具体的资源进行操作,所以说明上强调URI,而Post可以对资源集合操作。
Message ID
占用16比特,按照一定次序要求的消息编号,能够用来区分不同的消息。主要用来进行消息重复传输判断、ACK/Reset和对应消息的关联等处理。
Option
Option包含三部分内容Option Number、the length of option value及option value。Option Number的表现形式不是绝对值,而是填写的与前一个Option Number的差值Option Delta,第一个Option Delta基于初始Option Number为0基础上运算。Option的格式定义如下:

Option Delta (extended)、Option Length (extended)的长度为0-2字节,而Option Value的长度通过Option Length或extended值指示,Option Delta、Option Length分别占用4比特,当取值为0-12时可直接使用,而13是表示使用一个字节扩展表示(使用时需要将真实值减去13),而14则表示使用两个字节的扩展表示(使用时需要将真实值减去269),Option Delta域15不使用,用于避免和有效负载前的0xFF冲突,而Option Length的15保留,目前未使用。Option value可以为0长度、opaque类型、unsigned int类型及String类型。
CoAP定义了多种Options,这些option可以定义目标地址表示类型、携带信息表示类型等,既可以使用在requests中,也可以使用在responses中。Options分成critical和elective类型,区别在于接收端处理相应option出错时是否需要返回”Bad option”, critical是需要返回错误的,而elective可以选择忽略相应option。Option的类型是在其number中表示的,奇数表示为critical类型,偶数表示为elective类型,同样在number中携带的还有代理安全模式及秘钥类型配置。
消息及其类型对应关系

1表示可使用,0表示不能使用,x表示在RST时可用。Response可以和ACK一起发送,这种情况称为Piggybacked,也可以采用独立发送separate模式。
参考协议
rfc7252 The Constrained Application Protocol (CoAP)
CoAP协议学习笔记(一) CoAP是一种应用层协议,运行于UDP协议之上,非常小巧,最小的数据包仅4字节。 CoAP协议定义 CoAP协议的交互模型与HTTP的客户端/服务端模型类似。然而,在M2M的交互场景中,CoAP的目标是设计一个通用的网络协议,满足受限环境的特殊需求,特别考虑了能源、楼宇自动化和其他M2M应用。 需要注意的是CoAP并不能代替HTTP协议,但是对于那些小设备(例如CPU为8bit的单片机,内存32Kb,Flash 256Kb)而言CoAP的确是一个更好的解决方案。 CoAP协议特点 满足受限环境下M 阅读详情

相关推荐

coap:Spring Cloud DataFlow(SCDF)应用程序。 约束应用协议(CoAP)协议的入门

CoAP源和处理器 是一种RESTful Web传输协议,专门用于物联网(IoT)中受约束的节点和受约束的网络。 SCDF CoAP模块与CoAP网络集成在一起,允许实时监视或更新CoAP资源(传感器,控制器,灯等)。 支持coaps: coap:和coaps:协议架构,允许UDP和DTLS传输。 CoAP Server coap-server源应用程序本身就是CoAP Server ,因此可以直接从其他CoAP资源接收CoAP请求。 小费 可帮助测试和探索CoAP应用程序初学者。 要了解有关此应用程序和支持的属性的更多信息,请查看以下链接。 CoAP观察源 订阅CoAP observable资源。 侦听CoAP资源更新,并将主体作为消息有效负载发出。 CoAP服务器源 充当CoAP服务器,侦听CoAP请求,并将主体作为消息有效负载发出。 CoAP客户端处理器 在输入消息上,将

杰理之COAP【篇】

Ver(版本编号) 固定为0b01 T(报文类型) coap协议中定义了4中报文类型,分别为: CON(Confirmable,T=0b00):需要确认的报文类型。 NON(Non-Confirmable, T=0b01):不需要确认的报文类型。 ACK(Acknowledgement, T=0b10):应答报文 Reset(T=0b11):复位报文 TKL(标签长度) Code(格式:c(3bit class type).dd(5bit detail code)) (1)表示请求时 Code=0.01,表

u013820168的博客 481

Zigbee开发环境搭建:从驱动安装到程序烧录全指南

本文提供了一份详尽的Zigbee开发环境搭建全指南,涵盖从驱动安装到程序烧录的完整流程。重点介绍了使用SmartRF Flash Programmer和仿真器进行程序下载的关键步骤,并详细说明了USB转串口驱动的配置方法,帮助开发者快速构建稳定的Zigbee开发基础。

weixin_29195217的博客 394

CoAP协议详解:物联网通信的轻量级解决方案

CoAP(Constrained Application Protocol)是一种专门为物联网(IoT)设计的应用层协议。它的目标是为受限设备和网络提供轻量级的通信解决方案。CoAP协议基于REST(Representational State Transfer)架构,类似于HTTP协议,但更加轻量和高效。轻量级:适用于资源受限的设备,如传感器和嵌入式系统。低功耗:设计上考虑了低功耗的需求,适合电池供电的设备。支持异步通信:可以处理异步请求和响应。可靠性:支持确认消息和重传机制。

嵌入式极客小张 3954

RV1126双摄IMX577驱动移植避坑:从RK3588到RV1126的dts配置与内存崩溃解决实录

本文详细记录了在RV1126平台上移植RK3588的IMX577双摄驱动的完整过程,重点解决了dts配置与内存崩溃问题。通过分析硬件架构差异、驱动移植关键点及CMA内存越界问题,提供了两种有效解决方案,并分享了双摄同步优化与网络调试的实战经验,为嵌入式视觉系统开发提供实用参考。

weixin_42641741的博客 405

PTA-浙大版 《Python程序设计》 第三章编程题目及答案

博主第一次写优快云的博客,所以排版上可能有些不尽人意,代码部分均为自己的思路,可能复杂或者考虑欠妥,欢迎大家一起讨论~ 第一题:大于身高的平均值 这里用了np数组求得平均数,当然for循环累加也是可以的 import numpy as np data = input().split() data = list(map(int,data)) avg = np.mean(data) for i in data: if i > avg: print(i,end = '

Legendwqs的博客 1万+

分布式项目(三)CoAp client and server

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33794672的博客 1362

手把手教你用Boot-Repair快速修复Ubuntu启动分区缺失(附详细命令行步骤)

本文详细介绍了如何使用Boot-Repair工具快速修复Ubuntu启动分区缺失问题,包括诊断、应急准备、自动修复和手动命令操作。通过grub rescue模式下的关键命令和Boot-Repair的图形界面操作,帮助用户高效解决启动分区故障,确保系统恢复正常运行。

weixin_29229989的博客 563

CoAP学习笔记——CoAP格式详解

CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常小巧,最小的数据包仅为4字节。

物联网 IoT 经验分享 4万+

【微服务】Spring Aop原理深入解析

spring原理深度解析

congge 1万+

Transformer实战(1)——词嵌入技术详解

词嵌入的核心思想是,通过将词语表示为稠密的向量,使得计算机可以更有效地处理和理解文本中的语义关系。在本节中,我们学习了单词分布式表示的概念及其实现,包括静态嵌入和动态嵌入,实现了 Word2Vec 和 GloVe 模型,并介绍了如何使用 Gensim API 探索嵌入空间。

盼小辉丶的博客 1万+

概述CoAP协议

本文主要介绍CoAP的一些知识,CoAP协议是一个非常庞大的系统,笔者根据自己实际应用的需要,将一些可能使用的重要知识点罗列出来,便于工作和学习中查阅。

mftang的博客 2976

信息传输仿真:卫星通信系统仿真_(12).基于SystemVue的卫星通信仿真

SystemVue是Cadence公司开发的一款用于系统级设计和仿真的软件工具。它主要用于无线通信系统的设计和验证,特别是在卫星通信、雷达、射频和微波通信等领域。SystemVue提供了一个集成的环境,用户可以通过拖拽和连接各种预定义的模块来构建复杂的通信系统模型,从而进行性能分析和优化。

2401_87715305的博客 1370

CoAP协议学习——CoAP基础

CoAP协议学习——CoAP基础

weixin_34308389的博客 168

【异常】安装hermes-agent时提示GnuTLS recv error (-110): The TLS connection was non-properly terminated.

Git克隆仓库时出现TLS连接异常报错的解决方案摘要: 当执行git clone命令时遇到"GnuTLS recv error (-110)"报错,通常由网络不稳定、缓冲区不足或证书验证问题导致。主要解决方案包括:1)增大Git HTTP缓冲区(git config --global http.postBuffer 524288000);2)使用GitHub镜像站加速克隆;3)临时禁用SSL验证进行测试;4)检查并调整代理配置;5)改用SSH协议克隆。建议优先尝试增大缓冲区和镜像站方案,

奶爸的编程之路,也就一周冷个三天 1350

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

CoAP 协议学习

物联网应用协议学习 本来不打算做这个笔记的,因为这些东西很老了,并且网上已经很泛了。 但是在开发工作中还是陆陆续续有了一些新的发现,譬如新的阐述、有趣的内容、或者有更好的梳理总结。就像每一段时光都值得被好好记录,每一次闪现的灵光都不应消失在碎片化记录中。 于是有了这一系列笔记,这是我的物联网应用协议知识体系。 第一部分 TCP/IP基础 《TCP/IP详解》是2000年机械工业出版社...

IoT小能手 5081

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

CoAP 协议学习总结

CoAP 协议学习总结 1. COAP协议消息类型 COAP协议有4种消息类型 CON—— 需要被确认的请求,如果CON请求被发送,那么对方必须做出响应。这有点像TCP,对方必须给确认收到消息,用以可靠消息传输。 可靠消息传输 NON—— 不需要被确认的请求,如果NON请求被发送,那么对方不必做出回应。这适用于消息会重复频繁的发送,丢包不影响正常操作。这个和UDP很像。用以不可靠消息传输。 不可靠消息传输 ACK —— 应答消息,对应的是CON消息的应答。 RST —— 复位消息,可靠传输时候接收的消息不认

xujingguo58的博客 1205

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Coap协议学习笔记

1. 物联网应用上一般使用单片机(或者其他SOC),单片机的RAM内存一般只有20KB~~128KB左右,然而一个TCP协议栈可能就20KB,所以只能用UDP,因为UDP相对小很多,然后在UDP上加了一层协议,就是Coap协议,CoAP是受限制的应用协议(Constrained Application Protocol)的代名词,受限制就是RAM的空间小的单片机用。 2. 想搞懂,最快的办...

u011392772的专栏 564

CoAP协议学习笔记 1.1 为什么物联网要使用 CoAP 协议

1 前言 前几年,Json比较火的时候,和朋友在讨论项目协议时就在感慨,要是咱们的这些设备都能走Json,那该多爽。由于HTTP协议对于物联网设备实在是太铺张了,我们只好作罢。 知识限制了我们的想象力,CoAP 就是这样的存在。 小能手正在学习 CoAP 协议,其他物联网应用协议学习笔记可点此查看。 2 什么是CoAP? 在 CoAP 协议 RFC7252 首页的介绍能让大家有所理解...

IoT小能手 8497

转:CoAP 协议学习

版权声明:本文为twowinter原创文章,请联系微信公众号twowinter,未经博主允许不得转载。 https://blog.youkuaiyun.com/iotisan/article/details/80058454 </div> &l...

奔狼 1645

CoAP协议学习笔记 1.3 用UDP工具来调试CoAP

1 前言 CoAP的调试,目前没找到好用的工具,网上说的火狐插件现在也不能用了,多希望手头的TCP/UDP网络调试工具就可以支持。 既然CoAP是基于UDP来组包的,那肯定是可以实现。 所以这篇文章给研究 CoAP 的伙伴们带来我琢磨出的一套手动组包调试方案。虽然效率不高,但至少能用。而且一个显而易见的好处是,它将使我们加深对 CoAP 消息格式的理解。 小能手正在学习 CoAP 协议,其...

IoT小能手 9498
上一篇: LwM2M协议学习
下一篇: Internet Protocol(IP层)消息结构
究理观心
博客等级 码龄10年 184粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值