CoAP协议学习——CoAP基础

COAP协议 ​ 很多人预测将会有更多其他的设备相互连接,这些设备的数量将远远超过人类的数量,到时候形成的网络将是现有网络的N个量级,这个网络带给世界的变化将是无法估量的。 ​ 不像人接入互联网的简单方便,由于物联网设备大多都是资源限制型的,有限的CPU、RAM、Flash、网络宽带等。对于这类设备来说,想要直接使用现有网络的TCP和HTTP来实现设备实现信息交换是不现实的。于是为了让这部分设备能够顺利接入网络,CoAP,CoAP协议解析 阅读详情
更多CoAP文章请参考博文索引——【物联网学习笔记——索引博文】
学习CoAP最简单的方法便是阅读协议文档。该协议文档并不是那么复杂。当然如果有一个CoAP的简单介绍那就再好不过了。

什么是CoAP
CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在最近几年的时间中,专家们预测会有更多的设备相互连接,而这些设备的数量将远超人类的数量。在这种大背景下,物联网和M2M技术应运而生。虽然对人而言,连接入互联网显得方便容易,但是对于那些微型设备而言接入互联网非常困难。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常的小巧,最小的数据包仅为4字节。
CoAP协议是否可以替换HTTP协议?
CoAP并不能替代HTTP协议,但是对于那些小设备(256KB Flash 32KB RAM 20MHz主频)而言CoAP的确是一个好的解决方案。
CoAP消息类型
CoAP采用和HTTP协议相同的请求响应工作模式。CoAP协议共有4中不同的消息类型。
CON——需要被确认的请求,如果CON请求被发送,那么对方必须做出响应。
NON——不需要被确认的请求,如果NON请求被发送,那么对方不必做出回应。
ACK——应答消息,如果接受到CON消息的响应。
RST——复位消息,当接收者接受到的消息包含一个错误,接受者解析消息或者不再关心发送者发送的内容,那么复位消息将会被发送。
CoAP消息结构
一个CoAP消息最小为4个字节,以下是CoAP协议不同部分的描述。
【版本Version】:类似于IPv6和IPv6,仅仅是一个版本号。
【消息类型Message Type】:CON,NON,ACK,RST。这些消息类型相当于HTTP协议的PUTGET等
【消息ID Message ID】:每个CoAP消息都有一个ID,在一次会话中ID总是保持不变。但是在这个会话之后该ID会被回收利用。
【标记 Token】:标记是ID的另一种表现、
【选项 Options】:CoAP选项类似于HTTP请求头,它包括CoAP消息本身,例如CoAP端口号,CoAP主机和CoAP查询字符串等。
【负载Payload】:真正有用的被交互的数据。

图 CoAP消息结构
CoAP的URL
在HTTP的世界中,正式RESTFul协议由于其简单性和适用性,在WEB应用中越来越受欢迎,这样的道理同样适用于CoAP。一个CoAP资源可以被一个URI所描述,例如一个设备可以测量温度,那么这个温度传感器的URI被描述为:CoAP://machine.address:5683/sensors/temperature。请注意,CoAP的默认UDP端口号为5683。

CoAP观察模式
在物联网的世界中,你需要去监控某个传感器例如温度或湿度等。在这种情况下,CoAP客户端并不需要不停的查询CoAP服务器端的数据变化情况。CoAP客户端可以发送一个观察请求到服务器端。从该时间点开始计算,服务器便会记住客户端的连接信息,一旦温度发生变化,服务器将会把新结果发送给客户端。如果客户端不在希望获得温度检测结果,那么客户端将会发送一个RST复位请求,此时服务器便会清除与客户端的连接信息。

CoAP块传输
CoAP协议的特点是传输的内容小巧精简,但是在某些情况下不得不传输较大的数据。在这种情况下可以使用CoAP协议中的某个选项设定分块传输的大小,那么无论是服务器或客户端可完成分片和组装这两个动作。


最近做了一个项目,使用GPRS模块上传数据应用UDP协议,而服务器没有应答机制。每个数据包均包括一个序列号,序列号占用两个字节。为了保证客户端上传的数据服务器可以收到,客户端采用重发机制,简单的说同一个数据发送2次或者3次,为了区别同一个数据包还加入了子序列号。项目进行到最后出现了一些问题,对比CoAP协议做一个总结。

一个数据包是否需要应答?
这个需要分情况而定,如果是一个传感器的温度数据,那么传输该数据时可能不需要应答,因为即使该数据丢失了下一时刻新的数据也会把旧的数据覆盖掉。但是如果温度超过一个阈值通俗的讲便是温度报警,在这种情况下传输该数据包往往需要应答,必须要保证服务器接收到该数据包,温度报警往往预示着一个紧急情况即将发生或已经发生。从这个角度看看CoAP协议便发觉CoAP协议设计的非常好,CoAP协议支持4种消息,例如CON需确认消息,NON无需确认消息,CON和NON便可解决该项目的困惑。可以肯定的是,继续研究CoAP协议将会获得更大的收获。

参考资料
【优快云博客:CoAP协议和开源实现】
coap协议学习之搭建coap测试环境 本篇目标:简单初步认识coap协议,以及怎么去测试自己搭建得coap协议应用。 材料准备: 55.0版本的火狐浏览器与copper插件() linux系统(搭建在虚拟机下的 Ubantu)与libcoap开源程序() COAP协议简单介绍 ... 阅读详情

相关推荐

CoAP协议学习笔记(一)

CoAP是一种应用层协议,运行于UDP协议之上,非常小巧,最小的数据包仅4字节。 CoAP协议定义 CoAP协议的交互模型与HTTP的客户端/服务端模型类似。然而,在M2M的交互场景中,CoAP的目标是设计一个通用的网络协议,满足受限环境的特殊需求,特别考虑了能源、楼宇自动化和其他M2M应用。 需要注意的是CoAP并不能代替HTTP协议,但是对于那些小设备(例如CPU为8bit的单片机,内存32Kb,Flash 256Kb)而言CoAP的确是一个更好的解决方案。 CoAP协议特点 满足受限环境下M

CN_tuzibushituzi的博客 2626

【基础】CoAP 通讯协议

整理总结了 CoAP 协议的基础,利用 Java 简单实现了 CoAP 服务端与客户端的通信

情绪瓜皮皮丶的学习之路 6952

基于FPGA的PCIe核系列:FPGA root模式生成工程例子分析(1)

一、 PCIE系统架构 1.1 PCIE分层结构 PCIE结构 1.2 TLP包 四种TLP类型。 Memory (内存空间操作) IO (IO空间操作) Configuration (配置操作) Message (信息操作) 四种类型TLP,如果有需要响应,称为Non-Posted TLP,如果没有需要响应,称为Posted TLP。 TLP包类型 1.2.1 TLP结构 TLP数据格式 1.2.2 Header各个字段的含义 Header格式 ...

huangshanhu的博客 3432

通讯协议介绍&CoAP 协议解析

如请求没有准确到达 CoAP 服务器(称作 “CoAP 请求丢失”),或服务器虽收到请求并返回响应,但响应未正确到达客户端(称作 “CoAP 响应丢失”),超过一定时间后,客户端就会将前一次 CoAP 请求判定为失败,并再次发送同样的 GET 请求,两次请求的首部和负载完全相同。,占8位(一个字节)。即使网络条件不好,也不会对发送速率进行调整,这样实现的弊端就是在网络条件不好的情况下可能会导致丢包,但是优点也很明显,在某些实时性要求高的场景(比如电话会议、直播等)就需要使用 UDP 而不是 TCP。

码灵的博客 7532

Jetson AGX Orin边缘AI实战:用YOLOv8做目标检测,我的环境配置踩坑与优化记录

本文详细记录了在Jetson AGX Orin上部署YOLOv8目标检测模型的环境配置与优化过程。从JetPack版本确认、PyTorch安装陷阱到Torchvision编译技巧,再到YOLOv8部署和系统级优化,提供了完整的实战指南。特别针对边缘AI设备的特性,分享了CUDA加速、内存管理等性能调优经验,帮助开发者高效完成工业级AI应用部署。

weixin_30839881的博客 374

建议收藏:模拟版图高频面试题,直通面试,Offer抢先拿!

直击模拟版图面试

nuoweishizi的博客 6334

Coap协议(1)入门简介

一、Coap协议开发 Coap(Constrained Application Protocol)是一种在物联网世界的类web协议,它的详细规范定义在 RFC 7252。COAP名字翻译来就是“受限应用协议”,顾名思义,使用在资源受限的物联网设备上。物联网设备的ram,rom都通常非常小,运行TCP和HTTP是不可以接受的。 ​ 1、Coap协议介绍 1.1、Coap协议特点 COAP协议网络传输层由TCP改为UDP。 它基于REST,server的资源地址和互联网一样也有类似url的格式,

myroncham的博客 2万+

Verilog实战:手把手教你实现IEEE 754单精度浮点乘法器(附完整代码)

本文详细介绍了如何使用Verilog实现IEEE 754单精度浮点乘法器,包括标准解析、架构设计、Verilog代码实现及优化技巧。通过两级流水线设计,平衡性能与面积,适用于数字信号处理、AI加速器等高性能计算场景。

weixin_33724046的博客 314

了解CoAP协议

物联网产品开发中,我们常常听到各种协议名称,如CoAP,MQTT等,但这些协议究竟如何去传输数据,如何下发指令呢? 1. CoAP协议概述 1.1 CoAP协议的产生 物联网的初衷之一就是通过大数据的采集分析去颠覆交通、运输、物流、能源等生产生活的每个方面。一般而言,物联网遇到的最大问题就是环境的不稳定性,例如没有稳定的电源。除此之外,无线网络的带宽、时延、丢包等问题都比较突出 1.2 CoAP协议的定义 CoAP是受限制的应用协议(Costrained Application Protocal)。对于那些

柚子君的博客 2万+

[原创]Linux 802.11n CSI tool安装教程(亲测可用)

Linux 802.11n CSI tool安装教程 前言 网上关于Intel5300 CSI tool的教程繁多,实际有效的可以说极少,各种疏漏错误。装的时候被坑无数次,终于调通。其实装这个工具并不太难,但是很多人把它弄得极其复杂,所以写这篇博客来帮助和我有一样困扰的人。我基本沿用的是官方文档旧版本的安装方案,针对其冗杂之处做了大量改进。 旧版安装教程: http://dhalperi....

u014645508的博客 4万+

Python爬虫实战:抓取统计数据并生成年度对比图表详解

国家统计局网站(静态HTML页面Excel文件JSON接口(部分新版API)我们将重点演示从统计公报页面抓取数据,结合解析Excel文件,实现多种数据格式爬取处理。本文从零开始搭建了一个爬取国家统计数据并制作年度对比图表的完整流程。读者可以根据实际需求调整爬取目标,丰富数据分析维度,甚至结合机器学习模型预测未来趋势。欢迎你在评论区留言分享你的爬虫实践,或提出改进建议!

2201_76125261的博客 1000

CoAP协议学习笔记 3.1 CoAP协议翻译 加密基础介绍

CoAP协议学习笔记可点此查看。 1 前言 在之前的学习中,没有过多关注加密。但实际部分厂家的IoT平台(阿里云、OneNET)已经启用了相关安全处理,有必要深入学习下。 在 CoAP 协议 RFC7252 的第9章 Securing CoAP ,即是本译文内容。 2 协议翻译 本节描述了 CoAP 的 DTLS 绑定。 在配置(provisioning)阶段,要提供给CoAP...

IoT小能手 1839

Universal Robot——在Gazebo中模拟UR5机器人

今天的目标是在Gazebo安装我们的ur5机器人。Gazebo是一个流行的模拟工具,它不仅可以让你像在Rviz中一样可视化你的机器人,而且还内置了一个物理引擎。这样你就可以在更真实的环境中测试你的机器人应用程序。我们将查看我们需要的属性 添加对我们的机器人——我们的order的描述,以模拟它以及如何在Gazebo中生成我们的机器人。

如果想成为中心,那么就到中心去吧。 1969

CoAP 协议学习

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

IoT小能手 5081

17、神经网络训练算法与高阶模糊Cohen - Grossberg神经网络稳定性分析

本文介绍了一种新的数据驱动算法用于神经网络训练,该算法继承三次样条权重函数的优点,具有简单架构和良好泛化性能,并通过并行机制显著提升训练速度。同时,研究了高阶模糊Cohen-Grossberg神经网络(HOFCGNN)在可变及无界延迟下的稳定性,利用M矩阵理论和向量Lyapunov函数方法,证明了系统平衡点的存在性、唯一性和全局指数稳定性。研究成果为神经网络的高效训练与稳定应用提供了理论支持和技术路径。

b9c0d的博客 147

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

1 前言 对于CoAP协议的学习,这份100多页的文档肯定没法背下来。我们只需把协议当作工具书,大体知道主体的内容,在遇到细节问题时再去具体章节找问题。 本篇笔记中先对 CoAP 协议内容做个基础了解,然后搬出重量级干货《coap-cheatsheet_note.pdf》,最后展示出协议附录中的示例。 这是本能手的学习记忆路线,希望对您有所帮助。 小能手正在学习 CoAP 协议,其他物联网...

IoT小能手 7828

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

CoAP 协议学习总结

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

xujingguo58的博客 1204

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

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

IoT小能手 8497
上一篇: makefile
下一篇: socket通信简介
NoteFAN
博客等级 码龄12年 5粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值