pcap文件格式
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:原始包数据的大小