Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

时间戳

Wireshark 中看到的数据包时间戳通常不是 Wireshark 自己生成的,而是来自底层抓包机制,例如 libpcap、Npcap、操作系统网络栈或网卡/驱动。

因此,当时间戳看起来不准确、分辨率不够或多个包时间相同时,问题通常不在 Wireshark UI 本身,而在抓包路径中的时间来源和记录方式。

时间戳从哪里来

层级可能影响
网卡和驱动是否支持硬件时间戳、何时标记到达时间
操作系统网络栈数据包在哪个处理阶段被附加时间戳
libpcap / Npcap如何从系统获取并保存时间戳
抓包文件格式是否保留足够精度和元数据
Wireshark 显示设置如何把保存的时间戳显示出来

Wireshark 主要负责读取和显示这些时间戳,而不是决定它们最初如何产生。

分辨率和准确度不同

时间戳有两个容易混淆的概念:

概念含义示例
分辨率时间能细分到多小单位微秒、纳秒、皮秒
准确度时间是否接近真实时间系统时钟是否同步、是否偏移

一个时间戳可以分辨率很高,但准确度很差。例如,时钟可以精确到纳秒,但如果系统时间整体偏差 1.5 小时,分析事件时间线仍然会出错。

为什么多个包可能有相同时间戳

某些操作系统或驱动为了降低中断开销,会一次处理一批数据包。这样多个数据包可能在同一次处理过程中被标记时间,导致它们拥有相同或非常接近的时间戳。

另外,数据包第一个 bit 或最后一个 bit 到达网卡,与操作系统为它附加时间戳之间也存在延迟。时间戳不是对物理到达瞬间的绝对精密测量。

分析建议

  • 排查跨系统事件时,先确认抓包机器、服务器和日志系统是否做了时间同步。
  • 对微秒级或纳秒级时序分析,不要只看 Wireshark 显示精度,还要确认抓包路径是否支持对应精度。
  • 多个数据包时间戳相同不一定表示它们同时到达,也可能是系统批处理造成的。
  • 对严格时延测量,优先使用支持硬件时间戳或专用测量能力的设备。

相关页面

  • CaptureSetup:抓包环境设置
  • FileFormatReference:不同抓包文件格式对时间戳元数据的支持
  • Statistics:基于时间的统计和图表
  • Performance:高流量抓包时的处理压力和丢包

Imported from https://wiki.wireshark.org/Timestamps on 2020-08-11 23:26:39 UTC

相关 Wireshark Wiki 页面

网络分析技术档案