網絡的基石——IPv4

IPv4

IPv4報文格式

在這裏插入圖片描述上圖中各字段的含義如下:

  1. Version版本 4Bit :ip報文中,用來表示該協議採用的是那一個版本的ip,相同版本的ip才能進行通信。一般此處的值爲4,表示ipv4。

  2. Header Length頭部長度 4Bit :表示整個ip包頭的長度,其中單位是4字節。即二進制數0000-1111(十進制數0-15),其中一個最小長度爲0字節,最大長度爲60字節。一般來說此處的值爲0101,表示頭長度爲20字節。

  3. Type of Service(ToS) 8Bit :差分服務等級的標記。

  4. Total Length總長度 16Bit :該字段表示ip報文的總長度,單位是1字節。能表示的最大字節爲2^16-1=65535字節。不過由於鏈路層的MTU限制。超過1480字節後就會被分片(以太幀MTU爲1500的情況下,除去20字節的包頭)。

  5. Identification標記位 16Bit :該字段是ip軟件實現的時候自動產生的,該字段的目的不是爲了接受方的按序接受而設置的,而是在ip分片以後,用來標識同一片分片的。方便ip分片的重組。

  6. Flag標誌 3Bit :該字段是與ip分片有關的。其中有三位,第一位保留,其他兩位分別爲DF,MF。MF標識後面是否還有分片,爲1時,表示後面還有分片。DF標識是否能分片,爲0表示可以分片,如果爲1不能分片,但偏移量字段又不爲0,那麼就會丟棄該報文。

  7. 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。

  8. TTL 8Bit :該片表示生存週期,該值佔8bit。ip分片每經過一個路由器該值減一,它的出現是爲了防止路由環路,浪費帶寬的問題。

  9. Protocol協議 8Bit :該值標識上層的協議。其中1標識ICMP、2標識IGMP、6標識TCP、17標識UDP、88標識OSPF。

  10. Header CheckSum校驗和 16Bit :該值是對整個數據包的包頭進行的校驗。

  11. 源IP和目的IP各32Bit。

  12. 如果有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地址和掩碼相與結果相同即可通信。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章