我已经捕获了一个数据包跟踪,并希望编写一个脚本,使我能够隔离一对匹配的确认和序列数据包(没有其他方法可以过滤掉所有其他数据包),然后我可以计算出往返时间(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
以绝对序列号显示捕获文件。