pcap文件格式

使用wireshark抓包工具,默認存取爲pcap文件,
Pcap文件頭24B各字段說明:
Magic:4B:0x1A 2B 3C 4D:用來標示文件的開始
Major:2B,0x02 00:當前文件主要的版本號      
Minor:2B,0x04 00當前文件次要的版本號
ThisZone:4B當地的標準時間;全零
SigFigs:4B時間戳的精度;全零
SnapLen:4B最大的存儲長度    
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

其中我們最爲常見的類型就是1,以太網鏈路。

字段說明:
Timestamp:時間戳高位,精確到seconds      
Timestamp:時間戳低位,精確到microseconds
Caplen:當前數據區的長度,即抓取到的數據幀長度,由此可以得到下一個數據幀的位置。
Len:離線數據長度:網絡中實際數據幀的長度,一般不大於caplen,多數情況下和Caplen數值相等。
Packet 數據:即 Packet(通常就是鏈路層的數據幀去掉前面用於同步和標識幀開始的8字節和最後用於CRC校驗的4字節)具體內容,長度就是Caplen,這個長度的後面,就是當前PCAP文件中存放的下一個Packet數據包,也就是說:PCAP文件裏面並沒有規定捕獲的Packet數據包之間有什麼間隔字符串,我們需要靠第一個Packet包確定下一組數據在文件中的起始位置,向後以此類推。

圖中最開始的綠色部分就是24 Bytes的Pcap Header,接下來紅色的16 Bytes是第一個消息的Packet Header, 後面的紅色的16 Bytes是第二個消息的Packet Header。兩塊藍色的部分分別是兩個消息從鏈路層開始的完整內容。在網絡上實際傳輸的數據包在數據鏈路層上每一個Packet開始都會有7個用於同步的字節(10101010, 10101010, 10101010, 10101010, 10101010, 10101010, 10101010,)和一個用於標識該Packet開始的字節(10101011),最後還會有四個CRC校驗字節;而PCAP文件中會把前8個字節和最後4個校驗自己去掉,因爲這些信息對於協議分析是沒有用處的。
用Wireshark打開一個Pcap數據包後, 每條消息的所有field會被解析出來並會按照協議層次摺疊起來。第一層顯示的是Frame XXX,這一級別沒有對應某層具體的協議,而是對本條消息的一個概括性總結,描述了一些有用的概括性信息,比如從裏面我們可以看到本條消息各種協議的層次關係,展開其它協議層之後對應的是該協議的各個域;如下圖所示



綜述:pcap文件頭:數據鏈路層14字節包頭+20字節ip包頭+20字節tcp包頭或者udp;

目的MAC(6B)+源MAC(6B)+type(2B,0800,ip)+協議版本及頭長度(0x45,1B)+區分服務(1B)

+總長度(2B)+唯一標示(2B)+標誌與偏移量(2B)+TTL(1B)+協議(1B,TCP|UDP)+校驗和(2B)

+源ip地址(4B)+目的ip地址(4B)+源端口(2B)+目的端口(2B)+序列號(4B)+確認號(4B)+頭長度(1B)+ack標誌(1b)+窗口大小(2B)+校驗和(2B)+緊急數據偏移量(2B)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章