pcap空文件为什么会有24字节?

pcap空文件有24节是因为有文件头

文件头    24字节
  数据报头 + 数据报  数据包头为16字节,后面紧跟数据报
  数据报头 + 数据报  ......

pcap.h里定义了文件头的格式
struct pcap_file_header {
        bpf_u_int32 magic;
        u_short version_major;
        u_short version_minor;
        bpf_int32 thiszone;    
        bpf_u_int32 sigfigs;   
        bpf_u_int32 snaplen;   
        bpf_u_int32 linktype;  
};

Pcap文件头24B各字段说明:

Magic:4B:0×1A 2B 3C 4D:用来识别文件自己和字节顺序。0xa1b2c3d4用来表示按照原来的顺序读取,0xd4c3b2a1表示下面的字节都要交换顺序读取。一般,我们使用0xa1b2c3d4

Major:2B,0×02 00:当前文件主要的版本号

Minor:2B,0×04 00当前文件次要的版本号

ThisZone:4B 时区。GMT和本地时间的相差,用秒来表示。如果本地的时区是GMT,那么这个值就设置为0.这个值一般也设置为0 SigFigs:4B时间戳的精度;全零

SnapLen:4B最大的存储长度(该值设置所抓获的数据包的最大长度,如果所有数据包都要抓获,将该值设置为65535; 例如:想获取数据包的前64字节,可将该值设置为64)

LinkType:4B链路类型

常用类型:

0           BSD loopback devices, except for later OpenBSD 1            Ethernet, and Linux loopback devices 6            802.5 Token Ring 7            ARCnet 8            SLIP 9            PPP 10           FDDI 100         LLC/SNAP-encapsulated ATM 101         “raw IP”, with no link 102         BSD/OS SLIP 103         BSD/OS PPP 104         Cisco HDLC 105         802.11 108         later OpenBSD loopback devices (with the AF_value in network byte order) 113         special Linux “cooked” capture 114         LocalTalk