IP協議詳解(一)

2021-08-28 15:24:21 字數 2356 閱讀 4324

深入剖析ip協議,大部分時間就是深入剖析ip頭部協議,隨著現在的ipv6馬上的普及,我們今天就來詳細分析一下ipv4和ipv6的頭部。

1.版本號:佔四位,就是ip協議的版本,通訊雙方的ip協議必須要達到一致,ipv4的版本就是4.

2.首部長度:佔四位,因為長度為四位元,所以首部長度的最大值為1111,15,又因為首部長度代表的單位長度為32個字(也就是4個位元組),所以首部長度的最小值就是0101,當然,也確實如此,大部分的ip頭部中首部位元組都是0101.也就是5*4=20個位元組,如果是最大值15的話,ip首部的最大值就是60個位元組,所以記好了,ipv4首部長度的最大值就是60,當然當中我們又能發現,ipv4的首段長度一定是4位元組的整數倍,要是不是怎麼辦呢?別急,後面的填充欄位會自動填充補齊到4位元組的整數倍的。

3.區分服務:這個沒有什麼用處,也沒有什麼好講的了,只要自動這玩意佔八位,乙個位元組就可以了。

4.總長度:佔16位,這個的意思就是ip資料報中首部和資料的總和的長度,因為佔16位,所以很好理解,總長度的最大值就是2的16次方減一,65535,這玩意也對應著還有乙個很簡單的概念,最大傳輸單元mtu,意味著乙個ip資料報的最大長度就只能裝下65535個位元組,要是傳輸的長度超過這個怎麼辦,很簡單,分片。

對於最大傳輸單元,我們可以呼叫netstat -in來進行檢視:

對於分片我們放在片偏移裡面進行詳細分析。

5.標識:佔16位,標識這玩意很好理解,ip在儲存器中維持乙個計數器,每產生乙個 資料報,計數器就加1,並將此值賦給標識字段。但這個標識並不是平常的序號,因為ip是 無連線服務,資料報不存在按序接收的問題。當資料報由於長度超過網路的mtu而必須分 片時,這個標識欄位的值就被複製到所有的資料報片的標識欄位中,等到重組的時候,相同識別符號的值的資料報就會被重新組裝成乙個資料報。

6.標誌:佔三位,一般有用的是前兩位,

最低位叫做mf,mf=1表示後面還有若干個資料報,mf=0表示這已經是最後乙個資料報了。

中間位叫做df,df表示不能進行分片,df=0才可以進行分片操作。

7.片偏移:佔13位,片偏移就是,在原來的資料報分片以後,該片在原分組中的相對位置,片偏移中的基本單位是8位元組,所以,也就是說,只要是分片,每個分片的長度都是8位元組的整數倍,最後乙個分片不夠八字節的一樣是填充。

8.生存時間ttl:佔8位,(time to live),表明資料報在網路中的壽命,這個值被設定成跳數,顧名思義,就是這個資料報可以經過多少個路由器的數量,每經過乙個路由器,該值就減一,減到為零的時候就被拋棄,顯而易見,這個跳數的最大值就是2的8次方減一,255.

9.協議:就是用來指明資料報攜帶了哪種協議,佔8位。

10.首部效驗和:佔16位,這個字段用來效驗資料報首段,下面給出簡單的計算方法:

首先在傳送端的時候,將效驗和全部置為0,然後把資料報首段資料全部進行反碼相加,得到的值為效驗和,放入首段效驗和裡面,然後接收端將資料報首段資料和效驗和一起全部反碼相加,最後若是得到零,則保留,若是不為零,則說明資料報在傳輸的過程中發生了改變,則丟棄該資料報。

13.到了可變部分ipv4的頭部基本上就已經講完了,增加頭部的可變選項實際上就是增加了資料報的功能,可變選項在實際上是很少用到的。

在ip協議中,ip協議是面向非連線的,所謂的非連線就是在資料的傳遞過程中,不需要檢測網路是否連通,所以是不可靠的資料報協議。ip協議主要用於在主機之間的定址和選擇資料報路由。

與ipv4相比,ipv6的頭部做了如下修改:

1.取消了首部長度,因為ipv6的首部長度是固定40個位元組。

2.取消了服務型別,因為流標號和優先順序結合起來實現了服務型別的功能。

3.取消了總長度字段,改用為有效載荷長度,有效載荷就是後面的擴充套件首部加上資料報中的資料。

4.取消了標識,標誌和片偏移,因為這些功能都包含在了擴充套件首部裡面。

5.取消了協議字段,改用為下乙個首部,功能不變,這樣更容易理解。

6.取消了生存時間ttl,改用為跳數限制,功能不變,這樣更容易理解,更形象了。

7.取消了首部效驗和,這樣加快了路由器對資料報的處理速度,在資料鏈路層中,當我們發現有差錯的幀就會拋棄,在運輸層中,在udp中,當發現有差錯就會拋棄,在tcp中,當發現有差錯就會重傳,直到傳送到目的程序為止。因此在網路層的檢測就可以精簡掉。

8,取消了選項字段,功能歸併在了擴充套件首部上。

IP協議詳解

ip協議是tcp ip協議族的核心協議,也是socket網路程式設計的基礎之一。我們將從以下兩個方面較為深入的了解ip協議 ip資料報的路由和 ip資料報的路由和 發生在除目標機器之外的所有主機和路由器上。它們決定資料報是否應該 以及如何 ip協議是tcp ip協議族的動力,它為上層提供無狀態,無連...

IP協議詳解

協議森林 我盡力 ip協議詳解 在粗略了解了ip接力和ip位址後,我們再反過來,看一看ip協議的具體細節和設計哲學。ipv4與ipv6頭部的對比 我們已經在ip接力中介紹過,乙個ip包分為頭部 header 和資料 payload data 兩部分。頭部是為了實現ip通訊必須的附加資訊,資料是ip通...

IP協議詳解

從兩個方面討論ip協議 1.ip頭部資訊。用於指定ip通訊的源端ip位址,目的端ip位址,指導ip分片和重組以及指定部分通訊行為。2.ip資料報的路由和 ipv4頭部結構 ip路由 當ip模組接收到來自資料鏈路層的ip資料報時,首先對該資料報的頭部做crc校驗,確認無誤之後就分析其頭部的具體資訊。若...