1. 程式人生 > >第11章 拾遺4:IPv6(1)_報文格式和地址型別

第11章 拾遺4:IPv6(1)_報文格式和地址型別

1. IPv4和IPv6協議棧的比較

(1)IPv6取代IPv4,支援IPv6的動態路由協議都屬於IPv6協議(如RIPng、OSPFv3)。

(2)Internet控制訊息協議IPv6版(ICMPv6)取代ICMP,它報告錯誤和其他資訊以幫助你診斷不成功的資料包傳送。其主要功能有鄰居發現、地址解析和路由器發現以及地址自動配置。

(3)鄰居發現(Neighbor Discovery, ND)協議取代ARP,它管理相鄰IPv6節點間的互動,包括自動配置地址和將一下躍點IPv6地址解析為MAC地址。

(4)多播偵聽器發現(Multicast Listener Discover, MLD)協議取代IGMP,它管理IPv6多播組成員身份。

2. IPv6報文格式

(1)擴充套件首部:

  ①版本(version):佔4位。它指明瞭協議的版本,對於IPv6該欄位為6。

  ②通訊量類(traffic class):佔8位。這是為了區分不同的IPv6資料報的類別或優先順序。目前正在進行不同的通訊量類效能的實驗。

  ③流標號(flow label):佔20位。所謂“流”是指網際網路從指定源點到終點的一系列資料報,所有屬於同一個流的資料報都具有同樣的流標號。用來標記那些需要IPv6路由器特殊處理(如一種非預設服務質量或實時服務)的資訊包順序。

  ④有效載荷長度(payload length):佔16位,它指明IPv6資料報除了基本首部以外的位元組數(所有擴充套件首部部都算在有效載荷之內

)。這個欄位最大值是64KB。

  ⑤下一個首部(next header):佔8位。相當於IPv4的協議欄位或可選欄位。當IPv6資料報沒有擴充套件首部時,“下一個首部”欄位的作用和IPv4協議欄位一樣,指明瞭基本首部後面的資料應交付IP上面的高層協議(如6或17分別表示交付給TCP或UDP)。如果有擴充套件首部其表示的含義因該欄位值有所不同,可參考後面的《擴充套件首部》的內容

  ⑥跳數限制(hop limit):佔8位。用來防止資料報在網路中無限期地存在,相當於IPv4中的TTL。源點在每個資料報發出時即設定某個跳數限制(最大為255跳)。每個路由器在轉發資料報時,要先把“跳數限制”欄位中的值減1.當跳數限制為0時,該資料報被丟棄。

  ⑦源地址:佔128位。是資料報傳送端的IPv6地址。

  ⑧目的地址:佔128位。是資料報的接收端的IPv6地址。

(2)擴充套件首部:

  ①類似於IPv4的選項部分。但IPv6將擴充套件首部留給路徑兩端的源點和終點來檢查,而沿途路由器不檢查擴充套件首部(逐跳選項例外。這有別於IPv4)從而大大提高路由器的處理效率RFC2460定義了六種擴充套件首部。每種擴充套件首部的含義由基本首部中的“下一個首部”的取值來定義。

下一個首部取值

含義

0

表示逐跳選項首部

43

表示路由選擇首部

44

表示分片首部

51

表示鑑別首部

50

表示封裝安全有效載荷首部

60

表示目的選項首部

  ②每一個擴充套件首部都由若干個欄位組成,它們的長度也各不相同。但所有擴充套件首部的第一個欄位都是8位的“下一個首部”欄位。此欄位的值指出了在該擴充套件首部後面的欄位是什麼。當使用多個擴充套件首部時,應按以上的先後順序出現。高層首部總是放在最後面

3. IPv6地址:長度128位

3.1 IPv6定址及表示式

(1)首選格式分8段,每段16位元,十六進位制表示,並使用冒號等間距分隔。例如。F00D:4598:7304:3210:FEDC:BA98:7654:3210

(2)壓縮格式:使用冒號(::)來取代一連串的0,注意在一個地址中只能出現一次雙冒號。如可將1080:0:0:0:8:8000:200C:417A表示為1080::8:8000:200C:417A。

(3)內嵌IPv4的IPv6地址:在IPv4和IPv6混合環境中,為實現IPv4和IPv6互通,可將IPv4嵌入到IPv6地址中。格式為:x:x:x:x:x:x:d.d.d.d(注意有6個x),前96位元採用冒分十六進位制表示,後32位元使用IPv4的點分十進位制表示。如0:0:0:0:0:0:192.168.0.1或者::192.168.0.1的壓縮形式

(4)“IPv6地址/字首長度”表示法。其中的“字首長度”是一個十進位制數,表示該地址字首。如F00D:4598:7304:3210:FEDC:BA98:7654:3210,其地址字首是64位,可以表示為F00D:4598:7304:3210:FEDC:BA98:7654:3210/64。

3.2 IPv6的地址型別

(1)單播地址(Unicast):點到點通訊時使用的地址。此地址僅標識一個介面,路由器負責把對單播地址傳送的資料報送到該介面上。

  ①全球單播地址:由全球路由字首(48位) + 子網(16位) + 介面ID(64位)構成。其中全球路由字首由ISP分配給站點,站點是子網的集合子網ID表示站點內子網的標符識,由站點管理員分層構建介面ID用來標識鏈路上的介面,在同一子網內是唯一的,一般在MAC(48位)中間插入FFFE構成只要最高3位是001打頭的都是全球單播地址,即2xxx::/64和3xxx::/64

  ②站點本地單播地址:站點本地地址用於不需要全球路由字首的站點內的定址。以FEC0開頭,格式如FEC0::SubnetID:InterfaceID。站點本地地址應在同一站點內使用。路由器不會轉發任何站點本地源地址或目標地址是站點外部地址的資料包。

  ③鏈路本地單播地址:自動配置的IPv6地址,該地址總是以FE80開頭,接下來的48位都設定為0,後面接64位的介面ID,即FE80::InterfaceID。鏈路本地地址用於在單個鏈路上對節點進行定址。來自或發往鏈路本地地址的資料包不會被路由器轉發相當於IPv4中的自動私有地址169.254.x.x

(2)多播地址(Multicast)

  ①一組介面的地址。當資料報的目的地址是多播地址時,路由器儘量將其傳送到該組的所有介面上。

  ②與 IPv4 不同,在IPV6 中沒有廣播地址,因為這一功能已被多播功能代替。信源利用多播功能只須生成一次報文即可將其分發給多個接收者,多播地址以FF開頭

(3)任播地址(Anycast)

  ①標識一組介面,它與多播地址的區別在於傳送資料報的方法。向任播地址傳送資料報並未分發給組內的所有成員,而是發往該地址標識的“最近的”那個介面。

  ②任播地址是從單播地址空間中分配,可使用單播地址的任何格式。因此,從語法上任播地址與單播地址沒有區別

  ③但一個單播地址被分配給多於一個介面時,就將其轉化為任播地址。被分配具有任播地址的節點必須得到明確的配置,從而知道它是一個任播地址。

3.3 IPv6中特殊的地址

(1)0:0:0:0:0:0:0:0等於::這是IPv4中的0.0.0.0的等價物。當向DHCPv6伺服器請求地址時,源地址就是0:0:0:0:0:0:0:0

(2)0:0:0:0:0:0:0:1等於::1這是IPv4中127.0.0.1環回地址的等價物

(3)0:0:0:0:0:0:192.168.100.1,這是在IPv6、IPv4混合網路環境中IPv4地址的表現式。

(4)2000::/3全球單播地址範圍,只要最高3位是001就是全球單播地址

(5)FF80::/10鏈路本地單播地址範圍

(6)FF00::/8,組播地址範圍

(7)3FFF:FFFF::/32和2001:0DB8::32,為示例和文件保留地址

(8)2002::/16用於IPv6到IPv4的轉換系統,這種結構允許IPv6包通過IPv4網路進行傳輸,無需顯式地配置隧道。