当前位置: 首页 > news >正文

【2018-09-01】COAP简单笔记

[历史归档]本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。
发布时间:2018-09-01| 标题:COAP简单笔记分类:编程 |标签:coap


CoAP简单笔记

    • 什么是CoAP?
    • 测试

本文参考

《 http://baijiahao.baidu.com/s?id=1572926441162140&wfr=spider&for=pc 》

《 https://blog.csdn.net/robert_tina/article/details/78864345 》

《 https://blog.csdn.net/qq_40062917/article/details/78258923 》

什么是CoAP?

coap 是在udp上的代替了在tcp上的http,由于在http协议太大,coap协议却很小的,所以很适合嵌入式开发的环境,同样对比的还有mqtt协议在这里不讲解。

CoAP是受限制的应用协议(Constrained Application Protocol),是IETF组织发布的互联网系列标准之一(RFC7252)。

在当前由PC组成的世界里,信息交换通过HTTP/TCP来实现。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP协议是为物联网中资源受限设备制定的应用层协议(注:CoAP已经支持基于TCP,本文暂不展开)。

CoAP协议特点

通过解读CoAP协议可以看出,CoAP协议明显的是针对物联网应用而生,包括:

1.基于REST构架,而REST正是互联网资源访问协议的一般性设计风格。

2.基于轻量级的UDP协议,并且允许IP多播。

3.定义了带有重传机制的事务处理机制,同样可实现可靠传输。

4.提供了资源发现机制,并带有资源描述。

5.协议小巧,最小的数据包只有4字节。

6.可以使用DTLS作为安全加密层。

7.资源消耗低,所需RAM和ROM资源均小于10KB。

8.其双层(事务层,请求/响应层)处理方式可支持异步通信。

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

10.支持块传输。CoAP协议的特点是传输的内容小巧精简,但是在某些情况下不得不传输较大的数据。在这种情况下可以使用CoAP协议中的选项设定分块传输的大小,服务器和客户端即可完成分片和组装。

测试

首先在ubuntu下操作如下:

下载 git clone https://github.com/authmillenon/libcoap.git

sudo apt-get install autoconf

autoconf

make --> make install

安装完成之后,便会新建/usr/local/include/libcoap目录,并把coap.h config.h debug.h pdu.h等头文件复制到该目录中。 编译生成的libcoap.a该静态链接库被复制到了/usr/local/lib中。 编译完成之后,在example目录中会增加两个重要文件——coap-client和coap-server。

coap服务器测试:

运行 ./coap-server

需要在火狐上安装插件coapd

测试get post 等功能

coap客户端测试:

(1)运行coap-server

./coap-server

(2)运行coap-client

./coap-client -m get -o result.txt coap://127.0.0.1

参数解析:

-m 表示coap访问方法,默认为get方法,此处设置为get方法。除了get方法之外还包括put、post和delete。

-o 表示访问获得的内容保存到result.txt文件中

如果访问成功,那么控制台输出:

v:1 t:0 tkl:0 c:1 id:45104

-v 表示coap的版本编号,此时的coap的版本编号为1。

-t 表示报文类型为CON,

-tkl 表示token区域的长度,此时的token区域的长度为0。

-c 表示访问方法(该处还需要分析)

-id表示message id

http://www.jsqmd.com/news/1233710/

相关文章:

  • 格拉苏蒂保养中心维修专业服务与养护指南权威公示(2026年7月最新) - 亨得利官方服务中心
  • APM规范审查_apm-spec-guardian
  • AI 行为分析反采集系统深度拆解:特征工程、机器学习模型与采集行为优化全链路实战
  • 解决 deepseek 代码复制到 wps 格式错乱 AI 导出鸭实现一键规范导出
  • AutoCAD 2020版新手入门指南:版本选择、安装配置与核心工作流
  • 2026 武汉合规非急救医疗护送|康跃江汉环湖防潮抗雾转运车,鄂豫湘皖赣跨省出院转院一站式陪护服务 - 平台推荐官
  • Linux磁盘管理:从基础命令到高级优化技巧
  • 锐龙处理器深度调试终极指南:SMUDebugTool让你的CPU性能完全释放
  • 为什么选择DS4Windows:3大优势让你的PS4手柄在Windows上完美运行
  • 如何完全掌控你的Alienware设备:AlienFX Tools终极指南
  • Godot PCK文件解包终极指南:版本差异与命令行实战
  • Python数据分析:9大开源库替代商业软件
  • Apricorn Aegis Secure Key 3:4TB 大容量+量子抗性加密,硬件加密 U 盘首选!
  • 2026郑州钻石回收价格怎么算?统一报价规则+高频踩坑问题全解答 - 全国二奢机构参考
  • 机器学习生产化:从模型上线到系统可信的工程实践
  • 瑞德克斯平台:更谨慎的使用者更在意的外汇领域风控思路,这里做个视角拆解
  • 新唐科技2026技术研讨会:MCU与功率半导体创新突破
  • Unlock Music Electron:一站式音乐解锁工具,让加密音乐文件重获自由
  • QMCDecode终极指南:3步解锁QQ音乐加密音频的免费方案
  • 信息素养大赛C++循环题解题框架:从逻辑抽象到代码实现
  • Unlock Music Electron:三分钟解密加密音乐,让音乐真正属于你
  • html介绍
  • ECYSAP EYE:从网络空间态势感知到以任务为中心的决策支持,以增强网络空间作战能力
  • 苏州黄金回收避坑技巧,称重计价全程透明 - 奢侈品回收评测
  • 【2018-09-26】嵌入式软件开发中文件格式
  • 哔咔漫画下载器完整指南:三步打造个人离线漫画库
  • C语言网络编程实战:使用libcurl轻松实现HTTP数据检索
  • 瑞德克斯平台:更谨慎的使用者更在意的外汇投教内容建设,这里做个细节观察
  • # 2026年淄博公司法律顾问选对=省心 周毅律师实战推荐 - 本地品牌推荐
  • Lenovo Legion Toolkit终极指南:拯救者笔记本硬件控制的完整解决方案