IoT物联网设备丢消息问题排查指南
IoT物联网设备受限于硬件性能,不同地域网络覆盖差异大,信号不稳定,数据丢包现象屡见不鲜,且多数设备无人机交互界面,一旦出现设备离线,消息丢失,往往给用户造成不可估量的损失。如何快速定位消息丢失的原因,成为IoT开发者必须面对的挑战。
本⽂针对IoT设备业务链路丢包,提供⼀些常见的故障定位⽅法,希望能够帮助⼤家对数据丢包有更多的认识,遇到数据丢包莫要慌,且翻看此消息排查指南,强烈推荐收藏!
IoT消息链路梳理
在解决丢消息之前,我们要先搞清楚整个消息链路。
物联网场景,业务数据由设备端应用程序打包后,再封装MQTT报文,交给通信模组转成网络传输Packet,经由运营商网络传输到云上的IoT物联网平台,再由平台内部处理,通过规则引擎流转写入数据库,或推送到业务服务器。
受限于模组硬件内存,运营商⽹络质量等原因的影响,设备端数据包翻山越岭,历尽艰难险阻,才能顺利到达业务系统。
设备端消息处理过程
设备端数据打包过程如下:
设备端应⽤程序组装业务数据包,
在MQTT协议层增加MQTT报文头,形成MQTT数据包,
在TCP层增加TCP报⽂头,形成可传输的数据包。
在IP层增加IP报⽂头,形成网络层的IP包。
在经过通信模组驱动程序为IP包添加14字节的MAC地址头,构成数据帧Frame,包含有发送端和接收端的MAC地址。
模组驱动程序为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物联网设备丢消息问题排查指南相关推荐
- IoT 物联网设备端 SDK 架构设计参考
IoT设备端SDK架构挑战 IoT物联网设备应用场景不同导致配置千差万别,在硬件端SDK设计过程中,既要满足多场景快速适配,又要用尽量少的硬件资源,还要满足能力定制化的需求,实现低消耗.易移植.易使用 ...
- AWS IoT 物联网设备 - 即时部署 JITP 实战
为了保证通信的安全性,IoT 设备与 AWS IoT Core 的 MQTT 通信使用基于证书的 TLS 1.2 双向认证体系. 利用即时注册(JITR)功能,可以快速的进行设备证书注册及设备上线.但 ...
- 下载 | mqtt4aliyun 阿里云 IoT 物联网 设备模拟器 Mac , Windows版本
mqtt4aliyun 是基于 MQTT X 开源版本修改,用于连接阿里云IoT物联网平台的 MQTT模拟器,支持 macOS, Windows系统,支持简体中文/English切换.相比于 MQTT ...
- IoT物联网设备数据安全解决方案
随着越来越多的设备需要被远程管理,在带来了便捷性的同时, 也对设备的安全性带来了挑战.设备连接到互联网后,通过服务器,接收和处理设备数据.攻击者如果在数据转发路径中截获数据,并解析出数据的业务含义,就 ...
- IoT 物联网设备该如何选择固件升级 OTA ?
根据IDC的一份最新报告,到2025年,将有416亿台物联网设备,产生79.4 zetb的数据.连接的设备相互通信,传输数据集,并在单个生态系统中工作.为了有效地做到这一点,还需要定期更新,就像笔记本 ...
- IoT物联网设备上云技术方案详解
随着传感器和通信技术的不断发展,物联网行业方兴未艾,业务链路涉及数据采集,通信连接,数据存储,数据可视化,洞察,行动决策.但,在实施过程中,碎片化的设备端通信连接难题往往就阻碍了项目落地进程. 今天, ...
- 【钉钉-场景化能力包】IoT物联网设备协同
需求场景 环境预警监控:企业与监控数据实时同步,当设备监测到环境异常时,需要通过机器人发送预警信息到个人或场景群,并呈现预警具体信息. 考勤机数据推送:员工通过考勤机完成一键考勤,考勤成功后通过机器人 ...
- IoT物联网设备OTA:全量升级和增量升级
各位看官好,上一篇文章我们聊了一下关于 OTA 升级过程中,新的软件包是如何从开发者的电脑上,安全的下载到嵌入式设备中的. 这个流程似乎很简单,不就是下载一个文件而已嘛,怎么还值得写成一篇文章呢? 其 ...
- Kafka分区消息积压排查指南
针对某个TOPIC只有几个分区积压的场景,可以采用以下方法进行排查: 消息生产是否指定key? 如果指定了消息key,那么消息会指定生产到hash(key)的分区中.如果指定了key,那么有下列几种可 ...
最新文章
- python性能测试模块_python模块介绍- multi-mechanize 通用的性能测试工具
- oracle 数据库问题,ORACLE数据库常见问题汇总,oracle常见问题汇总
- hdu 3706 Second My Problem First 单调队列
- 茶杯头开枪ahk代码
- JdbcTemplate操作
- Go,11 岁生日快乐!
- Win7系统不能记忆窗口大小与位置解决方法
- 利用drozer进行Android渗透测试
- java模拟洗衣机程序,JAVA洗衣机仿真程序实验报告及代码
- RobotStudio 自动路径
- 关于去除“请选择”问题
- Parallels Desktop 16 已损坏,无法打开,您应该推出磁盘映像。怎么解决?
- 新唐M251 CORTEX-M23内核移植TencentOS tiny教程
- redisson watchdog 使用和原理
- lifi与wifi的论文_WIFI研究论文()
- 网易2018校园招聘:合唱 [python]
- Win10 蓝屏 SFC /SCANNOW发现损坏文件
- 有关WLAN与wifi、WPAN与Bluetooth、WPAN与802.15、wifi与802.11、WiMAX与802.16等关系的一点理解
- 我国羽绒制品在欧洲遭遇部分消费者抵制
- java 面向对象经典例题——教师,学生,家长。教师布置作业给学生和家长。
热门文章
- 亚马逊 Amazon EDI直连案例
- Linux tasklet
- GOTS认证咨询,目前对供应链管控的有机标准有OCS和GOTS,也是目前认可度最高的认证标准
- ZigBee TI ZStack CC2530 3.10 IO口01-输入输出
- 我听很多人说JAVA已经过时了,下一个要淘汰的语言就是JAVA,真的是这样吗?
- 尚观python培训_尚观Python基础入门学习,资源教程下载
- 开火车游戏c语言,大班游戏活动:开火车
- 程序员需要“程序员鼓励师”吗,对程序员到底有没有效果?看一下!
- 用jsp把网页内容保存为excel文件
- RFID相关知识总结(超高频UHF)