PCAP 示例文件

PCAP(.pcap,packet capture)是网络流量抓包格式:文件中保存网卡看到的完整帧,每一帧都带有时间戳。下面是可直接用于 Wireshark、tcpdump 和自研解析器的现成抓包文件

传输层与应用层

示例文件:握手与会话关闭:SYN、SYN-ACK、ACK、FIN
握手与会话关闭:SYN、SYN-ACK、ACK、FIN TCP 7 packets
538 b
↓
示例文件:GET 请求与带页面正文的 200 响应
GET 请求与带页面正文的 200 响应 HTTP GET 200
1.2 Kb
↓
示例文件:A、AAAA、MX 查询以及 NXDOMAIN 应答
A、AAAA、MX 查询以及 NXDOMAIN 应答 DNS A AAAA MX
834 b
↓
示例文件:完整的地址分配流程:DISCOVER、OFFER、REQUEST、ACK
完整的地址分配流程:DISCOVER、OFFER、REQUEST、ACK DHCP DORA
1.3 Kb
↓
示例文件:四组 echo request 与 echo reply,普通的 ping
四组 echo request 与 echo reply,普通的 ping ICMP echo
872 b
↓
示例文件:一秒语音,内含真实的 440 Hz 音调
一秒语音,内含真实的 440 Hz 音调 RTP G.711
11.3 Kb
↓

链路层与寻址

示例文件:请求、应答以及 gratuitous 通告
请求、应答以及 gratuitous 通告 ARP
314 b
↓
示例文件:两个不同 VLAN 中的带标签帧
两个不同 VLAN 中的带标签帧 VLAN 802.1Q
684 b
↓
示例文件:Wi-Fi 监听抓包:两个接入点的 beacon 与 probe
Wi-Fi 监听抓包:两个接入点的 beacon 与 probe 802.11 radiotap
1022 b
↓
示例文件:ICMPv6 ping 与基于 IPv6 的 DNS 查询
ICMPv6 ping 与基于 IPv6 的 DNS 查询 IPv6 ICMPv6
778 b
↓

完整会话

示例文件:网络中的一台主机:依次是 ARP、DNS、TCP、HTTP 和 ping
网络中的一台主机:依次是 ARP、DNS、TCP、HTTP 和 ping mixed 19 packets
1.9 Kb
↓
示例文件:丢包、重复 ACK 与快速重传
丢包、重复 ACK 与快速重传 TCP fast retransmit
8.3 Kb
↓
示例文件:批量传输:5400 个满长度数据包
批量传输:5400 个满长度数据包 TCP 5407 packets
5.4 Mb
↓

容器格式与边界情况

示例文件:新一代的分块格式
新一代的分块格式 PCAPNG
2.5 Kb
↓
示例文件:时间精度为 1 ns 而非 1 µs
时间精度为 1 ns 而非 1 µs PCAP 1 ns
1.2 Kb
↓
示例文件:文件头采用相反的字节序
文件头采用相反的字节序 PCAP big-endian
1.2 Kb
↓
示例文件:头部有效,但没有任何数据包
头部有效,但没有任何数据包 PCAP 0 packets
24 b
↓
示例文件:最后一个数据包在中途被截断
最后一个数据包在中途被截断 PCAP truncated
1.2 Kb
↓

🧠 PCAP 的工作原理

文件以 24 字节的头部开始:magic 数、版本号、链路类型和 snaplen。随后是一条条记录:每条都有自己的 16 字节头部,记录时间戳和长度,紧跟着就是帧本身,与它在线路上传输时逐字节一致。magic 数按文件自身的字节序写入,读取方正是凭它判断其余数字是否需要翻转。链路类型同样重要:以太网抓包为 1,Wi-Fi 监听抓包为 127,后者的帧以 radiotap 头部开头,而不是 MAC 地址。

pcap file header 24 B 16 B frame 16 B frame 16 B frame ... timestamp Ethernet 14 B IPv4 20 B TCP 20 B payload HTTP, DNS, RTP