作者:圈圈
ID:wljsghq
IPv4報文格式
上圖中各字段的含義如下:
Version版本 4Bit :ip報文中,用來表示該協議采用的是那一個版本的ip,相同版本的ip才能進行通信。一般此處的值為4,表示ipv4。
Header Length頭部長度 4Bit :表示整個ip包頭的長度,其中單位是4字節。即二進制數0000-1111(十進制數0-15),其中一個最小長度為0字節,最大長度為60字節。一般來說此處的值為0101,表示頭長度為20字節。
Type of Service(ToS) 8Bit :差分服務等級的標記。
Total Length總長度 16Bit :該字段表示ip報文的總長度,單位是1字節。能表示的最大字節為2^16-1=65535字節。不過由于鏈路層的MTU限制。超過1480字節后就會被分片(以太幀MTU為1500的情況下,除去20字節的包頭)。
Identification標記位 16Bit :該字段是ip軟件實現的時候自動產生的,該字段的目的不是為了接受方的按序接受而設置的,而是在ip分片以后,用來標識同一片分片的。方便ip分片的重組。
Flag標志 3Bit :該字段是與ip分片有關的。其中有三位,第一位保留,其他兩位分別為DF,MF。MF標識后面是否還有分片,為1時,表示后面還有分片。DF標識是否能分片,為0表示可以分片,如果為1不能分片,但偏移量字段又不為0,那么就會丟棄該報文。
Fragment offset偏移量 13Bit :該字段是與ip分片后,相應的ip片在總的ip片的位置。該字段的單位是8字節。比如,一個長度為2000字節的ip報文,到達路由器。這是超過了鏈路層的MTU,需要進行分片,2000字節中,20字節為包頭,1980字節為數據,需要分成2個ip片(鏈路層MTU為1500),那么第一個分片的片偏移就是0,表示該分片在1980的第0位開始,第1479位結束。第二個ip片的片偏移185(1480/8),表示該分片開始的位置在原來ip的第1480位,結束在2000。
TTL 8Bit :該片表示生存周期,該值占8bit。ip分片每經過一個路由器該值減一,它的出現是為了防止路由環路,浪費帶寬的問題。
Protocol協議 8Bit :該值標識上層的協議。其中1標識ICMP、2標識IGMP、6標識TCP、17標識UDP、88標識OSPF。
Header CheckSum校驗和 16Bit :該值是對整個數據包的包頭進行的校驗。
源IP和目的IP各32Bit。
如果有Option字段,但沒到32Bit,由Padding補齊(補0)。
什么情況下兩主機的子網掩碼不同,卻可以相互通信?
一臺主機為172.31.1.1 255.255.255.0
一臺主機為 172.31.1.2 255.255.255.224
測試可以ping通……
問: 為什么,什么情況下兩主機的子網掩碼不同,卻可以相互通信?
答:
因為這兩臺主機都在百同一網段度172.31.1.0,所以能相互通信問
A機的地址:172.31.1.1 255.255.255.0
轉換為:10101100 00011111 00000001 00000001
(對齊)11111111 11111111 11111111 00000000
進行相與運算,1與1為1,0與0為0,1與0為0
等于: 10101100 00011111 00000001 00000000 (172.31.1.0)
B機的地址:172.31.1.2 255.255.255.224
轉換為:10101100 00011111 00000001 00000010
(對齊)11111111 11111111 11111111 11100000
等于: 10101100 00011111 00000001 00000000 (172.31.1.0)
總結兩地址IP地址和掩碼相與結果相同即可通信。
審核編輯:湯梓紅
-
ip地址
+關注
關注
0文章
303瀏覽量
17129 -
IPv4
+關注
關注
0文章
142瀏覽量
19966 -
Type
+關注
關注
1文章
138瀏覽量
22753 -
報文
+關注
關注
0文章
38瀏覽量
4068
原文標題:網絡的基石——IPv4
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論