下一代網際協議IPv6
一、解決 IP 地址耗盡的措施
- 從計算機本身發展以及從因特網規模和網絡傳輸速率來看,現在 IPv4 已很不適用。
- 最主要的問題就是 32 位的 IP 地址不夠用。
在 2019/11/25 UTC+1 15:35 時,一封來自歐洲 RIPE NCC 的郵件中得到確認:全球的IPv4地址已經徹底耗盡。
- 要解決 IP 地址耗盡的問題的措施:
- 采用無類別編址 CIDR,使 IP 地址的分配更加合理。
- 采用網絡地址轉換 NAT 方法以節省全球 IP 地址。
- 采用具有更大地址空間的新版本的 IP 協議 IPv6。
二、IPv6 的基本首部
2.1.IPv6的主要變化
- 更大的地址空間。IPv6 將地址從 IPv4 的 32 位 增大到了 128 位。
- 擴展的地址層次結構。
- 靈活的首部格式。
- 改進的選項。
- 允許協議繼續擴充。
- 支持即插即用(即類似DHCP自動配置)
- 支持資源的預分配。
2.2.IPv6 數據報的首部
- IPv6 將首部長度變為固定的 40 字節,稱為基本首部(base header)。
- 將不必要的功能取消了,首部的字段數減少到只有 8 個。
- 取消了首部的檢驗和字段,加快了路由器處理數據報的速度。
- 在基本首部的后面允許有零個或多個擴展首部。
- 所有的擴展首部和數據合起來叫做數據報的有效載荷(payload)或凈負荷。
2.3.IPv6 數據報的一般形式
2.4.IPv6基本首部的8個字段
- 版本(version)—— 4 位。它指明了協議的版本,對 IPv6 該字段總是 6。
- 通信量類(traffic class)—— 8 位。這是為了區分不同的 IPv6 數據報的類別或優先級。目前正在進行不同的通信量類性能的實驗。
-
流標號(flow label)—— 20 位。 “流”是互聯網絡上從特定源點到特定終點的一系列數據報, “流”所經過的路徑上的路由器都保證指明的服務質量。
所有屬於同一個流的數據報都具有同樣的流標號。
-
有效載荷長度(payload length)—— 16 位。它指明 IPv6 數據報除基本首部以外的字節數(所有擴展首部都算在有效載荷之內),其最大值是 64 KB。
-
下一個首部(next header)—— 8 位。它相當於 IPv4 的協議字段或可選字段。
-
跳數限制(hop limit)—— 8 位。源站在數據報發出時即設定跳數限制。路由器在轉發數據報時將跳數限制字段中的值減1。
當跳數限制的值為零時,就要將此數據報丟棄。
- 源地址—— 128 位。是數據報的發送站的 IP 地址。
- 目的地址—— 128 位。是數據報的接收站的 IP 地址。
三、IPv6 的擴展首部
3.1.擴展首部及下一個首部字段
- IPv6 把原來 IPv4 首部中選項的功能都放在擴展首部中,並將擴展首部留給路徑兩端的源站和目的站的主機來處理。
- 數據報途中經過的路由器都不處理這些擴展首部(只有一個首部例外,即逐跳選項擴展首部)。
- 這樣就大大提高了路由器的處理效率。
- 無擴展首部:
- 有擴展首部:
**六種擴展首部 **
- 逐跳選項;
- 路由選擇;
- 分片;
- 鑒別;
- 封裝安全有效載荷;
- 目的站選項 ;
3.2.擴展首部舉例:分片首部
- IPv6 把分片限制交由源站來完成。源站可以采用最小 MTU(1280字節),或者在發送數據前完成路徑最大傳送單元發現(Path MTU Discovery),以確定沿着該路徑到目的站的最小 MTU。
- 分片擴展首部的格式如下:
- IPv6 數據報的有效載荷長度為 3000 字節。下層的以太網的最大傳送單元 MTU 是 1500 字節。分成三個數據報片,兩個 1400 字節長,最后一個是 200 字節長。 數據報分為以下形式。
**用隧道技術來傳送長數據報 **
- 當路徑途中的路由器需要對數據報進行分片時,就創建一個全新的數據報,然后將這個新的數據報分片,並在各個數據報片中插入擴展首部和新的基本首部。
- 路由器將每個數據報片發送給最終的目的站,而在目的站將收到的各個數據報片收集起來,組裝成原來的數據報,再從中抽取出數據部分。
四、IPv6 的地址空間
4.1.地址的類型與地址空間
IPv6 數據報的目的地址可以是以下三種基本類型地址之一:
- 單播(unicast) 單播就是傳統的點對點通信。
- 多播(multicast) 多播是一點對多點的通信。
- 任播(anycast) 這是 IPv6 增加的一種類型。任播的目的站是一組計算機,但數據報在交付時只交付其中的一個,通常是距離最近的一個。
結點與接口
- IPv6 將實現 IPv6 的主機和路由器均稱為結點。
- IPv6 地址是分配給結點上面的接口。
- 一個接口可以有多個單播地址。
- 一個結點接口的單播地址可用來唯一地標志該結點。
冒號十六進制記法
-
IPv6的 128 位地址每 16 位 用一個十六進制值表示,各值之間用冒號分隔,一共有8個十六進制數。
如:68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF;
而IPv4則為 32 位的地址每 8 位用一個十六進制值表示,一共有4個十六進制數。
-
零壓縮(zero compression),即一連串連續的零可以為一對冒號所取代。
如:FF05:0:0:0:0:0:0:B3 可以寫成:FF05::B3
點分十進制記法的后綴法
-
如:0:0:0:0:0:0:128.10.2.1 使用零壓縮即可得出: ::128.10.2.1 。
-
CIDR 的斜線表示法仍然可用。
如:60 位的前綴 12AB00000000CD3 可記為:
12AB:0000:0000:CD30:0000:0000:0000:0000/60;
或 12AB::CD30:0:0:0:0/60;
或 12AB:0:0:CD30::/60;
4.2.地址空間的分配
IPv6 將 128 位地址空間分為兩大部分。
- 第一部分是可變長度的類型前綴,它定義了地址的目的;
- 第二部分是地址的其余部分,其長度也是可變的;
4.3.特殊地址
IPv6具有比IPv4更復雜的IP地址結構。 IPv6已經為特殊目的保留了幾個地址和地址符號。 參見下表:
IPv6 Address | Meaning |
---|---|
::/ 128 | Unspecified Address |
::/ 0 | Default Route |
::1 / 128 | Loopback Address |
- 未指明地址 :如表所示,地址0:0:0:0:0:0:0:0/128是 16 字節的全 0 地址,不指定任何內容,稱為未指定地址。 簡化后,所有的0被壓縮為:: / 128。
- 默認路由:在IPv4中,地址0.0.0.0與網絡掩碼0.0.0.0表示默認路由。 相同的概念也適用於IPv6,地址0:0:0:0:0:0:0:0,網絡掩碼全0表示默認路由。 應用IPv6規則后,此地址壓縮為:: / 0。
- 環回地址: IPv4中的環回地址由127.0.0.1到127.255.255.255系列表示。 但在IPv6中,只有0:0:0:0:0:0:0:1/128表示環回地址。 環回地址后,可以表示為:: 1/128。
- 基於 IPv4 的地址 前綴為 0000 0000 保留一小部分地址作為與 IPv4 兼容的。
- 本地鏈路單播地址 : 它僅供於在網段,或廣播域中的主機相互通信使用。這類主機通常不需要外部互聯網服務,僅有主機間相互通訊的需求。IPv4鏈路本地地址定義在169.254.0.0/16地址塊。 IPv6定義在fe80::/10地址塊。
**前綴為 0000 0000 的地址 **
- 前綴為 0000 0000 是保留一小部分地址與 IPv4 兼容的,這是因為必須要考慮到在比較長的時期 IPv 4和 IPv6 將會同時存在,而有的結點不支持 IPv6。
- 因此數據報在這兩類結點之間轉發時,就必須進行地址的轉換。
4.4.全球單播地址的等級結構
IPv6 擴展了地址的分級概念,使用以下三個等級:
(1) 全球路由選擇前綴,占 48 位。
(2) 子網標識符,占16 位。
(3) 接口標識符,占 64 位。
五、從 IPv4 向 IPv6 過渡
5.1.概述
- 向 IPv6 過渡只能采用逐步演進的辦法,同時,還必須使新安裝的 IPv6 系統能夠向后兼容。
- IPv6 系統必須能夠接收和轉發 IPv4 分組,並且能夠為 IPv4 分組選擇路由。
- 雙協議棧(dual stack)是指在完全過渡到 IPv6 之前,使一部分主機(或路由器)裝有兩個協議棧,一個 IPv4 和一個 IPv6。