IoT物联网平台,设备丢消息问题排查指南

物联网设备受限于硬件性能,不同地区网络覆盖差异大,信号不稳定,数据包丢失现象普遍。而且一旦设备离线,消息丢失,往往会给用户造成不可估量的损失。如何快速定位消息丢失的原因,成为物联网开发者必须面对的挑战。

这款物联网设备针对业务链路丢包提供了一些常见的故障定位方法,希望能够帮助科学家对数据丢包有更多的了解。遇到数据包丢失不要慌,看完这篇消息故障排除指南,强烈推荐收藏!

物联网消息链路梳理

在解决丢失消息的问题之前,我们应该首先了解整个消息链接。

IoT物联网平台,设备丢消息问题排查指南

物联网场景,业务数据由设备端应用程序打包后,再封装MQTT报文,交给通信模组转成网络传输Packet,经由运营商网络传输到云上的IoT物联网平台,再由平台内部处理,通过规则引擎流转写入数据库,或推送到业务服务器。

受限于模组硬件内存,运营商⽹络质量等原因的影响,设备端数据包翻山越岭,历尽艰难险阻,才能顺利到达业务系统。

设备端消息处理过程

IoT物联网平台,设备丢消息问题排查指南

设备端数据打包过程如下:

  1. 设备端应⽤程序组装业务数据包,
  2. 在MQTT协议层增加MQTT报文头,形成MQTT数据包,
  3. 在TCP层增加TCP报⽂头,形成可传输的数据包。
  4. 在IP层增加IP报⽂头,形成网络层的IP包。
  5. 在经过通信模组驱动程序为IP包添加14字节的MAC地址头,构成数据帧Frame,包含有发送端和接收端的MAC地址。
  6. 模组驱动程序为Frame添加头部同步信息和CRC校验,将其封装为可以发送的Packet,然后通过蜂窝网络发送到运营商基站。

消息丢包原因分析

结合上面分析,传输过程中消息丢失可能有以下原因:

  • 设备上的应用程序有bug,未组装业务包
  • 设备上的应用集成的MQTT SDK有bug,未组装MQTT协议包
  • 设备上的通信模组/网卡有异常,未发送网络包
  • 运营商网络异常,数据包丢失
  • 云上IoT物联网平台异常,接收未处理运营商发送的数据包
  • 云上IoT物联网平台异常,未流转数据包
  • 云上业务系统异常,接收未处理IoT物联网平台发送的数据包

排查思路

结合端到端链路分析,本文梳理了4大阶段的排查方案参考

IoT物联网平台,设备丢消息问题排查指南

排查实战

Wireshark抓包分析网络问题

借助网络抓包工具Wireshark,我们可以快速定位设备→网络→IoT物联网平台之间的消息传输问题。

下图展示了设备向IoT物联网平台PUBLISH一条QoS=1的消息的抓包日志。在报文信息里,我们可以看到消息对应的Topic和Payload。

IoT物联网平台,设备丢消息问题排查指南

由于是QoS=1消息,IoT物联网平台会回复一条PUBACK给device。

IoT物联网平台,设备丢消息问题排查指南

传送门:Wireshark抓包实战


IoT物联网平台-消息轨迹追踪

物联网平台的日志服务提供了查看设备通信消息轨迹的功能。可以根据TraceID或MessageId追踪任何流经物联网平台的消息的完整路径,根据故障节点快速分析定位问题。

上行链路:设备→IoT平台→业务系统

IoT物联网平台,设备丢消息问题排查指南

下行链路:业务系统→IoT平台→设备

IoT物联网平台,设备丢消息问题排查指南

本文章来源于互联网,如有侵权,请联系删除!

相关推荐: 【我的物联网成长记10】五分钟了解物联网SIM卡【华为云技术分享】

【摘要】 SIM卡是移动通信中不可或缺的组成部分,在物联网解决方案中,设备移动上网也需要使用SIM卡。那么,SIM卡是什么?SIM卡有几种?各种SIM卡有什么区别?本文将为您答疑解惑。 通信进化史 过去几百年间,通信技术经历了天变地异般的发展:数百年前的古代,…