tcpdump 过滤器序列号

tcpdump 过滤器序列号

我捕获了一个数据包跟踪,并想编写一个脚本,使我能够隔离一对匹配的确认和序列数据包(没有其他方法可以过滤掉所有其他数据包),以便我可以计算出两台计算机之间的往返时间 (RTT)

我遇到的问题是我无法根据 ACK 和序列号过滤这两个数据包

它需要使用 tcpdump 才能实现,但 awk 等脚本语言也可以

答案1

您可以使用proto[x:y]tcpdump 中的过滤形式来执行此操作。

RFC 793告诉我们序列号从 TCP 头的第 4 个字节开始,确认号从第 8 个字节开始;两者都是 4 个字节长。

因此,您可以查找具有序列号和确认号的数据包,123456如下所示:

tcpdump -r capturefile tcp[4:4] = 123456 or tcp[8:4] = 123456

您需要使用绝对序列号/确认号来执行此操作,因为 tcpdump 正在将值与数据包中的原始数据进行匹配。使用tcpdump -Sr filename绝对序列号显示您的捕获文件。

相关内容