PCAPNG 与 PCAP——为什么接口元数据和时间戳精度重要

为需要捕获元数据、时间戳分辨率和可重现数据包证据的工程师提供 PCAPPNG 与 PCAP 的实用解释。

PCAP, PCAPNG, 元数据, 时间戳

工程师通常将“.pcap”和“.pcapng”视为可互换的数据包捕获文件。它们是相关的,但它们并不相同。旧的 PCAP 格式简单且得到广泛支持。 PCAPNG可以承载更丰富的元数据,例如接口信息、时间戳解析、注释和捕获上下文。

对于常规观看来说,差异可能并不重要。对于修复、重写、证据移交和多界面分析来说,它非常重要。

经典 PCAP 为您提供什么

经典 PCAP 很简单:

  • 全局标题
  • 链接类型
  • 数据包记录
  • timestamp
  • 捕获长度
  • 原始长度
  • 数据包字节数

这种简单性就是一种力量。很多工具都可以读取它。检查起来很容易。当捕获具有一种接口、一种链接类型并且不需要额外的上下文时,通常就足够了。

但简单性也意味着重要的证据可能存在于文件之外:接口名称、捕获过滤器、操作系统、时间戳分辨率假设以及有关捕获原因的注释。

PCAPNG 添加了什么

PCAPNG 支持基于块的结构。根据作者的不同,它可能包括:

  • 节元数据
  • 接口说明
  • 每个接口的时间戳分辨率
  • 接口名称和描述
  • 数据包评论
  • 捕获统计数据
  • 多种接口
  • 更丰富的选项字段

这在诊断复杂病例时非常有价值。如果捕获包含来自多个接口的流量,则必须了解哪个数据包来自哪个接口。如果时间戳分辨率不同,时序分析可能会发生变化。

为什么元数据在手术工作流程中很重要

修复或重写数据包捕获时,元数据是证据的一部分。从 PCAPNG 到 PCAP 的转换可能会丢弃有用的上下文。从 PCAP 到 PCAPNG 的转换可能会添加结构,但无法神奇地恢复从未存在过的元数据。

转换之前,询问:

  • 捕获有多个接口吗?
  • 接口名称重要吗?
  • 是否需要评论或捕获统计数据?
  • 时间戳分辨率已知吗?
  • 下游工具需要经典 PCAP 吗?
  • 转换会改变时间的解释方式吗?

正确的答案可能是“保留 PCAPNG”。它也可能是“导出 PCAP 副本以实现兼容性,但保留原始版本”。

时间戳解析很容易被忽略

时序分析取决于分辨率。记录微秒的捕获和记录纳秒的捕获在 UI 中看起来相似,但精度不同。 PCAPNG 可以使每个接口的时间戳解析变得明确。根据变体,经典 PCAP 的假设更加有限。

如果您正在调试延迟、重传计时、抖动或请求响应间隙,则应在编辑之前记录时间戳语义。

PCAP 手术适合的场合

PCAP 手术应将格式转换和元数据保存视为证据主导的操作。目标不是隐藏复杂性。目标是明确捕获内容以及编辑会丢失或更改的内容。

对于以格式为中心的报告,有用的输出包括:

  • 输入格式
  • 链接类型
  • 数据包计数
  • 时间戳分辨率
  • 接口元数据(如果可用)
  • 输出格式
  • 保留或丢弃的元数据
  • 转换原因

这让协议工程师确信文件是故意转换的。

如果您的查询是“pcapng vs pcap”或“将 pcapng 转换为 pcap”,答案不应停留在文件扩展名处。询问哪些证据必须在转变过程中保留下来。