欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

记录 TCP 队列满溢问题的故障排除过程-4.抓包数据分析

最编程 2024-07-09 14:59:39
...

情景1:服务A及服务B均有连接日志打印。
服务A端数据包分析:
09:51:43.966553000 服务A发起 GET请求的数据包如下:

1.png
图1:服务A发起GET请求

09:51:46.966653000 服务A发起 GET请求3s(即服务A设置的等待超时时长)后,因未收到服务B响应,服务A向服务B发起FIN主动断开连接。

2.png
图2:服务A等待超时主动断开连接

09:51:59.958195000 服务A发起http请求16s后收到服务B的http响应报文,因服务A已主动关闭该连接,故直接回复RST。

3.png
图3: 服务B16s后响应

服务B端数据包分析:
09:51:44.062095000 服务B收到服务A发送的http请求包。

4.png
图4:服务B收到服务A的请求

09:51:59.936169000 服务B响应服务A,服务B从接收到http请求报文至响应http请求总用时约为15s多,但服务B打印的日志响应时长约为0.165s。

5.png
图5:服务B15S后响应

 

6.png
图6:服务B日志显示响应时间0.165s

情景2:服务A有连接日志,服务B无连接日志。
服务A端数据包分析:
09:51:43.973791000 服务A向服务B发送一个http请求数据包,随后收到服务B重传的第二次握手的syn+ack包,超过3s未收到服务B的http响应后断开连接。

7.png
图7:服务B重传syn+ack

服务B端数据包分析:
服务B重传了第二次握手的syn+ack包,收到服务A的http请求,服务B忽略,未响应,服务A等待超时后断开了连接。

8.png
图8: 服务B忽略服务A请求