一、由IPv4到IPv6
互聯(lián)網(wǎng)協(xié)議(IP,Internet Protocol)由第4版本(IPv4)升級為第6版本(IPv6)最直接的動因是IP地址的匾乏。Internet應用范圍的迅速擴大和用戶數(shù)量指數(shù)級的增加,是當初制訂IP地址字段長度的人所始料未及。此外,原來的地址結構也不盡合理,利用率不高,也缺少更大地靈活性。因此,IPv6將IPv4的32比特地址字段直接擴展為128比特。這樣為適應其地址字段的變化,并針對原IPv4的報文格式的不足,IPv6的報文(Datagram)格式也發(fā)生了變化,但此時稱之為IPv6的分組(Packet)格式了。IPv6的分組格式對IPv4的報文格式進行了優(yōu)化簡化。IPv6與IPv4相比其主要變化特征可歸結為下表1中的6方面。
表 1:IPv6分組與IPv4報文相比其主要變化特征
欲具體了解互聯(lián)網(wǎng)協(xié)議(IP)介紹的請進入。
二、IPv6的分組格式
下圖2-1為IPv6分組(Packet)格式(注意:現(xiàn)實中為了延續(xù)原有的稱呼,有時也習慣性地將IPv6分組稱呼為IPv6報文)。由圖可知,IPv6分組(Packet)格式的IP的基本數(shù)據(jù)單元,仍然保持了IPv4報文格式的4字節(jié)為一單元,每單元從左至右為第0字節(jié)到底4字節(jié),每字節(jié)從左至右為第0比特到第7比特的二進制表示方式。最左側的位是高階或最高有效位。
圖 2-1:IPv6分組(Packet)格式
IPv6分組格式是由IPv6基本分組頭、IPv6擴展分組頭以及上層協(xié)議數(shù)據(jù)(載荷)三部分組成,如下圖2-2所示。相比于IPv4報文,IPv6取消了IPv4報文頭中的選項字段,并引入了多種擴展分組頭,在提高處理效率的同時增強了IPv6的靈活性,為IP協(xié)議提供了良好的擴展能力。
圖 2-2:IPv6分組(Packet)格式的構成
欲詳細了解互聯(lián)網(wǎng)IPv4報文格式的請進入。
需要提示的是,下述只是僅對IPv6的分組格式(包括基本分組頭、擴展分組頭和分組數(shù)據(jù)(載荷))各字段做一簡要的介紹。由于在RFC 2460《IPv6規(guī)范》中,對各字段的含義及要求做了比較詳細的描述,內(nèi)容是較多的。因此,需要時可在該文檔查詢。
欲詳細了解RFC 2460文檔具體內(nèi)容的請進入。
三、IPv6基本分組頭的字段:
IPv6的基本分組頭(IPv6 Base Headers)是由8個固定長度的字段構成,相比IPv4,字段數(shù)由12個減少到8個,但字節(jié)數(shù)由20字節(jié),增加為40字節(jié)。
1、版本(Version)字段:
該字段的含義和長度與IPv4相同,其字段長度仍是4比特。對IPv6版本其字段取值為“6”,是由RFC 1700規(guī)定的。
2、用戶數(shù)據(jù)等級(Traffic Class)字段:
該字段長度為8比特,是IPv4中“TOS(Type of Service)”字段的替代物(也為8比特。其目的在于為發(fā)起節(jié)點和中轉節(jié)點(Router)指明此IPv6分組傳輸服務級別或優(yōu)先級別。有關級別的劃分和代碼將在專門的標準中制定。
3、數(shù)據(jù)的流標簽(Flow Label )字段:
此字段長度為20比特,意在為發(fā)起節(jié)點制定對分組流的處理方式的機制,如非缺省服務質量等級、“實時”數(shù)據(jù)流等。所謂數(shù)據(jù)流是在相同的“一對一”或“一對多”(廣播或組播)地址間連續(xù)分組流。發(fā)送方要使用此功能時,在此字段內(nèi)填入00001[Hex]~ FFFFF[Hex]之間的一個偽隨機數(shù),作為該數(shù)據(jù)流的標志符[2、7](注:有些像連接標志符,無連接IP協(xié)議在處理連續(xù)流時,借用了面向連接協(xié)議中的連接標志符的概念),當發(fā)送方不使用此功能時,該字段全填為“0”,中間節(jié)點將忽略這一字段。
在RFC 2460的附錄A中描述了當前Flow Label字段的預期語義和用法。在RFC 6437《IPv6 Flow Label Specification》中詳細描述了IPv6 Flow Label字段、IPv6節(jié)點標簽流的最低要求、IPv6節(jié)點轉發(fā)標簽報文、建立流狀態(tài)的方法。
4、用戶數(shù)據(jù)長度(Payload Length)字段:
此字段的長度為16比特(無符號整數(shù))。IPv6有效載荷的長度,即,在這個IPv6報頭之后的數(shù)據(jù)包的其余部分,以八位字節(jié)為單位。(注意,任何擴展頭都被認為是有效負載的一部分,也就是說,包含在長度計數(shù)中。)它取代了IPv4中的“報文頭長度(IHL)”字段(4比特)。由于IPv4報頭可選部分長度可變,因此用報頭長度字段來定界。IPv6將可選部分放入用戶數(shù)據(jù)(Payload)部分,由分組頭中8比特的“下一頭(Next Header)”字段來指明在Payload中緊跟IPv6分組頭固定部分之后的擴展分組頭的類別。有關編碼與IPv4中“協(xié)議(Protocol)”字段編碼相同(由RFC 1700規(guī)定)。
5、下一分組頭(Next Header)標志符字段:
此字段的長度為8比特。指明緊跟在IPv6分組頭后面的IPv6擴展分組頭或IP層之上的協(xié)議類型(如TCP、UDP或ICMPv6等),編碼規(guī)則與IPv4的Protocol字段相同,由RFC 1700界定。其IPv6下一分組頭字段的常見值及含義詳見下表3-5。IPv6下一分組頭字段的全部值(0~255)是由互聯(lián)網(wǎng)號碼分配機構(IANA)分配管理的。
表 3-5:IPv6下一分組頭字段的常見值及含義
欲詳細了解IPv6下一分組頭字段的全部值(0~255)的請進入。
6、跨越節(jié)點數(shù)限制(Hop Limit)字段:
該字段的長度為8比特(無符號整數(shù))。它是IPv4中“存活期(Time To Live)”字段(也為8比特)的替代物。IPv6用跨越節(jié)點數(shù)替代IPv4中的在網(wǎng)中存活時間(秒)更具有可操作性。每經(jīng)過一個中轉節(jié)點,Hop Limit之值被減1;減到0時,該分組被丟棄。
7、源地址/目的地址(Source/Destination Address)字段:
IPv6的地址字段(包括源地址和目的地址)由IPv4的4字節(jié)(32比特)增加為16字節(jié)(128比特),以解決lPv4的4字節(jié)地址的不足。RFC 2373對IPv6的地址有關結構做了詳細的規(guī)定。
欲詳細了解IPv6地址技術介紹的請進入。
四、IPv6擴展分組頭:
1、概述
IPv6擴展分組頭(IPv6 Extension Headers)其字段數(shù)及長度時任意,理論上可以任意擴展字段,具備優(yōu)異的靈活性和巨大的創(chuàng)新空間。擴展分組頭中Next header字段與基本分組頭的Next header作用相同,指明下一個擴展分組頭或上層協(xié)議類型。非4字節(jié)整倍數(shù)時增加填充位(Padding)。
IPv6提供的擴展分組頭是為網(wǎng)絡層的可選功能,從某種意義上講也可以看做是IP子層之上的控制/增強子層的功能。這些字段將置于IPv6固定分組頭之后,但在傳送層協(xié)議數(shù)據(jù)單元之前。在IPv6中,可選的互聯(lián)網(wǎng)層信息被編碼在單獨的分組頭中,這些分組頭可能被放置在數(shù)據(jù)包的IPv6分組頭和上層報頭之間。有少量這樣的擴展分組頭,每個都由一個不同的下一個報頭值標識。如這些例子所示,一個IPv6數(shù)據(jù)包可以攜帶0個、1個或多個擴展分組頭,每個擴展分組頭由前一個分組頭的下一個分組頭字段標識。
2、種類
目前的RFC 2460文本中定義了4種擴展分組頭,它們分別是:逐段選項擴展頭(Hop-by-Hop Options)、路徑選擇擴展頭(Routing)、分片擴展頭(Fragment)和目的地選項擴展頭(Destination Options);另外,RFC 2402定義了身份認證擴展頭(Authentication),RFC 2406定義了用戶安全數(shù)據(jù)封裝擴展頭(Encapsulating Security Payload)。根據(jù)RFC 8200的定義,目前IPv6的擴展分組頭以及排列順序為:逐跳選項擴展頭、目的選項擴展頭、路由擴展頭、分片擴展頭、認證擴展頭、安全數(shù)據(jù)封裝擴展頭、目的選項擴展頭和上層協(xié)議擴展頭。下表4-2給出了上述某些擴展分組頭的簡介。
表 4-2:IPv6擴展分組頭簡介
五、IPv6的數(shù)據(jù)
IPv6的數(shù)據(jù)即用戶間要傳輸?shù)男畔?shù)據(jù),即上層協(xié)議數(shù)據(jù)(載荷),此字段緊跟IP擴展分組頭之后。IP分組頭固定部分為40字節(jié),加上可選字段(擴展分組頭)和用戶數(shù)據(jù)信息部分最大長度為65636字節(jié)。
六、IPv4與IPv6分組頭的簡單比較
對比IPv4與IPv6的組成格式,我們可以對二者的分組頭固定部分的字段作如下對比,見下表6。
表 6:IPv4與IPv6報文頭/分組頭固定部分的字段對比
欲進一步了解IPv4與IPv6在性能方面比較的請進入。