NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记

简介: 快速学习 NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11198


NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文

服务器没有打印信息,另外操作直播界面不方便,但不是学习前端可以了解另外一个工具,就是讲到的 copper 工具,copper 是基于 js 编写,可以直接作为浏览器的插件存在。

直接在浏览器中搜索 copper ,首先需要找到源代码或者百度一下:浏览器安装 copper 插件,然后点击相关内容学习。安装插件 copper 的前提是下载插件 copper,下载源码 :https://github.com/mkovatsc/Copper4Cr。

下载完成后需要把它解压,解压完成后安装网页教程安装:如果是 wendousi 系统执行 istall.bat  文件,如果是 Linux 执行 istall.sh 文件;在执行文件前需要在浏览器中更改设置,最好是谷歌浏览器,在更多工具的拓展程序中,点击【加载拓展程序】 把两个拓展程序(Copper4Cr-master 文件夹中 app 和 extension )加载进来,加载完成后需要把开放者模式打开;点击"Chrome 应用"里 copper 左下角的"详细情况",复制 ID 号,如果没有完成加载,会显示 id 号;打开 copper 源码文件夹中 extension/endpoint 文件夹下的 ClientPortChrome.js 文件,找到 appId,将刚才复制的 ID 号替换进入,然后保存;粘贴完成后启用,启用完成后就相当于插件安装完成。

image.png

其实是 js 版的 copper,点击图标即可使用

image.png

启动之后,把它当作客户端需要链接服务器,需要输入服务器地址,不要把android2 服务器 断了,如果断了就链接不上服务器。如果链接不上服务器,需要在 android2 启动服务器。如果还是不行,更换另一个服务器。

image.png

对服务器做一些简单操作,除了 GET 外,使用 POST ,在 copper 中进行的各种操作服务器没有任何反映。所以对于 coap-sever 服务器有问题:只能作为服务器进行数据的上行下行,如果使用它进行调试看不到信息。使用 ./coap-server --help 可以去看它的帮助信息,帮助信息中没有太多有用信息,解决不了问题,所以就不使用这个服务器。

image.png

在上面课程中讲到在 Coap 协议之上还有 LwM2M,例如移动很少使用 Coap协议而是直接使用 LwM2M。可以直接下载 LwM2M 的开源软件,这种开源软件不是很好找,而且名字特别奇怪,开源软件在 gethup 中搜不到需要在 开源中国 中搜索,在开源中国中搜索软件名称,软件名称为 Wakaama ,点击进去有关于 Wakaama-LwM2M开源协议栈 的介绍,向下滑动直接点击 【官方下载】会切换到 gethup 中(在gethup 中也有这个软件,之前没有搜到),点击 【Clone or download】 下载。

image.png

下载完成后,解压出来,进去后不需要安装 coap 协议,它把 coap 协议继承在里面,需要安装 coap 协议也不需要安装 examples 协议栈,Wakaama 中的协议栈都是以安卓文件的形式存在。例如需要编译服务器,直接执行 cmake. 即可。 cmake. 通过 CMakeFiles 生成当前目录下 makefall ,然后去 make 即可。

image.png

这个服务器就启动完成,需要把已经启动的服务器退出,如果不退出那么这个服务器无法执行。当前服务器(1wm2mserver)可以把所有访问信息打印出来,例如回到 copper 中,左侧项目栏是 copper 的资源,.well-known 下的 core,async,time。可以 GET 一个时间,点击 get 可以在服务器中查看访问信息,这是请求的时间 40 01 2F EE B4 74 69 6D 65 C1 02 @./..time.. 一共十一个字节,

image.png

怎么看请求时间,应对照协议栈查看,前四个比特位是版本现在看到的是 40(即0100) 说明报文类型位 CON ,接下来是 coap 的长度,coap 长度为0,所以是 40;01 是 code,code 占用八位有高三位和低五位组成,0表示发给服务器的请求,请求类型为 GET,POST,PUT,DELETE 如果是 GET 就是 01,POST 是02,PUT 是 03。01 就是 copper 中  GET。

image.png

然后在 copper 中点击 POST,在服务器中查看 code 值为 02;点击 PUT 在服务器中查看 code 值为 03;点击 DELETE 在服务器中查看 code 值为 04。对应协议栈中的四种操作。

image.png

这些操作删除不会出现问题,因为服务器没有权限。Copper 中给 code 的值是 4.00,在协议栈中 4.00 代表请求错误,服务器无法处理。

Token 也是 0。

image.png

Copper 还可以在 Outgoing 上传数据,例如上传 555,输入后点击 PUT,服务器会收到 555,555 是给 time 资源的;555 内容出现在 35 35 35,中间的 FF 是分隔符,FF 之前的 69 6D 65 10 B1 02 都是选项;Token 没有占用空间;MAssage ID是 copper 中的 MId(MAssage 简称为 MID)12274(12274 为十进制,转为十六进制为 2FF2),那么服务器对应的 2F F2 是 MAssage ID;B4 74 69 6D 65 10 B1 02 是选项;40 03 为协议头部,2F F2 是 MAssage ID,4 74 69 6D 65 10 B1 02 是选项,FF 为分隔符, 35 35 35 为帧载荷。

image.png 

通过服务器工具 LwM2M 分析 Coap 协议栈。里面提供了很多例子,例如一个点一个N为客户端,这个客户端是N的开关,make 一下生成简单的客户端,然后客户端把目标的 ID,目标的实例 ID 和类;可以在服务器中查看,这是 N 的客户端,服务器中的有关命令可以通过 help<-list 把当前资源列出,还可以读取 read 0/1/0 零个资源中的一然后零,可以在服务器中查看资源的类型,资源的只是什么。

这是 coap 协议服务器,coap 上面是 LwM2M, LwM2M 是典型的 coap 的应用,一个被封装的上层应用,可以通过后端加服务器的方式实现对资源的管理,设置。有关 coap 协议的开源软件就介绍几个,了解一下即可,大部分时候连接云平台中已经搭建的服务器,对客户端服务商以及云平台也会提供sbk。

相关文章
|
1月前
|
消息中间件 运维 应用服务中间件
“企业微信iPad协议”凌晨断链:当最后一台测试机决定集体沉默
凌晨1:12,三连报警突响:“实例心跳超时”“消息队列堆积”“老板提刀赶来”。问题源于企业微信iPad协议迁移私有化后,因新旧CA根证书不兼容,触发TLS握手失败,导致全量会话中断。苹果严苛的证书校验机制将请求判定为中间人攻击,直接断连。排查抓包定位:客户端内置证书Pin仅认旧根。解决方案简单却关键:F5重导旧根证书,Nginx配置`ssl_trusted_certificate`指向旧链并reload。2:58,系统恢复,演练数据零丢失。教训深刻:文档未提CA白名单,真实逻辑藏于客户端二进制。部署前务必比对证书指纹,否则警报先于用户消息抵达。
142 1
|
2月前
|
搜索推荐 Devops 测试技术
避免无效回归!基于MCP协议的精准测试影响分析实践
本文揭示传统测试的"孤岛困境",提出MCP(Model Context Protocol)测试新范式,通过模型抽象业务、上下文感知环境和协议规范协作,实现从机械执行到智能测试的转变。剖析MCP如何颠覆测试流程,展示典型应用场景,并提供团队落地实践路径,助力测试工程师把握质量效率革命的新机遇。
|
6月前
|
JavaScript 数据可视化 Docker
简易制作MCP服务器并测试
本文介绍了如何简易制作并测试MCP服务器,包括环境搭建、代码实现及Docker部署。首先通过uv包创建项目,在main.py中定义MCP服务器及其工具和资源函数。接着详细说明了在Windows上安装uv、配置Docker镜像加速、生成requirements.txt文件以及编写Dockerfile的过程。最后,通过构建和运行Docker容器部署MCP服务器,并使用Node.js工具测试其功能,确保服务器正常工作。此教程适合初学者快速上手MCP服务器的开发与部署。
2528 63
|
4月前
|
弹性计算 JavaScript Ubuntu
WebSocket协议相关的测试命令工具使用简介
本文介绍了针对WebSocket的测试工具wscat和websocat的基本使用方法,以及通过curl命令测试HTTP/HTTPS协议的方式。对于WebSocket,直接使用curl测试较为复杂,推荐使用wscat或websocat。文中详细说明了这两种工具的安装步骤、常用参数及连接示例,例如在ECS上开启8080端口监听并进行消息收发测试。此外,还提供了curl命令的手动设置头部信息以模拟WebSocket握手的示例,但指出curl仅能作为客户端测试工具,无法模拟服务器。
867 4
|
5月前
|
存储 数据库 Python
使用HTTP POST协议将本地压缩数据发送到服务器
总的来说,使用HTTP POST协议将本地压缩数据发送到服务器是一个涉及多个步骤的过程,包括创建压缩文件,设置HTTP客户端,发送POST请求,以及服务器端的处理。虽然这个过程可能看起来复杂,但一旦你理解了每个步骤,就会变得相对简单。
193 19
|
11月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
6月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
204 22
|
9月前
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
266 1
Jmeter如何对UDP协议进行测试?
|
10月前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
2395 16
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
12月前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
591 32

热门文章

最新文章