欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

抓包分析华为IOT平台CoAP对接流程

程序员文章站 2022-03-11 20:45:41
说明使用NB模组对接华为IOT时,使用非常简单,但是一直不清楚平台coap/lwm2m协议对接的具体流程是什么。想在2G/4G模组中也使用这种方式,但是不知道怎么对接平台(不喜欢MQTT对接,协议还是比较重)。因此使用官方的NB设备模拟器,用wireshark抓包分析了设备注册、数据上报和下发的流程。比较简单,可以在任何具备TCP/IP能力的设备上封包实现。通信流程1.wireshark数据包2.流程分析设备注册。Post,需要携带终端名称(endpointname,唯一,一般为IMEI)。...

说明

使用NB模组对接华为IOT时,使用非常简单,但是一直不清楚平台coap/lwm2m协议对接的具体流程是什么。想在2G/4G模组中也使用这种方式,但是不知道怎么对接平台(不喜欢MQTT对接,协议还是比较重)。因此使用官方的NB设备模拟器,用wireshark抓包分析了设备注册、数据上报和下发的流程。比较简单,可以在任何具备TCP/IP能力的设备上封包实现。

通信流程

1.wireshark数据包

抓包分析华为IOT平台CoAP对接流程

2.流程分析

抓包分析华为IOT平台CoAP对接流程

  • 设备注册。Post,需要携带终端名称(endpointname,唯一,一般为IMEI)。coap报文选项字段内容如下:
    • Uri-Path: t
    • Uri-Path: r
    • Content-Format:application/octet-stream
    • Uri-Query:ep=869976030020714 (IMEI)
  • 平台发起观察请求,观察设备/t/d资源。观察者模式是coap协议引入的一个概念,用于服务端主动向客户端推送资源数据,避免客户端频繁的查询资源,浪费交互时间。Get请求,coap报文的选项字段内容为:
    • Observe:0
    • Uri-Port:31556 (端口号随机)
    • Uri-Path:t
    • Uri-Path:d
  • 平台请求/4/0/8资源,该资源为网络连接信息,终端可回复没有404。

经过上面的步骤,设备就已经注册到平台上了。之后操作中,都是终端作为coap服务器角色,而平台作为coap客户端。

  • 设备上报数据
    由于平台已经观察了终端侧的/t/d资源,之后终端就可以按照通知的方式(响应报文),将数据发送给平台(coap观察者)。此时的终端,其实是coap协议当中的服务器角色;当要发送数据时,该数据作为/t/d资源的信息,仅携带observe选项,由终端发给平台。
    注意: 上报报文其实一条coap响应报文,响应码是2.05 Content; 报文当中的token,应跟注册过程中平台的观察请求中携带的token值一致;observe选项值递增。

  • 平台下发数据
    确认报文,POST请求,token值随机,不同于上报数据时的token,下发的数据在coap报文的负载部分,coap选项如下:

    • Uri-Port:31556
    • Uri-Path:t
    • Uri-Path:d
    • Content-Format:application/octet-stream

    终端收到命令后回复确认。

本文地址:https://blog.csdn.net/llb19900510/article/details/107913255

相关标签: IOT