TCP/IP 協定與 Internet 網路:第五章 網際層協定  上一頁           下一頁

 

翻轉工作室:粘添壽

 

5-6 IPv6 協定

自從 1990 年網際網路風行之後,網路專家們漸漸感覺到所使用的 IPIPv4Version 4)通訊協定已不敷使用。尤其隨著應用層次的提高,IP 網路不再只須提供檔案傳送及遠端登入等簡單的應用,更必須進一步處理有關資料庫系統的查詢與更新,也進入電子商務的應用。因此,有必要再發展出功能更完整的通訊系統,IPv6』(IP Version 6就在這迫切需求之下被發展出來。首先,我們用下列幾點來介紹 IPv6 如何彌補 IPv4 的不足:

(A) IPv6 提供更寬廣的 IP 定址空間

IPv4 32 位元(4 個位元組)來表示 IP 位址空間,已漸不能滿足目前網際網路上主機電腦連結的成長。IPv6 提供 128 位元(16 個位元組) 的空間來表示 IP 位址。

(B) IPv6 提供認證服務

一般 IP 封包在傳送過程中,每經過一個中途路由器就必須被拆裝和重新包裝,又要經過許多不可預測的路由器(無法事先預估),而且為了要使封包能順利到達目的地,在封包上又無法做太多的保護措施。正因如此,任何有心人士,皆可輕而易舉在網路上窺視他人資料,甚至竄改它,使傳送的訊息失去正確性。尤其在企業內的區域網路連接更為困擾,早期,跨區域的區域網路連接都透過專線,但為了節省費用及符合出差人員方便連線,目前都希望能直接透過網際網路連線,如『虛擬私人網路』(Virtual Private Network, VPN)。雖然目前有許多技術可以克服,譬如,使用『通道技術』(Tunneling Technique來保護資料在 IP 網路上不被偷竊,但這類技術大多必須利用上一層通訊協(TCP)定來完成,而且並非每一部路由器都提供到上一層的服務(一般路由器只提供到 IP 層服務)。IPv6 提供認證的功能,未經認證通過的連線, IPv6 路由器將不給予轉送或拆封,以保證資料的隱密性,也不需要透過上層協定的處理。

(C) IPv6 提供流量標籤(Flow Label

一般 IPv4 網路上,封包經過中途路由器,路由器只負責將封包轉送到適當的路徑上,並未做任何的紀錄。在 IPv6 網路上,每一個封包提供一個流量標籤,同一筆資料串列給予相同的標籤號碼,因此可以做流量控制及統計。

(D) IPv6 提供傳輸流量等級(Traffic Class)的分類

雖然在 IPv4 封包上有提供 ToSType of Service),但有關 QoSQuality of Service)的服務都由上層通訊軟體所提供,ToS 幾乎沒有發揮功能。IPv6 提供傳輸流量等級的分類,再配合流量標籤使用,就可以依照每一個封包的服務性質,給於路徑選擇的優先次序及適合路徑,便可達到 QoS 的需求。

(E) IPv6 減少封包分段(Fragmentation)的機率

IPv4 的協定裡,每個封包大小並未嚴格限制,當封包經由不同網路存取層(Network Access Layer, NAL)時,會將封包分割成不同區段,並給予相同的分段號碼(Fragment Number),好讓對方接收到後,依照相同的分段號碼,再組合回原來封包(向上/向下多功能)。但在一序列的封包可能經由不同的 NAL 傳輸,其中有任一封包沒有到達目的,則將使整串列資料失效,導致必須全部重傳。因此,在 IPv6 協定裡只允許傳送中的起始和終點可以做分割和組合,減少中途路由器的分割動作,不但可以減少中途路由器的負擔,對傳輸效率也較高。

(F) IPv6 簡化封包標頭

不像 IPv4 的標頭裡存放太多欄位,IPv6 捨棄不必要的欄位,作較有效率的處理。

5-6-1 IPv6 封包格式

5-47 IPv6 的封包格式,各欄位功能如下:

版本(Version):表示本封包的 IP 版本,如 IPv6 的值為 6

交通流量等級(Traffic Class):標示該封包的流量等級,等級愈高者優先轉送。可區分為 16 個等級,0 ~ 7 可以提供回應壅塞(如 TCP),8 ~ 15 則不提供回應壅塞(如壅塞時便拋棄該封包)。等級 0 ~ 7 所提供之服務如下:

0非結構化交通流量(Uncharacterized traffic

1填滿型交通流量(Filler traffic

2未處理資料傳送(Unattended data transfer

3保留(Reserved

4經處理區塊傳送(Attended bulk transfer

5保留(Reserved

6交談式交通流量(Interactive traffic

7網路間控制交通流量(Internet control traffic

流量標籤(Flow Label):同一筆資料給予相同的標籤,可作為流量控制。

承載長度(Payload Length):本封包所承載資料的長度。表示承載其他通訊軟體(TCP UDP 等封包)的長度。

下一標頭(Next Header):此欄位類似 IPv4 Protocol 欄位,表示本封包所承載的標頭型態,如 TCP UDP 等等。

跳躍次數(Hop Limit):類似 IPv4 上的 TTL 欄位,每經過一個路由器其值就被減一,如路由器發現該值為一時,便將封包丟棄。在 IPv6 的封包標頭上沒有 Checksum 檢查,因此,路由器計算跳躍值後不用再重新計算 Checksum

來源位址(Source Address): 128 個位元(16 個位元組)表示。

目的位址(Destination Address): 128 個位元(16 個位元組)表示。

5-47 IPv6 封包格式

5-6-2 IPv6 位址格式

IPv6 128 位元(16 個位元組)來表示位址,比 IPv4 增加許多,對於它的表示方法也較複雜。IPv4 只將位址區分為兩個部份:網路號碼和主機號碼,但 IPv6 就有更多型態的區分。首先我們來看如何表示這 128 位元,將其分成 8 組位置,每組 16個位元又區分為 4 個字元,每個字元(4 個位元)以 16 進位法表示。如下面格式:

X:X:X:X:X:X:X:X

例如:A2E5:56EF:906B:4590:12EC:D532:7812:0001

IPv6 位址表示中常有許多組為 0 的情形,為了簡化組內數值都為 0 時,以「::」來表示,例如:

0:0:0:0:0:0:0:1 ::1 loop back 位址

0:0:0:0:0:0:0:0 :: 為未指定位址

緊接著,我們來看 IPv6 的位址型態。在 IPv4 協定之下,將主機位址都設定為 1 時,表示針對這個網路號碼之下的所有主機廣播。但廣播封包容易造成風暴,嚴重影響網路效能。IPv6 不再使用這任意廣播的方式,而是使用『所有節點』的多點廣播位址。多重節點廣播並非所有節點都會處理廣播訊息,而是有關聯的節點才會處理,如此就可以減低所有節點對廣播訊息的處理。IPv6 將位址型態區分為下列三種:

單一廣播位址(Unicast Address

任一廣播位址(Anycast Address

多點廣播位址(Multicast Address

以下分別介紹各種型態,對於 IPv6 前置位址以『prefix/prefix-length』表示之,例如: 2000::/3 表示該 IPv6 位址的前置碼長度為 3,第一組字元為(0010),其餘皆為 0

(A) 單一廣播位址(Unicast Address

單一廣播型態如同 IPv4 一樣,對每一個主機而言,都有一個獨一無二的位址,但 IPv6 採用 64 位元的介面位址,取代 IPv4 的主機位址。IPv6 期望如同 48 位元之 Ethernet 位址一樣可崁入硬體介面上。單一廣播可區分為四種位址型態:

(a)   可集合式整體位址(Aggregatable Global Address

(b)   地區本地位址(Site-Local Address

(c)   鏈路本地位址(Link-Local Address

(d)   IPv4 相容(IPv4-Compatible)之位址格式

以下分別介紹各位址格式之特性:

(1) 可集合式整體位址(Aggregatable Global Address

一般主機或網路設備都可被指定一個或一個以上以上的整體位址(Global Address),以便與其他電腦設備區分。它的位址格式如圖 5-48 所示,我們將 128 位址區分為三個部份,第一部份(Provider)表示網路連接的供應者,指一般的 ISP 位址;第二部分為區域,讓使用者自行區分網路,也就是一般所言的次網路;第三部份為主機,計有 64 位元,也希望類似 Ethernet 位址使用方法。各欄位功能如下:

5-48 可集合式整體位址格式

固定前置碼(Fixed Prefix, FP): 001 表示 IPv6 的可集合式整體位址格式,對整個位址表示為 2000::/3

最上層集合碼(Top-Level Aggregator, TLA):讓網路提供者做最上層的區分,類似電話號碼的國家碼區分法。

保留(Reserve, Res):保留未使用。

下一層集合碼(Next-Level Aggregator, NLA):第二層次的集合碼,類似電話號碼的區域碼。它可以再區分若干個區域碼組合而成。

地區層次集合碼(Site-Level Aggregator, SLA):讓使用者環境區分集合碼,如 IPv4 的次網路(Subnet)位址碼。

介面識別碼(Interface ID):64 位元的主機位址。

(2) 地區本地位址(Site-Local Address

在某個區域裡自行構成網路就可以使用 IPv6 的地區本地定址格式,對於該地區內所用的位址格式不同於整體位址(Global Address)(類似 IPX 定址),IP 路由器不會將該類封包轉送出去,只在地區內廣播。至於需要轉送到地區外,則必須使用整體位址,它的位址格式如圖 5-49 所示。其固定前置碼為 FEC0::/10,並允許地區內再劃分多個小地區,因此有 Subnet-ID 欄位來表示次地區的編碼。Interface-ID 也是 64 位元組來表示(但 IPv6 IPX NASP 有另外定義位址)。

5-49 地區本地位址格式

(3) 鏈路本地位址(Link-Local Address

如同地區本地位址的特性一樣,但鏈路本地位址是指在每一鏈路上而非地區,因此無法再區分次區域。鏈路本地位址可被自動規劃於任何網路介面上,並用來發現鄰近端點的協定或無狀態轉換的自動規劃使用。任何端點在本地網路上可用該位址互相通訊。路由器也不會將該類封包轉送出去,它的封包格式如圖 5-50 所示,其前置碼為 FE80::/10

5-50 鏈路本地位址格式

(4) IPv4 相容(IPv4-Compatible)之位址格式

依目前 IPv4 的網路要轉換到 IPv6,可能需要一段長的時間,不僅封包格式需要修改,通訊協定也必須更新。因此,首先讓兩種協定能夠相容,再漸進式慢慢更新。IPv4 32 位元位置格式,IPv6 128 位元,其中介面位址為 64 位元,我們可將 IPv4 32 位元置入 64 位元的介面位址,所剩之位元皆放 0,如圖 5-51 所示。

5-51 IPv4 相容之 IPv6 格式

(5) 任一廣播位址(Anycast Address

在任一廣播位址型態下,一個位址可屬於多個介面共同使用,這些介面也允許在不同的端點上,當廣播任一廣播位址時,同一位址的介面都可收到。一般最常用是在路由器之間的廣播,不屬於該位址的網路設備就不用去拆裝封包,因此較 IPv4 的廣播方式更節省頻寬。圖 5-52 為次網路之路由器(Subnet router)的任一廣播位址格式,它是由可伸縮的前置碼(Prefix)欄位來代表次網路的位址。

5-52 次網路路由器任一廣播位址格式

(6) 多點廣播位址(Multicast Address

多點廣播可以指定較多的位址,可以針對若干個端點廣播,不像任一廣播只針對一個端點廣播。如採用多點廣播位址型式,IPv6 可向一組介面位址廣播,而每一個介面位址可以在不同的端點上。位址格式如圖 5-53 所示,它的前置碼為FF00::/8Lifetime 欄位表示該包產生的時機,其中 "0" 表示該位址為永久式(Permanent Unicast Address);"1" 表示該位址為暫時性的(Temporary Unicast Address),使用後便不存在。另 Scope 欄位表示位址型態:"1" 表示端點位址(Node Address);"2" 表示鏈路(Link)位址;"5" 表示地區(Site);"8" 表示組織(Organization);"E" 表示整體(Global)位址。但在 IPv6 規格裡有一些特殊的多點廣播位址如下:

FF02:0:0:0:0:0:0:1 為所有端點的多點廣播群組(All-node multicast group)。

FF02:0:0:0:0:1:FF00:0000/104 為徵求端點的多點廣播群組(Solicited-node multicast group)。

FF02:0:0:0:0:0:0:2 為所有路由器多點廣播群組(All-node multicast address),所有路由器都必須加入。

5-53 多點廣播位址格式

5-6-3 ICMPv6 協定

如同 IPv4 上的 ICMP 一樣,ICMPv6 Internet Control Message Protocol version 6)是用來測試或回報 IPv6 網路訊息,也是包裝在 IPv6 封包內(Next header = 58)。例如,某一路由器由於某種原因無法處理 IPv6 封包時,便發送該原因類別的 ICMPv6 給原始發送封包者,再由它做適當的處理。而其封包型態也如同 IPv4 包含終點無法到達、封包太大、時間超過、參數問題、回聲要求、以及回聲回應等。其封包格式也如同 ICMPv4(如圖 5-28)。

 

 

<GOTOP>