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