tcpdumpfilter序列号

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

我遇到的问题是我不能根据它们的ACK和序列号来过滤这两个数据包

它需要用tcpdump来实现,但是像awk这样的脚本语言是可以的

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

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

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

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

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