計算機網絡筆記23 IPv6、IP多播

IPv6

• 互聯網經過幾十年的飛速發展,到 2011 年 2 月,IPv4 的 32 位地址已經耗盡。
• ISP 已經不能再申請到新的 IP 地址塊了。
• 我國在 2014 – 2015 年也逐步停止了向新用戶和應用分配 IPv4 地址。
• 解決 IP 地址耗盡的問題的措施:
– 採用劃分子網和無類別編址 CIDR,使 IP 地址的分配更加合理
– 採用網絡地址轉換 NAT方法以節省全球 IP 地址
– 採用具有更大地址空間的新版本的 IP 協議 IPv6
• 解決 IP 地址耗盡的根本措施就是採用具有更大地址空間的新版本的 IP,即 IPv6。

IPv6 仍支持無連接的傳送,主要變化如下:
更大的地址空間:IPv6 將地址從 IPv4 的 32 位 增大到了 128 位
• 擴展的地址層次結構
• 靈活的首部格式: IPv6 定義了許多可選的擴展首部
• 改進的選項:IPv6 允許數據報包含有選項的控制信息,其選項放在有效載荷中
• 允許協議繼續擴充。
• 支持即插即用(即自動配置),因此 IPv6 不需要使用DHCP
• 支持資源的預分配:IPv6 支持實時視像等要求,保證一定的帶寬和時延的應用
IPv6 首部改爲 8 字節對齊

IPv6數據報的一般形式

• IPv6 數據報由兩大部分組成:
– 基本首部 (base header)
– 有效載荷 (payload)。有效載荷也稱爲淨負荷。有效載荷允許有零個或多個擴展首部 (extension header),再後面是數據部分。
在這裏插入圖片描述

IPv6的基本首部

• IPv6 將首部長度變爲固定的 40 字節,稱爲基本首部(base header)。
• 將不必要的功能取消了,首部的字段數減少到只有 8 個。
• 取消了首部的檢驗和字段,加快了路由器處理數據報的速度。
• 在基本首部的後面允許有零個或多個擴展首部。
• 所有的擴展首部和數據合起來叫做數據報的有效載荷(payload)或淨負荷

與IPv4數據報首部的對比

在這裏插入圖片描述

IPv6的報文

在這裏插入圖片描述
版本(version)—— 4 bit。它指明瞭協議的版本,對IPv6 該字段總是 6。
通信量類(traffic class)—— 8 bit。這是爲了區分不同的 IPv6 數據報的類別或優先級。目前正在進行不同的通信量類性能的實驗。
流標號(flow label)—— 20 bit。 “流”是互聯網絡上從特定源點到特定終點的一系列數據報。所有屬於同一個流的數據報都具有同樣的流標號。
有效載荷長度(payload length)—— 16 bit。它指明 IPv6 數據報除基本首部以外的字節數(所有擴展首部都算在有效載荷之內),其最大值是 64 KB。
下一個首部(next header)—— 8 bit。它相當於 IPv4 的協議字段或可選字段,表示對應的高層協議(無擴展首部時)或者第一個擴展首部的類型(有擴展首部時)。
跳數限制(hop limit)—— 8 bit。源站在數據報發出時即設定跳數限制。路由器在轉發數據報時將跳數限制字段中的值減1。當跳數限制的值爲零時,就要將此數據報丟棄。
源地址—— 128 bit。是數據報的發送站的 IP 地址。
目的地址—— 128 bit。是數據報的接收站的 IP 地址。

IPv6的擴展首部

• IPv6 把原來 IPv4 首部中選項的功能都放在擴展首部中,並將擴展首部留給路徑兩端的源站和目的站的主機來處理。
數據報途中經過的路由器都不處理這些擴展首部(只有一個首部例外,即逐跳選項擴展首部)。
• 這樣就大大提高了路由器的處理效率
在 RFC 2460 中定義了六種擴展首部:
(1) 逐跳選項
(2) 路由選擇
(3) 分片
(4) 鑑別
(5) 封裝安全有效載荷
(6) 目的站選項

每一個擴展首部都由若干個字段組成,它們的長度也各不相同。但所有擴展首部的第一個字段都是8位的“下一個首部”字段。此字段的值指出了在該擴展首部後面的字段是什麼。
在這裏插入圖片描述
以分片爲例
• IPv6 把分片限制爲由源站來完成,路由器不允許分片。
• 分片擴展首部的格式如下:
在這裏插入圖片描述

冒號十六進制記法

• 每個 16 bit 的值用十六進制值表示,各值之間用冒號分隔。
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
• 冒號十六進制記法可以允許零壓縮(zero compression),即一連串連續的零可以爲一對冒號所取代。
• FF05:0:0:0:0:0:0:B3 可以寫成:FF05::B3

任一地址中只能使用一次零壓縮!!!

點分十進制記法的後綴

• 冒號十六進制記法可結合使用點分十進制記法的後綴,這種結合在 IPv4 向 IPv6 的轉換階段特別有用。
• 例如: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 (零壓縮)

IPv6 地址分類

在這裏插入圖片描述
• 未指明地址
– 這是 16 字節的全 0 地址,可縮寫爲兩個冒號“::”。
– 這個地址只能爲還沒有配置到一個標準的 IP 地址的主機當作源地址使用。
– 這類地址僅此一個。
• 環回地址
– 即 0:0:0:0:0:0:0:1(記爲 ::1)。
– 作用和 IPv4 的環回地址一樣。
– 這類地址也是僅此一個。
• 多播地址
– 功能和 IPv4 的一樣。
– 這類地址佔 IPv6 地址總數的 1/256。
• 本地鏈路單播地址 (Link-Local Unicast Address)
– 有些單位的網絡使用 TCP/IP 協議,但並沒有連接到互聯網上。連接在這樣的網絡上的主機都可以使用這種本地地址進行通信,但不能和互聯網上的其他主機通信。
– 這類地址佔 IPv6 地址總數的 1/1024。
• 全球單播地址
– IPv6 的這一類單播地址是使用得最多的一類。
– 曾提出過多種方案來進一步劃分這 128 位的單播地址。
– 根據 2006 年發佈的草案標準 RFC 4291 的建議, IPv6 單播地址的劃分方法非常靈活。
在這裏插入圖片描述

向 IPv6 過渡的策略(雙協議棧、隧道技術)

• 向 IPv6 過渡只能採用逐步演進的辦法,同時,還必須使新安裝的 IPv6 系統能夠向後兼容:IPv6 系統必須能夠接收和轉發 IPv4 分組,並且能夠爲 IPv4 分組選擇路由。
• 兩種向 IPv6 過渡的策略: – 使用雙協議棧 – 使用隧道技術

雙協議棧
• 雙協議棧 (dual stack) 是指在完全過渡到 IPv6 之前,使一部分主機(或路由器)裝有兩個協議棧,一個 IPv4 和一個 IPv6。
• 雙協議棧的主機(或路由器)記爲 IPv6/IPv4,表明它同時具有兩種 IP 地址:一個 IPv6 地址和一個 IPv4 地址。
• 雙協議棧主機在和 IPv6 主機通信時是採用IPv6 地址,而和 IPv4 主機通信時就採用 IPv4 地址。
• 根據 DNS 返回的地址類型可以確定使用 IPv4 地址還是 IPv6 地址。
在這裏插入圖片描述
隧道技術
• 在 IPv6 數據報要進入 IPv4 網絡時,把 IPv6 數據報封裝成爲 IPv4 數據報,整個的 IPv6 數據報變成了 IPv4 數據報的數據部分。
• 當 IPv4 數據報離開 IPv4 網絡中的隧道時,再把數據部分(即原來的 IPv6 數據報)交給主機的 IPv6 協議棧。
在這裏插入圖片描述

IP多播

• IP 多播 (multicast,以前曾譯爲組播) 已成爲互聯網的一個熱門課題。
• 目的:更好第支持一對多通信
• 一對多通信:一個源點發送到許多個終點。
– 例如,實時信息的交付(如新聞、股市行情等),軟件更新,交互式會議及其他多媒體通信。

多播可大大節約網絡資源:
在這裏插入圖片描述
在這裏插入圖片描述
• 在互聯網上進行多播就叫做 IP 多播
• 互聯網範圍的多播要靠路由器來實現。
• 能夠運行多播協議的路由器稱爲多播路由器(multicast router)。當然它也可以轉發普通的單播IP數據報。
• 從 1992 年起,在互聯網上開始試驗虛擬的多播主幹網 MBONE (Multicast Backbone On the InterNEt)。 現在多播主幹網已經有了相當大的規模。

多播IP地址

• IP 多播所傳送的分組需要使用多播 IP 地址
• 在多播數據報的目的地址寫入的是多播組的標識符。
• 多播組的標識符就是 IP 地址中的 D 類地址(多播地址)。
• 每一個 D 類地址標誌一個多播組。
• 多播地址只能用於目的地址,不能用於源地址。

多播數據報

• 多播數據報和一般的 IP 數據報的區別就是它使用 D 類 IP 地址作爲目的地址,並且首部中的協議字段值是 2,表明使用網際組管理協議 IGMP
• 多播數據報也是“盡最大努力交付”,不保證一定能夠交付多播組內的所有成員。
• 對多播數據報不產生 ICMP 差錯報文。因此,若在 PING 命令後面鍵入多播地址,將永遠不會收到響應。

在局域網上進行硬件多播

• 互聯網號碼指派管理局 IANA 擁有的以太網地址塊的高 24 位爲 00-00-5E。
• 以太網多播地址塊的範圍是:
從 01-00-5E-00-00-00 到 01-00-5E-FF-FF-FF
在這裏插入圖片描述

地址的映射關係

• 由於多播 IP 地址與以太網硬件地址的映射關係不是唯一的,因此收到多播數據報的主機,還要在 IP 層利用軟件進行過濾,把不是本主機要接收的數據報丟棄。

IP多播需要的兩種協議

• 爲了使路由器知道多播組成員的信息,需要利用網際組管理協議 IGMP (Internet Group Management Protocol)。
• 連接在局域網上的多播路由器還必須和互聯網上的其他多播路由器協同工作,以便把多播數據報用最小代價傳送給所有的組成員。這就需要使用多播路由選擇協議

IGMP協議及其使用範圍

在這裏插入圖片描述
• IGMP 並非在互聯網範圍內對所有多播組成員進行管理的協議。
• IGMP 不知道 IP 多播組包含的成員數,也不知道這些成員都分佈在哪些網絡上。
• IGMP 協議是讓連接在本地局域網上的多播路由器知道本局域網上是否有主機(嚴格講,是主機上的某個進程)參加或退出了某個多播組。

IGMP與IP

• 和 ICMP 相似,IGMP 使用 IP 數據報傳遞其報文(即 IGMP 報文加上 IP 首部構成 IP 數據報),但它也向 IP 提供服務。
• 因此,我們不把 IGMP 看成是一個單獨的協議,而是屬於整個網際協議 IP 的一個組成部分。

IGMP工作的兩個階段

第一階段:加入多播組
– 當某個主機加入新的多播組時,該主機應向多播組的多播地址發送 IGMP 報文,聲明自己要成爲該組的成員。
– 本地的多播路由器收到 IGMP 報文後,將組成員關係轉發給互聯網上的其他多播路由器。
第二階段:探詢組成員變化情況
– 因爲組成員關係是動態的,因此本地多播路由器要週期性地探詢本地局域網上的主機,以便知道這些主機是否還繼續是組的成員。
只要對某個組有一個主機響應,那麼多播路由器就認爲這個組是活躍的
– 但一個組在經過幾次的探詢後仍然沒有一個主機響應,則不再將該組的成員關係轉發給其他的多播路由器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章