pcap檔案格式是常用的資料報儲存格式,包括wireshark在內的主流抓包軟體都可以生成這種格式的資料報,
下面對這種格式的檔案簡單分析一下:
pcap檔案的格式為:
檔案頭 24位元組
資料報頭 + 資料報 資料報頭為16位元組,後面緊跟資料報
資料報頭 + 資料報 ......
1.pcap檔案頭(24b)結構
pcap檔案頭處於pcap檔案的最開始處,大小固定為24位元組,檔案頭中各自段說明如下:
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鏈路型別
2.packet包頭(16b)和packet資料組成
(左圖範圍應為packet header1)
timestamp:時間戳高位,精確到seconds(值是自從january 1, 1970 00:00:00 gmt以來的秒數來記)
timestamp:時間戳低位,精確到microseconds (資料報**獲時候的微秒(microseconds)數,是自ts-sec的偏移量)
len:離線資料長度:網路中實際資料幀的長度,一般不大於caplen,多數情況下和caplen數值相等。
(例如,實際上有乙個包長度是1500 bytes(len=1500),但是因為在global header的snaplen=1300有限制,所以只能抓取這個包的前1300個位元組,這個時候,caplen = 1300 )
packet資料:即 packet(通常就是鏈路層的資料幀)具體內容,長度就是caplen,這個長度的後面,就是當前pcap檔案中存放的下乙個packet資料報,也就 是說:pcap檔案裡面並沒有規定捕獲的packet資料報之間有什麼間隔字串,下一組資料在檔案中的起始位置。我們需要靠第乙個packet包確定。 最後,packet資料部分的格式其實就是標準的網路協議格式了可以任何網路教材上找得到。
pcap檔案格式分析
pcap檔案格式是常用的資料報儲存格式,包括wireshark在內的主流抓包軟體都可以生成這種格式的資料報 下面對這種格式的檔案簡單分析一下 pcap檔案的格式為 檔案頭 24位元組 資料報頭 資料報 資料報頭為16位元組,後面緊跟資料報 資料報頭 資料報 pcap.h裡定義了檔案頭的格式 stru...
PCAP檔案格式
一 基本格式 檔案頭 資料報頭 資料報 資料報頭 資料報.二 檔案頭結構體 以下是資料值與鏈路層型別的對應表 0 bsd loopback devices,except for later openbsd 1 ethernet,and linux loopback devices 乙太網型別,大多數...
pcap檔案格式
pcap檔案格式 pcap檔案格式是bpf儲存原始資料報的格式,很多軟體都在使用,比如tcpdump wireshark等等,了解pcap格式可以加深對原始資料報的了解,自己也可以手工構造任意的資料報進行測試。pcap檔案的格式為 檔案頭 24位元組 資料報頭 資料報 資料報頭為16位元組,後面緊跟...