【问题标题】:Time difference between two packets using Radiotap header MAC timestamp使用 Radiotap 标头 MAC 时间戳的两个数据包之间的时间差
【发布时间】:2014-01-29 09:52:06
【问题描述】:

我正在尝试解析在监控模式下捕获的 802.11 数据包的 radiotap 标头的 MAC 时间戳字段。

radiotap 标头的 TSFT 字段是 64 位值,以微秒为单位。原始十六进制值在下面突出显示。

Wireshark 以十进制表示 MAC 时间戳值

这个十进制值是2b1c20cb00000000的十进制值。

我要做的是使用radiotap头MAC时间戳字段中的十六进制值获取两帧之间的时间差。

例如:

第 2 帧的十进制值为 3106049021945315329 (2b1ae72100000001) 和

第 3 帧有 3106066889009266689 (2b1af76100000001)。

减去这个值得到 1AC47FFFFF5C1。并假设这是以微秒为单位的值等于 470900214.330817 秒。

使用radiotap头的MAC时间戳字段中的值获得0.000071秒的时间差的过程是什么

谢谢

【问题讨论】:

    标签: libpcap packet-capture packet-sniffers wifi


    【解决方案1】:

    radiotap 标头中的“MAC 时间戳”字段为 the value in microseconds of the MAC's 64-bit 802.11 Time Synchronization Function timer when the first bit of the MPDU arrived at the MAC。 这是通过您拥有的特定 WiFi 卡的设备驱动程序直接从 MAC 获取的,可能准确或不正确,具体取决于驱动程序的实现。

    “时间”列显示自收到第一帧以来经过的时间。这是 libpcap 使用主机上的系统时钟计算出来的,是 libpcap 首次看到帧的时间。

    这两个时间值都是使用不同的时钟计算的,因此无法直接比较。如果 MAC 时间戳字段正确且准确(您的似乎不是 - 可能是驱动程序问题),则应将其用作参考时间,而 libpcap 时间应仅用作粗略指导。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 2011-02-02
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      相关资源
      最近更新 更多