tcpreplay和时间戳

tcpreplay和时间戳,tcp,udp,timestamp,ip,packets,Tcp,Udp,Timestamp,Ip,Packets,我想使用tcpreplay重播由TCP和UPD数据包组成的数据包跟踪 是否有方法将时间戳附加到每个传出数据包,以便在收到(并转储)所有回复后,我能够计算往返时间 否则,我应该使用哪个其他工具?如果您同时使用tcpdump或Wireshark嗅探流量,它将在发送和回复时为每个数据包加上时间戳 不过,这只是一个警告,tcpreplay通常不支持将TCP流重播到服务器,因为它不跟踪TCP流的状态。通常,您将得到的只是回复中的重置数据包。UDP通常应该是正常的。ICMP经常起作用。如果您想了解更多信息,

我想使用
tcpreplay
重播由TCP和UPD数据包组成的数据包跟踪

是否有方法将时间戳附加到每个传出数据包,以便在收到(并转储)所有回复后,我能够计算往返时间


否则,我应该使用哪个其他工具?

如果您同时使用tcpdump或Wireshark嗅探流量,它将在发送和回复时为每个数据包加上时间戳

不过,这只是一个警告,tcpreplay通常不支持将TCP流重播到服务器,因为它不跟踪TCP流的状态。通常,您将得到的只是回复中的重置数据包。UDP通常应该是正常的。ICMP经常起作用。如果您想了解更多信息,请务必查看Tcpreplay常见问题解答:


谢谢。我所要做的就是用一个小的ttl值发送我的包跟踪。我不需要在两个方向上重新创建任何TCP流。
tcpreplay
就足够了吗?我的目标是测量发送的每个数据包的往返时间。到目前为止,我一直在使用
scapy
,但在考虑输入数据包速率(较慢)和跟踪请求/响应数据包对的时间戳时,它并不太可靠(延迟有时很大,有时甚至是负的!!)好吧,我不太清楚。我将每个数据包的TTL值伪造为一个小值,这样它就会触发一个ICMP数据包,并用它计算RTT。这就是为什么我不需要保留/维护任何TCP连接。老实说,我不确定如果您只想测量RTT,为什么不使用ping。tcpreplay的问题是它从不从网络上“读取”,所以它永远看不到回复。您将需要其他方法来实现这一点,因此我建议使用tcpdump/Wireshark。但是,如果您想编写代码,可以使用libpcap来观察双向发送的数据包,以便计算RTT。最后,我按照您所说的做了:我使用tcpreplay进行数据包重放,使用tcpdump捕获传出和传入的数据包,从而跟踪每个时间戳。