【发布时间】:2013-09-05 10:56:05
【问题描述】:
当一个数据包出去时,libpcap会为数据包加上时间戳,但是数据包的时间戳在哪里,即它是否位于数据包的数据中。 如果在接收端接收到相同的数据包,则发送端的时间戳将在接收端被 libpcap 覆盖。
【问题讨论】:
-
libpcap 会在数据包到达时为它打时间戳,而不是在它发送时。
标签: networking
当一个数据包出去时,libpcap会为数据包加上时间戳,但是数据包的时间戳在哪里,即它是否位于数据包的数据中。 如果在接收端接收到相同的数据包,则发送端的时间戳将在接收端被 libpcap 覆盖。
【问题讨论】:
标签: networking
libpcap 不会给传出的数据包加上时间戳。在传输端,时间戳可以作为某些网络协议的一部分来完成。例如,对于 TCP,可以使用时间戳选项 (RFC 1323)。如果启用了 TCP 时间戳选项,则传出的数据包很可能会被网络堆栈加上时间戳。
在接收端,libpcap 从操作系统接收数据包,并依赖内核为其提供有效时间戳。内核将从网络接口驱动程序或网络堆栈中获取时间戳。
接收时间戳不应该是数据包的一部分,因此不会覆盖发送者时间戳,这将是接收数据包的一部分。 (与 TCP 一样)
希望这能回答您的问题?
【讨论】: