tcpdump抓包儲存檔案的結構分析

2021-07-24 08:36:30 字數 2287 閱讀 7238

這種檔案可以直接用wireshark來分析,也可用16進製制開啟來分析

1、檔案的前24位元組,不要管

2、接下來的16位元組是:8位元組的時間戳(前4位高低位的互換再乘1000可得到當前的時間精確到秒,後4位是微妙),4位元組的軟體抓包幀長度,4位元組的網路中實際資料長度(比如42 00 00 00 表示後面幀的長度為66位元組)

3、具體的幀(也就是在wireshark中能看到的資料)

3.1、6位元組的目的mac位址+6位元組的源mac位址+2位元組的協議型別(ip包為0x0800)

3.2、20~60位元組的ip頭

4bit的版本0100(ipv4),0110(ipv6),4bit的頭長度(單位為4位元組,比如0101是5,表示5*4=20位元組)

服務型別(type of service)

:長度8位元。8位 按位被如下定義 ppp dtrc0

ppp:定義包的優先順序,取值越大資料越重要

000 普通 (routine)

001 優先的 (priority)

010 立即的傳送 (immediate)

011 閃電式的 (flash)

100 比閃電還閃電式的 (flash override)

101 cri/tic/ecp(

找不到這個詞的翻譯

)110 網間控制 (internetwork control)

111 網路控制 (network control)

d 時延: 0:普通 1:延遲盡量小

t 吞吐量: 0:普通 1:流量盡量大

r 可靠性: 0:普通 1:可靠性盡量大

m 傳輸成本: 0:普通 1:成本盡量小

0 最後一位被保留,恆定為0

ip包總長(total length)

:長度16位元。 以位元組為單位計算的ip包的長度 (包括頭部和資料),所以ip包最大長度65535位元組。

識別符號(identifier)

:長度16位元。該字段和flags和fragment offest欄位聯合使用,對較大的上層資料報進行分段(fragment)操作。路由器將乙個包拆分後,所有拆分開的小包被標記相同的值,以便目的端裝置能夠區分哪個包屬於被拆分開的包的一部分。

標記(flags)

:長度3位元。該欄位第一位不使用。第二位是df(don't fragment)位,df位設為1時表明路由器不能對該上層資料報分段。如果乙個上層資料報無法在不分段的情況下進行**,則路由器會丟棄該上層資料報並返回乙個錯誤資訊。第三位是mf(more fragments)位,當路由器對乙個上層資料報分段,則路由器會在除了最後乙個分段的ip包的包頭中將mf位設為1。

片偏移(fragment offset)

:長度13位元。表示該ip包在該組分片包中位置,接收端靠此來組裝還原ip包。

生存時間(ttl)

:長度8位元。當ip包進行傳送時,先會對該字段賦予某個特定的值。當ip包經過每乙個沿途的路由器的時候,每個沿途的路由器會將ip包的ttl值減少1。如果ttl減少為0,則該ip包會被丟棄。這個字段可以防止由於路由環路而導致ip包在網路中不停被**。

協議(protocol)

:長度8位元。標識了上層所使用的協議。

以下是比較常用的協議號:

1    icmp

2    igmp

6    tcp

17    udp

88    igrp

89    ospf

頭部校驗(header checksum)

:長度16位。用來做ip頭部的正確性檢測,但不包含資料部分。 因為每個路由器要改變ttl的值,所以路由器會為每個通過的資料報重新計算這個值。

起源和目標位址(source and destination addresses)

:這兩個地段都是32位元。標識了這個ip包的起源和目標位址。要注意除非使用nat,否則整個傳輸的過程中,這兩個位址不會改變。

至此,ip包頭基本的20位元組已介紹完畢,此後部分屬於可選項,不是必須的部分。

3.3、tcp包(屬於ip包的資料部分):

2位元組的源埠號

2位元組的目的埠號

4位元組的序列號

4位元組的確認號

首部長度(4位,單位是4位元組) 保留位(6位) urg ack psh rst syn fin(每個佔1位,同6位)

視窗大小(16位)

檢驗和(16位) 緊急指標(16位)

選項+填充

資料區

3.4、udp包

udp源埠號(16位) 

udp目標埠號(16位)

udp長度(16位)

udp校驗和(16位)

資料區

tcpdump抓包儲存cap檔案

1 tcpdump是對網路上的資料報進行截獲的包分析工具 3 例子 抓取網絡卡eht0 及192.168.168.18ip和8081埠 命令 tcpdump i eht0 w file.cap host 192.168.168.18 and tcp port 8081 w 引數指定將監聽到的資料報寫...

tcpdump抓包並儲存成cap檔案

首選介紹一下tcpdump的常用引數 tcpdump採用命令列方式,它的命令格式為 tcpdump adeflnnopqstvx c 數量 f 檔名 i 網路介面 r 檔名 s snaplen t 型別 w 檔名 表示式 1.tcpdump的選項介紹 a 將網路位址和廣播位址轉變成名字 d 將匹配資...

tcpdump抓包並儲存成cap檔案

首選介紹一下tcpdump的常用引數 tcpdump採用命令列方式,它的命令格式為 tcpdump adeflnnopqstvx c 數量 f 檔名 i 網路介面 r 檔名 s snaplen t 型別 w 檔名 表示式 1.tcpdump的選項介紹 a 將網路位址和廣播位址轉變成名字 d 將匹配資...