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 本好书推荐

IoT物联网设备丢消息问题排查指南相关推荐

  1. IoT 物联网设备端 SDK 架构设计参考

    IoT设备端SDK架构挑战 IoT物联网设备应用场景不同导致配置千差万别,在硬件端SDK设计过程中,既要满足多场景快速适配,又要用尽量少的硬件资源,还要满足能力定制化的需求,实现低消耗.易移植.易使用 ...

  2. AWS IoT 物联网设备 - 即时部署 JITP 实战

    为了保证通信的安全性,IoT 设备与 AWS IoT Core 的 MQTT 通信使用基于证书的 TLS 1.2 双向认证体系. 利用即时注册(JITR)功能,可以快速的进行设备证书注册及设备上线.但 ...

  3. 下载 | mqtt4aliyun 阿里云 IoT 物联网 设备模拟器 Mac , Windows版本

    mqtt4aliyun 是基于 MQTT X 开源版本修改,用于连接阿里云IoT物联网平台的 MQTT模拟器,支持 macOS, Windows系统,支持简体中文/English切换.相比于 MQTT ...

  4. IoT物联网设备数据安全解决方案

    随着越来越多的设备需要被远程管理,在带来了便捷性的同时, 也对设备的安全性带来了挑战.设备连接到互联网后,通过服务器,接收和处理设备数据.攻击者如果在数据转发路径中截获数据,并解析出数据的业务含义,就 ...

  5. IoT 物联网设备该如何选择固件升级 OTA ?

    根据IDC的一份最新报告,到2025年,将有416亿台物联网设备,产生79.4 zetb的数据.连接的设备相互通信,传输数据集,并在单个生态系统中工作.为了有效地做到这一点,还需要定期更新,就像笔记本 ...

  6. IoT物联网设备上云技术方案详解

    随着传感器和通信技术的不断发展,物联网行业方兴未艾,业务链路涉及数据采集,通信连接,数据存储,数据可视化,洞察,行动决策.但,在实施过程中,碎片化的设备端通信连接难题往往就阻碍了项目落地进程. 今天, ...

  7. 【钉钉-场景化能力包】IoT物联网设备协同

    需求场景 环境预警监控:企业与监控数据实时同步,当设备监测到环境异常时,需要通过机器人发送预警信息到个人或场景群,并呈现预警具体信息. 考勤机数据推送:员工通过考勤机完成一键考勤,考勤成功后通过机器人 ...

  8. IoT物联网设备OTA:全量升级和增量升级

    各位看官好,上一篇文章我们聊了一下关于 OTA 升级过程中,新的软件包是如何从开发者的电脑上,安全的下载到嵌入式设备中的. 这个流程似乎很简单,不就是下载一个文件而已嘛,怎么还值得写成一篇文章呢? 其 ...

  9. Kafka分区消息积压排查指南

    针对某个TOPIC只有几个分区积压的场景,可以采用以下方法进行排查: 消息生产是否指定key? 如果指定了消息key,那么消息会指定生产到hash(key)的分区中.如果指定了key,那么有下列几种可 ...

最新文章

  1. python性能测试模块_python模块介绍- multi-mechanize 通用的性能测试工具
  2. oracle 数据库问题,ORACLE数据库常见问题汇总,oracle常见问题汇总
  3. hdu 3706 Second My Problem First 单调队列
  4. 茶杯头开枪ahk代码
  5. JdbcTemplate操作
  6. Go,11 岁生日快乐!
  7. Win7系统不能记忆窗口大小与位置解决方法
  8. 利用drozer进行Android渗透测试
  9. java模拟洗衣机程序,JAVA洗衣机仿真程序实验报告及代码
  10. RobotStudio 自动路径
  11. 关于去除“请选择”问题
  12. Parallels Desktop 16 已损坏,无法打开,您应该推出磁盘映像。怎么解决?
  13. 新唐M251 CORTEX-M23内核移植TencentOS tiny教程
  14. redisson watchdog 使用和原理
  15. lifi与wifi的论文_WIFI研究论文()
  16. 网易2018校园招聘:合唱 [python]
  17. Win10 蓝屏 SFC /SCANNOW发现损坏文件
  18. 有关WLAN与wifi、WPAN与Bluetooth、WPAN与802.15、wifi与802.11、WiMAX与802.16等关系的一点理解
  19. 我国羽绒制品在欧洲遭遇部分消费者抵制
  20. java 面向对象经典例题——教师,学生,家长。教师布置作业给学生和家长。

热门文章

  1. 亚马逊 Amazon EDI直连案例
  2. Linux tasklet
  3. GOTS认证咨询,目前对供应链管控的有机标准有OCS和GOTS,也是目前认可度最高的认证标准
  4. ZigBee TI ZStack CC2530 3.10 IO口01-输入输出
  5. 我听很多人说JAVA已经过时了,下一个要淘汰的语言就是JAVA,真的是这样吗?
  6. 尚观python培训_尚观Python基础入门学习,资源教程下载
  7. 开火车游戏c语言,大班游戏活动:开火车
  8. 程序员需要“程序员鼓励师”吗,对程序员到底有没有效果?看一下!
  9. 用jsp把网页内容保存为excel文件
  10. RFID相关知识总结(超高频UHF)