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。

相关文章
|
5天前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
1月前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
108 32
|
1月前
|
缓存 监控 测试技术
服务器压力测试
【10月更文挑战第11天】服务器压力测试
82 31
|
1月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
164 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
1月前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
24 2
|
1月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
41 4
|
1月前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
61 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
69 4
|
1月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
55 3
|
1月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
39 1