IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> IoT物联网设备丢消息问题排查指南 -> 正文阅读

[嵌入式]IoT物联网设备丢消息问题排查指南

IoT物联网设备受限于硬件性能,不同地域网络覆盖差异大,信号不稳定,数据丢包现象屡见不鲜,且多数设备无人机交互界面,一旦出现设备离线,消息丢失,往往给用户造成不可估量的损失。如何快速定位消息丢失的原因,成为IoT开发者必须面对的挑战。

本?针对IoT设备业务链路丢包,提供?些常见的故障定位?法,希望能够帮助?家对数据丢包有更多的认识,遇到数据丢包莫要慌,且翻看此消息排查指南,强烈推荐收藏!

IoT消息链路梳理

在解决丢消息之前,我们要先搞清楚整个消息链路。


物联网场景,业务数据由设备端应用程序打包后,再封装MQTT报文,交给通信模组转成网络传输Packet,经由运营商网络传输到云上的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大阶段的排查方案参考

排查实战

Wireshark抓包分析网络问题

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

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

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


传送门:Wireshark抓包实战


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

物联网平台的日志服务提供查看设备通信消息轨迹功能。您可根据TraceID或MessageId,追踪任意一条消息在物联网平台流转的全路径,还可根据出现的故障节点快速分析、定位问题。

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


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

传送门:IoT设备消息轨迹全景追踪

往期推荐

1、HarmonyOS 到底是不是Android套壳?

2、5G将是一个彻底失败的通信技术吗?

3、AWS IoT 物联网平台 MQTT 通讯模式

4、IoT平台如何实现 100万/秒消息广播?

5、无GPS模块,IoT设备如何定位?

6、?IoT物联网 4 本好书推荐

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:41:08  更:2021-07-10 14:42:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:29:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码