網(wǎng)絡(luò)相關(guān)之IPv6、從IPv4到IPv6的遷移

推薦閱讀:備戰(zhàn)2020——iOS全新面試題總結(jié)

由于新的子網(wǎng)和IP結(jié)點(diǎn)以驚人的增長(zhǎng)率連到因特網(wǎng)上,并被分配唯一的IP地址,32比特的IPv4地址空間即將用盡,為了解決這一問(wèn)題,IPv6也應(yīng)運(yùn)而生。而事實(shí)上在20多年前,因特網(wǎng)工程任務(wù)組就開(kāi)始致力于開(kāi)發(fā)一種替代IPv4的協(xié)議,即IPv6

一、IPv6數(shù)據(jù)報(bào)格式

1、IPv6數(shù)據(jù)報(bào)格式
image
  • 版本(4比特)
    該字段用于標(biāo)識(shí)IP版本號(hào),IPv6將該字段值設(shè)為6。而如果將該字段設(shè)為4并不能創(chuàng)建一個(gè)合法的IPv4數(shù)據(jù)報(bào)
  • 流量類(lèi)型(8比特)
    類(lèi)似于IPv4數(shù)據(jù)報(bào)中的服務(wù)類(lèi)型(TOS)
  • 流標(biāo)簽(20比特)
    流標(biāo)簽字段是IPv6數(shù)據(jù)報(bào)中新增的一個(gè)字段,用來(lái)標(biāo)識(shí)一條數(shù)據(jù)報(bào)的流類(lèi)型,以便在網(wǎng)絡(luò)層區(qū)分不同的報(bào)文。
  • 有效載荷長(zhǎng)度(16比特)

IPv6數(shù)據(jù)報(bào)中在40定長(zhǎng)字節(jié)數(shù)據(jù)報(bào)首部后的字節(jié)數(shù)量,即除了IPv6的數(shù)據(jù)報(bào)首部以外的其他部分的總長(zhǎng)度

  • 下一個(gè)首部(8比特)
    當(dāng)IPv6沒(méi)有擴(kuò)展報(bào)頭時(shí),該字段的作用和IPv4的協(xié)議字段一樣。當(dāng)含有擴(kuò)展報(bào)頭時(shí),該字段的值即為第一個(gè)擴(kuò)展報(bào)頭的類(lèi)型
  • 跳限制(8比特)
    與IPv4報(bào)文中的TTL字段類(lèi)似,轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)的每臺(tái)路由器將對(duì)該字段的內(nèi)容減1.如果跳限制計(jì)數(shù)到達(dá)0,則該數(shù)據(jù)報(bào)將被丟棄
  • 源地址和目的地址(各128比特)
    記錄源IP地址,目的IP地址
  • 數(shù)據(jù)

可以看出,在IPv4數(shù)據(jù)報(bào)中出現(xiàn)的幾個(gè)字段在IPv6數(shù)據(jù)報(bào)中已不復(fù)存在:

  • 分片/重新組裝
    IPv6不允許在中間路由器上進(jìn)行分片和重新組裝。這種操作只能在源與目的地上執(zhí)行。如果路由器收到的IPv6數(shù)據(jù)報(bào)因太大不能轉(zhuǎn)發(fā)出鏈路上的話,路由器會(huì)丟掉該數(shù)據(jù)報(bào),并回一個(gè)“分組太大”的ICMP差錯(cuò)報(bào)文
  • 首部檢驗(yàn)和
    因?yàn)檫\(yùn)輸層和數(shù)據(jù)鏈路層協(xié)議執(zhí)行了檢驗(yàn)操作,該項(xiàng)功能在網(wǎng)絡(luò)層就沒(méi)有必要了,從而更快速處理IP分組
  • 選項(xiàng)
    選項(xiàng)字段不再是標(biāo)準(zhǔn)IP首部的一部分了。但并沒(méi)有消失,而是可能出現(xiàn)在IPv6首部中由“下一個(gè)首部”指出的位置上。即就像TCP或UDP協(xié)議首部能夠是IP分組中的“下一個(gè)首部”,選項(xiàng)字段也能是“下一個(gè)首部”

IPv6相對(duì)IPv4最重要的變化如下:

  • 擴(kuò)大的地址容量
    IPv6將IP地址長(zhǎng)度由32比特增加到128比特,這使得理論可存在的IP地址增加到2[圖片上傳失敗...(image-67a6d5-1583481819087)]

    個(gè),約340萬(wàn)億億億億個(gè),這是一個(gè)非常大的數(shù)字,確保全世界再也不會(huì)用盡IP地址,甚至可以為地球上每一粒沙子都分配一個(gè)唯一的IP地址
    除了單播和多播地址外,IPv6沒(méi)有廣播這一說(shuō)法,而是引入了一種稱(chēng)為任播地址的新型地址,這種地址可以使數(shù)據(jù)報(bào)交付給一組主機(jī)中的任意一個(gè)

  • 簡(jiǎn)化高效的40字節(jié)首部
    除去共32字節(jié)的源地址和目標(biāo)地址外,首部其余字段只占了8字節(jié)

  • 流標(biāo)簽與優(yōu)先級(jí)
    給屬于特殊流的分組打上標(biāo)簽,這些特殊流是發(fā)送方要求進(jìn)行特殊處理的流,如一種非默認(rèn)服務(wù)質(zhì)量或需要實(shí)時(shí)服務(wù)的流

2、IPv6書(shū)寫(xiě)和表達(dá)方式

表述和書(shū)寫(xiě)時(shí),把長(zhǎng)度為128比特的IPv6地址分成8個(gè)16位的二進(jìn)制段、每一個(gè)16位的二進(jìn)制段用4位的16進(jìn)制數(shù)表示,段間用“:”(冒號(hào))隔開(kāi)(其書(shū)寫(xiě)方法和IPv4的十進(jìn)制數(shù)加“.”不同)。

例如:1000:0000:0000:0000:000A:000B:000C:000D就是每一個(gè)16位的二進(jìn)制數(shù)的段用4位16進(jìn)制數(shù)的段來(lái)表示、段間用“:”(冒號(hào))隔開(kāi)的一個(gè)IPv6地址;其中:各個(gè)4位16進(jìn)制數(shù)的段中的高位0允許省略;因此,上面的IPv6地址也可以縮寫(xiě)成:1000:0:0:0:A:B:C:D。

為了更進(jìn)一步簡(jiǎn)化,IPv6的地址規(guī)范中還規(guī)定,可以在一個(gè)IPv6地址中最多使用一次雙冒號(hào)(::)來(lái)取代IPv6地址中緊密相連的多個(gè)全0的16進(jìn)制數(shù)的段(因?yàn)槿绻试S在一個(gè)IPv6地址中使用一次以上的雙冒號(hào)時(shí)將無(wú)法判斷IPv6地址的長(zhǎng)度,所以IPv6的地址規(guī)范中才規(guī)定:在一個(gè)IPv6地址中最多只能使用一次雙冒號(hào)),這樣上面的IPv6地址還可以縮寫(xiě)成:1000::A:B:C:D

雙冒號(hào)使用的地點(diǎn)可以在IPv6地址的前面、后面或者是中間;例如:對(duì)于1000:0:0:0:A:B:0:0這樣的一個(gè)IPv6地址,可以寫(xiě)成1000::A:B:0:0,也可以寫(xiě)成1000:0:0:0:A:B::;但是不能寫(xiě)成1000::A:B::

帶有端口號(hào)的IPV6地址字符串形式,地址部分應(yīng)當(dāng)用“[]”括起來(lái),在后面跟著‘:’帶上端口號(hào),如 [A01F::0]:8000

二、從IPv4到IPv6的遷移

基于IPv4的公共因特網(wǎng)如何遷移到IPv6呢?這是個(gè)非?,F(xiàn)實(shí)的問(wèn)題
雖然IPv6使能系統(tǒng)可做成向后兼容,即能接收、發(fā)送和路由IPv4數(shù)據(jù)報(bào),但已部署的IPv4使能系統(tǒng)卻不能處理IPv6數(shù)據(jù)報(bào)

1、雙協(xié)議棧

引入IPv6使能結(jié)點(diǎn)的最直接方式是雙棧方法,即使用該方法的IPv6結(jié)點(diǎn)還有完整的IPv4實(shí)現(xiàn),即IPv6/IPv4結(jié)點(diǎn),具有接收和發(fā)送IPv4和IPv6兩種數(shù)據(jù)報(bào)的能力。
當(dāng)與IPv4結(jié)點(diǎn)互操作時(shí),IPv6/IPv4結(jié)點(diǎn)可使用IPv4數(shù)據(jù)報(bào);當(dāng)與IPv6結(jié)點(diǎn)互操作時(shí),IPv6/IPv4結(jié)點(diǎn)又可使用IPv6數(shù)據(jù)報(bào)。

IPv6/IPv4結(jié)點(diǎn)必須有IPv6與IPv4兩種地址。此外,它們還必須能確定另一個(gè)結(jié)點(diǎn)是否是IPv6使能的或僅IPv4使能的。

可以使用DNS來(lái)解決,若要解析的結(jié)點(diǎn)名字是IPv6使能的,則DNS會(huì)返回一個(gè)IPv6地址,否則返回一個(gè)IPv4地址。如果發(fā)出DNS請(qǐng)求的結(jié)點(diǎn)是僅IPv4使能的,則只返回一個(gè)IPv4地址。

兩個(gè)IPv6使能的結(jié)點(diǎn)不應(yīng)相互發(fā)送IPv4數(shù)據(jù)報(bào),而如果發(fā)送方或接收方任意一個(gè)僅為IPv4使能的,則必須使用IPv4數(shù)據(jù)報(bào)。
這樣就會(huì)有下面這種情況:

image

如圖,假如結(jié)點(diǎn)A、B、E、F都是IPv6使能的結(jié)點(diǎn),而結(jié)點(diǎn)C和D是僅IPv4使能的結(jié)點(diǎn),那么當(dāng)按A->B->C->D->E->F順序發(fā)送數(shù)據(jù)報(bào)時(shí),AB之間會(huì)發(fā)IPv6數(shù)據(jù)報(bào),BC會(huì)發(fā)IPV4數(shù)據(jù)報(bào), 由于IPv6數(shù)據(jù)報(bào)特定的字段在IPv4數(shù)據(jù)報(bào)中無(wú)對(duì)應(yīng)的部分,這些字段將會(huì)丟失。因此,即使E和F之間能發(fā)IPv6數(shù)據(jù)報(bào),從D到達(dá)E的IPv4數(shù)據(jù)報(bào)并未含有從A發(fā)出的初始IPv6數(shù)據(jù)報(bào)中的所有字段。

2、隧道

建隧道是另一種雙棧方法,該方法能解決上述問(wèn)題。
假定兩個(gè)IPv6結(jié)點(diǎn)要使用IPv6數(shù)據(jù)報(bào)進(jìn)行交互,但是它們是經(jīng)由中間IPv4路由器互聯(lián)的。將兩臺(tái)IPv6路由器中間的IPv4路由器的集合成為一個(gè)隧道,如B->C->D->E。

image

如圖,借助于隧道,在隧道發(fā)送端的IPv6結(jié)點(diǎn)可將整個(gè)IPv6數(shù)據(jù)報(bào)放到一個(gè)IPv4數(shù)據(jù)報(bào)的數(shù)據(jù)字段中。于是,該IPv4數(shù)據(jù)報(bào)的地址設(shè)為指向隧道接收端的IPv6結(jié)點(diǎn),再發(fā)送給隧道中的第一個(gè)結(jié)點(diǎn)。而隧道中的IPv4路由器在它們之間為該數(shù)據(jù)報(bào)提供路由,就像對(duì)待其他IPv4數(shù)據(jù)報(bào)一樣,完全不知道該數(shù)據(jù)報(bào)自身就含有一個(gè)完整的IPv6數(shù)據(jù)報(bào)。而隧道接收端的IPv6結(jié)點(diǎn)最終收到該IPv4數(shù)據(jù)報(bào),并確定該IPv4數(shù)據(jù)報(bào)中含有一個(gè)IPv6數(shù)據(jù)報(bào),于是提取出該IPv6數(shù)據(jù)報(bào),然后再為該IPv6數(shù)據(jù)報(bào)提供路由

3、NAT-PT

除了雙棧和隧道方案外,還有一種NAT-PT(Network Address Translator - Protocol Translator)附帶協(xié)議轉(zhuǎn)換器的網(wǎng)絡(luò)地址轉(zhuǎn)換器方案
IPv4 IPv6共存技術(shù)-----NAT-PT
可以參考下這篇文章

IPv6 測(cè)試可在這測(cè)試是否支持IPv6

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容