tcpdump抓包分析实战-客户端接收到网关响应的body是空的

原创 吴就业 170 0 2024-02-06

本文为博主原创文章,未经博主允许不得转载。

本文链接:https://wujiuye.com/article/b1203114a320443ba6fc08e30e529df1

作者:吴就业
链接:https://wujiuye.com/article/b1203114a320443ba6fc08e30e529df1
来源:吴就业的网络日记
本文为博主原创文章,未经博主允许不得转载。

只因请求头deviceId多了一个‘\n’导致,服务端接收到的body是空的。

问题现象

我司基于idl语言自研客户端与服务端通信的rpc框架,客户端向服务端发送idl调用,底层实现是发送http请求,请求经过自研的七层流量网关,由网关代理转发给后端服务。

经排查,客户端发送idl请求,服务端收到请求且正常处理请求并响应客户端,确认响应body不为空,但客户端看到的现象是响应body为空。

排查过程

从问题现象来看,已经完全可以确认是网络问题,那么排查网络问题肯定就是抓包分析了。

步骤一:让客户端帮忙抓包,获取客户端->网关链路的http数据包。

发现客户端请求http包deviceId后面多了个“\n”,数据包是不正常的。然后客户端没收到响应,但网关却正常处理了请求,并转发给后端服务。

步骤二:抓包网关->后端服务链路的websocket包。

发现请求响应正常,后端服务确实响应了数据包给网关。

正常的数据包:

正常数据包分析

有问题的数据包:

有问题的数据包分析

deviceId多了一个‘\n’:

如果你觉得Wireshark上手难,可以试试这款TCP数据包分析工具:https://www.chattcp.com/

结论

只因请求头deviceId多了一个‘\n’导致的现象,修正deviceId后正常。

但是有个疑问待解决:为什么请求被正常处理了,但是网关没能把响应返回给客户端?

#网络

声明:公众号、CSDN、掘金的曾用名:“Java艺术”,因此您可能看到一些早期的文章的图片有“Java艺术”的水印。

文章推荐

nfs协议的rpc通信协议

通过开源项目go-nfs-client理解nfsv3的rpc通信协议,从而知道怎么解析抓取的数据包,获取需要的信息。

nfs协议,写文件流程分析

理解nfsv3协议的打开一个文件写和创建一个文件写的流程,以及相关操作的协议的理解、请求和响应的结构体的理解。

tcpdump抓包分析实战-学习网络问题排查必备技能-抓包分析,附多个案例讲解

了解网络协议、学会利用tcpdump抓包,学会利用Wireshark分析数据包,将能帮助我们解决一些仅从客户端日记分析或仅从服务端日记分析无法解决的疑难杂症。本篇结合笔者经历的一些实战案例,带大家掌握网络问题排查必备技能:tcpdump抓包分析。

带宽问题排查实战-记一次线上文件下载慢问题排查

上传的文件是仅办公网络可访问,办法室网络有带宽限制,一个页面加载上百张图片,很容易达到带宽限制,所以出现下载很慢。

从断点续传故障排查,分析浏览器是怎么实现断点续传的

自研实现文件上传下载的中间件在测试阶段发现断点续传有问题。具体表现是:使用wget下载mp4文件可以正常播放,用google浏览器打开链接,google浏览器无法正常播放mp4视频。

TLS协议以及TLS协议的握手过程

如今HTTPS已被广泛使用,但作为程序员的我们,真的理解这个'S'了吗?如果还没有,这篇入门级介绍或许能帮到你。