抓包工具链61 条

pcapng 块结构速览

pcapng 由块构成(接口描述块、增强包块、注释块等):块信息支撑多接口、注释与精确时间戳;解析问题可从块层排查。

pcapng 的块结构

pcapng 由块构成:接口描述块、增强包块、注释块等等。块结构支撑了多接口、注释和更高精度的时间戳,所以排查解析问题时也可以从块层面入手,看文件里到底记录了哪些信息,而不是只盯着包的内容。

基本信息

适用平台现代抓包工具的默认输出格式
组成接口描述块、增强包块、元数据块等
相对优势多接口、注释、更高时间精度
兼容性老工具只认 pcap,需要转换

典型使用场景

  • 理解多接口文件为什么能区分来源
  • 排查解析工具报块错误的原因
  • 确认采集文件记录了哪些元数据
  • 与 pcap 格式对比,判断是否值得转换
  • 交付给只支持旧格式的平台

查看元数据

查看元数据
# 图形界面:统计菜单下的捕获文件属性,可查看接口列表、时间精度、采集系统等信息
capinfos a.pcapng
# 命令行方式查看文件元数据摘要
editcap -F pcap a.pcapng b.pcap
# 老工具只认 pcap 时按需降级转换,注意接口块与注释会丢失

块类型与用途

块类型作用实践提示
接口描述块记录每个接口的名称与属性对应多接口来源区分
增强包块承载单个报文与其时间戳时间精度优于旧格式
注释块保存采集过程说明解释采集背景很有用
元数据块记录操作系统与工具信息排查采集环境差异
写入中断的 pcapng 文件往往仍能部分读取,别急着删除源文件。先用元数据工具看看能读到多少内容,再决定是否需要重新采集,多数情况下能救回大部分数据。
多接口文件里的包序不保证全局时间有序,做时序分析前按需排序。老分析工具只认 pcap 时用转换工具降级,但要清楚接口块与注释会一起丢失,交接时要提前说明。

使用建议

  • 优先使用 pcapng 保留完整元数据
  • 交付给旧工具前先确认格式支持情况
  • 解析报块错误时先用元数据工具确认文件完整性
  • 多接口文件分析前先确认包序是否需要重排
  • 转换前保留原文件,转换后核对包数

易错点

  • 写入中断就删文件:文件往往仍可部分读取,直接删除等于放弃数据
  • 假设多接口文件全局有序:时序分析的先后关系可能不成立
  • 盲目降级格式:接口与注释信息丢失,交付后无法还原
  • 只看包内容不看块结构:解析异常的原因常常在块层面

数据来源与参考

  • pcapng 规范(IETF draft)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌