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位元組。標誌 標識包被分片的相關資訊。片位移 ...