在网络跟踪中,SYN/ACK 是否有可能不立即由 SYN 继续执行

在网络跟踪中,SYN/ACK 是否有可能不立即由 SYN 继续执行

我正在编写一个简单的程序来计算我使用 Wireshark 进行的网络捕获的初始 RTT。为此,我想计算 SYN 和 SYN/ACK 之间的时间差。我不太了解如何在我的跟踪中定位它们,我打算解析在下一行立即有 SYN/ACK 的 SYN。但是我想知道是否有可能其他 TCP 数据在下一行,从而破坏我的计划?如果是这样,我如何找到与 SYN 对应的 SYN/ACK? 谢谢你的帮助。

答案1

我认为其他 TCP 数据可能位于下一行。例如:

  • 如果网络设备打开两个并发连接,则 SYN 后面的行可能会显示来自另一个流的 TCP 数据包。

  • 如果网络路径中的拥塞路由器丢弃了初始 SYN 数据包,则捕获文件可能会出现两个或多个与同一连接相关的连续 SYN 数据包。

我建议采用以下算法:

  1. P2查找设置了 SYN 和 ACK 标志的TCP 数据包。 P2.ackP2.dstP2.src分别为确认号、目标端口和源端口。

  2. 向后搜索一个 TCP 数据包P1,其:

    2.1. 源端口匹配P2.dstAND

    2.2. 目标端口匹配P2.srcAND

    2.3. 序列号匹配P2.ack - 1AND

    2.4. SYN 标志已设置并且

    2.5. 未设置 ACK 标志

  3. P1RTT 是数据包和之间的时间P2

还请考虑比较 IP 标头数据。P1的源地址必须与P2的目标地址匹配,并且反之亦然

参考: TCP 段结构建立连接

相关内容