ipv4頭部分析,讀書筆記3

2022-04-09 07:13:23 字數 2336 閱讀 8589

ip頭部最長是60位元組,前面的20位元組是固定的,選項可加上40位元組

4位版本號--- 對於ipv4來說呢,就是4

4位頭部長度 ---  表示 有多小個32bit(4位元組),4位最大表示數是15啦,也就是最大就是15啦,所以頭部最長就是60啦

8位服務型別 --- 已經不用了

16總長度---ip資料報長度 所以最大長度為 65535啦

16位標識-- 分片的時候用的

3位標誌 --- 第一位保留 第二位 禁止分片 第三位 表示更多分片

13位偏移 --- 相對ip資料報的開始處

8位生存時間 ---ttl 當變為0的時候拋棄

8 位協議 ---- 指應用層協議,區分上層協議

16位校驗和 ---- 資料的hash值啦

32 位 原端 和目的端ip位址

選項 包括有

1 記錄路由

2 時間戳

3 鬆散路由

4 嚴謹 路由

下面來分析一下

tcpdump -i eth0:1 -ent '(dst 192.168.5.190 and src 192.168.5.109)or( dst 192.168.5.109 and src 192.168.5.190)' –x

bc:ee:7b:9d:ee:02 > 40:16:7e:79:c7:36, ethertype ipv4 (0x0800), length 74: 192.168.5.109 > 192.168.5.190: icmp echo request, id 1, seq 72, length 40

0x0000:  4500 003c 7da4 0000 4001 70a1 c0a8 056d  e..

0x0010:  c0a8 05be 0800 4d13 0001 0048 6162 6364  ......m....habcd

0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374  efghijklmnopqrst

0x0030:  7576 7761 6263 6465 6667 6869            uvwabcdefghi

0x4 代表ip版本號

0x5  頭部長度為 5個32位(20個位元組)

0x00 說明tos沒有開啟

0x003c  說明 資料報總長度 60位元組

0x7da4 資料報標示

0x0 沒有設定標誌位

0x000 分片偏移

0x40 ttl設定為64

0x01 表示上層協議 為 icmp    1    icmp        # internet control message protocol (可以查詢linux的/etc/protocols )

0x70a1 校驗值

0xc0a8 056d 源ip

0xc0a8 05be 目標ip

什麼時候會分片呢,就是資料報大的時候啦

參照下圖就最清楚啦

下面來做個試驗

ping 192.168.5.190 -l 1473

bc:ee:7b:9d:ee:02 > 40:16:7e:79:c7:36, ethertype ipv4 (0x0800), length 1514: (tos 0x0, ttl 64, id 20425, offset 0, flags [+], proto icmp (1), length 1500)

192.168.5.109 > 192.168.5.190: icmp echo request, id 1, seq 92, length 1480

bc:ee:7b:9d:ee:02 > 40:16:7e:79:c7:36, ethertype ipv4 (0x0800), length 60: (tos 0x0, ttl 64, id 20425, offset 1480, flags [none], proto icmp (1), length 21)

192.168.5.109 > 192.168.5.190: icmp

從id可以看出

他們兩個包都是同乙個包的

第乙個包偏移為0 ,flag[+] 表示mf標誌啦

第二個包偏移為1480 flag[none]表示已經無下乙個

從上個我們可以知道,第二個包是沒有包含icmp頭部,因為規範說第一次發了下次就不發啦

IPv4報文頭部分析

第一行 1 版本 4 bit 標誌ip協議的版本號,存在ipv4 ipv6兩個版本,用4位2進製數字表示,0100代表ipv4,0110代表ipv6。2 頭部長度 4 bit 確定ip報文的長度,ipv4報頭單位是32bit,在這裡,4位二進位制表示為0101,即換算為 5 32bit 8 20 位...

IPv4頭部結構

思動部落格 2.2 ipv4頭部結構 2.2.1 ipv4頭部結構 ipv4的頭部結構如圖2 1所示。其長度通常為20位元組,除非含有可變長的選項部分。4位版本號 version 指定ip協議的版本。對ipv4來說,其值是4。其他ipv4協議的擴充套件版本 如sip協議和pip協議 則具有不同的版本...

ipv4首部分析

首部長度 對於沒有可選項的ip包,首部長度則設定為 5 以4b為單位 即 20位元組 區別服務 表明服務質量。優先度,延遲,吞吐,可靠性,代價,安全 總長度 ip首部與資料部分合起來的位元組數。該字段長16位元。因此ip包的最大長度為65535 2 16位元組。標誌 標識包被分片的相關資訊。片位移 ...