如何使用 tcpdump 进行抓包分析?

如果在联调接口时,遇到这样的问题:可以 telnet 联通,但无法调通服务接口。那可以使用 tcpdump 进行抓包分析。

查看三次握手过程

使用命令 sudo tcpdump host 131.87.110.XX -i eth0 查看握手过程。

-i:指定监听的网卡,有的机器有多块网卡。我测试的机器 eth0 能抓到收发的包,而 eth1 只能抓到收的包。

host:指定要监听的包的来源 IP。131.87.110.XX 为对端的商户 IP,报文中使用 remote_mch_IP 代替。

一个正常的握手过程如下:

实际的返回是:

回包标志

可以看到对端服务器发送一个 SYN 后直接 RESET 了。

原因分析

服务器端因为某种原因关闭了连接(如服务 Coredump,调用 Socket.close() 方法等),而客户端依然在读写数据,此时服务器会返回复位标志 RST。

0

发表评论

邮箱地址不会被公开。