一、簡介
IPv4傳輸方式有三種:單播、組播、廣播
- 單播:信息源為每個需要信息的主機都發送一份獨立的報文
- 組播:信息源將保溫發送到一個特定的組播IP地址,只有加入了這個組的主機才能接收
- 廣播:信息源將信息發送給網段中的所有主機,而不管其是否需要該信息
組播適用於任何"點到多點"的數據發布
- 網絡直播
- 視頻會議
- 網絡電視
組播相比於單播和廣播有如下優勢
- 相比單播,不需要將同一份信息復制幾份發給不同的目的主機,所以用戶的增加不會導致信息源負載的加重以及網絡資源消耗的增加
- 相比廣播,由於被傳遞的信息只會發送給需要該信息的接收者,所以不會造成網絡資源的浪費,並且能提高信息傳輸的安全性
組播的特點
- 無重復流量
- 高效實現為同一組用戶提供相同的數據通信
實現組播的協議
IGMP:運行在用戶和組播路由器之間,建立和維護組播組成員關系
PIM SM/PIM DM:協議無關組播,運行在組播路由器之間。
二、組播基本概念
組播組
用IP組播地址表示的一個集合
任何用戶主機,加入一個組播組,就成為該組成員,可以識別並接受發往該組播組的組播數據
組播源
信息的發送者
一個組播源可以同時向多個組播組發送數據,多個組播源也可以先同一個組播組發送數據
組播源通常不需要加入組播組,由源測DR負責管理組播源的注冊
組播組成員
所有加入某個組播組的主機便成為該組播組成員
組播組中的成員是動態的,主機可以在任何時刻加入或者離開組播組
組播組成員可以廣泛分布在網絡中的任何地方
組播路由器
支持三層組播功能的路由器或交換機
提供組播路由功能(PIM);在用戶鏈接的末梢網段上管理組播組成員(IGMP)
電視節目傳輸過程 | 組播傳遞過程 |
---|---|
電視台向頻道發送數據 | 組播源向組播組發送數數據 |
觀眾打開電視機選擇這個頻道 | 接收者主機加入該組播組 |
電視台播放該頻道電視節目 | 接收者主機收到發送給這個組播組的數據 |
觀眾可以隨時控制電視機的開關和頻道切換 | 接收者主機可以動態加入或者退出組播組、更換加入的組播組 |
電視台=組播源;頻道=組播組;觀眾=組播組成員;
三、組播服務模型
組播服務模型的分類是針對接收者主機的,對組播源來說沒有區別(組播源發出的組播數據是以組播源自己的IP為報文源地址、組播組地址為目的地址)
兩種模型:ASM,SSM
兩種服務模型默認使用不同的組播組地址范圍
ASM模型(Any-Source Multicast)
接收者主機加入組播組后可以接收任意源發送到該組的數據
- IGMPv1/v2、MLDv1/v2
ASM地址=任意源+組播組地址 (*,G)
要求組地址必須整個組播網絡中"唯一"
- 唯一是指在同一時刻一個ASM地址只能被一種組播應用使用
- 如果在同一時刻有兩個或者多個不同應用使用同一個ASM地址發送數據。會導致它們的接收者會受到來自兩個源的數據,數據會混亂,也會導致網絡擁塞
SSM模型(Source-Specific Multicast)
接收者主機加入組播組后可以接受特定源發送到該組的數據
- IGMPv3
SSM地址=組播源IP+組播組地址 (S,G)
不要求組地址全網唯一,需要每個組播源保持”唯一“
- 唯一是指同一個源上不同的組播應用必須使用不同的SSM地址來區分
- 不同的組播源之間可以使用相同的組地址,因為SSM模型針對每個(S,G)信息都會生產表項。節省組播組地址、不會造成網絡擁塞
四、組播地址
為了使組播源和組播組成員進行通信,需要提供網絡層組播,使用IP組播地址
為了在本地物理網絡上實現組播信息的正確傳輸,需要提供鏈路層組播,使用組播MAC地址。
組播數據傳輸時,目的地不是一個具體的接收者(所以不能使用設備的MAC地址),而是一個成員組,所以需要一種技術將IP組播地址映射為組播MAC地址
IPv4組播地址
IANA將D類地址空間分配給IPv4組播使用
D類地址高四位為 1110
地址范圍:224.0.0.0----239.255.255.255
分為永久組播地址和臨時組播地址
- 永久組播地址:224.0.0.0---224.0.0.255
- 臨時組播地址
- ASM模型
- 公有地址:224.0.1.0---231.255.255.255;233.0.0.0---238.255.255.255
- 私有地址:239.0.0.0---239.255.255.255
- SSM模型:232.0.0.0----232.255.255.255
- ASM模型
具體划分如下表:
地址范圍 | 含義 |
---|---|
224.0.0.0--224.0.0.255 | 永久組播地址(為特定協議分配) |
224.0.1.0---231.255.255.255;233.0.0.0---238.255.255.255 | ASM組播地址(ASM模型公有地址),全網范圍內有效 |
232.0.0.0---232.255.255.255 | 缺省情況下的SSM組播地址,全網范圍內有效 |
239.0.0.0---239.255.255.255 | 本地管理組地址(ASM模型私有地址),僅在本地管理域內有效。在不同的管理域內重復使用相同的本地管理組地址不會沖突 |
常見的永久組地址(224.0.0.0--224.0.0.255)
永久組地址 | 含義 |
---|---|
224.0.0.1 | 網段內所有主機和路由器(等效於廣播地址) |
224.0.0.2 | 所有組播設備 |
224.0.0.5 | 運行OSPF的設備 |
224.0.0.6 | OSPF DR和BDR |
224.0.0.9 | 運行RIPv2的設備 |
224.0.0.13 | 運行PIM協議的設備 |
224.0.0.18 | 運行VRRP的設備 |
224.0.0.22 | 所有是能IGMPv3的設備 |
224.0.0.19---224.0.0.21;224.0.0.23---224.0.0.255 | 未指定 |
IPv4組播MAC地址
IANA規定組播MAC地址前24bit為01-00-5e,第25bit固定為0,剩余的23bit由組播IP地址后23bit填充
存在32個組播IP地址映射同一個組播MAC,轉發時需要拆包到IP層查看DIP不是自己才會丟棄
- 解決
- 規划時避免
- IGMP-snooping技術
IPv6組播地址
IPv6地址長度128位
和IPv4組播地址相比,IPv6組播地址有了明確的Group id字段用於標識組播組
IPv6組播地址格式:
FF(8bit) + flags(4bit) + Scope(4bit) + Group ID(112bit)
-
FF:最高8位為11111111,表示此地址為組播地址。IPv6組播地址總是以FF開頭
-
Flags字段:用來標識組播地址的狀態
-
取值 含義 0 永久組播地址(為特定協議分配) 1 臨時組播地址,ASM范圍的組播地址 2 臨時組播地址,ASM范圍的組播地址 3 臨時組播地址,SSM范圍的組播地址 其他 未分配
-
-
Scope字段:用來標識組播組的應用范圍
-
取值 含義 1 接口/節點本地范圍(node/interface-local scope) 2 鏈路本地范圍(link-local scope) 4 管理本地范圍(admin-local scope) 5 站點本地范圍(site-local scope)。類似IPv4用於私網的組播地址 8 機構本地范圍(organization-local scope) E 全球范圍(global scope)。類似IPv4用於公網的組播地址
-
-
Group ID:組播組標識號
IPv6常用的組播地址范圍及含義
范圍 | IPv6組播地址 | 含義 |
---|---|---|
節點本地范圍 | FF01::1 | 所有節點地址 |
FF01::2 | 所有路由器地址 | |
鏈路本地范圍 | FF02::1 | 網段內所有IPv6主機和路由器地址(等效廣播地址) |
FF02::2 | 所有路由器地址 | |
FF02::5 | OSPFv3 IGP router | |
FF02::6 | OSPFv3 IGP DR | |
FF02::9 | RIP路由器 | |
FF02::d | 所有PIM路由器 | |
站點本地范圍 | FF05::2 | 所有路由器地址 |
FF05::1:3 | 所有DHCP服務器 | |
FF::1:4 | 所有DHCP中繼 |
IPv6組播MAC地址
IPv6組播MAC地址的高16位為 0x3333,剩下的32位為IPv6組播地址的低32位
IPv6的組播地址會有更多的組地址使用用一個MAC地址
IPv6地址高8位固定;128-8-32=88,有2^88個IPv6組播MAC地址重復
五、組播協議
在IP組播傳輸模型中,發送者不關心接收者所處的位置,只要將數據發送到約定的目的地址(目的地一般是組播路由器、RP路由器),剩下的工作交給網絡中完成。
網絡中的組播路由器必須收集接收者信息,並按照正確的路徑實現組播報文的轉發和復制。在組播的發展過程中,形成了一套完整的協議來完成
IPv4組播協議
1.組播組管理協議IGMP
Internet Group Management Protocol
- 負責IPv4組播成員管理,運行在組播網絡的末節
- 管理與維護組播組成員的加入與離開,同時支持與上層組播路由協議的信息交互
- IGMPv1、IGMPv2、IGMPv3(可直接應用於SSM模型)
2.協議無關組播協議PIM
Protocol Independent Multicast
- IPv4網絡組播路由協議
- 實現組播數據的路由查找和轉發,將網絡中的組播數據流發送到有組播數據請求的末節設備
- PIM-DM(稀疏模式)、PIM-SM(密集模式)
- 稀疏和密集指的是,組成員相對分散或者集中
3.組播源發現協議MSDP
Multicast Source Discovery Protocol
- 解決多個PIM-SM與之間互聯的一種域間組播協議,用以發現其他PIM-SM域內的組播源信息
- 實現組播報文的跨域轉發,將遠端域內的活動信息源傳遞給本地域內的接收者
- 只有PIM-SM使用ASM模型時才可用
4.組播邊界網關協議MBGP
MultiProtocol Border Gateway Protocol
- 實現跨AS域的組播轉發
- 適用於組播源於組播接受者不在同一個AS域內
5.IGMP Snooping
- 偵聽上游三層設備和用戶主機之間IGMP報文建立組播數據報文的二層轉發表
- 有效抑制組播數據在二層網絡中擴散
IPv6組播協議
1.組播偵聽發現協議MLD
Multicast Listener Discovery
- IPv6組播成員管理,運行在組播網絡末節
- 在三層設備上維護與管理組播成員的加入與離開
- MLDv1、MLDv2(可直接運用於SSM模型)
2.PIM(IPv6)
- IPv6網絡組播路由協議
- 實現組播數據的路由查找和轉發,將網絡中的組播數據流發送到有組播數據請求的末節設備
3.MLD Snooping
與IGMP snooping 基本一致