IPv4與IPv6

让我读个条發表於2024-03-22

1 IPV4

資料包格式如圖:

關鍵欄位如下:

1版本號:規定了資料包的IP協議版本。

2首部長度:一個IPV4資料包可包含一些可變數量的選項,所以需要4位元來確定IP資料包資料部分實際從哪裡開始。(大多數IP資料包不包含選項,所以一般的IP資料包具有20位元組的首部。)

3服務型別:(TOS)以便使不同型別的IP資料包能相互區別開來。

4資料包長度:IP資料包的總長度(首部加上資料),位元組為單位。

5標識,標誌,片偏移。與IP分片有關。

由於並不是所有鏈路層協議都能承載相同長度的網路層分組。一個鏈路層幀能承載的最大資料量叫做最大傳送單元(MTU)。MTU嚴格限制著IP資料包的長度。為了解決MTUIP資料包長度要小的問題,將IP資料包中的資料分片成兩個或更多個較小的IP資料包,用單獨的鏈路層幀封裝這些較小的IP資料包,然後向輸出鏈路上傳送這些幀。每個這些較小的資料包都稱為片。

IPV4設計者決定將資料包的重新組裝工作放到端系統中,而不是放到網路路由器中。在目的地,資料包的有效載荷僅當在IP層已完全重構為初始IP資料包時,才被傳遞給目的地運輸層。如果一個或多個片沒有到達目的地,則該不完整的資料包被丟棄,且不會交給運輸層。

6壽命(TTL:用來確保資料包不會永遠在網路中迴圈。每當資料包由一臺路由器處理時,該欄位的值減1.TTL欄位減為0,資料包必須丟棄。

7協議:IP資料包的資料部分應交給哪個特定的運輸層協議。值為6表明資料部分要交給TCP,而值為17表明資料要交給UDP。協議號是將網路層與運輸層繫結到一起的粘合劑。

8首部檢驗和:用於檢測收的IP資料包中的位元錯誤。(由於TTL欄位以及可能的選項欄位會改變,每臺路由器上必須重新計算檢驗和並再次存放到原處。)

  為什麼需要TCP/IP在運輸層與網路層都執行差錯檢測?

         1.IP層只對IP首部計算了檢驗和,而TCP/UDP檢測和是對整個TCP/UDP報文段進行的。

         2.TCP/UDPIP不一定都必須屬於同一個協議棧。TCP可以執行不同的協議上,而IP能夠攜帶不一定要傳遞給TCP/UDP的資料。

9源和目的IP地址:當某源生成一個資料包時,它在源IP欄位中插入它的IP地址,在目的IP地址欄位中插入其最終目的地的地址。

10選項:允許IP首部被擴充套件。

11資料(有效載荷):大多數情況下,IP資料包中的資料欄位包含要交付給目的地的運輸層報文段。然而,該資料欄位也可承載其他型別的資料。

2 IPV6

資料包格式如圖


 

1版本:類似於IPV4的版本號

2流量型別:與IPV4的服務型別相似

3流標籤:給屬於特殊流的分組加上標籤,這些特殊流是傳送方要求進特殊處理的流。

4有效載荷長度:給出了IPV6資料包中跟在定長的40直接資料包首部後面的位元組數量。

5下一個首部:與IPV4的協議欄位相似

6跳限制:類似於IPV4TTL

7源地址和目的地址:128位元

8資料(有效載荷)


顯然:

從對比可以看到,IPV6相對於IPV4做出的變化:

1擴大的地址容量,IPV4IP地址只有32位位元,即4億多個地址。而IPV6128位地址,即3.4028237e+38個地址。

2標識、標誌以及片偏移在IPV6已經去掉了。因為分片也是有開銷的,這是路由器和端系統更為複雜。同時,分片容易被用於生成致命的DOS攻擊。因此在IPV6不執行分片了。這是如果路由器收到的IPV6資料包因太大而不能轉發到出鏈路,則路由器只需丟掉該資料包,並向傳送方發回一個“分組太大的”ICMP差錯報文。於是傳送方能夠使用較小長度的IP資料包重發資料。

3首部檢驗和也在IPV6去掉了。因為在因特網上,運輸層和鏈路層都執行了檢驗操作。而且快速處理IP分組才是關注重點。

選項也不再是標準IP首部的一部分,但它並沒有訊息,而是當需要時放在“下一個首部”

5正因為上述的改變,IPV6形成了40個位元組的定長首部。這就允許更快地處理IP資料包。


相關文章