首页 > 解决方案 > 一起解析 TCP 数据包

问题描述

我正在开发一个获取 pcap 文件的工具(在本例中来自wireshark),并尝试从 TCP 数据包中解析出数据。

现在在这种情况下,我只关心一个方向的数据。所以我的逻辑是通过protocol-destIP-sourceIP-destPort-sorcePort将每个wireshark捕获的数据包整理成一个列表。

所以从这一点开始,我现在有一个特定端口上一个方向的数据包列表。

从那里我只想能够按顺序遍历 TCP 有效负载的主体。是否像按序列号排序一样简单?

我会简单地获取捕获的第一个序列号,将有效负载大小添加到它并期望它是下一个发送的 TCP 数据包?还有更多我想念的吗?

我注意到以这种方式对接口进行排序时,最终我会得出一个有意义的序列。我想我可以假设这是下一个流的开始?我知道如果我必须考虑来回的流量会变得更加困难......但在这种情况下,我只想观察一个方向的数据包。

标签: networkingtcpwireshark

解决方案


Wireshark 捕获网络上的数据包。可能会发生数据包未按顺序到达、数据包已损坏(校验和错误)、存在重复数据包的情况...... - 这忽略了旨在混淆分析的可能攻击。TCP 堆栈将处理所有这些问题,以便应用程序获取正确的数据包,但 Wireshark 在 TCP 堆栈之外工作。因此,虽然在大多数情况下,您的简单过程可能会起作用(假设您至少检查 TCP 标志以了解连接的开始和结束),但在某些情况下它可能会失败。


推荐阅读