1 前言

CoAP的调试,目前没找到好用的工具,网上说的火狐插件现在也不能用了,多希望手头的TCP/UDP网络调试工具就可以支持。

既然CoAP是基于UDP来组包的,那肯定是可以实现。

所以这篇文章给研究 CoAP 的伙伴们带来我琢磨出的一套手动组包调试方案。虽然效率不高,但至少能用。而且一个显而易见的好处是,它将使我们加深对 CoAP 消息格式的理解。

小能手正在学习 CoAP 协议,CoAP协议学习笔记可点此查看。

2 官方示例组包

在1.2 一张表了解 CoAP 协议中,本能手额外提及了官方的示例,协议最后的附录中有给了3个很好的示例。

我们先拿官方的示例练练手。

我们把查询温度的示例转成字节流:

Ver:01 T=0 TKL=0 // 0x40
Code=0.01 // 0x01
MID// 0x7D 34
Option No=11(Uni-Path) len=11 value="temperature"(0x74 65 6D 70 65 72 61 74 75 72 65) // 0xBB 0x74 65 6D 70 65 72 61 74 75 72 65

因此字节流是:

40 01 7D 34 BB 74 65 6D 70 65 72 61 74 75 72 65

3 示例 Get /test

刚组了一个小包,现在来往一个真实 CoAP 服务器组个包试试。

3.1 ETSI 提供的 CoAP 测试服务器介绍

http://coap.me/

Access CoAP nodes via HTTP, analyze pcaps (tcpdump/wireshark packet capture files) and run the ETSI interoperability tests against your server on this simple interactive website.

在这个网站上,可以跑一些 ETSI 的操作示例,另外 coap://coap.me 这个服务器也支持 CoAP 调试。

3.2 UDP工具连接 coap.me 服务器

ping 了下 http://coap.me/,得到它的 IP 。

>ping coap.me正在 Ping coap.me [134.102.218.18] 具有 32 字节的数据:
来自 134.102.218.18 的回复: 字节=32 时间=289ms TTL=45
来自 134.102.218.18 的回复: 字节=32 时间=288ms TTL=45
来自 134.102.218.18 的回复: 字节=32 时间=303ms TTL=45
来自 134.102.218.18 的回复: 字节=32 时间=289ms TTL=45

3.3 组包

接着,我们直接去 Get /test,整理如下:

Ver:01 T=0 TKL=2 // 0x42
Code=0.01 // 0x01
MID// 0x00 01
TOKEN = 22950// 0x595C
Option No=11(Uni-Path) len=4 value="test"(0x74 65 6D 70 65 72 61 74 75 72 65) // 0xB4 0x74 65 73 74

因此字节流是:

42 01 00 01 59 5C B4 74 65 73 74

3.4 成功回复

一试就成功,本能手的内心一阵激动。

回复字节流如下:

62 45 00 01 59 5C 48 7C 38 F8 1A AF F8 7F F2 80 FF 77 65 6C 63 6F 6D 65 20 74 6F 20 74 68 65 20 45 54 53 49 20 70 6C 75 67 74 65 73 74 21 20 6C 61 73 74 20 63 68 61 6E 67 65 3A 20 32 30 31 38 2D 30 34 2D 32 35 20 30 36 3A 31 35 3A 30 35 20 55 54 43

逐个拆包:

62 // ‭01100010‬ VER=01 T=2(ACK) TKL=2
45 // ‭010 00101‬ Code=2.05(Content)
00 01 // MID=0x0001
59 5C // TOKEN=0x595C
48 // OptionNO=4(ETag) OptionLen=8
7C 38 F8 1A AF F8 7F F2 // Option:
80 // OptionNO=8(LocationPath)
FF // Marker
77 65 6C 63 6F 6D 65 20 74 6F 20 74 68 65 20 45 54 53 49 20 70 6C 75 67 74 65 73 74 21 20 6C 61 73 74 20 63 68 61 6E 67 65 3A 20 32 30 31 38 2D 30 34 2D 32 35 20 30 36 3A 31 35 3A 30 35 20 55 54 43
// welcome to the ETSI plugtest! last change: 2018-04-25 06:15:05 UTC

4 END

搞定回家,再见。


CoAP协议学习笔记 1.3 用UDP工具来调试CoAP相关推荐

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

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

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

    CoAP协议学习笔记可点此查看. 1 前言 在之前的学习中,没有过多关注加密.但实际部分厂家的IoT平台(阿里云.OneNET)已经启用了相关安全处理,有必要深入学习下. 在 CoAP 协议 RFC7 ...

  3. CoAP协议学习笔记——CoAP格式详解

    CoAP是受限制的应用协议(Constrained Application Protocol)的代名词.在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的.但是对于小型设备而言, ...

  4. CoAP协议学习笔记(一)

    目录 CoAP协议定义 CoAP协议特点 协议模型 Message Format Message Hader(CoAP报文结构) CoAP的响应码 Message分类 Message的可靠传输 Mes ...

  5. TCP/IP协议学习笔记(二)TCP与UDP介绍

    TCP/IP中有两个具有代表性的传输层协议,它们分别是TCP和UDP.TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输. IP首部中有一个协议字段,用来标识网络层(IP) ...

  6. 网络协议学习笔记 · 22

    IPv6 · 流媒体 · 即时通讯 · 缓存 · 网络爬虫 VPN 作用 VPN与代理的区别 实现原理(隧道协议) 网络爬虫 简易实例 robots.txt 无线网络 缓存(Cache) 响应头 请求 ...

  7. 极客HTTP协议学习笔记破冰篇(1-7)

    极客HTTP协议学习笔记破冰篇(1-7) 前言 各篇章笔记链接 一.学习笔记 1.HTTP的前世今生 2.HTTP是什么 3.与HTTP相关的各种概念(上) 4.与HTTP相关的各种概念(下) 5.常 ...

  8. UDT协议学习笔记(一)UDT概述

    UDT协议学习笔记(一)UDT概述 本人近来就职于国内某著名互联网血汗工厂,从事分布式后台相关的工作,最近的项目主要是网络相关.我们有许多海外的proxy节点,为了加速海外proxy与国内某机房的通信 ...

  9. IPv4协议学习笔记

    IPv4协议学习笔记 网络协议相关标准目录 文章目录 IPv4协议学习笔记 IPv4数据报格式 IPv4 网络头部结构 Version [4 bits]: 协议版本 IHL(Internet Head ...

最新文章

  1. java 平均值_Java岗招聘标准差强人意,薪资比拼,Java程序员表示“我太难了”...
  2. python islice_python文件操作细节
  3. 计算机基础知识2019题库,2019年计算机基础考试题库(含答案)全
  4. ENVI剪裁图片( 剪裁、裁移位等问题)
  5. C# 关于winFrom控制网页的自动登录的问题(网页刷屏器的制作原理)
  6. 螺栓预紧力与拧紧力矩的计算方法
  7. Samba共享服务详解
  8. 获取淘宝订单的解决方案
  9. 巴比特 | 元宇宙每日必读:云南首个元宇宙产业园落户昆明,预计总投资 2600 万元,将探索开发NFT产品...
  10. Dots Entity 删除
  11. matlab看图像分度值,也制作开源 STC15W408AS 白光T12控制器 数码管版本 洞洞板搭建...
  12. 计算机网络课程设计-Socket网络通信(C++, MacOS)
  13. JavaScript——leetcode2006 差的绝对值为k的数对数目
  14. Could not copy property 'intro' from source to target; nested exception is java.lang.reflect.Invocat
  15. 开20个人,拿10个人的工资给大家涨薪!!
  16. 模拟电路设计的九个级别 (ZT)!!!
  17. logisim,quartus实现模为60的BCD码计数器
  18. 多线程采集网易云所有歌单里歌曲url(爬虫)
  19. 关于S7200的PPI地址无法更改
  20. 影视剪辑,短视频从拍摄到剪辑,超详细教程

热门文章

  1. 阿里云API请求签名失败的解决办法
  2. 讯飞语音输入法linux,讯飞语音输入法逆天了
  3. Gartner发布《2023年十大战略技术趋势》
  4. 午饭加喝酸奶可减轻电脑辐射
  5. 惠普CEO李艾科的“金刚钻儿”
  6. 物美集团携手SAP ERP项目成功上线(转)
  7. 黑马程序员—[.Net就业薪资] 黑马.Net 12期毕业33个工作日,就业率达98%,平均薪水:6972元
  8. 2022年国内最牛的Java面试八股文合集(MCA版),不接受反驳
  9. CCRC信息安全服务资质审核费用是多少?
  10. 在2147483647的边缘疯狂试探