漫話:是時候說說到底什么是IPv4和IPv6了









2019年11月25日,負(fù)責(zé)英國、歐洲、中東和部分中亞地區(qū)互聯(lián)網(wǎng)資源分配的歐洲網(wǎng)絡(luò)協(xié)調(diào)中心(RIPE NCC)宣布,其最后的 IPv4 地址空間儲備池在 11 月 25 日 UTC + 1 15:35 完全耗盡,所有 43 億個 IPv4 地址已分配完畢。
其實(shí),早在20世紀(jì)80年代后期開始,全球已經(jīng)開始意識到這個問題將會發(fā)生。IPv6的研發(fā)及布署,主要就是為了解決這個問題。
什么是IPv4?
IPv4是Internet Protocol version 4的縮寫,中文翻譯為互聯(lián)網(wǎng)通信協(xié)議(TCP/IP協(xié)議)第四版,通常簡稱為網(wǎng)際協(xié)議版本4。
IPv4使用32位(4字節(jié))地址,因此地址空間中只有4,294,967,296(2^32) 個地址。
IPv4地址可被寫作任何表示一個32位整數(shù)值的形式,但為了方便人類閱讀和分析,它通常被寫作點(diǎn)分十進(jìn)制的形式,即四個字節(jié)被分開用十進(jìn)制寫出,中間用點(diǎn)分隔。
所以,通常IPv4地址的地址格式為nnn.nnn.nnn.nnn,如:
- 192.168.1.255
192.168.1.255因為在點(diǎn)分十進(jìn)制的表達(dá)形式下,共有4個字節(jié)的IP地址被分位四段,每一段就有一個字節(jié),而一個字節(jié)有8位,那么,8位能表示的數(shù)字范圍是 0 - 255。
所以,一個IPv4的地址,格式為nnn.nnn.nnn.nnn,其中 0<=nnn<=255,而每個 n 都是十進(jìn)制數(shù)。可省略前導(dǎo)零。
IPv4報文格式
我們知道,在TCP/IP 五層協(xié)議模型中,一次網(wǎng)絡(luò)請求要先后經(jīng)過應(yīng)用層->傳輸層->網(wǎng)絡(luò)層->數(shù)據(jù)鏈路層->物理層。
而在請求過程中,一個請求數(shù)據(jù)也會從應(yīng)用層到物理層經(jīng)過層層包裝,每一層把上一層的數(shù)據(jù)報文包裝后加上一層頭部信息之后再傳給下一層。
所以,IPv4作為網(wǎng)絡(luò)層協(xié)議,在其報文結(jié)構(gòu)中,同樣包含了IP首部和數(shù)據(jù)部分。
其中,IPv4的首部長度是可變的,范圍在20-60字節(jié)之間。
首部
IPv4報文的首部包含14個字段,其中13個是必須的,1個是可選的。
上圖是一張IPv4報文的首部格式,可以看到,IPv4首部中包含的內(nèi)容還是很多的,比如版本號,首部長度,標(biāo)識符,分片偏移,存活時間,協(xié)議等。
由于這部分不是本文的重點(diǎn),這里就不對報文頭展開詳細(xì)介紹了,讀者可以參照上圖自行學(xué)習(xí)下。
數(shù)據(jù)
報文中,除了首部以外,還有一個最重要的部分那就是數(shù)據(jù)部分,數(shù)據(jù)字段不是首部的一部分,因此并不被包含在首部檢驗和中。
前面說過,網(wǎng)絡(luò)層會把傳輸層的報文封裝成數(shù)據(jù),并添加上首部之后傳遞給鏈路層。
所以,IPv4的報文中數(shù)據(jù)部分就是傳輸層的協(xié)議報文內(nèi)容,如TCP、UDP等。
為什么IPv4會枯竭?
IP地址的全球性管理機(jī)構(gòu)為互聯(lián)網(wǎng)號碼分配局(IANA),其下有五個局域網(wǎng)際網(wǎng)絡(luò)注冊管理機(jī)構(gòu)(RIR)
在理論上,IPv4最多可以提供2^32 (約42.9億)個IP地址。不過,一些地址是為特殊用途所保留的,如約1800萬個專用網(wǎng)絡(luò)和約2.7億個多播地址,同樣減少了可在互聯(lián)網(wǎng)上路由的地址數(shù)量。
隨著地址不斷被分配給終端用戶,IPv4地址枯竭問題也在隨之產(chǎn)生。
中國是世界上互聯(lián)網(wǎng)用戶數(shù)量最多的國家,但人均只有0.45個IPv4地址。在IPv4的環(huán)境下,我國用戶上網(wǎng)地址需要動態(tài)分配,人與地址沒有固定的對應(yīng)關(guān)系,用戶溯源難,帶來互聯(lián)網(wǎng)安全和監(jiān)管隱患。
所以,為了解決這個問題,IPv6誕生了。

什么是IPv6?
IPv6是Internet Protocol version 6的縮寫,中文翻譯為互聯(lián)網(wǎng)通信協(xié)議(TCP/IP協(xié)議)第6版,通常簡稱為網(wǎng)際協(xié)議版6。IPv6具有比IPv4大得多的編碼地址空間,用它來取代IPv4主要是為了解決IPv4地址枯竭問題,同時它也在其他方面對于IPv4有許多改進(jìn)。
IPv6具有比IPv4大得多的編碼地址空間。這是因為IPv6采用128位的地址,而IPv4使用的是32位。因此新增的地址空間支持2^128 個地址,具體數(shù)量為340,282,366,920,938,463,463,374,607,431,768,211,456個(不知道有沒有人能把這個數(shù)讀出來?)
有人說IPv6的地址數(shù)可能比全世界的沙子還要多,足以解決目前IPv4地址量不足的問題。
IPv6二進(jìn)位制下為128位長度,以16位為一組,每組以冒號“:”隔開,可以分為8組
IPv6文本格式為 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每個 x 都是十六進(jìn)制數(shù),表示 4 位。例如:
2001:0db8:86a3:08d3:1319:8a2e:0370:7344IPv6的報文格式
和IPv4一樣,IPv6的報文中同樣包含首部和數(shù)據(jù)部分。
和IPv4不同的是,IPv6報文的首部是40個字節(jié)的固定長度。
下圖是IPv6報文的首部的結(jié)構(gòu),IPv6定義了一種新的分組格式,目的是為了最小化路由器處理的消息標(biāo)頭。
從圖中可以看出,和IPv4相比,IPv6的頭部內(nèi)容少了很多。
同樣是網(wǎng)絡(luò)層協(xié)議,IPv6和IPv4一樣,都封裝了傳輸層的報文內(nèi)容作為自己的數(shù)據(jù)。這一點(diǎn)是沒有任何差異的,所以我們可以說,在報文上,IPv6和IPv4的主要區(qū)別是報文頭的區(qū)別。
IPv4 VS IPv6
介紹完了IPv4和IPv6,我們再來整體看下這兩種協(xié)議之間的區(qū)別。
1. 地址
(1) IPv4長度為 32 位(4 個字節(jié))
IPv4 地址的文本格式為 nnn.nnn.nnn.nnn,其中 0<=nnn<=255,而每個 n 都是十進(jìn)制數(shù)。可省略前導(dǎo)零。最大打印字符數(shù)為 15 個,不計掩碼;
(2) IPv6長度為 128 位(16 個字節(jié))
IPv6 地址的文本格式為 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每個 x 都是十六進(jìn)制數(shù),表示 4 位??墒÷郧皩?dǎo)零。可在地址的文本格式中使用一次雙冒號(::),用于指定任意數(shù)目的 0 位。例如,::ffff:10.120.78.40 表示 IPv4 映射的 IPv6 地址。
2. 地址解析協(xié)議
- IPv4 使用 ARP 來查找與 IPv4 地址相關(guān)聯(lián)的物理地址(如 MAC 或鏈路地址);
- IPv6 使用因特網(wǎng)控制報文協(xié)議版本 6(ICMPv6)將這些功能嵌入到 IP 自身作為無狀態(tài)自動配置和鄰節(jié)點(diǎn)發(fā)現(xiàn)算法的一部分。因此,不存在類似于 ARP6 之類的東西。
3. IP 報頭
- IPv4根據(jù)提供的 IP 選項,有 20-60 個字節(jié)的可變長度;
- IPv6的報文頭是 40 個字節(jié)的固定長度。沒有 IP 報頭選項;
- 通常,IPv6 報頭比 IPv4 報頭簡單。
4. 安全性
- IPv6預(yù)設(shè)有IPSec,來提升安全性;
- 相較之下,IPv4的IPSec則需要額外開啟。
5. 地址類型
- IPv4 地址分為三種基本類型:單點(diǎn)廣播地址、多點(diǎn)廣播地址和廣播地址;
- IPv6 地址分為三種基本類型:單點(diǎn)廣播地址、多點(diǎn)廣播地址和任意廣播地址。有關(guān)描述,請參閱 IPv6 地址類型。
6. 專用地址和公用地址
- IPv4除由 IETF RFC 1918 指定為專用的三個地址范圍 10…;
- (10/8)、172.16.0.0 至 172.31.255.255 (172.16/12) 和 192.168.. (192.168/16) 之外,所有 IPv4 地址都是公用的。專用地址域通常在組織內(nèi)部使用。專用地址不能通過因特網(wǎng)路由;
- IPv6 有類似的概念,但還有重要差別。地址是公用或臨時的,先前稱為匿名地址。請參閱 RFC 3041。與 IPv4 專用地址不同,臨時地址可進(jìn)行全局路由;
- 動機(jī)也不一樣:IPv6 臨時地址要在它開始通信時屏蔽其客戶機(jī)的身份(涉及隱私)。臨時地址的生存期有限,且不包含是鏈路(MAC)地址的接口標(biāo)識。它們通常與公用地址沒有區(qū)別。
7. 相比IPv4,IPv6主要有以下幾個方面的優(yōu)點(diǎn)
- 更大的地址空間。IPv4中規(guī)定IP地址長度為32,即有2^32 -1個地址。而IPv6中IP地址的長度為128,即有2^128 -1個地址;
- 更小的路由表。IPv6的地址分配遵循聚類原則,這使得路由器能在路由表中用一條記錄表示一片子網(wǎng),大大減少了路由器中路由表的長度,提高了路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的速度;
- 增強(qiáng)的組播支持以及對流的支持。這使得網(wǎng)絡(luò)上的多媒體應(yīng)用有了長足發(fā)展的機(jī)會,為服務(wù)質(zhì)量控制提供了良好的網(wǎng)絡(luò)平臺,加入了對自動配置的支持。這是對DHCP的改進(jìn)和擴(kuò)展,使得網(wǎng)絡(luò)的管理更加方便和快捷;
- 更高的安全性。在使用ipv6的網(wǎng)絡(luò)中用戶可以對網(wǎng)絡(luò)層的數(shù)據(jù)進(jìn)行加密并對IP報文進(jìn)行校驗,這極大地增強(qiáng)了網(wǎng)絡(luò)安全。
有人做了一個形象的總結(jié),那就是『多快好省』
IPv4向IPv6的轉(zhuǎn)換
一方面因為IPv4的枯竭,另一方面也因為IPv6的"多快好省",越來越多的企業(yè)開始選擇使用IPv6。
那么,想要把IPv4網(wǎng)絡(luò)轉(zhuǎn)換到IPv6網(wǎng)絡(luò),需要做什么呢?
首先,可以明確的事,IPv6并不是IPv4協(xié)議的的升級,而是一個全新的協(xié)議,二者之間是無法互相兼容的。
為了保障IPv4向IPv6的順利演進(jìn),國際互聯(lián)網(wǎng)工程任務(wù)組(IETF)成立專門工作組進(jìn)行研究,形成了三類技術(shù)方案:雙棧技術(shù)、隧道技術(shù)、協(xié)議轉(zhuǎn)換技術(shù)(NAT-PT)。
1. 雙棧技術(shù)
IPv4 和 IPv6 有功能相近的網(wǎng)絡(luò)層協(xié)議,都是基于相同的硬件平臺,同一個主機(jī)同時運(yùn)行 IPv4 和 IPv6 兩套協(xié)議棧,具有 IPv4/IPv6 雙協(xié)議棧的結(jié)點(diǎn)稱為雙棧節(jié)點(diǎn),這些結(jié)點(diǎn)既可以收發(fā) IPv4 報文,也可以收發(fā) IPv6 報文。它們可以使用 IPv4 與 IPv4 結(jié)點(diǎn)互通,也可以直接使用 IPv6 與 IPv6 結(jié)點(diǎn)互通。雙棧節(jié)點(diǎn)同時包含 IPv4 和 IPv6 的網(wǎng)絡(luò)層,但傳輸層協(xié)議(如 TCP 和 UDP)的使用仍然是單一的。
雙棧技術(shù)的優(yōu)點(diǎn):
- 處理效率高、無信息丟失;
- 互通性好、網(wǎng)絡(luò)規(guī)劃簡;
- 充分發(fā)揮 IPv6 協(xié)議的所有優(yōu)點(diǎn),更小的路由表、更高的安全性等;
- 資源占用多,運(yùn)維復(fù)雜。
雙棧技術(shù)的缺點(diǎn):
- 無法實(shí)現(xiàn) IPv4 和 IPv6 互通;
- 對網(wǎng)絡(luò)設(shè)備要求較高,內(nèi)部網(wǎng)絡(luò)改造牽扯比較大,周期性相比較較長。
2. 隧道技術(shù)
隧道技術(shù)指將另外一個協(xié)議數(shù)據(jù)包的報頭直接封裝在原數(shù)據(jù)包報頭前,從而可以實(shí)現(xiàn)在不同協(xié)議的網(wǎng)絡(luò)上直接進(jìn)行傳輸,這種機(jī)制用來在 IPv4 網(wǎng)絡(luò)之上連接 IPv6 的站點(diǎn),站點(diǎn)可以是一臺主機(jī),也可以是多個主機(jī)。隧道技術(shù)將 IPv6 的分組封裝到 IPv4 的分組中,或者把 IPv4 的分組封裝到 IPv6 的分組中,封裝后的 IPv4 分組將通過 IPv4 的路由體系傳輸或者 IPv6 的分組進(jìn)行傳輸。
隧道技術(shù)的優(yōu)點(diǎn):
- 無信息丟失;
- 網(wǎng)絡(luò)運(yùn)維相比較簡單;
- 容易實(shí)現(xiàn),只要在隧道的入口和出口進(jìn)行修改。
隧道技術(shù)的缺點(diǎn):
- 隧道需要進(jìn)行封裝解封裝,轉(zhuǎn)發(fā)效率低;
- 無法實(shí)現(xiàn) IPv4 和 IPv6 互通;
- 無法解決 IPv4 短缺問題;
- NAT 兼容性不好。
3. 協(xié)議轉(zhuǎn)換技術(shù)
協(xié)議轉(zhuǎn)換技(NAT-PT)附帶協(xié)議轉(zhuǎn)換器的網(wǎng)絡(luò)地址轉(zhuǎn)換器。是一種純 IPv6 節(jié)點(diǎn)和 IPv4 節(jié)點(diǎn)間的互通方式,所有包括地址、協(xié)議在內(nèi)的轉(zhuǎn)換工作都由網(wǎng)絡(luò)設(shè)備來完成。NAT-PT 包括靜態(tài)和動態(tài)兩種,兩者都提供一對一的 IPv6 地址和 IPv4 地址的映射,只不過動態(tài) NAT-PT 需要一個 IPv4 的地址池進(jìn)行動態(tài)的地址轉(zhuǎn)換。
NAT-PT 技術(shù)的優(yōu)點(diǎn):
- 不需要進(jìn)行 IPv4、IPv6 節(jié)點(diǎn)的升級改造
NAT-PT 技術(shù)的缺點(diǎn):
- IPv4 節(jié)點(diǎn)訪問 IPv6 節(jié)點(diǎn)的實(shí)現(xiàn)方法比較復(fù)雜,網(wǎng)絡(luò)設(shè)備進(jìn)行協(xié)議轉(zhuǎn)換、地址轉(zhuǎn)換的處理開銷較大一般在其他互通方式無法使用的情況下使用
雙棧技術(shù)、隧道技術(shù)、協(xié)議轉(zhuǎn)換技術(shù)在IPv4向IPv6過渡期間互相配合、協(xié)同工作,解決了過渡期間的IPv4與IPv6的共存和互通問題,保障了IPv4向IPv6的平滑演進(jìn)。
有了以上的切換方法、切換原則和技術(shù)保障,以及順應(yīng)互聯(lián)網(wǎng)的發(fā)展趨勢,國家正積極推動IPv6的部署。
中國互聯(lián)網(wǎng)信息中心(CNNIC)的第44次《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》指出,截止2019年6月,我們國家的IPv6地址數(shù)量為50286塊/32,已躍居全球第一位;IPv6活躍用戶數(shù)達(dá)1.3億,大概占我國互聯(lián)網(wǎng)用戶的15%。
IPv6對中國的影響
中國比發(fā)達(dá)國家晚接入互聯(lián)網(wǎng)20年,是互聯(lián)網(wǎng)行業(yè)的后來者,雖然在互聯(lián)網(wǎng)產(chǎn)品和互聯(lián)網(wǎng)應(yīng)用上是大國,但我們的操作系統(tǒng)還是國外的,我們在核心技術(shù)上仍有差距,想要在IPv4環(huán)境下進(jìn)行技術(shù)創(chuàng)新,中國幾乎沒有什么機(jī)會了。
但是在IPv6上,我們跟發(fā)達(dá)國家起步差不多,我們是有機(jī)會的。
在IPv4時代,中國是沒有根服務(wù)器的,新增幾乎不可能。但是,由中國下一代互聯(lián)網(wǎng)國家工程中心牽頭發(fā)起的“雪人計劃”已在全球完成25臺IPv6根服務(wù)器架設(shè),其中在中國境內(nèi)就部署了其中的4臺,打破了中國過去沒有根服務(wù)器的困境。
另外,國際互聯(lián)網(wǎng)有八千多個標(biāo)準(zhǔn),在IPv4時代,中國只提了中文編碼標(biāo)準(zhǔn)。但目前中國就IPv6提出了一百多個標(biāo)準(zhǔn),可以說IPv6為中國互聯(lián)網(wǎng)發(fā)展打開了一個新的創(chuàng)新空間。
所以,伴隨著IPv4的枯竭,IPv6的大量投入使用,中國在國際互聯(lián)網(wǎng)的地位一定會變得愈加重要!