IPV6基本知識准備


link MTU  -  the maximum transmission unit, i.e., maximum packet size in octets, that can be conveyed over a link.
path MTU  -  the minimum link MTU of all the links in a path between a source node and a destination node.
 

IPv6報文格式

IPv6報文由IPv6基本報頭、IPv6擴展報頭以及上層協議數據單元三部分組成。

上層協議數據單元一般由上層協議報頭和它的有效載荷構成,有效載荷可以是一個ICMPv6報文、一個TCP報文或一個UDP報文。

IPv6基本報頭

IPv6基本報頭有8個字段,固定大小為40字節,每一個IPv6數據報都必須包含報頭。基本報頭提供報文轉發的基本信息,會被轉發路徑上面的所有設備解析。
Ipv6基本報文頭格式如下:
IPv6報頭格式中主要字段解釋如下:
  • Version:版本號,長度為4bit。對於IPv6,該值為6。
  • Traffic Class:流類別,長度為8bit。等同於IPv4中的TOS字段,表示IPv6數據報的類或優先級,主要應用於QoS。
  • Flow Label:流標簽,長度為20bit。IPv6中的新增字段,用於區分實時流量,不同的流標簽+源地址可以唯一確定一條數據流,中間網絡設備可以根據這些信息更加高效率的區分數據流。
  • Payload Length:有效載荷長度,長度為16bit。有效載荷是指緊跟IPv6報頭的數據報的其它部分(即擴展報頭和上層協議數據單元)。該字段只能表示最大長度為65535字節的有效載荷。如果有效載荷的長度超過這個值,該字段會置0,而有效載荷的長度用逐跳選項擴展報頭中的超大有效載荷選項來表示。
  • Next Header:下一個報頭,長度為8bit。該字段定義緊跟在IPv6報頭后面的第一個擴展報頭(如果存在)的類型,或者上層協議數據單元中的協議類型。
  • Hop Limit:跳數限制,長度為8bit。該字段類似於IPv4中的Time to Live字段,它定義了IP數據報所能經過的最大跳數。每經過一個設備,該數值減去1,當該字段的值為0時,數據報將被丟棄。
  • Source Address:源地址,長度為128bit。表示發送方的地址。
  • Destination Address:目的地址,長度為128bit。表示接收方的地址。
IPv6和IPv4相比,去除了IHL、identifiers、Flags、Fragment Offset、Header Checksum、 Options、Paddiing域,只增了流標簽域,因此IPv6報文頭的處理較IPv4大大簡化,提高了處理效率。另外,IPv6為了更好支持各種選項處理,提出了擴展頭的概念,新增選項時不必修改現有結構就能做到,理論上可以無限擴展,體現了優異的靈活性。下面為讀者介紹IPv6擴展報頭的一些信息。

IPv6擴展報頭

在IPv4中,IPv4報頭包含可選字段Options,內容涉及security、Timestamp、Record route等,這些Options可以將IPv4報頭長度從20字節擴充到60字節。在轉發過程中,處理攜帶這些Options的IPv4報文會占用設備很大的資源,因此實際中也很少使用。

IPv6將這些Options從IPv6基本報頭中剝離,放到了擴展報頭中,擴展報頭被置於IPv6報頭和上層協議數據單元之間。一個IPv6報文可以包含0個、1個或多個擴展報頭,僅當需要設備或目的節點做某些特殊處理時,才由發送方添加一個或多個擴展頭。與IPv4不同,IPv6擴展頭長度任意,不受40字節限制,這樣便於日后擴充新增選項,這一特征加上選項的處理方式使得IPv6選項能得以真正的利用。但是為了提高處理選項頭和傳輸層協議的性能,擴展報頭總是8字節長度的整數倍。

當使用多個擴展報頭時,前面報頭的Next Header字段指明下一個擴展報頭的類型,這樣就形成了鏈狀的報頭列表。如圖6-8所示,IPv6基本報頭中的Next Header字段指明了第一個擴展報頭的類型,而第一個擴展報頭中的Next Header字段指明了下一個擴展報頭的類型(如果不存在,則指明上層協議的類型)。擴展報頭格式如圖6-8所示:

圖6-8  IPv6擴展報頭格式

IPv6擴展報頭中主要字段解釋如下:
  • Next Header:下一個報頭,長度為8bit。與基本報頭的Next Header的作用相同。指明下一個擴展報頭(如果存在)或上層協議的類型。
  • Extension Header Len:報頭擴展長度,長度為8bit。表示擴展報頭的長度(不包含Next Header字段)。
  • Extension Head Data:擴展報頭數據,長度可變。擴展報頭的內容,為一系列選項字段和填充字段的組合。

目前,RFC 2460中定義了6個IPv6擴展頭:逐跳選項報頭、目的選項報頭、路由報頭、分段報頭、認證報頭、封裝安全凈載報頭。見下表

報頭類型 對應的Next Header字段值 描述
逐跳選項報頭 0 該選項主要用於為在傳送路徑上的每跳轉發指定發送參數,傳送路徑上的每台中間節點都要讀取並處理該字段。逐跳選項報頭目前的主要應用有以下三種:
  • 用於巨型載荷(載荷長度超過65535字節)。
  • 用於設備提示,使設備檢查該選項的信息,而不是簡單的轉發出去。
  • 用於資源預留(RSVP)。
目的選項報頭 60 目的選項報頭攜帶了一些只有目的節點才會處理的信息。目前,目的選項報文頭主要應用於移動IPv6。
路由報頭 43 路由報頭和IPv4的Loose Source and Record Route選項類似,該報頭能夠被IPv6源節點用來強制數據包經過特定的設備。
分段報頭 44 同IPv4一樣,IPv6報文發送也受到MTU的限制。當報文長度超過MTU時就需要將報文分段發送,而在IPv6中,分段發送使用的是分段報頭。
認證報頭 51 該報頭由IPsec使用,提供認證、數據完整性以及重放保護。它還對IPv6基本報頭中的一些字段進行保護。
封裝安全凈載報頭 50 該報頭由IPsec使用,提供認證、數據完整性以及重放保護和IPv6數據報的保密,類似於認證報頭。
 
IPv6擴展報頭規約

當超過一種擴展報頭被用在同一個分組里時,報頭必須按照下列順序出現:

  • IPv6基本報頭

  • 逐跳選項擴展報頭

  • 目的選項擴展報頭

  • 路由擴展報頭

  • 分段擴展報頭

  • 認證擴展報頭

  • 封裝安全有效載荷擴展報頭

  • 目的選項擴展報頭

  • 上層協議數據報文

路由設備轉發時根據基本報頭中Next Header值來決定是否要處理擴展頭,並不是所有的擴展報頭都需要被轉發路由設備查看和處理的。

除了目的選項擴展報頭可能出現一次或兩次(一次在路由擴展報頭之前,另一次在上層協議數據報文之前),其余擴展報頭只能出現一次。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM