1. 程式人生 > >網路層學習之二(IPv4及IPv6地址及相關協議)

網路層學習之二(IPv4及IPv6地址及相關協議)

IP(internet protocol)協議是TCP/IP協議族的核心協議,是因特網的網路層。當前的版本號是4,也稱為IPv4,下一代IP協議的版本號為6即IPv6。正如描述的網路層功能一樣,IP層為因特網提供了選路和轉發的功能。接入因特網的主機之間可以通過IP層而互相通訊,在IP層,IP地址用於標識接入網路的介面,進而標識一臺主機。當資訊在TCP/IP協議棧中傳遞時,每層都會新增其自己的控制資訊,即協議頭,IP地址被新增在IP頭中。IP頭提供了IP協議以及資料報的資訊。

一、IPv4資料報格式

當接入網路的兩臺裝置通過IP層互相通訊時,互動的資訊會被封裝成網路層分組,網路層分組又被稱為資料報。IPv4的資料報格式如下:


其各個欄位的含義如下:

  • 版本號:協議版本號,IPv4為4,IPv6則為6(當然IPv6的頭部不完全是這樣,但是4個位元含義一致)
  • 首部長度:首部長度指的是首部佔32 bit字的數目,包括任何選項。因此IPv4首部最長為60個位元組
  • 服務型別:服務型別(TOS)欄位包括一個3 bit的優先權子欄位(現在已被忽略),4 bit的TOS子欄位和1 bit未用位但必須置0。4 bit的TO S分別代表:最小時延、最大吞吐量、最高可靠性和最小費用
  • 資料報長度:以位元組為單位的整個IP資料報的長度(包括首部)。
  • 標識、標誌、片偏移:標識用來唯一確定主機發送的每一個IP資料報。標誌和片偏移用來支援IP分片,當然它們必須和標識一起使用。IPv6則不允許在路由器分片,在IPv6中,分片和重組必須在源和目的進行
  • 生存時間:資料報可以經過的路由器數,這使得IP資料報早晚會在網路中消失,即要麼被消失,要麼由於生存時間達到而“死亡”
  • 協議:標識IP層承載的上一層協議型別,比如UDP/TCP/SCTP。
  • 首部校驗和:首部檢驗和欄位是根據I P首部計算的檢驗和碼。IPv6首部中不再包含首部校驗和。
  • 源、目的地址:源的IP地址和目的的IP地址
  • 選項:最後一個欄位是任選項,是資料報中的一個可變長的可選資訊。主要包括:
    • 安全和處理限制
    • 記錄路徑(讓每個路由器都記下它的I P地址)
    • 時間戳(讓每個路由器都記下它的I P地址和時間)
    • 寬鬆的源站選路(為資料報指定一系列必須經過的I P地址)
    • 嚴格的源站選路(與寬鬆的源站選路類似,但是要求只能經過指定的這些地址,不能經過其他的地址)。

1.IP分片

資料鏈路層一般要限制每次傳送資料幀的最大長度。任何時候IP層接收到一份要傳送的IP資料報時,它要判斷向本地哪個介面傳送資料(選路),並查詢該介面獲得其MTU。IP把MTU與資料報長度進行比較,如果需要則進行分片。分片可以發生在原始傳送端主機上,也可以發生在中間路由器上。但是分片報文只有到了最終目的地才會被重組。重新組裝由目的地的IP層來完成,其目的是使分片和重新組裝過程對運輸層(比如TCP)是透明的。

IP頭部包含一個由資料報原始傳送者設定的標識欄位,它在由該傳送者傳送的IP資料報中是唯一的。該值在資料報分片時被複制到每個片中。標誌欄位用其中一個位元來表示“更多的片”。除了最後一片外,其他每個組成資料報的片都要把該位元置1。片偏移欄位指的是該片偏移原始資料報開始處的位置。另外,當資料報被分片後,每個片的總長度值要改為該片的長度值。

標誌欄位中有一個位元稱作“不分片”位。如果將這一位元置1,IP將不對資料報進行分片,在這種情況下,如果路由器判斷需要分片就把資料報丟棄併發送一個ICMP差錯報文(“需要進行分片但設定了不分片位元”)給資料報的源主機。
當IP資料報被分片後,每一片都成為一個分組,具有自己的IP首部,並在選擇路由時與其他分組獨立。這樣,當資料報的這些片到達目的端時有可能會失序,但是在IP首部中有足夠的資訊讓接收端能正確組裝這些資料報片。
但是IP分片存在一個嚴重的缺陷:即使只丟失一片資料也要重傳整個資料報。

在IPv6中,分片功能被限制在源主機進行,這是因為分片增加了網路核心(即路由器)的工作量,使得它不得不為所有報文進行分片處理的判斷,網路核心應該更專注於它選路和轉發的功能,而不是被額外的處理所打斷。

二、IPv4地址

在因特網中,無論是主機還是路由器,都通過介面接入網路。介面是主機或路由器接入網路的裝置,一般情況下,一個主機由一個介面,而路由器有多個介面。為了使得介面能夠工作在網路層,每個介面都需要有IP地址。因此,IP實際上是和介面相關聯的,而不是與主機或路由器相連的。

1.IPv4地址格式

IP地址是一個32位的二進位制數,通常被分割為4個“8位二進位制數”(也就是4個位元組)。IP地址通常用“點分十進位制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進位制整數。例:點分十進IP地址(100.4.5.6),實際上是32位二進位制數(01100100.00000100.00000101.00000110)。

因特網中,每臺主機或路由器的介面都有一個IP地址。但是每個介面的IP地址不能隨意選擇,每個介面的IP地址的組成部分需要由其連線的子網來決定。

1.分類編址

最初設計網際網路絡時,為了便於定址以及層次化構造網路,每個IP地址包括兩個標識碼(ID),即網路ID和主機ID。同一個物理網路上的所有主機都使用同一個網路ID,網路上的一個主機(包括網路上工作站,伺服器和路由器等)有一個主機ID與其對應。Internet委員會定義了5種IP地址型別以適合不同容量的網路,即A類~E類。其中A、B、C3類(如下表格)由InternetNIC在全球範圍內統一分配,D、E類為特殊地址。

網路類別

最大網路數

第一個可用的網路號

最後一個可用的網路號

每個網路中的最大主機數

A

126(2^7-2)

1

126

16777214

B

16384(2^14)

128.0

191.255

65534

C

2097152(2^21)

192.0.0

223.255.255

254

其地址佈局如下圖:


A類IP地址
一個A類IP地址是指, 在IP地址的四段號碼中,第一段號碼為網路號碼,剩下的三段號碼為本地計算機的號碼。如果用二進位制表示IP地址的話,A類IP地址就由1位元組的網路地址和3位元組主機地址組成,網路地址的最高位必須是“0”。A類IP地址中網路的標識長度為8位,主機標識的長度為24位,A類網路地址數量較少,可以用於主機數達1600多萬臺的大型網路。
A類IP地址 地址範圍1.0.0.0到126.255.255.255[2](二進位制表示為:00000001 00000000 00000000 00000001 - 01111111 11111111 11111111 11111111)。最後一個是廣播地址。
A類IP地址的子網掩碼為255.0.0.0,每個網路支援的最大主機數為256的3次方-2=16777214臺。
B類IP地址
一個B類IP地址是指,在IP地址的四段號碼中,前兩段號碼為網路號碼。如果用二進位制表示IP地址的話,B類IP地址就由2位元組的網路地址和2位元組主機地址組成,網路地址的最高位必須是“10”。B類IP地址中網路的標識長度為16位,主機標識的長度為16位,B類網路地址適用於中等規模的網路,每個網路所能容納的計算機數為6萬多臺。
B類IP地址地址範圍128.0.0.0-191.255.255.255[1](二進位制表示為:10000000 00000000 00000000 00000001----10111111 11111111 11111111 11111110)。 最後一個是廣播地址。
B類IP地址的子網掩碼為255.255.0.0,每個網路支援的最大主機數為256的2次方-2=65534臺
C類IP地址
一個C類IP地址是指,在IP地址的四段號碼中,前三段號碼為網路號碼,剩下的一段號碼為本地計算機的號碼。如果用二進位制表示IP地址的話,C類IP地址就由3位元組的網路地址和1位元組主機地址組成,網路地址的最高位必須是“110”。C類IP地址中網路的標識長度為24位,主機標識的長度為8位,C類網路地址數量較多,適用於小規模的區域網絡,每個網路最多隻能包含254臺計算機。
C類IP地址範圍192.0.0.0-223.255.255.255[1](二進位制表示為: 11000000 00000000 00000000 00000001 - 11011111 11111111 11111111 11111110)。
C類IP地址的子網掩碼為255.255.255.0,每個網路支援的最大主機數為256-2=254臺
D類IP地址
D類地址被IP用作多播。多播為IP提供了向過個目地轉發資料的能力。
D類地址的28bit均用作多播組號而不再表示其他。多播組地址包括為1110的最高4bit和多播組號。它們通常可表示為點分十進位制數,範圍從224.0.0.0到239.255.255.255。
能夠接收發往一個特定多播組地址資料的主機集合稱為主機組(hostgroup)。一個主機組可跨越多個網路。主機組中成員可隨時加入或離開主機組。主機組中對主機的數量沒有限制,同時不屬於某一主機組的主機可以向該組傳送資訊。
一些多播組地址被IANA確定為知名地址。它們也被當作永久主機組。
特殊的網址

  1. 每一個位元組都為0的地址(“0.0.0.0”)對應於當前主機;
  2. IP地址中的每一個位元組都為1的IP地址(“255.255.255.255”)是當前子網的廣播地址;
  3. IP地址中凡是以“llll0”開頭的E類IP地址都保留用於將來和實驗使用。
  4. IP地址中不能以十進位制“127”作為開頭,該類地址中數字127.0.0.1到127.255.255.255用於迴路測試,如:127.0.0.1可以代表本機IP地址,用“http://127.0.0.1”就可以測試本機中配置的Web伺服器。
  5. 網路ID的第一個6位組也不能全置為“0”,全“0”表示本地網路。

2.CIDR編址

當前採用的地址分配策略為無類別域間選路(CIDR)。CIDR 消除了傳統的 A 類、B 類和 C 類地址以及劃分子網的概念,因而可以更加有效地分配 IPv4 的地址空間。在分類編址方案中,只有A,B,C三類地址可用,但是對於有的組織來說,它的大小可能位於B和C類之間,如果用C類地址,不夠用,而用B類地址又會導致寶貴的地址資源的浪費。採用CIDR方案即可解決這個問題。

在這種編址方案中IP地址被分為網路部分和主機部分兩部分,並且具有形式a.b.c.d/x,其中x指示了第一部分中的位元數。前x位元被稱為該地址的字首。該組織內部的裝置得IP都將具有該字首,因而對於外部的路由器,它只需要一條指向該字首的路由即可。當資料報進入該組織內部網路後,內部的路由器將根據32-x位元的資訊轉發資料報。

CIDR 把網路字首都相同的連續的 IP 地址組成“CIDR 地址塊”。

2.地址分配管理

1.地址管理和獲取

雖然知道了IP的格式,但是使用者不可能隨意定義自己的IP。做個簡單的比方,你不可能給你自家所在的地方隨意起個名字,然後就讓快遞公司給你送件,快遞公司是不知道你自定義的這個地址的資訊的。為了獲得一個可以工的IP地址,這個IP必須是被因特網中的路由器所承認的,為什麼是路由器?因為路由器決定了資料報怎麼選路,怎麼轉發,因而只有路由器能夠將資料報轉發給你的主機,你的主機才算是接入了網路,因而從這個意義說,路由器在因特網中扮演了核心角色。 從因特網的結構上來說,使用者需要從ISP獲取一個IP地址或地址塊,而ISP則向它的上一級ISP獲取地址塊,最終所有的地址都來自於ICANN,因特網名字與號碼分配機構。

2.獲取主機地址

上邊描述的是地址的來源和管理方式。但是並沒有真正將地址分配給介面。從技術上來說,將IP分配給介面有兩種方式,手動配置或動態配置。更常用的是動態配置,因為這更加靈活方便,也可以降低 管理員的負擔。動態配置是通過DHCP,即動態主機配置協議實現的。它不僅可以用於獲取IP資訊,它還可以獲取子網掩碼,第一條路由器,DNS伺服器地址等等資訊,因而也是很重要很常用的一個協議。

3.私有地址

ICANN只管理公共地址,還有部分地址私有地址。私有地址(Private address)屬於非註冊地址,專門為組織機構內部使用。
以下列出留用的內部私有地址
A類 10.0.0.0--10.255.255.255
B類 172.16.0.0--172.31.255.255
C類 192.168.0.0--192.168.255.255

3.NAT和UPnP

1.NAT

網路地址轉換(NAT,Network Address Translation)屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化為合法IP地址的轉換技術,它被廣泛應用於各種型別Internet接入方式和各種型別的網路中。原因很簡單,NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網路外部的攻擊,隱藏並保護網路內部的計算機。
NAT將自動修改IP報文的源IP地址和目的IP地址,IP地址校驗則在NAT處理過程中自動完成。有些應用程式將源IP地址嵌入到IP報文的資料部分中,所以還需要同時對報文的資料部分進行修改,以匹配IP頭中已經修改過的源IP地址。否則,在報文資料部分嵌入IP地址的應用程式就不能正常工作。 NAT的實現方式有三種,即靜態轉換Static Nat、動態轉換Dynamic Nat和埠多路複用OverLoad。
  1. 靜態轉換:是指將內部網路的私有IP地址轉換為公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換為某個公有IP地址。藉助於靜態轉換,可以實現外部網路對內部網路中某些特定裝置(如伺服器)的訪問。
  2. 動態轉換:是指將內部網路的私有IP地址轉換為公用IP地址時,IP地址是不確定的,是隨機的,所有被授權訪問上Internet的私有IP地址可隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少於網路內部的計算機數量時。可以採用動態轉換的方式。
  3. 埠多路複用(Port address Translation,PAT):是指改變外出資料包的源埠並進行埠轉換,即埠地址轉換(PAT,Port Address Translation).採用埠多路複用方式。內部網路的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節約IP地址資源。同時,又可隱藏網路內部的所有主機,有效避免來自internet的攻擊。因此,目前網路中應用最多的就是埠多路複用方式。
無論採用哪種方式,在內部都使用了一張NAT轉換表,它記錄了地址轉換的相關資訊。 NAT也有一些爭議:
  1. 它使用了埠號,而埠號在設計中是為了區分網路程式的。
  2. 它使得路由器必須處理網路層以上的資訊,違反了分層原則
  3. 它違反了端到端原則,即主機之間應相互直接通訊

2.UPnP

UPnP指的是通用即插即用,它可以用來支援NAT穿越。它要求主機和NAT是UPnP相容的。使用它時,在一臺主機上執行的應用程式能夠為某些請求的公告埠號請求一個NAT對映,該對映位於(私有IP地址,私有埠號)和(公共IP地址,公共埠號)之間。如果NAT接受了這個請求,並且聲稱該對映,則來自外部的節點就能夠發起到(公共IP地址,公共埠號)的TCP連線。

三、ICMP

ICMP是(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制訊息。控制訊息是指網路通不通、主機是否可達、路由是否可用等網路本身的訊息。這些控制訊息雖然並不傳輸使用者資料,但是對於使用者資料的傳遞起著重要的作用。
ICMP屬於網路層協議,它提供一致易懂的出錯報告資訊。傳送的出錯報文返回到傳送原資料的裝置,因為只有傳送裝置才是出錯報文的邏輯接受者。傳送裝置隨後可根據ICMP報文確定發生錯誤的型別,並確定如何才能更好地重發失敗的資料包。但是ICMP唯一的功能是報告問題而不是糾正錯誤,糾正錯誤的任務由傳送方完成。
ICMP報文如下: ICMP報文可以分為兩大類:ICMP查詢報文和ICMP差錯報文。 對於ICMP差錯報文,ICMP報文總是會包含引起該ICMP報文首次產生的IP資料報的首部和前8位元組的內容,而且以下情形不會產生ICMP差錯報文:
  1. ICMP差錯報文。
  2. 的地址是廣播地址或多播地址的IP資料報。
  3. 作為鏈路層廣播的資料報。
  4. 不是IP分片的第一片。
  5. 源地址不是單個主機的資料報。這就是說,源地址不能為零地址、環回地址、廣播地址或多播地址。
ICMP查詢報文被用來查詢網路相關的一些資訊,比如回顯應答和請求(ping),路由器請求和通告,時間戳等。

四、IPv6

現在廣泛使用的IP技術是IPv4,它存在一些問題:
  1. 地址空間的侷限性: I P地址空間的危機由來已久,並正是升級的主要動力。
  2. 效能:儘管I P表現得不錯,一些源自2 0年甚至更早以前的設計還能夠進一步改進。
  3. 安全性:安全性一直被認為是由網路層以上的層負責,但它現在已經成為IP的下一個版本可以發揮作用的地方。
  4. 自動配置:對於I P v 4節點的配置一直比較複雜,而網路管理員與使用者則更喜歡“即插即用”,即:將計算機插在網路上然後就可以開始使用。I P主機移動性的增強也要求當主機在不同網路間移動和使用不同的網路接入點時能提供更好的配置支援。
這些問題是IP升級的動力,下一代的IP技術室IP版本6即IPv6。 相對於IPv4,IPv6的變化主要包括:
  • 擴充套件地址。地址擴充套件到了128位元,地址空間增大了2的96次方倍。
  • 簡化頭格式。欄位只有8個,加快報文轉發,提高了吞吐量。
  • 增強對於擴充套件和選項的支援。可以支援更多的服務,也簡化了報文轉發的處理。
  • 流標記。路由器需要對流進行跟蹤並保持一定的資訊,這些資訊在流中的每個包中都是不變的。這種方法使路由器可以對流中的包進行高效處理。
  • 身份驗證和保密。身份認證和隱私權是IPV6的關鍵特性。

1.IPv6頭部

IPv6頭部如下圖所示:
  • 版本。長度為4位,對於IPv6,該欄位必須為6。
  • 類別。長度為8位,指明為該包提供了某種“區分服務”。該欄位的定義獨立於IPv6,目前尚未在任何RFC中定義。該欄位的預設值是全0。
  • 流標籤。長度為20位,用於標識屬於同一業務流的包。一個節點可以同時作為多個業務流的傳送源。流標籤和源節點地址唯一標識了一個業務流。
  • 淨荷長度。長度為16位,其中包括包淨荷的位元組長度,即IPv6頭後的包中包含的位元組數。這意味著在計算淨荷長度時包含了IPv6擴充套件頭的長度。
  • 下一個頭。這個欄位指出了IPv6頭後所跟的頭欄位中的協議型別。與IPv6協議欄位類似,下一個頭欄位可以用來指出高層是TCP還是UDP,但它也可以用來指明IPv6擴充套件頭的存在。
  • 跳極限。長度為8位。每當一個節點對包進行一次轉發之後,這個欄位就會被減1。如果該欄位達到0,這個包就將被丟棄。
  • 源地址。長度為128位,指出了IPv6包的傳送方地址。
  • 目的地址。長度為128位,指出了IPv6包的接收方地址。這個地址可以是一個單播、多播或任意點播地址。如果使用了選路擴充套件頭(其中定義了一個包必須經過的特殊路由),其目的地址可以是其中某一箇中間節點的地址而不必是最終地址。
與IPv4相比的變化有:
  1. 包頭長度不存在了因為IPv6的頭是固定長度。
  2. 服務型別欄位變成了流類別。
  3. 資料報長度變成了淨荷長度。IPv6的淨荷長度中包含了擴充套件頭,而IPv4資料報長度欄位中則指明包含包頭在內的整個資料報的長度。因而在IPv4中,路由器需要將資料報長度減去包頭長度來計算包的淨荷長度,而在IPv6中則無須這種計算。
  4. 資料報ID,標識和標誌三個欄位被刪除了,因為它們在IPv4中用於資料報分片,但是IPv6中分片通過分片擴充套件頭來實現而且必須在源裝置完成。
  5. 生存欄位變成了跳極限,使用方式類似
  6. 協議欄位變成了下一個頭。v4中協議欄位用來指示高層的協議類別,但是這裡的下一個頭可以用來指示擴充套件頭或者高層協議頭。
  7. 頭部校驗和被刪除,因為由於如TCP和UDP等高層協議均計算頭的校驗和, IPv4頭校驗顯得有些多餘,因此這個欄位在IPv6中已消失。對於那些真的需要對內容進行身份驗證的應用, IPv6中提供了身份驗證頭。
  8. 源目地址被擴充套件到了128位元。

2.編址

1.地址表達方式

IPv6地址長度4倍於IPv4地址,表達起來的複雜程度也是IPv4地址的4倍。IPv6地址的基本表達方式是X:X:X:X:X:X:X:X,其中X是一個4位十六進位制整數(16位)。每一個數字包含4位,每個整數包含4個數字,每個地址包括8個整數,共計128位(4×4×8=128)。例如,下面是一些合法的IPv6地址:
CDCD:910A:2222:5498:8475:1111:3900:2020
1030:0:0:0:C9B4:FF12:48AA:1A2B
2000:0:0:0:0:0:0:1
請注意這些整數是十六進位制整數,其中A到F表示的是10到15。地址中的每個整數都必須表示出來,但起始的0可以不必表示。這是一種比較標準的IPv6地址表達方式,此外還有另外兩種更加清楚和易於使用的方式。
某些IPv6地址中可能包含一長串的0(就像上面的第二和第三個例子一樣)。當出現這種情況時,標準中允許用“空隙”來表示這一長串的0。換句話說,地址
2000:0:0:0:0:0:0:1
可以被表示為:
2000::1
這兩個冒號表示該地址可以擴充套件到一個完整的128位地址。在這種方法中,只有當16位組全部為0時才會被兩個冒號取代,且兩個冒號在地址中只能出現一次。
在IPv4和IPv6的混合環境中可能有第三種方法。IPv6地址中的最低32位可以用於表示IPv4地址,該地址可以按照一種混合方式表達,即X:X:X:X:X:X:d.d.d.d,其中X表示一個16位整數,而d表示一個8位十進位制整數。例如,地址
0:0:0:0:0:0:10.0.0.1
就是一個合法的IPv4地址。把兩種可能的表達方式組合在一起,該地址也可以表示為:
::10.0.0.1
由於IPv6地址被分成兩個部分—子網字首和介面識別符號,因此人們期待一個IP節點地址可以按照類似CIDR地址的方式被表示為一個攜帶額外數值的地址,其中額外數值指出了地址中有多少位是掩碼。即,IPv6節點地址中指出了字首長度,該長度與IPv6地址間以斜槓區分,例如:
1030:0:0:0:C9B4:FF12:48AA:1A2B/60
這個地址中用於選路的字首長度為60位。
IPv6128位元地址空間的劃分如下圖:

2.定址模型

IPv6定址模型與IPv4很相似。每個單播地址標識一個單獨的網路介面。IP地址被指定給網路介面而不是裝置,因此一個擁有多個網路介面的裝置可以具備多個IPv6地址,其中任何一個IPv6地址都可以代表該裝置。儘管一個網路介面能與多個單播地址相關聯,但一個單播地址只能與一個網路介面相關聯。每個網路介面必須至少具備一個單播地址。
這裡有一個非常重要的宣告和一個非常重要的例外。這個宣告與點到點鏈路的使用有關。在IPv4中,所有的網路介面,其中包括連線一個裝置與路由器的點到點鏈路(用許多撥號Internet連線中),都需要一個專用的IP地址。隨著許多機構開始使用點到點鏈路來連線其分支機構,每條鏈路均需要其自己的子網,這樣一來消耗了許多地址空間。在IPv6中,如果點到點鏈路的任何一個端點都不需要從非鄰居裝置接受和傳送資料的話,它們就可以不需要特殊的地址。即,如果兩個裝置主要是傳遞業務流,則它們並不需要具備IPv6地址。
為每個網路介面分配一個全球唯一的單播地址的要求阻礙了IPv4地址的擴充套件。一個提供通用服務的伺服器在高需求量的情況下可能會崩潰。因此,IPv6地址模型中又提出了一個重要的例外:如果硬體有能力在多個網路介面上正確地共享其網路負載的話,那麼多個網路介面可以共享一個IPv6地址。這使得從伺服器擴充套件至負載分擔的伺服器群成為可能,而不再需要在伺服器的需求量上升時必須進行硬體升級。

3.地址型別

IPv6地址有三種類型:單播、多播和任意點播。廣播地址已不再有效。RFC 2373中定義了三種IPv6地址型別:
  • 單播:一個單介面的識別符號。送往一個單播地址的包將被傳送至該地址標識的介面上。
  • 泛播:一組介面(一般屬於不同節點)的識別符號。送往一個泛播地址的包將被傳送至該地址標識的介面之一(根據選路協議對於距離的計算方法選擇“最近”的一個)。
  • 多播:一組介面(一般屬於不同節點)的識別符號。送往一個多播地址的包將被傳送至有該地址標識的所有介面上。

1.單播

單播地址標識了一個單獨的IPv6介面。一個節點可以具有多個IPv6網路介面。每個介面必須具有一個與之相關的單播地址。單播地址可被認為包含了一段資訊,這段資訊被包含在128位欄位中:該地址可以完整地定義一個特定的介面。此外,地址中資料可以被解釋為多個小段的資訊。但無論如何,當所有的資訊被放在一起後,將構成標識一個節點介面的128位地址。
IPv6地址本身可以為節點提供關於其結構的或多或少的資訊,這主要根據是由誰來觀察這個地址以及觀察什麼。例如,節點可能只需簡單地瞭解整個128位地址是一個全球唯一的識別符號,而無須瞭解節點在網路中是否存在。另一方面,路由器可以通過該地址來決定,地址中的一部分標識了一個特定網路或子網上的一個唯一節點。
RFC 2373定義的IPv6單播地址格式如下:
IPv6單播地址包括下面幾種型別:
  • 可集聚全球地址。
  • 未指定地址或全0地址。
  • 回返地址。
  • 嵌有IPv4地址的IPv6地址。
  • 基於供應商和基於地理位置的供應商地址。
  • OSI網路服務訪問點(NSAP)地址。
  • 網路互聯包交換(IPX)地址。

2.多播

多播用於標識一組節點,它的工作過程是:當裝置預訂多播地址時,它宣告要成為多播的一個成員。於是任何本地路由器將以該節點的名義預訂多播地址。同一網路上的其他裝置要傳送資訊到該多播地址時,IP多播包將被封裝到鏈路層多播資料傳輸單元中。併發送給裝置。 IPv6多播地址格式如下圖:
多播地址只能用作目的地址,沒有資料報把多播地址用作源地址。地址格式中的第1個位元組為全“1”,標識其為多播地址。多播地址佔了IPv6
地址空間的整整1/256。多播地址格式中除第1位元組外的其餘部分,包括如下三個欄位:
  • 標誌欄位:由4個單個位標誌組成。從左到右分別為:
    • 最高位為保留位,必須為 0。
    • R 位取0 表示非內嵌RP 的組播地址;取1 則表示內嵌RP 的組播地址,此時P、T 位也必須置1。
    • P 位取0 表示非基於單播字首的組播地址;取1 則表示基於單播字首的組播地址,此時T 位也必須置1。
    • T 位取0 表示永久分配組播地址;取1 則表示非永久分配的組播地址。
  • 範圍欄位:長4位,用來表示多播的範圍。即,多播組是隻包括同一本地網、同一站點、同一機構中的節點,還是包括IPv6全球地址空間中任何位置的節點。該4位的可能值為0~15,
  • 組識別符號欄位:長112位,用於標識多播組。根據多播地址是臨時的還是熟知的以及地址的範圍,同一個多播識別符號可以表示不同的組。永久多播地址用指定的賦予特殊含義的組識別符號,組中的成員既依賴於組識別符號,又依賴於範圍。
多播範圍取值及其意義如圖:

3.泛播

多播地址在某種意義上可以由多個節點共享。多播地址成員的所有節點均期待著接收發給該地址的所有包。泛播地址與多播地址類似,同樣是多個節點共享一個泛播地址,不同的是,只有一個節點期待接收給泛播地址的資料報。
泛播對提供某些型別的服務特別有用,尤其是對於客戶機和伺服器之間不需要有特定關係的一些服務,例如域名伺服器和時間伺服器。名字伺服器就是個名字伺服器,不論遠近都應該工作得一樣好。同樣,一個近的時間伺服器,從準確性來說,更為可取。因此當一個主機為了獲取資訊,發出請求到泛播地址,響應的應該是與該泛播地址相關聯的最近的伺服器。
1.泛播地址的分配及其格式
泛播地址被分配在正常的IPv6單播地址空間以外。因為泛播地址在形式上與單播地址無法區分開,一個泛播地址的每個成員,必須顯式地加以配置,以便識別泛播地址。
2.泛播選路
一個泛播地址必定帶有一個選路項:該選路項包括一些指標,指向共享該泛播地址的所有節點的網路介面。這個資訊將被用於路由器的選路。

3.其它

類似於IPv4,IPv6也使用了ICMP和DHCP,這兩個協議都有對應於IPv6的版本。詳細的資訊可參考相關協議。