网络异常案例三_RST

问题现象

在做功能测试的时候,经常看到设备离线的消息(MQTT遗嘱)。
在终端连接的网络设备上抓包分析,看到终端设备发起大量的RST请求。
151这个设备,7min,重置断开了8个TCP连接(mqtt连接)。
网络异常案例三_RST_第1张图片

问题分析

网络环境

网络异常案例三_RST_第2张图片

mqtt ping request完成的交互流程

终端设备,keepalive配置为20s。即如果没有交互数据包,每隔20s发送一个request请求
流程:client发送request,server回复response,client针对response回复ack。
在这里插入图片描述

终端设备抓包分析

异常流程:client发起了request,未收到reponse,然后client发送了Disconnect Req,然后重置了tcp连接(flag.RST == 1)。
ps:序号17、18这两行,是服务器回的reponse报文。但解析出了异常(wifi传递丢失?)。 调了几次mqtt的连接,RST的场景,和这个一样
网络异常案例三_RST_第3张图片

笔记本抓包和终端设备抓包对比

终端设备解析异常的包,和笔记本的包对比,相同sequence的。发现笔记本的包是完整的。wifi传输丢包?
网络异常案例三_RST_第4张图片

后面传udp包验证,下行,从外界传输到终端设备。终端设备和无线(红米)很近的时候,传输可靠,但距离远的时候可靠性很差。
换了一款无线设备(华为),相同的距离验证,近距离、远距离测试,均可靠。
具体原因未深入分析。

参考资料

mqtt keep-alive机制
网络异常案例三_RST_第5张图片

附*系列文章索引

整理起因
报文分析
报文格式解读
握手+挥手过程状态变化分析
滑动窗口介绍
可靠数据传输原理
拥塞控制
网络异常案例(1、2、3、4、5、6)
结束语

你可能感兴趣的:(网络,术(知识点),网络,RST,异常案例)