4 版或 IPv4) 並未進行重大修改。IPv4
業經證實具有強固性、易於建置和互操作性,而且也經歷將互連網路擴展到今天的
Internet
全球工具規模的考驗。這歸功於它的最初設計。
- 近年來 Internet 以指數成長以及 IPv4
位址空間即將耗盡IPv4
位址已變得相當匱乏,一些組織不得不使用網路位址轉換工具
(NAT) 將多個專用位址對應到一個公用的 IP
位址。雖然 NAT
促進專用位址空間的重新使用,但它們不支援標準式的網路層安全性或所有高層通訊協定的正確對應,因此當連線兩個使用專用位址空間的組織時,就可能出現問題。此外,隨著 Internet
連線的裝置和工具日益成長,總有一天公用
IPv4 位址空間會耗盡。 - Internet 的成長以及 Internet
主幹路由器處理大型路由表的能力由於 IPv4 網路 ID
以前和目前的配置方式,在 Internet
主幹路由器的路由表中通常有超過 70,000
個以上的路由。目前 IPv4 Internet
路由基礎結構是由階層式和非階層式結構的路由組成。 - 需要更簡單的組態
大多數目前的 IPv4
建置不是手動組態,就是使用受管理的位址組態通訊協定,如動態主機組態通訊協定
(DHCP)。隨著使用 IP
的電腦和裝置增多,迫切需要一種更簡單、自動化程度更高的位址組態以及其它不依賴於
DHCP 基礎結構管理的組態。 - IP 等級的安全性需求
在 Internet
等公開媒體上進行私人通訊,就需要加密服務,以保障傳送資料在傳輸程序中不被檢視或修改。雖然目前有
IPv4 封包使用的安全標準 (稱為「IP 安全」或
IPSec),但此標準是選擇性的,普遍使用的是專用的解決方案。 - 需要為資料即時傳輸提供更好的支援 -
也稱為服務品質 (QoS)雖然 IPv4 中已有 QoS
標準,即時傳輸支援還是取決於 IPv4 服務類型
(TOS) 欄位和 payload 識別 (通常使用 UDP 或 TCP
連接埠)。不巧的是,IPv4 TOS
欄位功能有限,隨著時間的經過,會出現各種不同的本機解譯。此外,當
IPv4 封包 payload 加密後,就無法使用 TCP 和 UDP
連接埠進行 payload 識別。
開發了一套通訊協定和標準,稱為 IP 第 6 版
(IPv6)。此新版本,以前稱為下一代 IP (IPng),其中加入了許多為更新
IPv4 通訊協定所提出方法的概念。在 IPv6
的設計中,因為不隨意加入新的功能,因此將對上層和下層通訊協定的影響降至最低。
IPv6 特性
- 新標頭格式
- 大位址空間
- 有效率、具有階層結構的位址設定和路由基礎結構
- 不受管理的和受管理的位址組態
- 內建安全性
- 提供更好的 QoS 支援
- 用於相鄰節點互動的新通訊協定
- 可擴充性
新標頭格式
標頭採用的新格式,目的是為了將標頭成本降到最低。具體做法是將非基本欄位和選項欄位放在擴充標頭中,而擴充標頭放在
IPv6 標頭後面。使用簡化的 IPv6
標頭,在中間路由器可進行更有效率的處理。
標頭互相操作。主機或路由器必須使用 IPv4 和
IPv6 建置,以辨識和處理這兩種標頭格式。即使
IPv6 位址則是 IPv4 位址的 4 倍,新的 IPv6
標頭僅是 IPv4 標頭 2 倍大小。
大位址空間
位址。雖然 128 位元可以表示多於 3.4×1038
種可能的組合,但是,IPv6
的大位址空間的設計是用於允許多級子網路和位址配置
(從 Internet 主幹網路到組織中的個別子網路)。
(如 NAT 的部署) 就不再是必需的了。
有效率、具有階層結構的位址設定和路由基礎結構
全域位址用於建立有效率、具有階層結構、可摘要的路由基礎結構,這個結構以多層級
Internet 服務提供程式的共同實施為基礎。在 IPv6
Internet 上,主幹路由器的路由表要小得多,與
Top-Level Aggregators
路由基礎結構對應。有關詳細資訊,請參閱<可彙總全域單點傳播位址>。
不受管理的和受管理的位址組態
DHCP 伺服器的位址組態) 和不受管理的位址組態 (沒有
DHCP 伺服器的位址組態)。使用不受管理的位址組態,連結上的主機自動自行組態為連結的
IPv6 位址 (稱為連結-本機位址)
以及從本機路由器通告的字首所衍生的位址。甚至在不存在路由器的情況下,相同連結上的主機也可自動自行組態為連結-本機位址並進行通訊,而不使用手動組態。
內建安全性
通訊協定套件的要求。這個要求為網路安全需求提供標準的解決方案,並改善不同
IPv6 建置之間的互操作性。
提供更好的 QoS 支援
標頭中的新增欄位定義如何處理與識別傳輸。在
IPv6 標頭中使用 Flow Label
欄位來識別傳輸,可使路由器標識和特殊處理屬於一個流量的封包,流量是指來源和目的之間的一系列封包。因為是在
IPv6 標頭中識別傳輸,所以即使透過 IPSec
加密的封包 payload,仍可實現對 QoS 的支援。
用於相鄰節點互動的新通訊協定
訊息的 Internet 控制訊息通訊協定 (ICMPv6),它們管理相鄰節點之間的互動
(同一連結上的節點)。Neighbor Discovery
以其有效的多點傳播和單點傳播Neighbor Discovery
訊息,取代廣播式的位址解析通訊協定 (ARP)、ICMPv4
Router Discovery 和 ICMPv4 Redirect 訊息。
可擴充性
標頭後面,可以很容易地擴充以適應新的特性。與
IPv4 標頭中的選項 (僅支援 40 位元組的選項)
不同,IPv6 擴充標頭的大小只受 IPv6
封包大小的限制。
IPv4 和 IPv6 之間的差異
| IPv4 | IPv6 |
| 來源位址和目的位址長度都為 32 位元 (4 位元組)。 |
來源位址和目的位址長度都為 128 位元 (16 位元組)。有關詳細資訊,請參閱<IPv6 位址設定>。 |
| IPSec 支援是選擇性的。 | IPSec 支援是必需的。有關詳細資訊,請參閱<IPv6 標頭>。 |
| 在 IPv4 標頭中,路由器不識別用於 QoS 處理的 payload。 |
在 IPv6 標頭中,路由器使用 Flow Label 欄位識別用於 QoS 處理的 payload。有關詳細資訊,請參閱<IPv6 標頭>。 |
| 路由器和傳送主機均支援資料片段。 | 路由器不支援資料片段。僅傳送主機支援資料片段。有關詳細資訊,請參閱<IPv6 標頭>。 |
| 標頭包括檢查值。 | 標頭不包括檢查值。有關詳細資訊,請參閱<IPv6 標頭>。 |
| 標頭包括選項。 | 所有選項資料均移到 IPv6 擴充標頭中。有關詳細資訊,請參閱<IPv6 標頭>。 |
| 位址解析通訊協定 (ARP) 使用廣播 ARP Request 訊框,將 IPv4 位址解析為連結層位址。 |
用多點傳播 Neighbor Solicitation 訊息取代 ARP Request 訊框。有關詳細資訊,請參閱 "Neighbor Discovery"。 |
| 使用 Internet 群組管理通訊協定 (IGMP) 管理本機子網路群組成員身份。 |
用 Multicast Listener Discovery (MLD) 訊息取代 IGMP。有關詳細資訊,請參閱 "Multicast Listener Discovery"。 |
| 使用 ICMP Router Discovery 確定具有最佳預設閘道的 IPv4 位址 (選擇性)。 |
用 ICMPv6 Router Solicitation 和 Router Advertisement 訊息取代 ICMPv4 Router Discovery,這是必需的。有關詳細資訊,請參閱 "Neighbor Discovery"。 |
| 使用廣播位址將傳輸傳送到子網路上的所有節點。 | 沒有 IPv6 廣播位址。而是使用連結-本機領域所有節點多點傳播位址。有關詳細資訊,請參閱<多點傳播 IPv6 位址>。 |
| 必須手動組態或使用 DHCP 組態。 |
不需要手動組態或 DHCP。有關詳細資訊,請參閱<位址自動組態>。 |
| 使用網域名稱系統 (DNS) 中的主機位址 (A) 資源記錄,將主機名稱對應到 IPv4 位址。 |
使用網域名稱系統 (DNS) 中的主機位址 (AAAA) 資源記錄,將主機名稱對應到 IPv6 位址。有關詳細資訊,請參閱<IPv6 和 DNS>。 |
| 使用 IN-ADDR.ARPA DNS 網域中的指標 (PTR) 資源記錄,將 IPv4 位址對應到主機名稱。 |
使用 IP6.INT DNS 網域中的指標 (PTR) 資源記錄,將 IPv6 位址對應到主機名稱。有關詳細資訊,請參閱<IPv6 和 DNS>。 |
LAN 媒體上的 IPv6 封包
- 連結層標頭和標尾 – 在連結層對 IPv6
封包進行的壓縮。 - IPv6 標頭 – 新 IPv6
標頭。有關詳細資訊,請參閱
。 - Payload – IPv6 封包的 payload。有關詳細資訊,請參閱
。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
(FDDI),IPv6 封包有兩種壓縮方法:使用 Ethernet II
標頭或者 IEEE 802.3 (Ethernet)、IEEE 802.5 (Token Ring) 和
FDDI 使用的子網路存取通訊協定 (SNAP) 標頭。
Ethernet II 壓縮
標頭中的 EtherType 欄位設為 0x86DD 來表示 IPv6;將
EtherType 欄位設定為 0×800 而表示 IPv4。使用 Ethernet
II 壓縮,IPv6 封包最小為 46 位元組,最大為 1,500
位元組。圖 2 顯示 IPv6 封包的 Ethernet II 壓縮。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
IEEE 802.3、IEEE 802.5 和 FDDI 壓縮
網路上,使用子網路存取通訊協定 (SNAP)
標頭,並將 EtherType 欄位設為 0x86DD 來表示 IPv6。圖
3 顯示 SNAP 壓縮。

封包最小為 38 位元組,最大為 1.492
位元組。對於使用 SNAP 標頭的 FDDI 壓縮,IPv6
封包最大為 4,352 位元組。有關 IEEE 802.5 網路中
IPv6 封包最大尺寸的資訊,請參閱 RFC 2470。
Microsoft IPv6 建置
Windows NT 和 Windows 2000:
- 有關 Microsoft Research IPv6 Implementation,可瀏覽:http://www.research.microsoft.com/msripv6/。
- 有關 Microsoft Technology Preview for Windows 2000,可瀏覽:http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp。
建置並非發行的產品。它們不用於生產,也不會得到
Microsoft 產品支援服務部門 (PSS)
的任何支援。請瀏覽個別 Web
網址查詢有關報告的錯誤訊息,並將回饋訊息傳送給
Microsoft 產品群組。
2000 Server 中隨附的 Microsoft 網路監視器支援 IPv6
通訊擷取和剖析。
Microsoft Research IPv6 Implementation
通訊協定,它可在 Windows NT 4.0 和 Windows 2000
上執行。目前還沒有支援 Windows 95、Windows 98 或
Windows CE 的計畫。Microsoft Research IPv6 Implementation
是以單獨的通訊協定執行,包含自己的傳輸控制通訊協定
(TCP) 版本和用戶資料訊息通訊協定 (UDP)
版本。您可以在不影響 IPv4 通訊的情況下測試
IPv6。
中包含用於安裝的編譯檔案、來源程式碼以及各種工具和附加檔案。可在
Microsoft Research IPv6 Implementation Web
網址查詢最新版本,以及支援的 IPv6
特性和通訊協定清單。
Microsoft IPv6 Technology Preview for Windows 2000
是一個由 Microsoft Research IPv6 Implementation
衍生出來的通訊協定,它是為應用程式開發人員專門開發的。它可用於
IPv6
的初學者和測試者,最終目的地是能夠將應用程式移植到
IPv6 上執行。顧名思義,Microsoft IPv6 Technology
Preview for Windows 2000 只能安裝到執行 Windows 2000
版本的電腦上。
IPv6 位址設定
IPv6 位址空間
中一個位址的大小為 128 位元,是 IPv4 位址的 4
倍。32 位元位址空間允許有 4,294,967,296
個可能的位址。而 128 位元位址空間允許有
340,282,266,920,938,463,463,374,607,431,768,211,465 (或 3.4 x
1038) 個可能的位址。
位址空間時,很難想像如此大的位址空間竟可能會耗盡!然而,由於技術和配置方法
(未預見到現今 Internet 上主機的爆炸性成長)
的改變,從 1992 年 IPv4
位址空間消耗情況看,使用取代的位址空間勢在必行。
位址空間會耗盡。為便於您正確地了解這個數字,可以打個比方:128
位元位址空間可為地球表面每平方米提供
655,570,793,348,866,943,898,599 (6.5 x 1023) 個位址。
位元並不是要使地球上每平方米提供 6.5 x 1023
個位址。而是將較大的 IPv6
位址細分為具有階層結構的路由網域,以反應現今
Internet 的拓樸結構。使用 128
位元可允許多個層次的階層結構,並且設計具有階層的位址設定和路由方面具有很大的靈活性,這是目前
IPv4 式的 Internet 所沒有的。
目前的配置
位址空間是根據高序位位元值畫分的。高序位位元及其固定值稱為格式字首
(FP)。
| 配置 | 格式字首 (FP) | 占位址空間的比例 |
| 保留 | 0000 0000 | 1/256 |
| 未指派 | 0000 0001 | 1/256 |
| 保留給 NSAP 配置 | 0000 001 | 1/128 |
| 保留給 IPX 配置 | 0000 010 | 1/128 |
| 未指派 | 0000 011 | 1/128 |
| 未指派 | 0000 1 | 1/32 |
| 未指派 | 0001 | 1/16 |
| 可彙總全域單點傳播位址 | 001 | 1/8 |
| 未指派 | 010 | 1/8 |
| 未指派 | 011 | 1/8 |
| 未指派 | 100 | 1/8 |
| 未指派 | 101 | 1/8 |
| 未指派 | 110 | 1/8 |
| 未指派 | 1110 | 1/16 |
| 未指派 | 1111 0 | 1/32 |
| 未指派 | 1111 10 | 1/64 |
| 未指派 | 1111 110 | 1/128 |
| 未指派 | 1111 1110 0 | 1/512 |
| 連結-本機單點傳播位址 | 1111 1110 10 | 1/1024 |
| 站台-本機單點傳播位址 | 1111 1110 11 | 1/1024 |
| 多點傳播位址 | 1111 1111 | 1/256 |
節點使用的目前單點傳播位址集由可彙總全域單點傳播位址、連結-本機單點傳播位址以及站台-本機單點傳播位址組成。這些僅占整個
IPv6 位址空間的 15%。
IPv6 位址語法
位元位址以 8 位元為界來畫分。每個 8
位元組轉換為對應的十進位,並以句點隔開。對於
IPv6,128 位元位址以 16 位元為界來畫分,每個 16
位區塊轉換為 4
位十六進位數,並以冒號隔開。這樣產生的表示方法稱為冒號十六進位。
0010111100111011 0000001010101010 0000000011111111
1111111000101000 1001110001011010
位元區塊轉換為十六進位,並用冒號隔開。結果是:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
位元區塊中的前置零,可進一步簡化 IPv6
表示法。但是,每個區塊必須至少有一個數字。取消前置零後,位址表示為:
21DA:D3:0:2F3B:2AA:FF:FE28:9C5A
零壓縮
IPv6 位址的表示,在冒號十六進位格式中設為 0
的一串連續 16 位元區塊可壓縮為「::」。
可以壓縮為:FE80::2AA:FF:FE9A:4CA2。多點傳播位址
FF02:0:0:0:0:0:0:2 可以壓縮為:FF02::2。
位元區塊 (冒號十六進位表示法)。不能對某個 16
位元區塊的一部分進行零壓縮。例如,您不能將
FF02:30:0:0:0:0:0:5 表示為 FF02:3::5。
8 減去此數,然後將結果乘以 16。例如,在位址
FF02::2 中,有 2 個區塊 (「FF02」區塊和「2」區塊)。「::」表示的位元數為:96
(96 = (8 – 2)*16)。
0 位元的個數。
IPv6 字首
字首的表示方法與 IPv4 無類別的網域間路由 (CIDR)
表示法相同。IPv6 字首記為「位址/字首長度」。例如,FE80::2AA:FF:FE9A:4CA2/64
表示位址的前 64
位元是網路字首。字首表示法也用於表示網路或子網路識別碼。例如,21DA:D3::/48
是一個子網路。
21DA:D3:0:2F3B:2AA:FF:FE28:9C5A/64
所衍生的子網路識別碼為:21DA:D3:0:2F3B::/64。
建置通常使用點陣十進位數字表示網路字首 (稱為子網路遮罩)。IPv6
不使用子網路遮罩。IPv6
只支援字首長度表示法。
位址的冒號十六進位表示法以半位元組 (4 位元)
為界。要正確表示一個字首長度不是 4
的倍數的子網路,必須將十六進位轉換為二進位,才能確定適當的子網路識別碼。例如,要表示位址和字首為
21DA:D3:0:2F3B:2AA:FF:FE28:9C5A/59
的子網路,就必須將「2F3B」中的「3」轉換為二進位
(0011),在第 3 個和每 4
個二進位數字之間畫分半位元組,然後轉換回到十六進位。結果子網路識別碼為
21DA:D3:0:2F20::/59。
IPv6 位址類型
- 單點傳播
單點傳播位址識別在單點傳播位址類型領域內的單一介面。有了適當的單點傳播路由拓樸,發往單點傳播位址的封包會被傳送到單一介面。為適應負載平衡系統,RFC
2373
允許多個介面使用同一位址,只要對主機上的
IPv6
建置來說,這些介面可看作是一個介面即可。 - 多點傳播
多點傳播位址識別多個介面。有了適當的多點傳播路由拓樸,發往多點傳播位址的封包會被傳送到按位址識別的多個介面。
- Anycast
Anycast
位址識別多個介面。有了適當的路由拓樸,發往
Anycast
位址的封包會被傳送到該位址識別的最鄰近的單一介面。「最鄰近」介面是指路由距離上最近的介面。多點傳播位址用於一對多通訊,即傳送到多個介面。Anycast
位址用於一對多中之一通訊,傳送到一個介面。
位址識別的都是介面,而不是節點。節點可用指派給它的介面的任一單點傳播位址來識別。
上,所有類型的 IPv4
廣播位址設定均使用多點傳播位址。例如,IPv4
子網路和有限廣播位址被連結-本機領域所有節點多點傳播位址
FF02::1 取代。
連結和子網路
指派給單一連結。可以將多個子網路 ID
指派給同一連結。這個技術稱為 multinetting。
單點傳播 IPv6 位址
- 可彙總全域單點傳播位址
- 連結-本機位址
- 站台-本機位址
- 特殊位址
- NSAP 和 IPX 位址
可彙總全域單點傳播位址
識別) 與公用 IPv4 位址相同。它們在 Internet IPv6
部分上 (稱為 6bone,亦即 IPv6 主幹網路)
可全域路由和連線。
IPv4 式的 Internet
既包括階層式路由,又包括非階層式路由,而
IPv6 式的 Internet
與此不同,它是從最基礎的部分起,支援有效率、具有階層結構的位址設定和路由。可彙總全域單點傳播位址的領域是整個
IPv6 Internet,它是 IPv6
網路的一個區域,在此區域內位址是唯一的。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
13 位元。TLA 識別路由階層結構的最高層級。IANA
管理 TLA 並將其配置到本機 Internet
登錄,登錄又將各個 TLA
配置給大型的、長通訊距離的 Internet 服務供應商
(ISP)。13 位元的欄位允許最多 8,192 個不同的 TLA。IPv6
Internet 路由階層結構中的最高層路由器 (稱為無預設路由的路由器)
沒有預設路由 – 僅有具 16
位元字首的路由,與配置的 TLA 對應。
的大小而保留的位元。此欄位大小為 8 位元。
ID 用於識別特定的客戶站台。該欄位大小為 24
位元。使用 NLA ID,ISP
可以在網路中建立多層級位址設定階層結構,組織下游
ISP
的位址設定和路由並識別站台。對於無預設路由的路由器來說,ISP
網路的結構是透明的。
ID
由個別組織使用,來識別其站台內的子網路。該欄位大小為
16 位元。組織在其站台內使用這些 16 位元,建立
65,536
個子網路或多層級位址設定階層結構以及有效率的路由基礎結構。採用
16
位元子網路具有很大的靈活性,指派給組織可彙總全域單點傳播位址字首相當於配置給該組織
IPv4 A 類別網路 ID (假設最後 8
位元組用於識別子網路上的節點)。客戶網路的結構對
ISP 是透明的。
表示特定子網路上的介面。該欄位大小為 64
位元。
5 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
ISP
組成。站台拓樸由組織站台內的子網路組成。介面識別碼識別組織站台內子網路上的特定介面。有關可彙總全域單點傳播位址的詳細資訊,請參閱
RFC 2374。
本機使用單點傳播位址
- 連結上的相鄰節點以及 Neighbor Discovery
程序使用的連結-本機位址。 - 與同一站台中其它節點通訊的節點所使用的站台-本機位址。
連結-本機位址
(用等於 1111 1110 10 的 FP 識別)。例如,在沒有路由器的單連結
IPv6 網路中,連結-本機位址用於該連結上主機之間的通訊。連結-本機位址相當於
Microsoft Windows 系統上使用 169.254.0.0/16
字首自動組態的 IPv4 位址。連結-本機位址的領域是本機連結。
程序所必需的,即使沒有任何其它單點傳播位址也永遠是自動組態的。有關連結-本機位址自動組態程序的詳細資訊,請參閱<位址自動組態>。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
位元介面識別碼,連結-本機位址的字首永遠是
FE80::/64。IPv6 路由器從不將連結-本機位址通訊轉寄到該連結之外。
站台-本機位址
相當於 IPv4 專用位址空間 (10.0.0.0/8、172.16.0.0/12
和 192.168.0.0/16)。例如,如果專用 Intranet 沒有到
IPv6 Internet
直接的、已路由的連線,它可以使用站台-本機位址,而不會與可彙總全域單點傳播位址衝突。其它站台不能存取站台-本機位址,路由器不得將站台-本機位址通訊轉寄到該站台之外。除可彙總全域單點傳播位址外,還可以使用站台-本機位址。站台-本機位址的領域是該站台
(組織網路)。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
位元永遠是固定的,以 FEC0::/48 開始。這 48
個固定位之元後,是 16 位元子網路識別碼 (子網
ID 欄位),您可以用這 16
位建立組織內的子網路。使用 16
位元,您可在非階層式子網路結構中建立最多
65,536 個子網路,或者將其子網路 ID
欄位的高序位位元進一步細分,建立階層式且可彙總的路由基礎結構。在子網路
ID 欄位之後是一個定義子網路上的特定介面的 64
位元 Interface ID 欄位。
位以外的結構,可彙總全域單點傳播位址和站台-本機位址是相同的。在可彙總全域單點傳播位址中,SLA
ID 識別組織內的子網路。對於站台-本機位址,子網路
ID
的功能與之相同。因此,您可以建立一個子網路的路由基礎結構,供站台-本機位址和可彙總全域單點傳播位址使用。
特殊 IPv6 位址
- 未指定的位址
未指定的位址(0:0:0:0:0:0:0:0 或 ::)
僅用於表示位址不存在。它相當於 IPv4
未指定位址 0.0.0.0。對那些要驗證暫時位址唯一性的封包,通常將未指定位址作為它的來源位址。未指定位址絕不能指派給介面,也不能做為目的位址。 - 迴路位址
迴路位址(0:0:0:0:0:0:0:1 或 ::1)
用於識別迴路介面,使節點得以向自己傳送封包。它相當於
IPv4 迴路位址 127.0.0.1。發往迴路位址的封包絕不能在連結上傳送,也不能由
IPv6 路由器轉寄。
相容位址
- IPv4 相容位址
雙堆疊節點使用 IPv4 相容位址
0:0:0:0:0:0:w.x.y.z 或 ::w.x.y.z (此處 w.x.y.z 是 IPv4
位址的點陣十進位表示法) 在 IPv4
基礎結構上與 IPv6 通訊。雙堆疊節點是具有
IPv4 和 IPv6 通訊協定的節點。當使用 IPv4
相容位址做為 IPv6 目的位址時,IPv6
通訊自動使用 IPv4 標頭進行壓縮,並使用 IPv4
基礎結構傳送到目的。 - IPv4 對應位址
IPv4 對應位址 0:0:0:0:0:FFFF:w.x.y.z 或 ::FFFF:w.x.y.z
用來將只用於 IPv4 的節點表示為 IPv6
節點。它只用於內部表示。IPv4
對應位址絕不能做為 IPv6
封包的來源位址或目的位址。
NSAP 位址和 IPX 位址
Internet 封包交換 (IPX) 位址對應到 IPv6 位址,定義
NSAP 和 IPX 位址。
- NSAP 位址
NSAP 位址使用的 FP 等於 0000001,並將 IPv6
位址的最後 121 位元對應到 NSAP 位址。有關 4
種類型 NSAP 位址對應的詳細資訊,請參閱 RFC
1888。 - IPX 位址
IPX 位址使用的 FP 等於 0000010,並將 IPv6
位址的最後 121 位元對應到 IPX 位址。IPX
位址到 IPv6 位址的對應還沒有定義。
多點傳播 IPv6 位址
中相同。任意配置的 IPv6 節點可以聆聽任意 IPv6
多點傳播位址的多點傳播通訊。IPv6
節點可同時聆聽多個多點傳播位址。節點可以隨時加入或離開多點傳播群組。
IPv6 位址,因為它永遠以「FF」開始。在 Routing
標頭中,多點傳播位址不能做為來源位址或者
Routing 標頭 的中間目的位址。
外,多點傳播位址還包含其它結構,來識別其旗標、領域和多點傳播群組。圖
8 顯示 IPv6 多點傳播位址。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
表示多點傳播位址上設定的旗標。該欄位大小為
4 位元。正如 RFC 2373 中所述,唯一定義的旗標是
Transient (T) 旗標。T 旗標使用 Flags
欄位的低序位位元。設為 0 時,T
旗標表示多點傳播位址是由 Internet 編號機構 (IANA)
配置的永久性 (眾所周知的) 多點傳播位址。設為
1 時,T 旗標表示多點傳播位址是一個暫時的 (非永久指派的)
多點傳播位址。
網路的領域。該欄位大小為 4
位元。除了多點傳播路由通訊協定提供的資訊外,路由器還使用多點傳播領域確定是否可以轉寄多點傳播通訊。
| 值 | 領域 |
| 0 | 保留 |
| 1 | 節點-本機領域 |
| 2 | 連結-本機領域 |
| 5 | 站台-本機領域 |
| 8 | 組織-本機領域 |
| E | 全域領域 |
| F | 保留 |
的通訊具有連結-本機領域。IPv6
路由器從不將此類通訊轉寄到本機連結之外。
識別多點傳播群組,且在其領域內是唯一的。該欄位大小為
112 位元。永久指派的群組 ID
與領域無關。暫時群組 ID 僅與特定領域相關。從
FF01:: 到 FF0F::
之間的多點傳播位址是保留的、眾所周知的位址。
- FF01::1 (節點-本機領域所有節點多點傳播位址)
- FF02::1 (連結-本機領域所有節點多點傳播位址)
- FF01::2 (節點-本機領域所有路由器多點傳播位址)
- FF02::2 (連結-本機領域所有路由器多點傳播位址)
- FF05::2 (站台-本機領域所有路由器多點傳播位址)
2112 個群組 ID。但是,考慮到 IPv6
多點傳播位址對應到 Ethernet 多點傳播 MAC
位址的方式,RFC 2373 建議從 IPv6
多點傳播位址的低序位 32 位元開始指派 Group ID,並將剩餘的原始群組
ID 位元設為 0。透過只使用低序位 32
位元,每個群組 ID 均對應到唯一的 Ethernet
多點傳播 MAC 位址。圖 9 顯示修改後的 IPv6
多點傳播位址。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
位元群組 ID)
請求節點位址
IPv4 中,ARP Request 訊框傳送到 MAC
級廣播,對網段上所有節點均有影響,包括那些沒有執行
IPv4 的節點。IPv6 使用 Neighbor Discovery
訊息執行這個功能。但是,並不將連結-本機領域多點傳播位址做為
Neighbor Solicitation
訊息目的位址,而使用請求節點多點傳播位址,前者會干擾本機連結上的所有
IPv6 節點。請求節點多點傳播位址由字首
FF02::1:FF00:0/104 和要解析的 IPv6 位址的最後 24
位元組成。
FE80::2AA:FF:FE28:9C5A
的節點,對應的請求節點位址為 FF02::1:FF28:9C5A。要將
FE80::2AA:FF:FE28:9C5A
位址解析為其連結層位址,節點可以向請求節點位址
FF02::1:FF28:9C5A 傳送一個 Neighbor Solicitation。使用
FE80::2AA:FF:FE28:9C5A
位址的節點聆聽在請求節點位址的多點傳播通訊;對於與實體網路配接卡對應的介面,該節點使用網路配接卡註冊對應的多點傳播位址。
不需要使用影響所有網路節點的機制。透過使用請求節點位址,在位址解析程序中,沒有幾個節點會受到影響。實際上,由於
Ethernet MAC 位址、介面 ID
以及請求節點位址之間的聯繫,請求節點位址扮演的是類似單點傳播位址的角色,便於有效地進行位址解析。
Anycast IPv6 位址
位址指派給多個介面。路由基礎結構將目的位址為
Anycast 位址的封包轉寄到指派給該 anycast
位址的最鄰近介面。為便於傳輸,路由基礎結構必須能夠識別介面指派的
anycast 位址以及知道它們的距離 (按路由數計)。目前,anycast
位址僅做為目的位址,並且只指派給路由器。Anycast
位址從單點傳播位址空間指派,anycast
位址的領域就是指派該位址的單點傳播位址類別的領域。
位址是預先定義的,也是必需的。它是從給定介面的子網路字首建立的。要構建子網-路由器
anycast
位址,子網路字首中的位元固定為適當的值,其餘的位元設為
0。圖 10 顯示子網路-路由器 anycast 位址。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
anycast 位址。子網路-路由器 anycast
位址用於與遠端子網路相連的多個路由器之一通訊。
主機的 IPv6 位址
主機通常有一個指派給該配接卡的 IPv4
位址。但是,IPv6 主機通常有多個 IPv6 位址 -
即使只有一個介面。可指派 IPv6
主機以下單點傳播位址:
- 每個介面的連結-本機位址
- 每個介面的單點傳播位址 (可以是站台-本機位址,或者一個或多個可彙總全域單點傳播位址)
- 迴路位址 (::1)
主機,因為它有至少 2 個位址來接收封包 – 連結-本機位址
(用於本機連結通訊) 和可路由的站台-本機位址或可彙總位址。
- 節點-本機領域所有節點多點傳播位址
(FF01::1) - 連結-本機領域所有節點多點傳播位址
(FF02::1) - 每個單點傳播位址的請求節點位址
- 結合群組的多點傳播位址
路由器的 IPv6 位址
- 每個介面的連結-本機位址
- 每個介面的單點傳播位址 (可以是站台-本機位址,或者一個或多個可彙總全域單點傳播位址)
- 子網路-路由器 anycast 位址
- 其它 anycast 位址(選擇性)
- 迴路位址 (::1)
- 節點-本機領域所有節點多點傳播位址
(FF01::1) - 節點-本機領域所有路由器多點傳播位址
(FF01::2) - 連結-本機領域所有節點多點傳播位址
(FF02::1) - 連結-本機領域所有路由器多點傳播位址
(FF02::1) - 站台-本機領域所有路由器多點傳播位址
(FF05::2) - 每個單點傳播位址的請求節點位址
- 結合群組的多點傳播位址
IPv6 介面識別碼
位元介面識別碼,該識別碼是從 EUI-64
位址衍生而來的。64 位元 EUI-64
位址是由電氣和電子工程師學會 (IEEE) 定義的。EUI-64
位址或者是指派給網路配接卡,或者是從 IEEE 802
位址衍生而來的。
介面識別碼的衍生。為了解決隱私權問題,Internet
草案 "Privacy Extensions for Stateless Address
Autoconfiguration in IPv6″ 中討論 IPv6
介面識別碼另一種衍生方法(隨時間改變)。
IEEE 802 位址
位元位址,稱為 IEEE 802 位址。它由 24 位元公司
ID (也稱為製造商 ID) 和 24 位元擴充 ID (也稱為主板
ID) 組成。結合使用公司 ID (唯一指派給每個網路配接卡製造商的公司
ID) 和主板 ID (在組裝時唯一指派給每個網路配接卡的主板
ID),可以產生全球唯一的 48 位元位址。此 48
位元位址也稱為實體、硬體或媒體存取控制 (MAC)
位址。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
第一個位元組中的次低序位位元,用來表示位址是總體管理還是在本機管理。如果
U/L 位元設為 0,則使用唯一公司 ID 的 IEEE
管理此位址。如果 U/L 位元設為 1,該位址在本機管理。網路管理員已覆寫製造商位址,並指定不同的位址。U/L
位元在圖 11 中由 u 指定。
第一個位元組的低序位位元,用於表示位址是個別位址
(單點傳播),還是群組位址 (多點傳播)。設為 0
時,位址是單點傳播位址。設為 1
時,位址是多點傳播位址。I/G 位元在圖 11 中由 g
指定。
位元均設為 0,以與總體管理的單點傳播 MAC
位址對應。
IEEE EUI-64 介面識別碼
位址代表網路介面位址設定的新標準。公司 ID
仍為 24 位元,但擴充 ID 為 40
位元,為網路配接卡製造商產生更多的位址空間。EUI-64
位址使用 U/L 和 I/G 位元的方式與 IEEE 802
位址相同。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
將 IEEE 802 位址對應到 EIU-64 位址
位元 11111111 11111110 (0xFFFE) 插入到公司 ID 和擴充
ID 之間的 IEEE 802 位址中,如圖 13 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
取得 IPv6 位址的介面識別碼
位元介面識別碼,就需要對 EUI-64 位址中的 U/L
位元進行取補數操作 (如果它為 1,則將它設為 0;如果它為
0,則將它設為 1)。圖 14
顯示總體管理的單點傳播 EUI-64
位址的轉換程序。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
介面識別碼的轉換
介面識別碼,必須先將 IEEE 802 位址對應到 EUI-64
位址,然後對 U/L 位元進行取補數操作。圖 15
顯示總體管理的單點傳播 IEEE 802
位址的轉換程序。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
介面識別碼的轉換
IEEE 802 位址轉換範例
3 和第 4 個位元組之間插入 FF-FE,從而轉換為
EUI-64 格式,結果是:00-AA-00-FF-FE-3F-2A-1C。然後,對
U/L 位元 (它是第 1 個位元組的第 7 位元)
進行取補數操作。第 1
個位元元組的二進位元格式為 00000000。對第 7
位元取補數後,它就變成 00000010 (0×02)。最終結果是
02-AA-00-FF-FE-3F-2A-1C,以冒號十六進位元表示時,則變成
2AA:FF:FE3F:2A1C。因此,與 MAC 位址為 00-AA-00-2A-1C
的網路配接卡對應的連結-本機位址是:FE80::2AA:FF:FE3F:2A1C。
位元取補數後,如果位址是總體管理的,則會將
0×2 加入到第 1
個位元組中;如果位址是本機管理的,則會從第
1 個位元組中減掉 0×2。
將 IPv6 多點傳播位址對應到 Ethernet 位址
多點傳播封包時,對應的目的 MAC 位址為
33-33-mm-mm-mm-mm,此處 mm-mm-mm-mm 是 IPv6
多點傳播位址後 32 位元的直接對應,如圖 16
所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
位址的對應
多點傳播封包,Ethernet
配接卡可在其上的一個資料表格中儲存其它相關的
MAC 位址。如果收到具有相關 MAC 位址的 Ethernet
訊框,就會將它傳送到上層進一步處理。對於該主機聆聽的每個多點傳播位址,在相關
MAC 位址的表中都會有對應的項目。
FE80::2AA:FF:FE3F:2A1C) 的主機使用 Ethernet
配接卡註冊以下多點傳播 MAC 位址:
- 位址 33-33-00-00-00-01,與連結-本機領域所有節點多點傳播位址
FF02::1 對應。 - 位址 33-33-FF-3F-2A-1C,與請求節點位址
FF02::1:FF3F:2A1C
對應。切記,請求節點位址由字首
FF02::1:FF00:0/104 和單點傳播 IPv6 位址的最後 24
位元組成。
配接卡上的相關位址表中新增或移除主機在其上聆聽的其它多點傳播位址。
IPv6 和 DNS
所做的改進,這些改進包括以下新的要素:
- 主機位址 (AAAA) 資源記錄
- 反向查詢使用的 IP6.INT 網域
主機位址 (AAAA) 資源記錄
資源記錄類型,用於將完整的網域名稱解析為
IPv6 位址。它相當於 IPv4 使用的主機位址 (A)
資源記錄。此資源記錄類型叫做 AAAA (類型值為
28),是因為 128 位元 IPv6 位址是 32 位元 IPv4
位址的 4 倍大。以下是 AAAA
資源記錄的一個範例:
host1.microsoft.com IN AAAA FEC0::2AA:FF:FE3F:2A1C
查詢或者一般查詢,以便在 DNS
查詢應答部分獲得 IPv6 位址解析資料。
IP6.INT 網域
反向查詢。反向查詢也稱為指標查詢,它確定根據
IP
位址的主機名稱。要建立反向查詢的名稱空間,在完整表示的
32 位元 IPv6
位址中的每個十六進位元數字就必須變成反向網域階層結構中各自分離的層級
(反向順序)。
FEC0:0000:0000:0000:02AA: 00FF:FE3F:2A1C)
的反向尋找網域名稱為:
C.1.A.2.F.3.E.F.F.F.0.0.A.A.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.C.E.F.IP6.INT。
的支援,提出一種簡單的方法,將主機名稱對應到
IPv6
位址,並提供反向名稱解析。但是,這個支援並不提供將這些更新傳播到
AAAA
記錄的簡便方法,這是由於站台重新編號或者在任意位元邊界上指派反向尋找區域
( IP6.INT 以半位元組為界)。這些問題可使用一個新的「A6」資源記錄來解決,Internet
草案 "DNS Extensions to Support IPv6 Address Aggregation
and Renumbering" 中有詳細闡述。
IPv4 位址和 IPv6 相等位址
的相等位址。
| IPv4 位址 | IPv6 位址 |
| Internet 位址類別 | IPv6 中未建置 |
| 多點傳播位址 (224.0.0.0/4) |
IPv6 多點傳播位址 (FF00::/8) |
| 廣播位址 | >IPv6 中未建置 |
| 未指定位址為 0.0.0.0 | 未指定位址為 :: |
| 迴路位址為 127.0.0.1 | 迴路位址為 ::1 |
| 公用 IP 位址 | 可彙總全域單點傳播位址 |
| 專用 IP 位址 (10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16) |
站台-本機位址 (FEC0::/48) |
| 自動組態的位址 (169.254.0.0/16) |
連結-本機位址 (FE80::/64) |
| 文字表示:點陣十進位表示法 | 文字表示:冒號十六進位格式 (取消前置零和零壓縮)。IPv4 相容位址以點陣十進位表示法表示。 |
| 網路位元表示:以點陣十進位表示法或字首長度表示的子網路遮罩 | 網路位元表示:僅使用字首長度表示法 |
| DNS 名稱解析:IPv4 主機位址 (A) 資源記錄 |
DNS 名稱解析:IPv6 主機位址 (AAAA) 資源記錄 |
| DNS 反向解析:IN-ADDR.ARPA 網域 |
DNS 反向解析:IP6.INT 網域 |
IPv6 標頭
標頭的簡化版本。它刪除不必要或很少使用的欄位,並增加對即時通訊提供更好支援的欄位。回顧
IPv4 標頭有助於了解 IPv6 標頭。
IPv4 標頭

4 位元。
位元組區塊的數量。該欄位大小為 4 位元。因為
IP 標頭至少為 20 位元組,所以 Internet Header Length
欄位 (IHL) 最小值為 5。IP 選項可以按每 4
個位元組來擴充最小 IP 標頭大小。如果 IP
選項未使用 IP 選項欄位中的所有 4
位元組,則其餘位元組填為 0,整個 IP
標頭就是一個 32 位元的整數 (4 位元組)。使用最大值
0xF,則包括選項在內的 IP 標頭最大為 60 位元組
(15*4)。
網路中透過路由器傳輸封包所需的服務。此欄位大小為
8
位元,包含優先順序、延遲、輸貫量以及可靠性特性的位元。
payload),不包括連結層訊框。該欄位大小為 16
位元,可表示最多為 65,535 位元組長的一個 IP
封包。
16 位元。Identification 欄位由 IP
封包的來源節點選定。如果 IP
封包有分段,所有資料片段均保持此識別欄位值,這樣目的節點可以將這些資料片段分組以便重新組裝。
位元,但是,目前只定義 2 位元。有 2 個旗標 -
一個表示 IP
封包是否可以分段;另一個表示目前資料片段後面是否還有其它資料片段。
payload 的位置。該欄位大小為 13 位元。
封包在丟棄前可傳送的最大連結數。該欄位大小為
8 位元。Time to Live 欄位 (TTL)
最初是做為時間計數,IP
路由器使用它對應地遞減 TTL 以確定轉寄 IP
封包所需的時間 (以秒計)。現今路由器幾乎總是在不到
1 秒鐘內就轉寄一個 IP 封包,RFC 791
要求它至少將 TTL 減 1。因此,TTL
變成最大連結計數,其值由傳送節點設定。TTL
等於 0 時,封包會被丟棄,且 ICMP
到期訊息會被傳送到來源 IP 位址。
位元。例如,TCP 使用 Protocol 6,UDP 使用 Protocol 17,ICMP
使用 Protocol 1。Protocol 欄位用來將一個 IP
封包多路分解到上層通訊協定。
標頭上提供檢查值。該欄位大小為 16
位元。在檢查值評估中並不包括 IP payload,因為
IP payload 通常含有自己的檢查值。每個接收 IP
封包的 IP 節點檢驗 IP
標頭檢查值,如果檢查值檢驗失敗,就會丟棄 IP
封包,而顯示任何提示。當路由器轉寄 IP
封包時,必須遞減 TTL。因此,在來源和目的之間的每一躍點均重新評估標頭檢查值。
位址。該欄位大小為 32 位元。
位址。該欄位大小為 32 位元。
選項。該欄位的位元數是 32 的倍數。如果 IP
的一個或多個選項未完全使用 32
位元,則必須填滿其餘位元,使 IP
標頭是一個可由 Internet Header Length 欄位表示的 4
位元組區塊整數。
IPv6 封包結構
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
IPv6 標頭
位元組。本白皮書稍後詳細描述 IPv6
標頭中的欄位。
擴充標頭
標頭中的 Next Header
欄位表示下一個擴充標頭。在每個擴充標頭中還另有一個
Next Header
欄位,表示下一個擴充標頭。最後的擴充標頭表示在上層通訊協定資料單元中包含的上層通訊協定
(如 TCP、UDP 或 ICMPv6)。
IPv4 IP 標頭。使用新的擴充標頭格式,可增加 IPv6
以支援將來的需求總和容量。與 IPv4
標頭中的選項不同,IPv6
擴充標頭沒有最大尺寸,因此可以擴充以存放
IPv6 通訊所需的所有擴充資料。
上層通訊協定資料單元
通常由上層通訊協定標頭及其 payload (如 ICMPv6
訊息、UDP 訊息或者 TCP 區段) 組成。
組成。通常,它最多可連線 65,535
位元組。長度多於 65,535 位元組的 payload 可使用
Hop-by-Hop 選項擴充標頭中的 Jumbo Payload
選項來傳送。
IPv6 標頭
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
的版本,設定為 6。
封包的類別或優先順序。該欄位大小為 8 位元。Traffic
Class 欄位的功能與 IPv4 的 Type of Service
欄位類似。在 RFC 2460 中,未定義 Traffic Class
欄位的值。但是,IPv6
建置需要提供應用層通訊協定一種指定 Traffic
Class 欄位的值以進行測試的方法。
指定此封包屬於來源和目的之間的一組特定的封包,要求中間
IPv6 路由器進行特殊處理。該欄位大小為 20
位元。Flow Label
用於非預設服務連線品質,如即時資料 (聲音和視訊)
所需的連線。對於預設路由器處理,Flow Label
設為 0。在來源和目的之間可以有多個流,分別使用不同的非零
Flow Label 來區分。
長度。該欄位大小為 16 位元。Payload Length
欄位包括擴充標頭和上層 PDU。使用 16
位元,可表示最多 65,535 位元組的 IPv6 payload。對於大於
65,535 位元組的 payload,Payload Length 欄位設為 0,並在
Hop-by-Hop 選項擴充標頭中使用 Jumbo payload 選項。
或上層 PDU (如 TCP、UDP 或 ICMPv6)
中的通訊協定。該欄位大小為 8 位元。當表示
Internet 層之上的一個上層通訊協定時,使用與
IPv4 通訊協定欄位中相同的值。
封包前可傳送的最大連結數。該欄位大小為 8
位元。Hop Limit 與 IPv4 TTL
欄位相似,所不同的是,它與路由器處封包佇列已等待的時間
(以秒計) 沒有歷史關連。Hop Limit 等於 0
時,封包被丟棄,且 ICMP
到期訊息會被傳送到來源位址。
位址。該欄位大小為 128 位元。
位址。該欄位大小為 128 位元。大多數情況下,Destination
Address
設為最終的目的位址。但是,如果存在路由擴充標頭,Destination
Address
就可能設定為來源路由清單中的下一個路由器介面。
Next Header 欄位的值
欄位的典型數值。
| 值 (十進位) | 標頭 |
| 0 | Hop-by-Hop 選項標頭 |
| 6 | TCP |
| 17 | UDP |
| 41 | 壓縮的 IPv6 標頭 |
| 43 | Routing 標頭 |
| 44 | Fragment 標頭 |
| 46 | 來源保留通訊協定 |
| 50 | Encapsulating Security Payload |
| 51 | Authentication 標頭 |
| 58 | ICMPv6 |
| 59 | No next header |
| 60 | Destination Options 標頭 |
IPv4 和 IPv6 標頭的比較
| IPv4 標頭欄位 | IPv6 標頭欄位 |
| Version | 欄位相同,但版本號碼不同。 |
| Header Length | 在 IPv6 中已刪除。 IPv6 中沒有 Header Length 欄位,因為 IPv6 標頭永遠是固定值 40 位元組。 每一擴充標頭或是固定值,或者指定各自的大小。 |
| Type of Service | 在 IPv6 中,用 Traffic Class 欄位取代。 |
| Total Length | 在 IPv6 中,用 Payload Length 欄位來取代,僅表示 payload 的大小。 |
| Identification | 在 IPv6 中已刪除。在 IPv6 標頭中沒有資料片段資訊。它包含在資料片段擴充標頭中。 |
| Fragmentation Flags | 在 IPv6 中已刪除。在 IPv6 標頭中沒有資料片段資訊。它包含在資料片段擴充標頭中。 |
| Fragment Offset | 在 IPv6 中已刪除。在 IPv6 標頭中沒有資料片段資訊。它包含在資料片段擴充標頭中。 |
| Time to Live | 在 IPv6 中,用 Hop Limit 欄位取代。 |
| Protocol | 在 IPv6 中,用 Next Header 欄位取代。 |
| Header Checksum | 在 IPv6 中已刪除。在 IPv6 中,由連結層對整個 IPv6 封包進行位元級的錯誤偵測。 |
| Source Address | 欄位相同,所不同的是 IPv6 位址長度為 128 位元。 |
| Destination Address | 欄位相同,所不同的是 IPv6 位址長度為 128 位元。 |
| Options | 在 IPv6 中已刪除。IPv4 選項由 IPv6 擴充標頭取代。 |
IPv6 擴充標頭
標頭包括所有選項。因此,每個中間路由器必須檢查其是否存在,如存在則進行處理。它會引起
IPv4 封包轉寄效能下降。對於 IPv6,傳輸和轉寄選項均移到擴充標頭中。唯一需要在每個中間路由器都處理的擴充標頭是
Hop-by-Hop Option 擴充標頭。這可提高 IPv6
標頭處理速度,並改進轉寄程序的效能。
擴充標頭:
- Hop-by-Hop Option 標頭
- Destination Options 標頭
- Routing 標頭
- Fragment 標頭
- Authentication 標頭
- Encapsulating Security Payload 標頭
封包中,沒有擴充標頭。如果中間路由器或者目的主機需要進行特殊處理,傳送主機就會加入一個或多個擴充標頭。
為界。擴充標頭大小不等,它包含一個 Header
Extension Length
欄位,需要時必須使用填滿,以確保其大小為 8
位元組的倍數。
欄位以及形成一串指標的零個或多個擴充標頭。每個指標表示與一個標頭直接相鄰標頭的類型,直到最後找到更高層通訊協定為止。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
擴充標頭順序
Hop-by-Hop Options
標頭是唯一被路徑上每個節點都處理的擴充標頭,所以它必須排在第
1 位。其它擴充標頭也使用相似的規則。在 RFC
2460 中,建議將擴充標頭按以下順序放在 IPv6
標頭中:
- Hop-by-Hop Options 標頭
- Destination Options 標頭 (當存在 Routing 標頭
時,用於中間目的主機) - Routing 標頭
- Fragment 標頭
- Authentication 標頭
- Encapsulating Security Payload 標頭
- Destination Options 標頭 (用於最終目的)
Hop-by-Hop Options 標頭
標頭用於指定到目的的路徑上每個躍點處的參數。可將
IPv6 標頭 Next Header 欄位中的值設為 0 來識別。圖
21 顯示 Hop-by-Hop Options 標頭。

Extension Length 欄位以及 Options 欄位 (包含一個或幾個選項)
組成。Header Extension Length 欄位的值是 Hop-by-Hop
Options 擴充標頭中 8
位元組區塊的數量,不包括第 1 個 8
位元組。因此,對於 8 位元組 Hop-by-Hop Options
標頭,Header Extension Length 欄位的值為 0。填滿選項用於確保
8 位元組邊界。
標頭中的一個標頭,描述封包傳輸的具體特性,或者提供填滿。每個選項均使用
TCP/IP 通訊協定中常用的類型-長度-值 (TLV)
格式進行編碼。選項類型既識別該選項,也決定處理節點處置該選項的行為。選項長度指定了該選項的長度。選項值是與該選項有關的資料。
- Pad1 選項 (Option Type 為 0)
用於填滿單一位元組。 - PadN 選項 (Option Type 為 1) 用於填滿 2
個或更多位元組。 - Jumbo Payload 選項 (Option Type 為 194)
用於指定大於 65,535 位元組的 payload
的大小。使用 Jumbo Payload 選項,可使用 32
位元 Jumbo Payload Length 欄位指定最多 4,294,967,295
位元組的 payload 大小。Payload 大小大於 65,535
位元組的 IPv6 封包稱為 jumbogram。 - Router Alert 選項 (Option Type 為 5),它告知路由器封包的內容還需要進一步處理。Router
Alert 選項用於 Multicast Listener Discovery 和 Resource
ReServation Protocol (RSVP)。
Destination Options 標頭
標頭用於指定中間目的或最終目的主機的封包傳輸參數。可在上一個標頭的
Next Header 欄位中將值設為 60 來識別此標頭。圖 22
顯示 Destination Options 標頭。

Options 標頭相同。
- 如果存在 Routing
標頭,則指定每個中間目的主機的傳輸或處理選項。 - 也指定最終目的主機的傳輸或處理選項。
Routing 標頭
來源節點可以使用 Routing
擴充標頭指定來源路由,它是封包通往最終目的主機的路徑上通過的中間目的主機的清單。可在上一個標頭的
Next Header 欄位中將值設為 43 來識別 Routing 標頭。
Length 欄位 (定義方法與 Hop-by-Hop Options
擴充標頭相同)、Routing Type 欄位、Segments Left
欄位以及路由類型特有的資料組成。
IPv6 封包到達中間目的主機時,Routing
標頭會經過處理,下一中間目的位址 (根據
Segments Left 欄位的值) 變成 IPv6
標頭中的目的位址。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Fragment 標頭
分段以及重新組裝服務。可在上一個標頭的 Next
Header 欄位中將值設為 44 來識別此標頭。圖 24
顯示 Fragment 標頭。

Fragment Offset 欄位、More Fragments 旗標以及 32 位元
Identification 欄位。Fragment Offset 欄位、More Fragments
旗標以及 Identification 欄位與 IPv4
標頭中對應欄位的使用方法相同。由於將 Fragment
Offset 欄位指定用於 8 位元組段資料區塊,因此
Fragment 標頭不能用於 IPv6 jumbogram。
進行分段。如果上層通訊協定提交的 payload
大於連結或路徑 MTU,IPv6 就會在來源位址對
payload 進行分段,並使用 Fragment
欄位擴充標頭提供重新組裝資訊。
封包分段時,最初是將它分成不可分段部分和可分段部分:
- 對於來源 IPv6
封包的不可分段部分,分段節點和目的之間的每個中間節點都必須對它進行處理。此部分由
IPv6 標頭、Hop-by-Hop Options 標頭、中間目的的
Destination Options 標頭以及 Routing 標頭組成。 - 來源 IPv6
封包的可分段部分必須在最終目的節點進行處理。這一部分由
Authentication 標頭、Encapsulating Security Payload
標頭、最終目的的 Destination Options
標頭以及上層 PDU 組成。
片段封包。每一片段封包都由不可分段的部分、Fragment
標頭以及一部分可分段的部分組成。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Authentication 標頭
(確認傳輸程序中資料沒有被修改)
以及防重播保護 (確保擷取的封包不被重新傳閱並接受為有效的資料)。Authentication標頭
(在 RFC 2402 描述) 是 RFC 2401 中定義的 IP
安全體系結構的一部分。
來識別 Authentication 標頭。圖 26 顯示Authentication
標頭。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Length 欄位、Security Parameter Index (SPI) 欄位、Sequence
Number 欄位以及 Authentication Data 欄位組成,其中,SPI
欄位指定特定的 IP 安全性 (IPSec) 安全相關 (SA);Sequence
Number 欄位提供防重播保護;Authentication Data
欄位包含完整性檢查值 (ICV)。ICV
提供資料驗證和完整性。
擴充標頭並不透過加密資料來提供資料保密性服務。要提供該服務,可將
Authentication 標頭 和 Encapsulating Security Payload (ESP)
標頭一起使用。
標頭如何使用加密技術提供資料驗證和完整性的細節,不在本白皮書討論之列。有關詳細資訊,請參閱
RFC 2402。
Encapsulating Security Payload 標頭和標尾
標頭和標尾為壓縮的 payload
提供資料保密性、資料驗證和資料完整性服務。相反的,Authentication
標頭為整個 IPv6
封包提供資料驗證和完整性服務。可在上一個標頭的
Next Header 欄位中將值設為 50 來識別 ESP
標頭和標尾。圖 27 顯示 ESP 標頭和標尾。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
IPSec SA) 以及 Sequence Number 欄位 (提供防重播保護)。ESP
標尾包含 Padding、Padding Length、Next Header 以及
Authentication Data 各欄位。Authentication Data
欄位包含完整性檢查值 (ICV)。
擴充標頭和標尾如何使用加密技術提供資料保密性、資料驗證和完整性的細節,不在本白皮書討論之列。有關詳細資訊,請參閱
RFC 2406。
IPv6 MTU
位元組。那些不支援這一最小尺寸的連結層,必須提供連結層分段和對
IPv6 透明的重新組裝架構。對於支援可組態 MTU
大小的連結層,建議將它們組態為 MTU
大小至少為 1500 位元組 (Ethernet II 壓縮 IPv6 MTU)。可組態
MTU 的一個例子是點對點通訊協定 (PPP)
連結的最大接收單元 (MRU)。
訊息,執行 Path MTU Discovery 程序,如 "Path MTU
Discovery" 中所述。Path MTU Discovery
允許傳輸大於 1280 位元組的 IPv6 封包。
將大於路徑 MTU 的上層通訊協定 payload
分段。但是,使用 IPv6 分段的效果極差。IPv6
節點必須能夠重新組裝至少為 1500
位元組的分段封包。
上層檢查值
建置將一個偽標頭加入到其檢查值評估中,該標頭包含
IPv4 Source Address 和 Destination Address 欄位。對於在
IPv6 上傳送的 TCP 和 UDP
通訊,必須修改檢查值評估,以將 IPv6
位址包括進去。圖 28 顯示 TCP 和 UDP
檢查值必須使用的新的偽標頭。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Packet Length 欄位 (指定上層 PDU 的長度) 以及一個
Next Header 欄位 (指定進行檢查值評估的上層通訊協定)。
ICMPv6
不提供報告錯誤的裝置,而是使用 Internet
控制訊息通訊協定 (ICMP) 的更新版本,稱為 ICMP
第 6 版 (ICMPv6)。ICMPv6 具有 IPv4 ICMP
的一般功能,即報告傳輸或轉寄錯誤,以及提供用於疑難解答的簡單回應服務。
- Multicast Listener Discovery (MLD)
MLD 是一組 ICMP 訊息 (3 個),它們取代 IPv4
網際群組管理通訊協定 (IGMP) 的第 2
版,以管理子網路多點傳播成員身份。在
"Multicast Listener Discovery" 中對 MLD
有更詳細的闡述。 - Neighbor Discovery (ND)
Neighbor Discovery 是一組 ICMPv6 訊息 (5 個),它們管理連結上節點間通訊。Neighbor
Discovery 取代位址解析通訊協定 (ARP)、ICMPv4
Router Discovery 以及 ICMPv4 Redirect 訊息。在
"Neighbor Discovery" 中對 Neighbor Discovery
有更詳細的闡述。
中有詳細闡述。
ICMPv6 訊息類型
- 錯誤訊息
錯誤訊息用於報告目的節點或中間路由器轉寄或傳輸
IPv6 封包程序中出現的錯誤。ICMPv6 錯誤訊息的
8 位元類型欄位的值為 0 到 127 (高序位位元設為
0)。ICMPv6 錯誤訊息包括 Destination Unreachable、Packet
Too Big、Time Exceed 與 Parameter Problem。 - 資訊訊息
資訊訊息用於提供診斷功能以及其它主機功能
(如 MLD 及 Neighbor Discovery)。ICMPv6 資訊訊息的
Type 欄位的值為 128 到 255 (高序位位元設為 1)。ICMPv6
資訊訊息請參閱 RFC 2463 所述,這些訊息包括
Echo Request 和 Echo Reply。
ICMPv6 標頭

位元。在 ICMPv6 錯誤訊息中,高序位位元設為 0;在
ICMPv6 資訊訊息中,高序位位元設為 1。
區分給定訊息類型的多個訊息。該欄位大小為 8
位元。對於給定類型,如果只有一個訊息,則
Code 欄位設為 0。
訊息的檢查值。該欄位大小為 16
位元。計算檢查值時,將 IPv6 偽標頭加入到 ICMPv6
訊息中。
ICMPv6 錯誤訊息
錯誤訊息用於報告路由器或目的主機的轉寄錯誤或傳輸錯誤。
Destination Unreachable
ICMPv6 Destination Unreachable 訊息。圖 30 顯示 ICMPv6
Destination Unreachable 訊息。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
1,Code 欄位設為 0 到 4。在 Checksum 欄位之後,是
32 位元的 Unused
欄位以及丟棄的封包部分,這使整個包含 ICMPv6
訊息的 IPv6 封包不多於 1280 位元組 (最小的 IPv6
MTU)。如果存在 IPv6
擴充標頭,此訊息中包含的丟棄封包位元組數就會有所變化。對於沒有擴充標頭的
ICMPv6 訊息,則包含 1232 位元組的丟棄封包 (比
1280 少 48 位元組,即 IPv6 標頭用去 40 位元組,ICMPv6
Destination Unreachable 標頭用去 8 位元組)。
欄位值。
| 代碼值 | 說明 |
| 0 | No route matching the destination was found in the routing table. |
| 1 | The communication with the destination is prohibited by administrative policy. 當封包被防火牆丟棄時,通常會傳送此訊息。 |
| 2 | The address is beyond the scope of the source address. |
| 3 | The destination address is unreachable. 由於不能解析目的的連結層位址,所以傳送此訊息。 |
| 4 | The destination port was unreachable. 當包含 UDP 訊息的 IPv6 封包到達目的,但在目的 UDP 連接埠沒有應用程式聆聽時,就會傳送此訊息。 |
Packet Too Big
封包尺寸,該封包無法轉寄時,就會傳送 ICMPv6
Packet Too Big 訊息。圖 31 顯示 ICMPv6 Packet Too Big
訊息。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
欄位設為 0。在 Checksum 欄位之後是 32 位元 MTU
欄位,用於存放在其上轉寄該封包的連結的連結
MTU。然後是丟棄封包部分,它使包含 ICMPv6
訊息的整個 IPv6 封包等於最大長度,即 1280
位元組。Packet Too Big 訊息用於 "Path MTU
Discovery" 中所述的 IPv6 Path MTU Discovery 程序。
Time Exceeded
欄位為零時 (在收到時或轉寄程序中遞減其值後),路由器就會傳送
ICMPv6 Time Exceeded 訊息。圖 32 顯示 ICMPv6 Time Exceeded
訊息。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
欄位設為 0 (當 IPv6 標頭中的 Hop Limit 欄位為 0) 或
1 (目的主機資料片段重新組裝逾時)。在 Checksum
欄位之後是 32 位元 Unused
欄位以及丟棄的封包部分,修正後包含 ICMPv6
的整個 IPv6 封包就會不多於 1280
位元組。接收到代碼 =0 的 Time Exceeded
訊息,就表示傳出封包的 Hop Limit
不夠大,無法連線目的;或者存在路由迴路。
Parameter Problem
訊息由路由器或者目的傳送。當 IPv6
標頭或擴充標頭發生錯誤時,就會傳送此訊息,這可避免
IPv6 做進一步處理。圖 33 顯示 ICMPv6 Parameter Problem
訊息。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
欄位值為 0 到 2。在 Checksum 欄位之後是 32 位元
Pointer 欄位,它表示出錯的 IPv6
封包中的位元組位移。在 Pointer
欄位之後是丟棄封包部分,修正後 ICMPv6
訊息不多於 1280 位元組。Pointer
欄位值設為正確的位移,即便丟棄封包部分不包括此錯誤的位置也是如此。
| 代碼值 | 說明 |
| 0 | An error in a field within the IPv6 header or an extension header was encountered. |
| 1 | An unrecognized Next Header field value was encountered. 它相當於 IPv4 Destination Unreachable – Protocol Unreachable 訊息。 |
| 2 | An unrecognized IPv6 option was encountered. |
ICMP v6 資訊訊息
提供診斷功能,便於疑難解答。
Echo Request
Echo Reply 訊息。Echo Request/Echo Reply
訊息功能提供一種簡單的診斷方法,有助於各種到達性和路由問題的疑難解答。圖
34 顯示 ICMPv6 Echo Request 訊息。

欄位設為 0。在 Checksum 欄位之後是 16 位元
Identifier 和 Sequence Number 欄位。Identifier 和 Sequence
Number 欄位由傳送主機設定,用於將傳入的 Echo
Reply 訊息與對應的 Echo Request 相配合。Data
欄位為零或多個位元組的選項資料,也由傳送主機設定。
Echo Reply
Request 訊息而傳送的。圖 35 顯示 ICMPv6 Echo Reply
訊息。

欄位設為 0。在 Checksum 欄位之後是 16 位元
Identifier 和 Sequence Number 欄位。Echo Reply
訊息中設定的 Identifier、Sequence Number 以及 Data
欄位的值與最初觸發該 Echo Reply 的 Echo Request
訊息中的對應欄位設定相同。
ICMPv4 訊息和 ICMPv6 訊息的比較
| ICMPv4 訊息 | 對應的 ICMPv6 訊息 |
| Destination Unreachable - Network unreachable (Type 3、Code 1) |
Destination Unreachable – No route to destination (Type 1、Code 0) |
| Destination Unreachable – Host Unreachable (Type 3、Code 1) |
Destination Unreachable - Address unreachable (type 1、Code 3) |
| Destination Unreachable - Protocol unreachable (Type 3、Code 2) |
Paremeter Problem - Unrecognized Next Header 欄位 (Type 4、Code 1) |
| Destination Unreachable – Port Unreachable (Type 3、Code 3) |
Destination Unreachable -Port Unreachable (Type 1、Code 4) |
| Destination Unreachable - Fragmentation needed and DF set (Type 3、Code 4) |
Packet too Big (Type 2、Code 0) |
| Destination Unreachable - Communication with destination host administratively prohibited (Type 3、Code 10) |
Destination Unreachable -Communication with destination administratively prohibited (Type 1、Code 1) |
| Time Exceeded – TTL expired (Type 11、Code 0) |
Time Exceeded – Hop Limit exceeded (Type 3、Code 0) |
| Time Exceeded – Fragmentation timer expired (Type 11、Code 1) |
Time Exceeded -Fragmentation timer expired (Type 3、Code 1) |
| Parameter Problem (Type 12、Code 0) |
Parameter Problem (Type 4、Code 0 或 2) |
| Source Quench (type 4、Code 0) | 在 IPv6 中未建置此訊息。 |
| Redirect (Type 5、Code 0) | Neighbor Discovery Redirect message (Type 137、Code 0)。有關詳細資訊,請參閱 "Neighbor Discovery"。 |
Path MTU Discovery
是來源和目的之間路徑上所有連結的最小連結 MTU。對於路徑
MTU 的尺寸為最大值的 IPv6
封包不需要由主機分段,就可由路徑上所有路由器成功地轉寄。要發現路徑
MTU,傳送節點就必須使用接收 ICMP Packet Too Big
訊息的方法。
- 傳送節點假定路徑 MTU
是轉寄通訊的介面的連結 MTU。 - 傳送節點以此路徑 MTU 的大小傳送 IP
資料電報。 - 如果路徑上的路由器無法在連結 MTU
小於某封包尺寸的連結上轉寄該封包,它就會丟棄
IPv6 封包,並將 ICMP Packet Too Big
訊息發回到傳送節點。ICMP Packet Too Big
訊息包含轉寄失敗所在連結的連結 MTU。 - 傳送節點將發向目的的封包的路徑 MTU
設定為 ICMPv6 Packet Too Big 訊息中 MTU 欄位值。
2 步到第 4 步數次,就會發現此路徑 MTU。當未再收到其它
ICMPv6 Packet Too Big
訊息,或者從目的收到確認時,即可確定路徑 MTU。
MTU Discovery的節點必須將最小連結 MTU (1280 位元組)
作為路徑 MTU。
路徑 MTU 的變化
MTU 時,在上述程序中,從第 3
步開始執行,並重複第 2 步到第 4
步,直到發現新的路徑 MTU 為止。
訊息,可立即發現路徑 MTU 減少。路徑 MTU
增加則必須由傳送節點偵測。正如 RFC 1981
中所述,當收到 ICMPv6 Packet Too Big
訊息時,過至少 5 分鐘 (建議過 10 分鐘),傳送節點可嘗試傳送一個更大的
IPv6 封包。
Multicast Listener Discovery
Internet 群組管理通訊協定第 2 版 (IGMPv2)。MLD
是路由器和節點之間交換的一組訊息,使路由器可以發現一組多點傳播位址,對於這些位址,每個結合介面均有聆聽節點。與
IGMPv2 相似,MLD 只發現多點傳播位址清單 (針對這些位址,至少有一個聆聽節點),而不是每個多點傳播位址的各個多點傳播聆聽節點清單。在
RFC 2710 中對 Multicast Listener Discovery (MLD)
有詳細闡述。
訊息,而不是定義自己的訊息結構。所有 MLD
訊息為 ICMPv6 訊息類型 130、131 和 132。這三種類型的
MLD 訊息為:
- Multicast Listener Query
路由器使用 Multicast Listener Query,來查詢連結上的多點傳播聆聽節點。Multicast
Listener Query 的訊息有兩種類型:General Query 和
Multicast-Address-Specific Query。General Query
用於查詢所有多點傳播位址的多點傳播聆聽節點。Multicast-Address-Specific
Query
用於查詢特定多點傳播位址的多點傳播聆聽節點。這兩種訊息類型可透過
IPv6 標頭中的多點傳播目的位址以及 Multicast
Listener Query 訊息中的多點傳播位址來區分。 - Multicast Listener Report
多點傳播聆聽節點使用 Multicast Listener Report,表示希望收到特定多點傳播位址的多點傳播通訊,或者回應
Multicast Listener Query。 - Multicast Listener Done
多點傳播聆聽節點使用 Multicast Listener Done
來報告它不再想接收特定多點傳播位址的多點傳播通訊。
擴充標頭以及 MLD 訊息組成。Hop-by-Hop Options
擴充標頭包含 IPv6 Router Alert 選項 (如 RFC 2711
中所述)。對於傳送到某些多點傳播位址 (路由器不在這些位址上聆聽)
的 MLD
訊息,此選項可確保該路由器會處理這些訊息。圖
36 顯示 MLD 訊息封包的格式。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Multicast Listener Query
Membership Query
查詢訊息。路由器使用它來查詢結合連結上的聆聽主機。
標頭中,來源位址是傳送查詢的介面的連結-本機位址。Hop
Limit 欄位設為 1。對於 General Query,目的位址是連結-本機領域所有節點多點傳播位址
(FF02::1)。對於 Multicast-Address-Specific Query,目的位址是要查詢的特定多點傳播位址。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
欄位設為 130,Code 欄位設為 0。在 Checksum
欄位之後是 16 位元 Maximum Response Delay 欄位和
Reserved 欄位。Maximum Response Delay
是多點傳播群組成員必須使用 MLD Multicast Listener
Report 訊息報告其成員身份的時間上限 (以毫秒計)。在
General Query中,Multicast Address 欄位設為未指定位址
(::)。在 Multicast-Address-Specific Query中,Multicast
Address 欄位設為要查詢的特定多點傳播位址。
Multicast Listener Report
Membership Report
訊息。聆聽節點使用它來報告它希望收到特定多點傳播位址的多點傳播通訊,或者回應
MLD General 或 Multicast-Address-Specific Query 訊息。
標頭中,來源位址是傳送報告的介面的連結-本機位址。Hop
Limit 欄位設為 1,目的位址是要報告的特定多點傳播位址。
如果您的瀏覽器不支援內嵌框架,請按一下此處在單獨的頁中檢視。
欄位設為 131,Code 欄位設為 0。在 Multicast Listener
Report 訊息中不使用 Maximum Response Delay
欄位,其值設為 0。Multicast Address
欄位設為要報告的特定多點傳播位址。
Multicast Listener Done
Group
訊息。聆聽節點使用它來通知本機路由器:該主機不再是特定多點傳播位址的聆聽節點。
標頭中,來源位址是傳送報告的介面的連結-本機位址。Hop
Limit 欄位設為 1,目的位址是連結-本機領域所有路由器多點傳播位址
(FF02::2)。
如果您的瀏覽器不支援內嵌框架,請按一下此處在單獨的頁中檢視。
132,Code 欄位設為 0。在 Multicast Listener Done
訊息中不使用 Maximum Response Delay 欄位,其值設為
0。Multicast Address
欄位設為特定多點傳播位址,傳送節點通知本機路由器它不再是該位址的聆聽節點。
Neighbor Discovery
是確定相鄰節點之間關係的一組訊息和程序。ND
取代了 IPv4 中使用的 ARP、ICMP Router Discovery 以及
ICMP Redirect,並提供其它功能。
- 主機用它來發現相鄰路由器。
- 主機用它來發現位址、位址字首以及其它組態參數。
- 節點用它來解析 IPv6
封包轉寄到的相鄰節點的連結層位址,並確定相鄰節點的連結層位址從何時起發生改變。 - 節點用它來確定是否仍然可以連線到相鄰節點。
- 路由器用它來通告自己的存在、主機組態參數以及連結字首。
- 路由器用它來通知主機:有更好的下一躍點位址,以供轉寄針對特定目的的封包。
| 程序 | 說明 |
| Router Discovery | 它是主機發現相連連結上本機路由器的程序。相當於 ICMPv4 Router Discovery。有關詳細資訊,請參閱 "Router Discovery"。 |
| Prefix discovery | 主機使用此程序發現本機連結目的的網路字首。它與 ICMPv4 Address Mask Request/Reply 相似。有關詳細資訊,請參閱 "Router Discovery"。 |
| Parameter Discovery | 主機透過此程序發現其它執行參數,包括連結 MTU 以及傳出封包的預設的躍點限制。有關詳細資訊,請參閱 "Router Discovery"。 |
| 位址自動組態 | 此程序用於在有或沒有受管理的位址組態伺服器,如動態主機組態通訊協定第 6 版 (DHCPv6) 時,設定介面 IP 位址。有關詳細資訊,請參閱<位址自動組態>。 |
| 位址解析 | 節點使用此程序將相鄰節點的 IPv6 位址解析為其連結層位址。它相當於 IPv4 中的 ARP。有關詳細資訊,請參閱<位址解析>。 |
| Next-hop determination | 節點使用該程序確定封包根據目的位址轉寄到的相鄰節點的 IPv6 位址。轉寄或下一躍點位址是目的位址或連結上預設路由器位址。有關詳細資訊,請參閱<傳送主機演算法>。 |
| Neighbor unreachability detection |
節點使用此程序確定相鄰節點的 IPv6 層不再接收封包。有關詳細資訊,請參閱 "Neighbor unreachability detection"。 |
| 重複位址偵測 | 節點使用此程序確定要使用的位址還沒有被相鄰節點使用。相當於 IPv4 中使用 gratuitous ARP 訊框。有關詳細資訊,請參閱<重複位址偵測>。 |
| 重新導向功能 | 此程序通知主機:有一個更好的第一躍點 IPv6 位址可以到達目的。它相當於 IPv4 ICMP Redirect 訊息。有關詳細資訊,請參閱<重新導向功能>。 |
Neighbor Discovery 訊息格式
訊息使用 ICMPv6 訊息結構以及 ICMPv6 類型 133 到 137。ND
訊息由 ND 訊息標頭 (包括 ICMPv6 標頭和 ND
訊息特有的資料) 以及零或多個 ND 選項,如圖 40
所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
- Router Solicitation
- Router Advertisement
- Neighbor Solicitation
- Neighbor Advertisement
- Redirect
位址、連結網路字首、連結上的 MTU
資訊以及重新導向資料。
訊息來源於本機連結上的一個節點,則所有 ND
訊息都必須以躍點限制為 255 來傳送。收到 ND
訊息時,就會檢查 IPv6 標頭中的 Hop Limit
欄位。如果它未設為 255,該訊息就會被丟棄,並不提供任何提示。檢驗
ND 訊息躍點限制是否為 255,可確保免遭非連結節點發起的
ND 式的網路攻擊。將躍點限制設定為 255,路由器就不可能轉寄非連結節點的
ND 訊息。
Neighbor Discovery 選項

RFC 2461 中定義的 ND 選項類型。
| Type | Option Name |
| 1 | Source Link-Layer Address |
| 2 | Destination Link-Layer Address |
| 3 | Prefix Information |
| 4 | Redirected Header |
| 5 | MTU |
位元組區塊中整個選項的長度。所有 ND
選項必須以 8 位元組為界。長度可變的 Value
欄位包含該選項的資料。
Source Link-Layer Address/Target Link-Layer Address 選項
訊息傳送者的連結層位址。Source Link-Layer Address
選項包含在 Neighbor Solicitation、Router Solicitation
以及 Router Advertisement 訊息中。當 ND
訊息的來源位址為未指定位址 (::) 時,則不包含
Source Link-Layer Address 選項。
封包應發往的相鄰節點的連結層位址。Target
Link-Layer Address 選項包含在 Neighbor Advertisement 以及
Redirect 訊息中。
Link-Layer Address 選項相同,如圖 42 所示。

Target Link-Layer Address 選項,Type 欄位設為 2。 Length
欄位設為整個選項中 8 位元組區塊的數量。
Link-Layer Address
欄位是一個長度可變的欄位,它包含來源或標的的連結層位址。為
IPv6 定義的每個連結層都必須指定在 Source and
Target Link-Layer Address
選項中設定連結層位址格式的方法。
封包的方法。它還包括 Source and Target Link-Layer
Address ND 選項的格式。對於 Ethernet,連結層位址長度為
48 位元 (6 位元組)。圖 43 顯示 Ethernet 的 Source and
Target Link-Layer Address 選項。

Address 選項的格式
Prefix Information 選項
訊息中傳送,指出位址自動組態有關的位址字首和資訊。在
Router Advertisement 訊息中,有多個 Prefix Information
選項,表示多個位址字首。圖 44 顯示 Prefix
Information 選項的格式。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
位元組)。
欄位中的前導零位元數。該欄位大小為 8 位元。Prefix
Length 欄位值為 0 到 128。
Advertisement
訊息的連結上可使用包含的字首所指定的位址。當設為
0
時,並不假定在連結上可以使用與字首相符合的位址。該欄位大小為
1 位元。
時,表示包含的字首用於建立一個自治的 (或不受管理的)
位址組態。設為 0
時,包含的字首不用於建立一個不受管理的位址組態。該欄位大小為
1 位元。
位元欄位,其值設為 0。
表示位址根據包含的字首並使用不受管理的位址組態而保持有效的時間
(秒數)。該欄位大小為 32 位元。Valid Lifetime
欄位也表示所包含字首對連結確定有效的時間 (秒數)。要使有效生存時間無限長,請將
Valid Lifetime 時間欄位設為 0xFFFFFFFF。
表示位址根據包含的字首並使用不受管理的位址組態而處於偏好狀態的時間
(秒數)。該欄位大小為 32
位元。仍然有效的不受管理的自動組態位址不是處於偏好的狀態,就是處於取代的狀態。如果處於偏好的狀態,位址可以用於無限制的通訊。處於取代狀態,則不建議在新通訊使用此位址。但是,現有使用取代位址的通訊可以繼續。當偏好的生存時間到期時,位址就會從偏好的狀態轉入取代狀態。要使偏好的生存時間無限長,則必須將
Preferred Lifetime 欄位設為 0xFFFFFFFF。
位元欄位,其值設為 0。
IPv6 位址的字首。該欄位大小為 128 位元。使用
Prefix Length 欄位和 Prefix
欄位,可以明確地描述該字首,當它與節點的介面識別碼一起使用時,即可產生一個
IPv6 位址。在 Prefix 欄位中,超出 Prefix Length
欄位值的位元設為 0。不應傳送連結-本機字首,接收主機會忽略該字首。
Redirected Header 選項
選項,可以指定使路由器傳送 Redirect 訊息的 IPv6
封包。根據最初傳送的 IPv6
封包大小,它可以包含所有或部分重新導向的
IPv6 封包。圖 45 顯示 Redirected Header 選項的格式。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
位元組區塊的數量。
位元欄位,其值設為 0。
訊息的 IPv6 封包或者部分 IPv6
封包。其中包含的來源封包大小是符合的封包部分,同時整個
Redirect 訊息長度不多於 1280 位元組。
MTU 選項
訊息中傳送,用來表示連結的 IPv6 MTU。通常,僅當連結的
IPv6 MTU
不甚清楚或者由於平移的橋接組態而需要設定時,才使用此選項。MTU
選項覆寫介面硬體所報告的 IPv6 MTU。
層交換環境中,對於同一網段上不同的連結層 MTU,可能使用不同的連結層技術。在這種情況下,同一網路上不同節點之間
IPv6 MTU 的差異無法透過 Path MTU Discovery 來發現。MTU
選項用來表示該網段上所有連結層技術都支援的最高
IPv6 MTU。

使用光纖分散式資料介面 (FDDI)
連接埠,連線到兩個不同的 Ethernet (第 2 層)
交換機上。這兩個交換機由 Ethernet
主幹網路連線。當主機 A 和主機 B 協商 TCP
連線時,每個主機均報告 TCP 最大網段尺寸為 4312
位元組 (4352 位元組的 FDDI 連結層 MTU 減去 40
位元組的 IPv6 標頭)。當連線通路上的 TCP
資料開始流動時,交換機就會丟棄主機 A 和 B
之間傳送的大於 1500 位元組的 IPv6
封包,而不顯示任何提示。
就會在 Router Advertisement
訊息中向網段上所有主機報告 IPv6 MTU 為 1500。當主機
A 和 B 均將其 IPv6 MTU 從 4312 修正到 1500,中間交換機就不會丟棄兩者之間的最大尺寸
TCP 連線資料。

位元欄位,其值設為 0。
的連結上主機應使用的 IPv6 MTU。該欄位大小為 32
位元。如果 MTU 欄位的值大於連結 MTU,該值就會被忽略。
Neighbor Discovery 訊息
- Router Solicitation
- Router Advertisement
- Neighbor Solicitation
- Neighbor Advertisement
- Redirect
Router Solicitation
主機傳送,用來發現連結上的 IPv6
路由器。主機傳送一個多點傳播 Router Solicitation,以提示
IPv6 路由器立即答覆,而不是等待定期的 Router
Advertisement 訊息。
Solicitation 訊息的 Ethernet 標頭中:
- Source Address 欄位設為傳送網路配接卡的 MAC
位址。 - Destination Address 欄位設為 33-33-00-00-00-02。
- Source Address 欄位設為分配給傳送介面的 IPv6
位址,或者設為 IPv6 未註明位址 (::)。 - Destination Address 欄位設為所有路由器連結-本機多點傳播位址
(FF02::2)。 - Hop Limit 欄位設為 255。

位元欄位,其值設為 0。
Address 選項包含傳送者的連結層位址。對於
Ethernet 節點而言,Source Link-Layer Address
選項包含傳送主機的 Ethernet MAC
位址。接收路由器使用 Source Link-Layer Address
選項中的位址,來確定對應的單點傳播 Router
Advertisement 所發往的主機的單點傳播 MAC 位址。
Router Advertisement
訊息時傳送 Router Advertisement
訊息。主機需要使用它所包含的這些資訊來確定連結字首、連結
MTU、是否使用位址自動組態、以及透過位址自動組態建立的位址處於有效和偏好的狀態的時間。
Advertisement 訊息的 Ethernet 標頭中:
- Source Address 欄位設為傳送網路配接卡的 MAC
位址。 - Destination Address 欄位設為 33-33-00-00-00-01 (定期
Router Advertisement),或者傳送 Router Solicitation
的主機的單點傳播 MAC 位址。
- Source Address 欄位設為指派給傳送介面的連結-本機位址。
- Destination Address 欄位設為所有節點連結-本機多點傳播位址
(FF02::1),或者是傳送 Router Solicitation
訊息的主機的單點傳播 IPv6 位址。 - Hop Limit 欄位設為 255。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
訊息的主機,此欄位表示該主機傳送的封包的
IPv6 標頭中 Hop Count 欄位的預設值。該欄位大小為
8 位元。Cur Hop Limit 為 0 表示此路由器沒有指定
Hop Count 欄位的預設值。
Router Advertisemen]
訊息的主機必須使用受管理的位址組態通訊協定
(如 DHCPv6),獲得從不受管理的位址自動組態衍生的位址以外的位址。該欄位大小為
1 位元。
時,表示收到此 Router Advertisement
訊息的主機必須使用受管理的位址組態通訊協定
(如 DHCPv6),以獲得非位址組態的資訊。該欄位大小為
1 位元。
位元欄位,其值設為 0。
表示為預設值。該欄位大小為 16 位元。Router
Lifetime 最大值為 65,535 秒 (約 18.2 小時)。Router
Lifetime 為 0
表示:不能將此路由器作為預設路由器。但是,Router
Advertisement 中包含的其它資訊都是有效的。
表示在收到可連線確認後多長一段時間 (毫秒)
內某節點認為相鄰節點是可連線的。該欄位大小為
32 位元。Reachable Time 的值為 0
表示路由器沒有指定可連線時間。有關詳細資訊,請參閱
"Neighbor Reachability Detection"。
訊息兩次重傳之間的時間間隔 (以毫秒計)。該欄位大小為
32 位元。在 Neighbor Unreachability Detection
程序中,使用 Retrans Timer。Retrans Timer 值為 0
表示路由器沒有指定 Retrans Timer。
選項包含傳送 Neighbor Solicitation
訊息的介面的連結層位址。當路由器在多個連結層位址之間平衡
payload 時,此選項可以省略。
MTU 的連結上或可交換的環境中 (同一網段上使用多個連結層技術),才應傳送此選項。
選項包含用於位址自動組態的連結字首。本機-連結字首從不作為
Prefix Information 選項傳送。
Neighbor Solicitation
訊息,以發現連結上 IPv6
節點的連結層位址。它包括傳送者的連結層位址。通常,用於位址解析時,Neighbor
Solicitation
為多點傳播;當檢驗相鄰節點的可連線時,則為單點傳播。
Solicitation 訊息的 Ethernet 標頭中:
- Source Address 欄位設為傳送網路配接卡的 MAC
位址。 - 對於多點傳播 Neighbor Solicitation,Destination
Address 欄位設為與目標的請求節點多點傳播 IP
位址對應的 MAC 位址。對於單點傳播 Neighbor
Solicitation,Destination Address
欄位設為相鄰節點的單點傳播 MAC 位址。
- Source Address 欄位設為指派給傳送介面的 IPv6
位址,或者在重複位址偵測程序中,設為 IPv6
未指定位址 (::)。 - 對於多點傳播 Neighbor Solicitation,Destination
Address
欄位設為目標的請求節點多點傳播位址。對於單點傳播
Neighbor Solicitation,Destination Address
欄位設為目標的單點傳播 IP 位址。 - Hop Limit 欄位設為 255。

位元欄位,其值設為 0。
位址。該欄位大小為 128 位元。
選項包含傳送者的連結層位址。對於 Ethernet
節點而言,Source Link-Layer Address
選項包含傳送節點的 Ethernet MAC
位址。接收節點使用 Source Link-Layer Address
選項中的位址,來確定對應的 Neighbor Advertisement
所發往的節點的單點傳播 MAC
位址。在重複位址偵測程序中,當來源 IPv6
位址是未指定位址 (::)
時,則不包含連結層位址選項。
Neighbor Advertisement
訊息,以表示收到了 Neighbor Solicitation
訊息。另外,IPv6 節點還傳送未請求的 Neighbor
Advertisement,以通知相鄰節點在連結層位址中所發生的變更。節點使用
Neighbor Advertisement 包含的資訊來確定 Neighbor
Advertisement
訊息的類型、傳送者的連結層位址以及傳送者在網路中的角色。
Advertisement 訊息的 Ethernet 標頭中:
- Source Address 欄位設為傳送網路配接卡的 MAC
位址。 - 對於請求的 Neighbor Advertisement 而言,Destination
Address 欄位設為最初 Neighbor Solicitation
傳送者的單點傳播 MAC 位址。對於未請求的
Neighbor Advertisement,Destination Address 欄位設為
33-33-00-00-00-01,它是與所有節點連結-本機多點傳播位址對應的
Ethernet MAC 位址。
- Source Address 欄位設為指派給傳送介面的連結-本機位址。
- 對於請求的 Neighbor Advertisement,Destination
Address 欄位設為最初 Neighbor Solicitation
傳送者的單點傳播 IP 位址。對於未請求的
Neighbor Advertisement 而言,Destination Address
欄位設為所有節點連結-本機多點傳播位址
(FF02::1)。 - Hop Limit 欄位設為 255。

訊息的傳送者的角色。該欄位大小為 1
位元。當傳送者為路由器時,Router flag 設為 1;當傳送者不是路由器時,Router
flag 設為 0。Neighbor Unreachability Detection 使用 Router
flag,以確定路由器何時變成主機。
Advertisement 訊息是為了回應 Neighbor Solicitation
訊息。該欄位大小為 1 位元。在 Neighbor
Unreachability Detection 程序中,使用 Solicited flag
做為可連線確認。對於多點傳播 Neighbor
Advertisement 以及未請求的單點傳播 Neighbor
Advertisement,Solicited flag 都設為 0。
Link-Layer Address
選項中的連結層位址應覆蓋現有相鄰節點快取記憶體項目中的連結層位址。該欄位大小為
1 位元。如果 Override flag 設為 0
且連結層位址未知,帶有此旗標的連結層位址只更新相鄰節點快取記憶體項目。對於請求的多點傳閱位址和代理程式通告,Override
flag 設為 0。對於其它請求的和未請求的通告,Override
flag 設為 1。有關相鄰節點快取記憶體的詳細資訊,請參閱<Neighbor
Discovery 程序>。
位元欄位,其值設為 0
表示被通告的位址。該欄位大小為 128
位元。對於請求的 Neighbor Advertisement
訊而言息,目標位址包含在對應的 Neighbor
Solicitation 中的 Target Address
欄位內。對於未請求的 Neighbor Advertisement
訊息而言,目標位址為其連結層位址已變更的位址。
選項包含該目標的連結層位址,此目標是 Neighbor
Advertisement 的傳送者。對於 Ethernet 節點而言,Target
Link-Layer Address 選項包含傳送節點的 Ethernet MAC
位址。傳送節點使用 Target Link-Layer Address
選項中的位址,確定通告節點的單點傳播 MAC
位址。
Redirect
訊息,以通知來源主機有一個到達指定目的更好的第一躍點位址。Redirect
訊息只能由路由器傳送,用於單點傳播傳輸;對於來源主機只能是單點傳播的;並且只能由主機處理。
訊息的 Ethernet 標頭中:
- Source Address 欄位設為傳送網路配接卡的 MAC
位址。 - Destination Address
欄位設為來源傳送者的單點傳播 MAC 位址。
- Source Address 欄位設為指派給傳送介面的連結-本機位址。
- Destination Address
欄位設為來源主機的單點傳播 IP 位址。 - Hop Limit 欄位設為 255。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
位元欄位,其值設為 0。
欄位中的節點的封包,表示更好的下一躍點位址。該欄位大小為
128 位元。對於非連結傳輸,Target Address
欄位設為本機路由器的本機-連結位址。對於連結傳輸,Target
Address 欄位設為 Redirect 訊息中的 Destination Address
欄位值。
訊息的封包的目的位址。該欄位大小為 128
位元。來源主機收到後,就使用 Target Address 和
Destination Address
欄位更新該目的的轉寄資訊。該主機隨後發往最終目的的封包就會轉寄到
Target Address 欄位中的位址。
選項包含目標 (隨後封包應發往的節點)
的連結層位址。僅當路由器知道 Target Link-Layer
Address 選項時,才能加入此選項。
選項包含導致傳送 Redirect
訊息的來源封包部分。其中包含的來源封包大小是適合的重新導向封包部分,同時整個
Redirect 訊息長度不多於 1280 位元組。
Neighbor Discovery 程序
- 位址解析 (包括重複位址偵測)
- Router Discovery (包括字首和參數發現)
- Neighbor Unreachability Detection
- 重新導向功能
定義以下主機資料結構,作為如何儲存 ND
程序資訊的範例:
- 相鄰節點快取記憶體
儲存相鄰節點的連結 IP
位址、其對應的連結層位址以及指出相鄰節點可連線的狀態。相鄰節點快取記憶體相當於
IPv4 中的 ARP 快取記憶體。 - 目的快取記憶體
儲存轉寄資訊或最近傳輸發往目的的下一躍點
IP 位址。目的快取記憶體中的項目包括目的 IP
位址 (本機或遠端)、之前解析的下一躍點 IP
位址以及目的的 Path MTU。 - 字首清單
列出連結字首。字首清單中的每個項目均定義可直接存取的目的
(相鄰節點) 的 IP位址範圍。此清單中的內容來自於各路由器在
Router Advertisement 訊息中所通告的字首。 - 預設路由器清單
列出與傳送 Router Advertisement
訊息且可作為預設路由器的連結路由器相對應的
IP 位址。
主機概念性模型的範例。只要主機的外部行為與
RFC 2461 一致,就不需要 IPv6
建置以建立這些精確的資料結構。例如,Microsoft
Research IPv6 Implementation 和 IPv6 Technology Preview for
Windows 2000
使用路由表,而不是字首清單和預設路由器清單。
位址解析
和 Neighbor Discovery
訊息之間的交換,用來解析給定目的的連結下一躍點位址的連結層位址。傳送主機在對應介面上傳送一個多點傳播
Neighbor Solicitation 訊息。Neighbor Solicitation
訊息的多點傳播位址是從目標 IP
位址衍生的請求節點多點傳播位址。Neighbor
Solicitation 訊息包括 Source Link-Layer Address
選項中傳送主機的連結層位址。有關主機如何確定目的的下一躍點位址的資訊,請參閱<傳送主機演算法>。
訊息時,它就會根據 Neighbor Solicitation
訊息的來源位址以及 Source Link-Layer Address
選項中的連結層位址,更新自己的相鄰節點快取記憶體。然後,目標節點將一個單點傳播
Neighbor Advertisement 傳送到 Neighbor Solicitation
傳送者。Neighbor Advertisement 包含 Target Link-Layer
Address 選項。
後,傳送主機就會根據 Target Link-Layer Address
選項中的資訊,更新自己相鄰節點快取記憶體中的目標項目。此時,便可以傳送傳送主機和
Neighbor Solicitation 目標之間的單點傳播 IPv6 傳輸。
位址解析範例
FE80::2AA:FF:FE11:1111。主機 B 的 Ethernet MAC 位址為
00-AA-00-22-22-22,對應的連結-本機位址為
FE80::2AA:FF:FE22:2222。要將封包傳送到主機 B,主機
A 必須使用位址解析,以解析主機 B
的連結層位址。
FF02::1:FF22:2222 傳送一個請求節點多點傳播 Neighbor
Solicitation,如圖 53 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Solicitation
配接卡註冊請求節點多點傳播位址 33-33-22-22-22-22)
接收和處理 Neighbor Solicitation。主機 B 以單點傳播
Neighbor Advertisement 訊息回應,如圖 54 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Advertisement
重複位址偵測
ARP」的方法,偵測本機連結上的重複 IP
位址。與此類似,IPv6 節點使用 Neighbor Advertisement
訊息,偵測本機連結上重複位址的使用情況。
Source Protocol Address 欄位和 Target Protocol Address
欄位設定為偵測重複的 IPv4 位址。在 IPv6
重複位址偵測中,Neighbor Solicitation 訊息中的
Target Address 欄位設定為偵測重複的 IPv6 位址。
- 在重複位址偵測 Neighbor Solicitation 訊息中,IPv6
標頭中的 Source Address 欄位設為未指定位址 (::)。直到確定沒有重複位址時為止不能使用正在查詢重複的位址。 - 在針對重複位址偵測 Neighbor Solicitation
訊息而作出的 Neighbor Advertisement 回應中,IP
標頭的 Destination Address 設為連結-本機領域所有節點多點傳播位址
(FF02::1)。Neighbor Advertisement 訊息中的 Solicited
flag 設為 0。因為重複位址偵測 Neighbor
Solicitation 訊息的傳送者未在使用期望的 IP
位址,因此無法接收單點傳播 Neighbor
Advertisements。因此,Neighbor Advertisement
是多點傳播的。
位址的多點傳播 Neighbor Advertisement
後,節點會禁止在介面上使用重複的 IP
位址。如果節點沒有收到保護 IPv6 位址使用的
Neighbor Advertisement,就會在介面上起始化該位址。
重複位址偵測範例
A 欲使用連結-本機位址 FE80::2AA:FF:FE22:2222。但是,主機
A 在使用此連結-本機位址之前,必須先透過重複位址偵測來檢驗該位址的唯一性。
傳送一個請求節點多點傳播 Neighbor Solicitation,如圖
55 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Solicitation
配接卡註冊請求節點多點傳播位址 33-33-22-22-22-22)
接收和處理 Neighbor Solicitation。主機 B
發現來源位址是未指定位址。然後,主機 B
以多點傳播 Neighbor Advertisement 訊息回應,如圖 56
所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Advertisement
Router Discovery
是節點嘗試發現本機連結上一組路由器的程序。IPv6
中的 Router Discovery 與 RFC 1256 所述的 IPv4 的 ICMP
Router Discovery 類似。
的一個重要區別在於,在目前預設路由器無法使用時,採用什麼機制來選擇新的預設路由器。在
ICMPv4 Router Discovery中,Router Advertisement
訊息中包括一個 Advertisement Lifetime 欄位。Advertisement
Lifetime 是指:自接到上一個 Router Advertisement
訊息起,認為不可再使用該路由器的時間。最糟的情況是,無法使用路由器,而直到
Router Advertisement
時間到期為止,主機不嘗試去發現新的預設路由器。
Lifetime
欄位。此欄位表示可將路由器視為預設路由器的時間長度。但是,如果無法使用目前預設路由器,則偵測這一情況時要使用
Neighbor Unreachability Detection,而不使用 Router
Advertisement 訊息中的 Router Lifetime 欄位。因為
Neighbor Unreachability Detection
確定無法使用路由器,就會立即從預設路由器清單中選出新的路由器。有關詳細資訊,請參閱
"Neighbor Unreachability Detection"。
還組態以下內容:
- IPv6 標頭中 Hop Limit 欄位的預設設定。
- 確定節點是否應該將受管理的位址通訊協定,如
IPv6 的動態主機組態通訊協定 (DHCPv6),用於位址和其它組態參數。 - 在可連線偵測和 Neighbor Solicitation
重傳中使用的計時器。 - 為連結定義的網路字首清單。每個網路字首均包含
IPv6
網路字首以及其有效和偏好的的生存時間。一經指定後,網路字首加上介面識別碼就可為接收介面產生不受管理的
IP
位址組態。另外,網路字首也定義本機連結上節點的位址範圍。 - 本機連結的 MTU。
- IPv6 路由器定期在本機連結上傳送一個 Router
Advertisement
訊息,將其身份通告為路由器。另外,它們還提供組態參數,如預設的躍點限制、MTU
以及字首。 - 本機連結上使用中的 IPv6 主機接收 Router
Advertisement
訊息,並使用其內容來維護預設路由器清單、字首清單以及其它組態參數。 - 啟動的主機將 Router Solicitation
訊息傳送到連結-本機領域所有路由器多點傳播位址
(FF02::2)。收到 Router Solicitation
訊息後,本機連結上的所有路由器均向傳送此
Router Solicitation 的節點傳送單點傳播 Router
Advertisement 訊息。該節點接收 Router Advertisement
訊息,並使用其內容建立預設路由器、字首清單以及設定其它組態參數。在放棄
Router Discovery 程序之前傳送的 Router Solicitation
數量由可設定變數來設定。RFC 2461
使用的變數名稱為 MAX_RTR_SOLICITATIONS,推薦值為
3。
路由器和字首發現範例
FE80::2AA:FF:FE11:1111。路由器 1 Ethernet MAC 位址為
00-AA-00-22-22-22,對應連結-本機位址為
FE80::2AA:FF:FE22:2222。要將封包轉寄到非連結目的,主機
A 必須發現路由器 1 的存在。
傳送至位址 FF02::2,如圖 57 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Solicitation
配接卡註冊多點傳播位址 33-33-00-00-00-02)
接收並處理 Router Solicitation。路由器 1
以一個單點傳播 Router Advertisement
訊息回應,該訊息中包含組態參數和本機連結字首,如圖
58 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Advertisement
Neighbor Unreachability Detection
封包正確地傳送到相鄰節點,並讓相鄰節點 IPv6
層成功地接收和處理封包的能力。對於向路由器傳送封包的節點,封包傳送到路由器的
IPv6
層,然後轉寄到下一躍點。對於向相鄰節點傳送封包的節點,封包傳送到該節點的
IPv6
層。請注意可連線的定義並不需要透過路由器傳送到遠端節點
- 僅傳送到相鄰路由器,這一點很重要。
會偵測這個情況,並嘗試加以糾正。要確定相鄰節點是否可連線,IPv6
依靠上層通訊協定 (指示通訊進度),或依靠接收
Neighbor Advertisement 訊息 (作為對單點傳播 Neighbor
Solicitation 訊息的回應而傳送)。
通訊,當收到新資料或已傳送資料的確認區段時,就會指示通訊進度。UDP
傳輸可能不存在進度指示。在這種情況下,該節點向下一躍點相鄰節點傳送單點傳播
Neighbor Solicitation 訊息,以監視其持續的可連線。
作為可連線的證據。僅在回應 Neighbor Solicitation
時,才傳送所請求的 Neighbor Advertisement,後者將其
Solicited flag 設為 1。未請求的 Neighbor Advertisement
或 Router Advertisement 訊息不作為可連線的證據。
偵測對稱可連線。在這種情況下,封包必須既能發到想要的相鄰節點,也能從想要的相鄰節點發出。當傳送
Neighbor Solicitation 以及收到所請求的 Neighbor
Advertisement
時,就會確認兩節點之間的路徑。對於未請求的
Neighbor Advertisement 或 Router Advertisement
訊息,只確認傳送訊息的節點一端的路徑。這稱為不對稱可連線。
Solicitation 和接收 Neighbor Advertisement
的節點確認可連線。傳送 Neighbor Advertisement
的節點收不到 Neighbor Advertisement
已到達指定節點的確認資訊。對於兩個均可確定可連線的節點,二者都必須彼此交換
Neighbor Solicitation 和 Neighbor Advertisement 訊息。
2461 定義相鄰節點快取記憶體項目的以下狀態:
- INCOMPLETE
IPv6 位址解析正在使用請求節點多點傳播
Neighbor Solicitation。當建立新的相鄰節點快取記憶體項目,但還沒有該節點的對應連結層位址時,則進入
INCOMPLETE
狀態。在放棄位址解析程序並刪除相鄰節點快取記憶體項目之前,所傳送的多點傳播
Neighbor Solicitation 數量由可設定變數來設定。RFC
2461 使用的變數名稱為 MAX_MULTICAST_SOLICIT,推薦值為
3。 - REACHABLE
可連線由收到所請求的單點傳播Neighbor
Advertisement 來確認。在 Router Advertisement 中的
Reachable Time
欄位指定的毫秒數到期前,相鄰節點快取記憶體項目一直處於
REACHABLE 狀態。 - STALE
可連線時間 (自收到上一個可連線確認起的一段時間)
已到期。在 Reachable Time 欄位值 (毫秒)
到期後,相鄰節點快取記憶體項目轉入 STALE
狀態並保持此狀態,直到封包傳送到相鄰節點為止。當收到通告連結層位址的未請求
Neighbor Advertisemen t時,也進入 STALE 狀態。 - DELAY
要在傳送 Neighbor Solicitation
前留出一定時間讓上層通訊協定提供可連線確認,相鄰節點快取記憶體項目狀態就轉為
DELAY 狀態,並等待一段時間 (可設定此時間)。RFC
2461 使用的變數名稱為 DELAY_FIRST_PROBE_TIME,推薦值為
5
秒。到延遲時間為止,如果沒有收到可連線確認,則該項進入
PROBE 狀態,並傳送單點傳播 Neighbor Solicitation。 - PROBE
對於處於 STALE 和DELAY
狀態的相鄰節點快取記憶體項目,可連線確認正在進行中。傳送單點傳播
Neighbor Solicitation
訊息的時間間隔與該主機收到的 Router
Advertisement 訊息中的 Retrans Timer
欄位對應。在放棄可連線偵測程序並刪除相鄰節點快取記憶體項目之前所傳送的
Neighbor Solicitation 數量由可設定變數來設定。RFC
2461 使用的變數名稱為 MAX_UNICAST_SOLICITS,推薦值為
3。
顯示相鄰節點快取記憶體中一個項目的狀態圖。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
Neighbor Advertisement,並將 Router flag 設為 0。如果主機收到從
Router flag 設為 0 的路由器發出的 Neighbor
Advertisement,主機就會將該路由器從預設路由器清單中刪除,如果需要則另選一個路由器。
重新導向功能
- 路由器向來源主機通報本機連結上離目的「較近」(closer)
的可用路由器的 IP 位址。「Closer」是用來連線目的網段的路由度量函數。當一個網段上有多個路由器時,來源主機會選擇一個預設路由器,但它並不是到達目的的最佳路由器時,就會出現這種情況。 - 路由器通知來源主機:目的是一個相鄰節點
(與來源主機在同一連結上)。當主機的字首清單不包括目的的字首時,就會出現這種情況。因為目的並不與清單中字首相符,所以來源主機將封包轉寄到其預設路由器上。
- 來源主機向其預設路由器傳送一個單點傳播封包。
- 該路由器處理此封包,並注意到來源主機位址是一個相鄰節點位址。另外,它還注意到來源主機和下一躍點在同一連結上。
- 此路由器將封包轉寄到對應的下一躍點位址。
- 路由器向來源主機傳送 Redirect 訊息。在
Redirect 訊息的 Target Address
欄位中,顯示節點的下一躍點位址,來源主機應將發往目的的封包傳送到此位址上。對於重新導向到路由器的封包,Target Address
欄位設為該路由器的連結-本機位址。對於重新導向到主機的封包,Target
Address 欄位設為封包最初發往的目的位址。Redirect 訊息中包含 Redirected Header
選項。它也可以包含 Target Link-Layer Address
選項。 - 收到 Redirect 訊息後,來源主機就使用 Target
Address
欄位中的位址更新目的快取記憶體中的目的位址項目。如果
Redirect 訊息中包含 Target Link-Layer Address
選項,則使用其內容建立或更新對應的相鄰節點快取記憶體項目。
Redirect 訊息。主機從不傳送 Redirect
訊息,路由器從不因為收到 Redirect
訊息而更新路由表。
重新導向範例
FE80::2AA:FF:FE11:1111。主機 A 還具有站台-本機位址
FEC0::1:2AA:FF:FE11:1111/64。路由器 1 的 Ethernet MAC
位址為 00-AA-00-22-22-22,對應的連結層位址為
FE80::2AA:FF:FE22:2222。路由器 1 還具有站台-本機位址
FEC0::1:2AA:FF:FE22:2222/64。路由器 2 的 Ethernet MAC
位址為 00-AA-00-33-33-33,對應的連結層位址為
FE80::2AA:FF:FE33:3333。路由器 2 還具有站台-本機位址
FEC0::1:2AA:FF:FE33:3333/64。主機 A 向位址為
FEC0::2:2AA:FF:FE99:9999 的非連結主機 (未顯示)
傳送一個封包,並將路由器 1
作為目前的預設路由器。但是,路由器 2
是更好的可連線目的路由器。
的封包發到路由器 1,如圖 60 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
發來的封包,並注意到主機 A
是一個相鄰節點。它還注意到主機 A
和目的的下一躍點位址在同一連結上。根據其本機路由表中的內容,路由器
1 將從主機 A 收到的單點傳播封包轉寄到路由器 2,如圖
61 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
FEC0::2:2AA:EE:FE99:9999 的封包發到路由器 2,路由器
1 向主機 A 傳送 Redirect 訊息,如圖 62 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
主機傳送演算法
封包的程序由本機主機結構和 ND
通訊協定組成。當將一個封包發到任意目的地時,IPv6
主機使用以下演算法:
- 檢查目的快取記憶體中與目的位址符合的項目。
- 如果在目的快取記憶體中找到一個與目的位址符合的項目,則取得目的快取記憶體項目中的下一躍點位址。移到第
3 步驟。如果在目的快取記憶體中沒有找到與目的位址符合的項目,則要確定目的位址是否符合字首清單中的字首。如果目的位址符合字首清單中的一個字首,則將下一躍點位址設為目的位址。移到第
3 步驟。如果目的位址與字首清單中的字首不相符,則將下一躍點位址設為目前預設路由器的位址。移到第
3 步驟。如果沒有預設路由器(
並且在預設路由器清單中沒有路由器),則將下一躍點位址設為目的位址。 - 檢查相鄰節點快取記憶體中與下一躍點位址符合的項目。
- 如果在相鄰節點快取記憶體中找到一個與下一躍點位址符合的項目,則獲得連結層位址。
如果在相鄰節點快取記憶體中沒有找到與下一躍點位址符合的項目,則使用位址解析,取得下一躍點位址的連結層位址。
- 使用相鄰節點快取記憶體項目的連結層位址傳送封包。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
位址自動組態
的一個最有用的特性就是它能夠自動進行自我設定,即使不使用受管理的組態通訊協定如
IPv6 的動態主機組態通訊協定 (DHCPv6),也是如此。預設情況下,IPv6
主機可為每個介面設定一個連結-本機位址。透過使用
Router Discovery,主機還可以確定路由器位址、其它組態參數、其它位址以及連結字首。在
Router Advertisement
訊息中,指出是否應該使用受可管理的位址組態通訊協定資訊。
RFC 2462 中描述位址自動組態。
自動組態的位址狀態
- 暫時的
正在對該位址進行唯一性驗證。驗證是透過重複位址偵測完成的。節點收不到發往暫時位址的單點傳播通訊。但是,它能收到和處理多點傳播
Neighbor Advertisement 訊息 (該訊息的傳送是為了回應重複位址偵測程序中傳送的
Neighbor Solicitation 訊息)。 - 偏好的
唯一性已確認的位址。節點可從偏好的位址傳送和接收單點傳播通訊。位址處於偏好的狀態的時間由
Router Advertisement 訊息的 Prefix Information
選項中的 Preferred Lifetime 欄位確定。 - 取代的
位址仍有效,但是,不建議用於新通訊。現有通訊工作階段仍可使用取代的位址。節點可從取代位址傳送和接收單點傳播通訊。
- 有效
可從該位址傳送和接收單點傳播通訊。有效狀態包括偏好的狀態和取代狀態。位址處於有效狀態的時間由
Router Advertisement 訊息的 Prefix Information
選項中的 Valid Lifetime
欄位確定。有效生存時間必須大於或等於偏好的生存時間。 - 無效的
節點不再為該位址傳送或接收單點傳播通訊。當有效生存時間到期後,位址就進入無效的狀態。
64 所示。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
(如手動組態) 取得位址和組態參數。
自動組態類型
- 不受管理的
該位址組態以收到 Router Advertisement
訊息為基礎,其 Managed Address Configuration 和
Other Stateful Configuration 旗標設為 0,並具有一個或多個
Prefix Information 選項。 - 受管理的
此組態以使用受管理的位址組態通訊協定 (如
DHCPv6)
為基礎,取得位址和其它組態選項。當主機收到沒有字首選項的
Router Advertisement 訊息、而 Managed Address
Configuration 和 Other Stateful Configuration 旗標設為
1
時,就會使用受管理的位址組態。當本機連結上沒有路由器時,主機也使用受管理的位址組態通訊協定。 - 混合
此組態的基礎是收到具有 Prefix Informaiton
選項的 Router Advertisement 訊息、且 Managed Address
Configuration 和 Other Stateful Configuration 旗標設為
1。
自動組態程序
- 暫時的連結-本機位址是根據 FE80::/64 字首和
64 位元介面識別碼而衍生的。 - 使用重複位址偵測來驗證暫時的連結-本機位址的唯一性,從而傳送
Neighbor Solicitation 訊息,其 Target Address
欄位設為暫時的連結-本機位址。 - 如果收到回應 Neighbor Solicitation 訊息的
Neighbor Advertisement
訊息,就表示本機連結上另一節點正在使用此暫時的連結-本機位址,位址自動組態即停止。此時,必須在該節點上進行手動組態。 - 如果未收到 Neighbor Advertisement 訊息 (該訊息的傳送是為回應
Neighbor Solicitation 訊息),就認為暫時的連結-本機位址是唯一的和有效的。針對該介面而起始化連結-本機位址。使用網路配接卡註冊對應的請求節點多點傳播連結層位址。
主機,位址自動組態繼續進行,如下所示:
- 主機傳送 Router Solicitation 訊息。
- 如果未收到 Router Advertisement
訊息,主機就會使用受管理的位址組態通訊協定,取得位址和其它組態參數。 - 如果收到 Router Advertisement 訊息,就會設定
Hop Limit、Reachable Time、Retrans Timer 以及 MTU (如果有
MTU 選項的話)。 - 對於每個存在的 Prefix Information 選項:
如果 On-Link 旗標設為 1,則將該字首會加入到字首清單中。如果 Autonomous 旗標設為 1,則使用字首和 64
位元介面識別碼衍生暫時的位址。使用重複位址偵測,驗證暫定位址的唯一性。如果暫時的位址正被使用,則不起始該介面位址的使用。如果暫時的位址目前不被使用,則起始化該位址。這包括設定有效的和偏好的的生存時間
(根據 Prefix Information 選項中的 Valid Lifetime 和
Preferred Lifetime 欄位)。還包括使用網路配接卡註冊對應的請求節點多點傳播連結層位址。 - 如果 Router Advertisement 訊息中的 Managed Address
Configuration 旗標設為 1,就會使用受管理的位址組態通訊協定,以取得其它位址。 - 如果 Router Advertisement 訊息中的 Other Stateful
Configuration 旗標設為 1,就會使用受管理的位址組態通訊協定,以取得其它組態參數。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
如果您的瀏覽器不支援內嵌框架,請按一下此處來檢視個別的頁面。
摘要
通訊協定套件,並盡可能地將 IPv6
通訊協定套件與 IPv4
中現有的相似特性或概念進行比較。本白皮書探討
IPv6 解決 IPv4 通訊協定設計問題的方法、新 IPv6
標頭和擴充標頭、ICMPv6 (取代 IPv4 ICMP)、MLD (取代
IPv4 IGMP)、IPv6 Neighbor Discovery 程序 (管理相鄰 IPv6
節點之間的互動) 以及 IPv6
位址自動組態。雖然現在還沒有廣泛使用,但
Internet 的未來必將以 IPv6
為基礎。增進對這個策略性通訊協定的了解,以開始規劃最終採用和遷移至
IPv6,這是很重要的。
其它資訊
的最新資訊,請瀏覽全球資訊網網址:http://www.microsoft.com/ntserver/、MSN™
上的 Windows NT Server 論壇以及 Microsoft Network
連線服務 (GO WORD: MSNTS)。
網址:http://www.ietf.org/html.charters/。此網址包含到目前
RFC 集合的連結和描述 IPv6 通訊協定套件的 Internet
草案的連結。
Next Generation Transition (ngtrans) 工作群組 Web 網址:http://www.ietf.org/html.charters/。此網址包含到目前
RFC 集合的連結和描述各種部署工具和轉換策略的
Internet 草案的連結。