組播基礎

一、組播的應用背景

在交換機中有三種通信方式:單播(unicast)、廣播(broadcast)、組播(multicast)

單播解決了點對點通信的需求;

廣播是點對多點的通信,其存在兩個缺點:

1)只能在同一網段內實現廣播;

2)不能指定目的主機,所有網段內的主機都將收到廣播報文,存在帶寬浪費。

組播也是點對多點的通信,完全克服了廣播的兩個缺點,廣泛應用在網絡電視、在線直播、遠程教育、視頻會議等對帶寬和數據交互實時性較高的信息服務。

二、組播基本概念

組播源(source):信息的發送者,不是組播組成員。

組播組:接收者的集合,使用一個組播IP地址來標示。

(*, G):表示共享樹(共享的意思是多個源共享一棵樹),或由任意組播源發往組播組G的組播報文,“*”表示任意組播源,G表示特定組播組G。

(S, G)表示“組播源組”,通常表示最短路徑樹,或有組播源S發往組播組G的組播報文。

ASM(any source multicast)模型:任意源組播模型,任意一個發送者都可以作爲組播源向某組播組地址發送信息。

SSM(source specific multicast)模型:通過在客戶端指定組播源,而不接收其它源發送的信息。

L2組播:組播報文在L2層傳輸,稱爲“二層組播”,相應的組播協議稱爲“二層組播協議”,包括IGMPSnooping/MLD Snooping

L3組播:組播報文在L3層傳輸,稱爲“三層組播”,相應的組播協議稱爲“三層組播協議”,包括IGMP/MLD、PIM等。

組播IP地址:標準組織將D類地址空間分配給IPv4組播使用,範圍224.0.0.0~239.255.255.255

IPv4組播地址範圍和含義

地址範圍

意義

參考

224.0.0.0~224.0.0.255

永久組地址,供路由協議、拓撲查找、協議維護使用

224.0.0.0  保留,不使用

224.0.0.1  所有系統,包括主機、路由器

224.0.0.2  所有組播路由器

224.0.0.5  OSPF路由器

224.0.0.13 所有PIM路由器

224.0.1.0~238.255.255.255

用戶組地址,全網有效

232.0.0.0/8 SSM組地址

239.0.0.0~239.255.255.255

本地管理組地址,僅在本地域內有效,實現IP組播在不同私網的地址複用

可以用192.168.0.0類比,用在私網的組播地址


組播MAC地址:組播報文的目的地是一組不確定的成員,因此使用特殊的組播MAC地址。

IPv4組播MAC地址的高24位爲0x01005E,第25位爲0,低23位爲組播IP地址的低23位。IP和MAC的映射關係:


注意:

一個組播組可以有多個組播源,一個組播源也可以向多個組播組傳輸信息。比如CCTV是一個組播組,CCTV-1、CCTV-5就是不同的組播源

爲了減少帶寬資源的消耗,組播源發送的報文,在距離組播源儘可能遠的網絡節點纔開始被複制和分發。


組播各協議適用範圍


三、組播路由協議

組播路由協議運行在三層組播設備之間,用於建立和維護組播路由,並正確、高效地轉發組播數據包。組播路由建立了從一個數據源端到多個接收端的無環(loop-free)數據傳輸路徑,即組播分發樹。

PIM協議無關組播(ProtocolIndependent Multicast):與單播路由協議無關,但事實上還是依靠單播路由建立組播路由。PIM使用RPF (reverse path forwarding,逆向路徑轉發)實現對組播報文的轉發。當組播報文到達本地設備時,首先對其進行RPF檢查:若RPF檢查通過,則創建相應的組播路由表項,從而進行組播報文的轉發;若RPF檢查失敗,則丟棄該報文。

根據實現機制的不同,PIM分爲以下兩種模式:

PIM-DM(ProtocolIndependent Multicast-Dense Mode,協議無關組播—密集模式)

PIM-SM(ProtocolIndependent Multicast-Sparse Mode,協議無關組播—稀疏模式)

組播路由表項的四要點:“組播源”、“組播組”、“到組播源的接口”、“出接口列表”

 

3.1 PIM-DM

3.1.1實現原理:

1)  將組播數據flooding到網絡的所有節點

2)  對沒有組播數據轉發的分支進行“剪枝”(prune),只保留包含接收者的分支

3)  週期性重複“擴散-剪枝”

4)  當被剪枝的分支上出現組播組成員時,爲了減少該節點恢復成轉發狀態的時間,適用“嫁接”(graft)恢復對組播數據的轉發

3.1.2應用場景

       PIM-DM屬於密集模式,適用於規模較小、組成員密集的局域網內。

3.2 PIM-SM

3.2.1實現原理

       1)PIM-SM假設所有主機都不需要接收組播報文。

       2)設定根節點RP(Rendezvous Point)路由器,所有組播數據通過RP轉發

       3)連接接收者的路由器向組播組對應的RP發送加入報文,該報文逐條發送到RP,所經過的路徑就是組播轉發路徑

       4)組播源向RP註冊,發送組播數據,RP沿着組播轉發路徑(RPT)轉發報文。

 

3.2.2應用場景

PIM-SM屬於稀疏模式,適用於範圍廣、組播成員分散的大型網絡中,比如Internet。

 

3.3 RPF機制

組播路由協議依賴於已有的單播路由信息來創建組播路由表項。在創建組播路由表項時,使用RPF檢查機制,以確保組播數據能夠沿着正確的路徑傳輸,避免環路。

3.3.1實現原理

執行RPF的依據是單播路由、MBGP路由、組播靜態路由

l  單播路由表中提供了到達各個目的網段的最短路徑

l  MBGP路由表直接提供了組播路由信息

l  組播靜態路由表中列出了用戶通過手工靜態配置的RPF路由信息。

執行過程:

1)  以SIP爲目的地址查找單播路由表,對應表項的出接口RPF接口,下一跳是RPF鄰居。從RPF鄰居發出且由RPF接口收到的組播報文的路徑是從source到本地的最短路徑。

2)  以SIP爲目的地址查找MBGP路由表,對應表項中的出接口爲RPF接口,下一跳爲RPF鄰居

3)  以SIP未目的地址查找組播靜態路由表,對應表項明確了RPF接口和RPF鄰居。

4)  按最長匹配算法,從以上路由條目中選舉出最佳路由,如果掩碼一樣,則按組播靜態路由、MBGP路由、單播路由的優先級選擇

四、IGMP組播組控制協議

IGMP(internetgroup management protocol, 因特網組管理協議)協議運行於主機和主機相連的組播路由器之間,用於管理多播組成員。實現兩個功能:

1)  主機通過IGMP通知路由器希望接收某個特定組播組的信息;

2)  路由器通過IGMP週期性地查詢局域網內的組播組成員是否處於活動狀態,實現所連網段組成員關係的收集與維護。

通過IGMP,在路由器中記錄的信息是某個組播組是否在本地有組成員,而不是組播組與主機之間的對應關係。

目前IGMP有以下三個版本:

1)IGMPv1(RFC 1112)中定義了基本的組成員查詢和報告過程;

2)IGMPv2(RFC 2236)在IGMPv1的基礎上添加了組成員快速離開的機制等;

3)IGMPv3(RFC 3376)中增加的主要功能是成員可以指定接收或拒絕來自某些組播源的報文,以實現對SSM模型的支持。

 IGMPv2報文格式

4.2工作機制

1)查詢器週期性地發送普遍組查詢消息進行成員關係查詢,主機通過發送報告消息來響應查詢

2)當主機要加入組播組時,不必等待查詢消息,而是主動發送報告消息

3)當主機要離開組播組時,也會主動發送離開組消息,查詢器收到離開組消息後,會發送特定組查詢消息來確定該組的所有組成員是否都已離開。

通過上述機制,在路由器裏建立起一張表,其中記錄了路由器各接口所對應子網上都有哪些組的成員。當路由器收到發往組G的組播數據後,只向那些有G的成員的接口轉發該數據。至於組播數據在路由器之間如何轉發則由組播路由協議決定,而不是IGMP的功能。

 

 

五、IGMPsnooping協議

IGMP是針對IP層設計的,只能記錄路由器上的三層接口與IP組播地址的對應關係。在經過二層交換機時,由於沒有組播成員和對應端口的映射關係,組播報文需要進行廣播,浪費大量的系統資源。IGMP Snooping就是爲了解決這個問題,減少在鏈路層的流量。

5.1工作原理

主機發往IGMP查詢器的報告消息經過交換機時,交換機對這個消息進行監聽並記錄下來,爲端口和組播MAC地址建立起映射關係;當交換機收到組播數據時,根據這樣的映射關係,只向連有組成員的端口轉發組播數據。

IGMPsnooping實質是運行在二層設備上的進程,它沒有協議報文,通過監視IGMP的報文來構建二層組播轉發表。


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