Wireshark 中的 tcp.analysis.flags 是否找到错误的 TCP 数据包?

网络工程 tcp 线鲨
2022-02-25 05:37:09

让我先声明一下我对 Wireshark 的了解非常有限。

上下文:我正在调查服务器托管文件和支持 ICAP 协议的 AV 之间的日志。在此日志中,我对字符串非常感兴趣:

Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time

我虽然跟踪可能是调查此日志的好主意,所以我使用icap标志来查找有关 icap 事务的所有记录。

由于 icap 基于 TCP/IP 堆,我的问题是:

我应该icap and tcp.analysis.flags在 Wireshark 中用作标志来查找错误的 TCP 数据包吗?

1个回答

没有所谓的坏 TCP 数据包,除非您希望在到达捕获点的途中发现一个损坏的数据包,在这种情况下,NIC 可能会在将其发送到操作系统之前将其丢弃。

您共享的字符串仅表示一方尝试连接到远程方并且从未收到响应,因此这就是您要在 Wireshark 中查找的内容:

(假设 1.2.3.4 是客户端,4.3.2.1 是服务器)

  • 从客户端到服务器 (ip.src == 1.2.3.4 & ip.dst == 4.3.2.1) 的 SYN 数据包 (tcp.flags.syn == 1) 已重新传输 (tcp.analysis.retransmission)
  • 找到它后,右键单击该数据包并选择“Follow TCP stream”。关闭弹出窗口,您将获得连接的原始内容。

您将在特定的 tcp 流上留下一个过滤器,您可能会看到以下行为:

  • 发送一个 SYN 数据包
  • 3 秒后发送第二个 SYN 数据包
  • 6 秒后发送第三个 SYN 数据包
  • 12 秒后发送第四个 SYN 数据包

而且您可能永远不会看到从 4.3.2.1 到 1.2.3.4 的数据包;

你真正的问题可能是:

  • 路径中的防火墙。
  • 服务未在目的地监听。
  • 没有到达目的地的路由,因此数据包在某个时候被发送到默认路由并被静默丢弃(可能离开您的 Internet 边缘?)