pcap文件格式

less than 1 minute read

Published:

原文位于https://wiki.wireshark.org/Development/LibpcapFileFormat

pcap文件是用来存储捕获的网络数据最基础也是最常用的格式,它不仅适用于Ethernet网络,也能同在其他网络类型上使用,Wireshark通过wiretap library处理所有的文件I/O。

下文介绍的pcap文件格式只是版本2.4中一种最常用的格式(一种变种的文件格式支持纳秒时间精度)。pcap文件有一个global header包含一些全局信息,随后是一些(可以是0个)网络包的捕获记录,如下图所示。 图片 文件中一个捕获的包并不一定要包含所有的包中数据,而最多只会包含每个包的前N个bytes(N为snapshot length或者“snaplen”,通常为65535)。

Global Header

图片

  • magic_number:用来检测文件格式和字节顺序(0xa1b2c3d4或者0xd4c3b2a1)。
  • version_major,version_minor:版本号
  • thiszone:时间校正
  • sigfigs:实际中总是为0
  • snaplen:捕获的包的快照的长度
  • network:链路层包头的类型

    Record(Packet) Header

    图片

  • ts_sec:包被捕获的时间
  • ts_usec:和ts_sec的差值(微秒或者纳秒)
  • incl_len:捕获包数据的大小(有多少个bytes)
  • orig_len:原始包数据的大小