由第四代版本互聯(lián)網(wǎng)協(xié)議(IPv4)到第六代版本互聯(lián)網(wǎng)協(xié)議(IPv6),其最直接的動(dòng)因主要是IP地址的嚴(yán)重匱乏,在20世紀(jì)70年代開(kāi)發(fā)的IPv4(由IETF的RFC 791規(guī)定)的地址字段長(zhǎng)為32bit,而IPv6(由IETF的RFC 2460所規(guī)定)的地址字段長(zhǎng)達(dá)128bit,為IPv4的4倍,使下一代互聯(lián)網(wǎng)(NGI)技術(shù)的IP地址能力發(fā)生了本質(zhì)的飛躍,可支持3.40282×1038個(gè)惟一的128位地址,約為IPv4地址量的79228×1024倍,即約為其8萬(wàn)兆兆平方倍。有人甚至不無(wú)夸張地聲稱(chēng),它可賦予地球上每一粒沙子及每一滴水以相應(yīng)的地址。
欲詳細(xì)了解IPv4地址技術(shù)的請(qǐng)進(jìn)入。
一、IPv6地址長(zhǎng)度問(wèn)題
事實(shí)上,IPv6分組頭固定字段部分長(zhǎng)度變化最大的是地址字段,由4字節(jié)變?yōu)?/span>16字節(jié)。有關(guān)IP地址長(zhǎng)度和結(jié)構(gòu)問(wèn)題也是在IPv6標(biāo)準(zhǔn)(即RFC 2460)制訂過(guò)程中爭(zhēng)論較多的問(wèn)題。
根據(jù)美國(guó)人口調(diào)查局的估計(jì)數(shù)字,到2050年,全世界將有90億人口。從理論上講,IPv4可支持40億個(gè)IP地址,足以應(yīng)付目前的人口數(shù)。但是,由于多方面原因,實(shí)際上能真正作為用戶(hù)計(jì)算機(jī)的地址數(shù),遠(yuǎn)少于40億。首先,“組播”(Multicast)用“D”類(lèi)地址(即4比特“特征位”為“1110”)占用了十六分之一的地址空間;保留的“E”類(lèi)地址(即5比特“特征位”為“11110”),占用三十二分之一的地址空間;此外,某些特定組合用于表示“本主機(jī)”、“本網(wǎng)上主機(jī)”、 “本地網(wǎng)上的廣播”和“A”類(lèi)地址中以“01111111”開(kāi)頭的地址號(hào)用于回繞測(cè)試都占用了部分地址空間。另外,網(wǎng)絡(luò)中的路由器也需要占用大量的地址空間(每個(gè)邊界路由器需占用1個(gè)或1個(gè)以上的IP地址,中間路由器占用2個(gè)或2個(gè)以上的IP地址)。加上地址分配的不合理,許多子網(wǎng)內(nèi)留有過(guò)多的富裕量,地址的使用不充分,而另一些單位卻地址嚴(yán)重不足,隨著Internet用戶(hù)計(jì)算機(jī)和服務(wù)器數(shù)量的不斷增加,其可用的IPv4地址空間不足的問(wèn)題日益嚴(yán)重。
有關(guān)地址長(zhǎng)度的問(wèn)題也有人爭(zhēng)辯說(shuō):地址的不足可以通過(guò)使用“內(nèi)部地址”和使用地址轉(zhuǎn)換(NAT,即Network Address Translation)技術(shù)來(lái)解決。反對(duì)的人則認(rèn)為:在大范圍內(nèi)采用NAT技術(shù)來(lái)解決地址不足問(wèn)題既存在技術(shù)上的困難,也存在實(shí)踐上的配置難度。為了最大限度地適應(yīng)潛在的地址需求,最后確定的地址長(zhǎng)度為128比特,為現(xiàn)有IPv4地址長(zhǎng)度的4倍。IPv6的地址空間為2128個(gè),即340 282 366 920 938 463 463 374 607 431 768 211 456個(gè)可能的地址(或?yàn)?/span>3.4×1038個(gè)),相當(dāng)于為地球表面每平方米的面積提供了665 570 793 348 866 943 898 599(或6.65×1023)個(gè)地址。根據(jù)RFC 1700,目前已明確分配的地址僅占可用地址的15%,其余部分保留將來(lái)使用。
事實(shí)上,在RFC 2460《Internet Protocol, Version 6(IPv6)Specification》(互聯(lián)網(wǎng)協(xié)議版本6(IPv6)規(guī)范)中,對(duì)于IPv6地址內(nèi)容的描述介紹是引用的RFC 2373《IP Version 6 Addressing Architecture》(IPv6尋址架構(gòu))。RFC 2373規(guī)范定義了IPv6的尋址體系結(jié)構(gòu),包括IPv6尋址模型、IPv6地址的文本表示、IPv6單播地址、任播地址和組播地址的定義以及所有IPv6節(jié)點(diǎn)所需的地址。這里依據(jù)RFC 2373介紹其IPv6地址技術(shù).
欲詳細(xì)了解RFC 2373標(biāo)準(zhǔn)內(nèi)容的請(qǐng)進(jìn)入。
二、IPv6地址的分類(lèi)與組成
1、類(lèi)型
IPv6將可尋址的地址類(lèi)型分為三類(lèi):?jiǎn)尾ィ?/span>Unicast)、組播(Muiticast)和任播(Anycast)也有稱(chēng)組代播,IPv6地址的分類(lèi)及含義詳見(jiàn)下表2-1。
表2-1:IPv6地址的分類(lèi)及含義
欲詳細(xì)了解IPv6三種地址類(lèi)型介紹的請(qǐng)進(jìn)入。
2、組成
128比特的IPv6地址通常是由兩部分組成的:第一部分是最高64位的子網(wǎng)標(biāo)識(shí)符,稱(chēng)為子網(wǎng)空間。以滿(mǎn)足3個(gè)不同級(jí)別的ISP(這3個(gè)級(jí)別的ISP位于您的機(jī)構(gòu)和Internet骨干網(wǎng)絡(luò)之間)以及你的機(jī)構(gòu)的尋址需求。第二部分是低64位的接口標(biāo)識(shí)符,稱(chēng)為接口空間。用于當(dāng)前和未來(lái)的鏈路層MAC地址映射等。
三、IPv6地址的表示
在RFC 2373中給出了IPv6地址的多種文本表示形式(Text Representation of IPv6 Addresses),其目的是盡可能簡(jiǎn)化表示,以便日常使用。常用的有:
1、首選的表示形式
IPv6地址字段采用128比特,為IPv4地址長(zhǎng)度的4倍,如果采用“點(diǎn)分隔十進(jìn)制標(biāo)記法”縮寫(xiě)后仍將有16段十進(jìn)制數(shù),需要用15個(gè)“.”來(lái)分隔,讀寫(xiě)和記憶都很不方便。為此,RFC 2373規(guī)定了一種“冒號(hào)分隔十六進(jìn)制標(biāo)記法(Colon Hexadecimal)”,即:把16比特的地址分為一段(注意:比IPv4的8比特地址長(zhǎng)一倍),段內(nèi)由4個(gè)二--十六進(jìn)制(0~9和A~F)數(shù)來(lái)表示一個(gè)地址段(注意:8比特最多只需要兩個(gè)數(shù)字或符號(hào)表示,而用十進(jìn)制最多要3個(gè)十進(jìn)制數(shù)字);共8個(gè)地址段,地址段之間用冒號(hào)“∶”來(lái)分隔。這即是IPv6地址首選的表示形式。例如:
“FEDC∶BA98∶7654∶3210∶FEDC∶BA98∶7654∶3210”
為了簡(jiǎn)化上述表示形式,還規(guī)定了在單個(gè)地址段中省去前導(dǎo)零的形式。即:冒號(hào)間的地址段的二--十六進(jìn)制之值為“0”時(shí),可只用單個(gè)“0”表示;數(shù)字或字母之前的二--十六進(jìn)制之值為“0”時(shí),“0”可以省去(如下例中 “:0:”、“:A:”和“:8:”中的0、A和8前面的0省去了),但每個(gè)地址段中必須至少有一個(gè)數(shù)字。例如:
“1080∶0∶A∶0∶8∶800∶200C∶417A”。
2、零壓縮法的表示形式
盡管首選形式,即“冒號(hào)分隔十六進(jìn)制標(biāo)記法”將128比特的IPv6地址的表達(dá)形式大大縮短,但1個(gè)IPv6地址最長(zhǎng)的表達(dá)式仍需要分為8段,每段最多需要4個(gè)二--十六進(jìn)制數(shù)表示,再用7個(gè)“:”加以分隔。
但現(xiàn)實(shí)是:其一,由于IPv6的地址空間太大,目前已分配的地址很少,地址中可能會(huì)出現(xiàn)連續(xù)的“0”比特;其二,由于一些分配IPv6地址特定樣式的方式,如下表3-2所描述的幾種情況,也都呈現(xiàn)了16比特連續(xù)的“0”情形。為了在這類(lèi)情況下進(jìn)一步縮短地址表達(dá)形式,采用了稱(chēng)為零壓縮法的形式,即:當(dāng)出現(xiàn)16比特連續(xù)“0”時(shí),冒號(hào)間可用單個(gè)“0”表示;多個(gè)連續(xù)的由冒號(hào)分隔的“0”,可用雙冒號(hào)“::”取代,如:
“1080∶0∶0∶0∶8∶800∶200C∶417A”,可進(jìn)一步記為壓縮形式:
“1080∶∶8∶800∶200C∶417A”。表3-2中展示了其它情形。
表 3-2:零壓縮法的表示形式
那么,要確定“::”之間代表了多少位“0”可以用下式計(jì)算:
0的位數(shù) =(8-地址中的段數(shù))×16
如在地址FF02∶∶101中,“::”表示有“0”的位數(shù)是:
(8-2)×16 = 96
注意:在一個(gè)給定的地址中,零壓縮法只能使用一次。否則就無(wú)法確定每個(gè)“::”之間到底代表了多少位“0”。
3、IPv4和IPv6混合表示形式
由于在IPv6完全取代IPv4地址之前很長(zhǎng)一段時(shí)間內(nèi),IPv6將與IPv4地址同時(shí)并存。因此,在節(jié)點(diǎn)為IPv4和IPv6混合環(huán)境下,允許IPv6地址的后32比特采用大多數(shù)人熟悉的“點(diǎn)分隔十進(jìn)制標(biāo)記法”。于是可能出現(xiàn)兩種標(biāo)記法混合使用的情況:x:x:x:x:x:x:d.d.d.d,即高階的前96比特“x“采用“冒號(hào)分隔十六進(jìn)制標(biāo)記法;后低階的32比特采用“點(diǎn)分隔十進(jìn)制標(biāo)記法”。如地址:
“0:0:0:0:0:0:FFFF:129.144.52.38”,也可進(jìn)一步記為零壓縮形式:“::FFFF:129.144.52.38”。
4、地址前綴(Address Prefixes)表示形式
IPv6地址前綴的文本表示形式類(lèi)似于IPv4地址前綴用“無(wú)類(lèi)別域間路由(CIDR,Classless Inter-Domain Routing)表示法(RFC 1519中規(guī)定)書(shū)寫(xiě)的方式。IPv6地址前綴由表示法的表示形式為:
Ipv6-address / Prefix-length
其中:“Ipv6-address”可為前面介紹過(guò)的IPv6地址表達(dá)形式中的任一種,而“Prefix-length”為十進(jìn)制數(shù)字,用于描述該地址前綴由地址中多少個(gè)最左方連續(xù)的二進(jìn)制比特組成。例如:1個(gè)60比特的前綴“12AB00000000CD3”(15個(gè)二--十六進(jìn)制數(shù))的合法表達(dá)形式可有:
12AB:0000:0000:CD30:0000:0000:0000:0000/60(注:采用最原始的1Pv6地址表達(dá)形式);
12AB::CD30:0:0:0:0/60(注:前面的連續(xù)32比特“0”用“::”簡(jiǎn)化);
12AB:0:0:CD30::/60(注:后面的連續(xù)64比特“0”用“::”簡(jiǎn)化)。
在某些場(chǎng)合,地址前綴可用于標(biāo)志通信子網(wǎng)(Sub-network)、鏈路接口、定義域或管理域(如ISO的OSI NSAP、IPX、Ethernet等)。
四、IPv6地址空間的分配
IPv6地址空間也是基于地址中高位的值來(lái)進(jìn)行劃分的。高位和它們的固定值被稱(chēng)為格式前綴(FP)。目前IPv6的地址空間已分配的僅占15%,其余的85%保留今后再分配。依據(jù)RFC 2373的定義,已分配的地址如下列表所示,包括:表4-1給出了IPv6已分配的地址前綴(FP);表4-2給出了已分配的7種特殊地址。
表 4-1:IPv6已分配的地址前綴簡(jiǎn)表
表 4-2:IPv6已分配的特殊地址簡(jiǎn)表
五、IPv4地址與IPv6地址的對(duì)應(yīng)關(guān)系
為了使IPv4地址與IPv6地址有一個(gè)比較,下表5列出了它們之間的對(duì)應(yīng)關(guān)系(以IPv4中的地址和尋址方式與IPv6地址來(lái)等價(jià))對(duì)比。
表 5:IPv4地址與IPv6地址之間的對(duì)比對(duì)應(yīng)
欲進(jìn)一步了解IPv6分組格式的請(qǐng)進(jìn)入。