我正在尝试解析在监控模式下捕获的802.11数据包的radiotap标头的MAC时间戳字段。
radiotap报头的TSFT字段是64位值,以微秒为单位。原始十六进制值突出显示如下。
MAC时间戳值由Wireshark以十进制表示
此十进制值是2b1c20cb00000000的十进制值。
我要做的是使用radiotap标头MAC时间戳字段中的十六进制值来获取两帧之间的时差。
例如:
帧#2的小数值为3106049021945315329(2b1ae72100000001)和
第3帧有3106066889009266689(2b1af76100000001)。
减去该值得到1AC47FFFFF5C1。假设这是以微秒为单位,则该值等于470900214.330817秒。
通过使用radiotap标头的MAC时间戳字段中的值,使用此步骤获得0.000071秒的时差的过程是什么
谢谢
答案 0 :(得分: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时间应该只用作粗略的指南。