【问题标题】:where does timestamp of a packet reside数据包的时间戳在哪里
【发布时间】:2013-09-05 10:56:05
【问题描述】:

当一个数据包出去时,libpcap会为数据包加上时间戳,但是数据包的时间戳在哪里,即它是否位于数据包的数据中。 如果在接收端接收到相同的数据包,则发送端的时间戳将在接收端被 libpcap 覆盖。

【问题讨论】:

  • libpcap 会在数据包到达时为它打时间戳,而不是在它发送时。

标签: networking


【解决方案1】:

libpcap 不会给传出的数据包加上时间戳。在传输端,时间戳可以作为某些网络协议的一部分来完成。例如,对于 TCP,可以使用时间戳选项 (RFC 1323)。如果启用了 TCP 时间戳选项,则传出的数据包很可能会被网络堆栈加上时间戳。

在接收端,libpcap 从操作系统接收数据包,并依赖内核为其提供有效时间戳。内核将从网络接口驱动程序或网络堆栈中获取时间戳。

接收时间戳不应该是数据包的一部分,因此不会覆盖发送者时间戳,这将是接收数据包的一部分。 (与 TCP 一样)

希望这能回答您的问题?

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 2016-06-04
    • 2023-04-10
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多