在tcpreplay
中有一个非常有用的功能,根据官方常见问题解答,它被称为参数-T
:
数据包长度(在这种情况下为8892字节)大于输出接口上的最大传输单元(MTU)。Tcpreplay必须跳过数据包。或者,您可以指定-T选项和tcpreplay将数据包截断为MTU大小,修复校验和并发送它。
不幸的是,-T
在手册页中似乎有所不同:
-T string, --timer=string
Select packet timing mode: select, ioport, rdtsc, gtod, nano, abstime. This option may appear up to 1 times. The default string for this option is:
gtod
Allows you to select the packet timing method to use:
nano - Use nanosleep() API
select - Use select() API
ioport - Write to the i386 IO Port 0x80
rdtsc - Use the x86/x86_64/PPC RDTSC
gtod [default] - Use a gettimeofday() loop
abstime - Use OS X's AbsoluteTime API
此选项是否已在较新版本的tcpreplay中被删除?
是的,它被分离为tcprewrite
(转换捕获文件),然后选项被合并回命令tcpreplay-edit
中。
常见问题解答显示,tcpreplay-edit --mtu-trunc
现在相当于以前的-T
选项,应该意味着-C
可以更正校验和,但如果您不是在处理标准1500,则可能需要--mtu=n
,或者如果部分问题是收集时标头和实际长度不一致,则需要-F
。