01-組播概述
本章節下載: 01-組播概述 (521.09 KB)
目 錄
作為一種與單播(Unicast)和廣播(Broadcast)並列的通信方式,組播(Multicast)技術能夠有效地解決單點發送、多點接收的問題,從而實現了網絡中點到多點的高效數據傳送,能夠節約大量網絡帶寬、降低網絡負載。
利用組播技術可以方便地提供一些新的增值業務,包括在線直播、網絡電視、遠程教育、遠程醫療、網絡電台、實時視頻會議等對帶寬和數據交互的實時性要求較高的信息服務。
如圖1-1所示,在IP網絡中若采用單播的方式,信息源(即Source)要為每個需要信息的主機(即Receiver)都發送一份獨立的信息拷貝。
假設Host B、Host D和Host E需要信息,則Source要與Host B、Host D和Host E分別建立一條獨立的信息傳輸通道。
采用單播方式時,網絡中傳輸的信息量與需要該信息的用戶量成正比,因此當需要該信息的用戶數量較大時,信息源需要將多份內容相同的信息發送給不同的用戶,這對信息源以及網絡帶寬都將造成巨大的壓力。
從單播方式的信息傳播過程可以看出,該傳輸方式不利於信息的批量發送。
如圖1-2所示,在一個網段中若采用廣播的方式,信息源(即Source)將把信息傳送給該網段中的所有主機,而不管其是否需要該信息。
假設隻有Host B、Host D和Host E需要信息,若將該信息在網段中進行廣播,則原本不需要信息的Host A和Host C也將收到該信息,這樣不僅信息的安全性得不到保障,而且會造成同一網段中信息的泛濫。
因此,廣播方式不利於與特定對象進行數據交互,並且還浪費了大量的帶寬。
綜上所述,傳統的單播和廣播的通信方式均不能以最小的網絡開銷實現單點發送、多點接收的問題,IP組播技術的出現及時解決了這個問題。
如圖1-3所示,當IP網絡中的某些主機(即Receiver)需要信息時,若采用組播的方式,組播源(即Source)僅需發送一份信息,借助組播路由協議建立組播分發樹,被傳遞的信息在距離組播源盡可能遠的網絡節點才開始複製和分發。
假設隻有Host B、Host D和Host E需要信息,采用組播方式時,可以讓這些主機加入同一個組播組(Multicast group),組播源向該組播組隻需發送一份信息,並由網絡中各路由器根據該組播組中各成員的分布情況對該信息進行複製和轉發,最後該信息會準確地發送給Host B、Host D和Host E。
綜上所述,組播的優勢歸納如下:
· 相比單播來說,組播的優勢在於:由於被傳遞的信息在距信息源盡可能遠的網絡節點才開始被複製和分發,所以用戶的增加不會導致信息源負載的加重以及網絡資源消耗的顯著增加。
· 相比廣播來說,組播的優勢在於:由於被傳遞的信息隻會發送給需要該信息的接收者,所以不會造成網絡資源的浪費,並能提高信息傳輸的安全性;另外,廣播隻能在同一網段中進行,而組播可以實現跨網段的傳輸。
組播傳輸的特點歸納如下:
· “組播組”是一個用IP組播地址進行標識的接收者集合,主機通過加入某組播組成為該組播組的成員,從而可以接收發往該組播組的組播數據。組播源通常不需要加入組播組。
· 信息的發送者稱為“組播源”,如圖1-3中的Source。一個組播源可以同時向多個組播組發送信息,多個組播源也可以同時向一個組播組發送信息。
· 所有加入某組播組的主機便成為該組播組的成員,如圖1-3中的Receiver。組播組中的成員是動態的,主機可以在任何時刻加入或離開組播組。組播組成員可以廣泛地分布在網絡中的任何地方。
· 支持三層組播功能的路由器或三層交換機統稱為“組播路由器”或“三層組播設備”。組播路由器不僅能夠提供組播路由功能,也能夠在與用戶連接的末梢網段上提供組播組成員的管理功能。組播路由器本身也可能是組播組的成員。
為了更好地理解,可以將組播方式的信息傳輸過程類比於電視節目的傳送過程,如表1-1所示。
步驟 |
電視節目的傳送過程 |
組播方式的信息傳輸過程 |
1 |
電視台S通過頻道G傳送電視節目 |
組播源S向組播組G發送組播數據 |
2 |
用戶U將電視機的頻道調至頻道G |
接收者U加入組播組G |
3 |
用戶U能夠收看到由電視台S通過頻道G傳送的電視節目了 |
接收者U能夠收到由組播源S發往組播組G的組播數據了 |
4 |
用戶U關閉電視機或切換到其它頻道 |
接收者U離開組播組G |
組播技術的優點主要在於:
· 提高效率:減輕信息源服務器和網絡設備CPU的負荷;
· 優化性能:減少冗餘流量;
· 分布式應用:使用最少的網絡資源實現點到多點應用。
組播技術主要應用於以下幾個方麵:
· 多媒體、流媒體的應用,如:網絡電視、網絡電台、實時視/音頻會議;
· 培訓、聯合作業場合的通信,如:遠程教育、遠程醫療;
· 數據倉庫、金融應用(股票);
· 其它任何“點到多點”的數據發布應用。
根據接收者對組播源處理方式的不同,組播模型分為ASM、SFM和SSM。
簡單地說,ASM(Any-Source Multicast,任意信源組播)模型就是任意源組播模型。
在ASM模型中,任意一個發送者都可以作為組播源向某個組播組地址發送信息,接收者通過加入由該地址標識的組播組,來接收發往該組播組的組播信息。
在ASM模型中,接收者無法預先知道組播源的位置,但可以在任意時間加入或離開該組播組。
SFM(Source-Filtered Multicast,信源過濾組播)模型繼承了ASM模型,從發送者角度來看,兩者的組播組成員關係完全相同。
SFM模型在功能上對ASM模型進行了擴展。在SFM模型中,上層軟件對收到的組播報文的源地址進行檢查,允許或禁止來自某些組播源的報文通過。因此,接收者隻能收到來自部分組播源的組播數據。從接收者的角度來看,隻有部分組播源是有效的,組播源被經過了篩選。
在現實生活中,用戶可能隻對某些組播源發送的組播信息感興趣,而不願接收其它組播源發送的信息。SSM(Source-Specific Multicast,指定信源組播)模型為用戶提供了一種能夠在客戶端指定組播源的傳輸服務。
SSM模型與ASM模型的根本區別在於:SSM模型中的接收者已經通過其它手段預先知道了組播源的具體位置。SSM模型使用與ASM/SFM模型不同的組播地址範圍,直接在接收者與其指定的組播源之間建立專用的組播轉發路徑。
IANA(Internet Assigned Numbers Authority,互聯網編號分配委員會)將D類地址空間分配給IPv4組播使用,範圍從224.0.0.0到239.255.255.255,具體分類及其含義如表1-2所示。
表1-2 IPv4組播地址的範圍及含義
地址範圍 |
含義 |
224.0.0.0~224.0.0.255 |
永久組地址。除224.0.0.0保留不做分配外,其它地址供路由協議、拓撲查找和協議維護等使用,常用的永久組地址及其含義如表1-3所示。對於以該範圍內組播地址為目的地址的數據包來說,不論其TTL(Time to Live,生存時間)值為多少,都不會被轉發出本地網段 |
224.0.1.0~238.255.255.255 |
用戶組地址,全網範圍內有效。包含兩種特定的組地址: · 232.0.0.0/8:SSM組地址 · 233.0.0.0/8:GLOP組地址 |
239.0.0.0~239.255.255.255 |
本地管理組地址,僅在本地管理域內有效。使用本地管理組地址可以靈活定義組播域的範圍,以實現不同組播域之間的地址隔離,從而有助於在不同組播域內重複使用相同組播地址而不會引起衝突。詳情請參見RFC 2365 |
GLOP是一種AS(Autonomous System,自治係統)之間的組播地址分配機製,將AS號填入該範圍內組播地址的中間兩個字節中,每個AS都可以得到255個組播地址。有關GLOP的詳細介紹請參見RFC 2770。
表1-3 常用永久組地址及其含義
永久組地址 |
含義 |
224.0.0.1 |
所有係統,包括主機與路由器 |
224.0.0.2 |
所有組播路由器 |
224.0.0.3 |
未分配 |
224.0.0.4 |
DVMRP(Distance Vector Multicast Routing Protocol,距離矢量組播路由協議)路由器 |
224.0.0.5 |
OSPF(Open Shortest Path First,開放最短路徑優先)路由器 |
224.0.0.6 |
OSPF指定路由器/備用指定路由器 |
224.0.0.7 |
ST(Shared Tree,共享樹)路由器 |
224.0.0.8 |
ST主機 |
224.0.0.9 |
RIP-2(Routing Information Protocol version 2,路由信息協議版本2)路由器 |
224.0.0.11 |
移動代理 |
224.0.0.12 |
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)服務器/中繼代理 |
224.0.0.13 |
所有PIM(Protocol Independent Multicast,協議無關組播)路由器 |
224.0.0.14 |
RSVP(Resource Reservation Protocol,資源預留協議)封裝 |
224.0.0.15 |
所有CBT(Core-Based Tree,有核樹)路由器 |
224.0.0.16 |
指定SBM(Subnetwork Bandwidth Management,子網帶寬管理) |
224.0.0.17 |
所有SBM |
224.0.0.18 |
VRRP(Virtual Router Redundancy Protocol,虛擬路由器冗餘協議) |
圖1-4 IPv6組播地址格式
如圖1-4所示,IPv6組播地址中各字段的含義如下:
· 0xFF:最高8比特為11111111,標識此地址為IPv6組播地址。
圖1-5 Flags字段格式
· Flags:4比特,如圖1-5所示,該字段中各位的取值及含義如表1-4所示。
表1-4 Flags字段各位的取值及含義
位 |
取值及含義 |
0位 |
保留位,必須取0 |
R位 |
· 取0表示非內嵌RP的IPv6組播地址 · 取1則表示內嵌RP的IPv6組播地址(此時P、T位也必須置1) |
P位 |
· 取0表示非基於單播前綴的IPv6組播地址 · 取1則表示基於單播前綴的IPv6組播地址(此時T位也必須置1) |
T位 |
· 取0表示由IANA永久分配的IPv6組播地址 · 取1則表示非永久分配的IPv6組播地址 |
· Scope:4比特,標識該IPv6組播組的應用範圍,其可能的取值及其含義如表1-5所示。
表1-5 Scope字段的取值及其含義
含義 |
|
0、F |
保留(Reserved) |
1 |
接口本地範圍(Interface-Local Scope) |
2 |
鏈路本地範圍(Link-Local Scope) |
3 |
子網本地範圍(Subnet-Local Scope) |
4 |
管理本地範圍(Admin-Local Scope) |
5 |
站點本地範圍(Site-Local Scope) |
6、7、9~D |
未分配(Unassigned) |
8 |
機構本地範圍(Organization-Local Scope) |
E |
全球範圍(Global Scope) |
· Group ID:112比特,IPv6組播組的標識號,用來在由Scope字段所指定的範圍內唯一標識IPv6組播組。
以太網組播MAC地址用於在鏈路層上標識屬於同一組播組的接收者。
IANA規定,IPv4組播MAC地址的高24位為0x01005E,第25位為0,低23位為IPv4組播地址的低23位。IPv4組播地址與MAC地址的映射關係如圖1-6所示。
圖1-6 IPv4組播地址與MAC地址的映射關係
由於IPv4組播地址的高4位固定為1110,而低28位中隻有23位被映射到IPv4組播MAC地址上,從而導致有5位信息丟失。於是,將有32個IPv4組播地址被重複映射到同一個IPv4組播MAC地址上,因此設備在進行二層處理時,可能會收到一些本不需要的組播數據,這些多餘的組播數據就需要上層進行過濾了。
IANA規定,IPv6組播MAC地址的高16位為0x3333,低32位為IPv6組播地址的低32位。如圖1-7所示,是IPv6組播地址FF1E::F30E:101的MAC地址映射舉例。從圖中可見,由於IPv6組播地址中隻有低32位被映射到IPv6組播MAC地址,因此也存在與IPv4類似的地址重複映射問題。
圖1-7 IPv6組播地址的MAC地址映射舉例
由於IP組播地址到組播MAC地址重複映射問題的存在,在二層組播轉發過程中,設備可能會將組播協議報文當作組播數據報文轉發,從而導致組播協議報文無法被正確送達。為了避免這種情況,在組播業務中請勿使用可映射為組播MAC地址0100-5E00-00xx和3333-0000-00xx(x代表任意一個十六進製數)的IP組播地址。
通常,組播協議被分為“三層組播協議”和“二層組播協議”兩類:
· 工作在網絡層的IP組播被稱為“三層組播”,相應的組播協議稱為“三層組播協議”,包括IGMP/MLD、PIM/IPv6 PIM、MSDP、MBGP/IPv6 MBGP等。
· 工作在數據鏈路層的IP組播則被稱為“二層組播”,相應的組播協議稱為“二層組播協議”,包括IGMP Snooping/MLD Snooping、PIM Snooping/IPv6 PIM Snooping、組播VLAN/IPv6組播VLAN等。
其中,IGMP Snooping、PIM Snooping、組播VLAN、IGMP、PIM、MSDP和MBGP應用於IPv4;MLD Snooping、IPv6 PIM Snooping、IPv6組播VLAN、MLD、IPv6 PIM和IPv6 MBGP應用於IPv6。本節主要針對二、三層組播協議在網絡中的應用位置和功能進行總體介紹,有關各協議的詳細介紹請參見“IP組播配置指導”中的相關章節。
本設備暫不支持三層組播協議。
三層組播協議包括組播組管理協議和組播路由協議兩種類型,它們在網絡中的應用位置如圖1-8所示。
· 組播組管理協議
在主機和與其直接相連的三層組播設備之間通常采用組播組的管理協議IGMP(Internet Group Management Protocol,互聯網組管理協議)或MLD(Multicast Listener Discovery Protocol,組播偵聽者發現協議),該協議規定了主機與三層組播設備之間建立和維護組播組成員關係的機製。
· 組播路由協議
組播路由協議運行在三層組播設備之間,用於建立和維護組播路由,並正確、高效地轉發組播數據包。組播路由建立了從一個數據源端到多個接收端的無環(loop-free)數據傳輸路徑,即組播分發樹。
對於ASM模型,可以將組播路由分為域內和域間兩大類:
· 域內組播路由用來在AS內部發現組播源並構建組播分發樹,從而將組播信息傳遞到接收者。在眾多域內組播路由協議中,PIM(Protocol Independent Multicast,協議無關組播)是目前較為典型的一個。按照轉發機製的不同,PIM可以分為DM(Dense Mode,密集模式)和SM(Sparse Mode,稀疏模式)兩種模式。
· 域間組播路由用來實現組播信息在AS之間的傳遞,目前比較成型的解決方案有:MSDP(Multicast Source Discovery Protocol,組播源發現協議)能夠跨越AS傳播組播源的信息;而MP-BGP(Multiprotocol Border Gateway Protocol,多協議邊界網關協議)的組播擴展MBGP(Multicast BGP)則能夠跨越AS傳播組播路由。
對於SSM模型,沒有域內和域間的劃分。由於接收者預先知道組播源的具體位置,因此隻需要借助PIM-SM構建的通道即可實現組播信息的傳輸。
二層組播協議包括IGMP Snooping/MLD Snooping、PIM Snooping/IPv6 PIM Snooping、組播VLAN/IPv6組播VLAN等,它們在網絡中的應用位置如圖1-9所示。
· IGMP Snooping/MLD Snooping
IGMP Snooping(Internet Group Management Protocol Snooping,互聯網組管理協議窺探)和MLD Snooping(Multicast Listener Discovery Snooping,組播偵聽者發現協議窺探)運行在二層設備上,通過偵聽三層設備與主機之間的IGMP或MLD報文來生成二層組播轉發表,從而管理和控製組播數據報文的轉發,實現組播數據報文在二層的按需分發。
· PIM Snooping/IPv6 PIM Snooping
PIM Snooping(Protocol Independent Multicast Snooping,協議無關組播窺探)或IPv6 PIM Snooping運行在二層設備上,通過與IGMP Snooping或MLD Snooping配合來對收到的PIM協議報文進行分析,將有接收需求的端口添加到PIM Snooping路由表或IPv6 PIM Snooping路由表的相應表項中,以實現組播報文的精確轉發。
· 組播VLAN/IPv6組播VLAN
在傳統的組播點播方式下,當連接在二層設備上、屬於不同VLAN的用戶分別進行組播點播時,三層組播設備需要向該二層設備的每個VLAN分別發送一份組播數據;而當二層設備運行了組播VLAN或IPv6組播VLAN之後,三層組播設備隻需向該二層設備的組播VLAN或IPv6組播VLAN發送一份組播數據即可,從而既避免了帶寬的浪費,也減輕了三層組播設備的負擔。
在組播模型中,IP報文的目的地址字段為組播組地址,組播源向以此目的地址所標識的主機群組傳送信息。因此,轉發路徑上的組播路由器為了將組播報文傳送到各個方位的接收站點,往往需要將從一個入接口收到的組播報文轉發到多個出接口。與單播模型相比,組播模型的複雜性就在於此:
· 為了保證組播報文在網絡中的傳輸,必須依靠單播路由表、單獨提供給組播使用的路由表(如MBGP路由表)或者組播靜態路由來指導轉發;
· 為了處理同一設備在不同接口上收到來自不同對端的相同組播信息,需要對組播報文的入接口進行RPF(Reverse Path Forwarding,逆向路徑轉發)檢查,以決定轉發還是丟棄該報文。RPF檢查機製是大部分組播路由協議進行組播轉發的基礎。
有關RPF檢查機製的詳細介紹,請參見“IP組播配置指導”中的“組播路由與轉發”或“IPv6組播路由與轉發”。
對於IP組播,需要關注下列問題:
· 組播源將組播信息傳輸到哪裏?即組播尋址機製;
· 網絡中有哪些接收者?即主機注冊;
· 這些接收者需要從哪個組播源接收信息?即組播源發現;
· 組播信息如何傳輸?即組播路由。
IP組播屬於端到端的服務,組播機製包括以下四個部分:
· 尋址機製:借助組播地址,實現信息從組播源發送到一組接收者;
· 主機注冊:利用組播組管理協議,允許接收者主機動態加入和離開某組播組,實現對組播成員的管理;
· 組播路由:利用組播路由協議,構建組播報文分發樹(即組播數據在網絡中的樹型轉發路徑),並通過該分發樹將報文從組播源傳輸到接收者;
· 組播應用:組播源與接收者必須安裝支持視頻會議等組播應用的軟件,TCP/IP協議棧必須支持組播信息的發送和接收。
簡單地說,多實例組播就是指在VPN(Virtual Private Network,虛擬專用網絡)中應用的組播。
各VPN網絡之間、VPN網絡與公共網絡之間要求信息隔離。如圖1-10所示,VPN A和VPN B通過PE設備接入公共網絡。
· P設備專屬於公網,各CE設備則專屬於某一VPN。每台設備隻為其專屬的網絡服務,僅維護一套轉發機製。
· PE設備同時接入公網和VPN網絡,同時為多個網絡服務。在設備上必須嚴格區分各個網絡的信息並為各個網絡獨立維護一套轉發機製。這時,PE設備上為同一網絡服務的一套軟硬件設施統稱為一個實例(Instance)。PE設備上同時存在多個實例,而同一個實例也可以分布在多台PE設備上。在PE設備上,服務於公網的實例被稱為公網實例,服務於VPN的實例則被稱為VPN實例。
在PE設備上應用多實例組播之後,將具備以下功能:
· 每個實例都獨立維護一套組播轉發機製:支持各種組播協議,擁有各自獨立的PIM鄰居列表、組播路由表等信息。每個實例轉發組播數據時隻查找本實例的轉發表或路由表;
· 保證各實例之間相互隔離;
· 實現公網實例和VPN實例之間的信息交流和數據轉換。
以圖1-10中的VPN實例A為例,當VPN A中的組播源向某組播組發送組播數據時,在網絡中所有可能的接收者中,隻有屬於VPN A的組播組成員才能收到該組播源發來的組播數據。組播數據在VPN A中以組播方式進行傳輸,在公網中也以組播方式進行傳輸。此外,通過配置跨VPN組播轉發,還可以使組播數據跨越不同的VPN進行傳輸。
在組播中,經常出現以下兩種表示方式:
· (*,G):通常用來表示共享樹,或者由任意組播源發往組播組G的組播報文。其中的“*”代表任意組播源,“G”代表特定組播組G。
· (S,G):也稱為“組播源組”,通常用來表示最短路徑樹,或者由組播源S發往組播組G的組播報文。其中的“S”代表特定組播源S,“G”代表特定組播組G。
有關共享樹和最短路徑樹的詳細介紹,請參見“IP組播配置指導”中的“PIM”或“IPv6 PIM”。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!