IP組播基礎及工作原理——1
IP組播在一些多使用者定向傳送的網路應用中使用非常普遍,如遠端多媒體會議、遠端教學、視訊點播、定向電子商務,以及ISP的IPTV(網路電視)等。學好IP組播基礎知識及配置與管理方法,對網路管理員來說非常必要。
IP組播就像IP單播一樣是一個相對獨立的領域,涉及的知識面非常廣。所包含的協議也非常多,如三層的IGMP、MLD、PIM、MSDP、MBGP和IGMP SMM Mapping等,二層的有IGMP Snooping、IGMP Snooping Proxy、MLD Snooping、MLD Snooping Proxy和IGMP SMM Snooping Mapping等。本章先單獨介紹與IP組播相關的基礎知識,組播路由和轉發原理、各種IP組播協議的主要功能及工作原理,以及各種組播協議的主要應用。
IP組播基礎
隨著Internet的發展,網路中互動的各種資料、話音和視訊資訊越來越多,同時新興的電子商務、網上會議、網上拍賣、視訊點播、遠端教學等服務,大多符合點對多點的模式,對資訊保安性、有償性、網路頻寬提出了較高的要求。
作為IP傳輸3中方式之一,IP組播通訊指的是IP報文從一個源發出,而被轉發到一組特定的接收者。相較於傳統的單播和廣播,IP組播可以有效節約網路頻寬、降低網路負載。
一、IP網路的3種資料傳輸方式
IPv4協議定義了三種IP資料包的傳輸方式:單播(unicast)、廣播(broadcast)和組播(multicast)。通過對三種包傳播方式比較式介紹,可以看到組播方式的優越性。
1、單播方式的資料傳輸過程
單播用於傳送資料包到單個目的地,且每傳送一份單播報文都使用一個單播IP地址作為目的地址。是一種點對點傳輸方式。採用單播方式時,系統為每個需求該資料的使用者單獨建立一條資料傳輸通路,併為該使用者傳送一份獨立的副本資料。
如下圖:
假設使用者C(HostC)需要從資料來源(Source)獲取資料,則資料來源必須和使用者C的裝置建立單獨的傳輸通道。由於網路中傳輸的資料量和要求接收該資料的使用者量成正比,因此當需要相同資料的使用者數量很龐大時,資料來源主機必須要將多份內容相同的資料傳送給使用者。這樣一來,網路頻寬將成為資料傳輸中的瓶頸,不利於資料規模化傳送。
2、廣播方式的資料傳輸過程
廣播是指傳送資料包到同一廣播域或子網內的所有裝置的一種資料傳輸方式,是一種點對多點傳輸方式。如果採用廣播方式,系統會為網路中所有使用者傳送一個資料副本,不管它們是否需要,任何使用者都會接收到廣播來的資料。
如上圖,假設使用者A、c需要從資料來源獲取資料,則資料來源通過路由器廣播該資料,但這時網路中本來不需要接收該資料的使用者B也同樣接收到該資料,這樣不僅資訊的安全性得不到保障,而且會造成同一網段中資訊氾濫。該傳輸方式不利於與特定物件進行資料互動,並且浪費了大量的頻寬。
3、組播方式傳播資料
單播方式適合使用者較少的網路,廣播方式適合使用者需求普遍相同的網路。但當網路中需求某資料的使用者量不確定時,單播和廣播方式效率很低,而且廣播方式安全性差,無法控制資料的傳送。
IP組播技術的出現及時解決了以上問題,也是一種點對多點傳輸方式。當網路中的某些使用者需要特定資料時,組播資料傳送者(即組播源)僅傳送一次資料,藉助組播路由協議為組播資料包建立組播分發樹,被傳遞的資料到達距離使用者端儘可能近的節點後才開始複製和分發。
如上圖,假設使用者A、C需要從資料來源獲取資料,為了將資料順利地傳輸給真正需要該資料的使用者,需要將使用者A、C組成一個接收者集合(就是組播組),由網路中各路由器根據該集合中各接收者的分佈情況進行資料轉發和複製,最後準確地傳輸給實際需要的接收者A和C。
綜上,相比單播傳輸方式,組播傳輸方式由於被傳遞的資訊在距資訊源儘可能遠的網路節點才開始被複制和分發,所以使用者的增加不會導致資訊源負載的加重以及網路資源消耗的顯著增加。相比廣播傳輸方式,組播傳輸方式由於被傳遞的資訊只會傳送給需要該資訊的接收者,所以不會造成網路資源的浪費,並能提高資訊傳輸的安全性。
二、組播基本概念
組播傳輸的特點是一點發出,多點接收。如上圖,網路中存在資訊傳送源Source,感興趣的使用者HostA和HostC提出資訊需求,Source發出的資料只有HostA和HostC會接收到。
在組播通訊中,需要理解以下幾個重要的基本概念。
1、組播組:用組播IP地址進行標識的一個集合,是一個組播成員的集合,各組播成員共享這一個組播組IP地址。相當於iStack堆疊和CS叢集中,各成員交換機共享使用同一個管理IP地址一樣。但要注意,組播成員自己在IP協議中配置的IP地址不是組播IP地址,仍是單播IP地址。任何使用者主機(或其他接收裝置),加入一個組播組就成為了該組成員,可以識別並接收發往該組播組的組播資料。
2、組播源:以組播組IP地址為目的地址(組播源配置的也是單播IP地址),傳送IP報文的信源稱為組播源。但組播源通常不需要加入組播組,否則自己接收自己傳送出去的資料了。上圖中的Source就是一個組播源。一個組播源可以同時向多個組播組傳送資料,多個組播源也可以同時向一個組播組傳送報文。
3、組播組成員:所有加入某組播組的主機便成為該組播組的成員。如上圖中的HostA和HostC。組播組中的成員是動態的,主機可以在任何時刻加入或離開組播組。組播組成員可以廣泛地分佈在網路中的任何地方。
4、組播路由器:支援三層組播功能的路由器或三層交換機(它們不是組播組成員),如上圖中的各個Router。組播路由器不僅能夠提供組播路由功能,也能夠在與使用者連線的末梢網段上提供組播組成員的管理功能。
三、典型IP組播模型
根據對組播源處理方式的不同,IP組播模型有下列3種:ASM(Any-SourceMulticast,任意源組播)、SFM(Source-Filtered Multicast,過濾源組播)和SSM(Source-SpecificMulticast,指定源組播)。
1、ASM模型
簡單說,ASM(任意源組播)模型就是任意源都可以成為組播源。由此可知,ASM模型中的組播源是不限定的,任意一個傳送者都可以成為組播源,然後向某組播組地址傳送資料,顯然安全性較差。接收者通過加入對應的組播組就可以獲得發往改組播組的任意組播資料,而且接收者無法預先知道組播源的位置,但可以在任意時間加入或離開該組播組。
為提高安全性,可以在路由器上配置針對組播源的過濾策略,允許或禁止來自某些組播源的報文通過。最終從接收者角度看,資料是經過篩選的。
ASM模型中組播組可以使用的組播IP地址為224.0.1.0~231.255.255.255、233.0.0.0~238.255.255.255。但要求組播組地址必須整個組播網路中唯一。“唯一”指的是同一時刻一個ASM組播組地址只能被一種組播應用使用。如果有兩種不同的應用程式使用了同一個ASM組播組地址傳送資料,它們的接收者會同時收到來自兩個源的資料。這樣一方面會導致網路流量擁塞,另一方面也會給接收者主機造成困擾。
2、SFM模型
SFM(過濾源組播)模型繼承了ASM模型,從傳送者角度來看兩者的組播組成員關係完全相同,也可以是任意組播源。但是,在SFM模型中組播上層應用軟體可以根據收到的組播包的源IP地址進行過濾,允許或禁止來自某些組播源的包通過。這樣一來,接收者就可以只接收允許通過的組播源傳送來的組播資料。即SFM在ASM的基礎上新增了組播源過濾策略。
3、SSM模型
現實生活中,使用者可能只對某些組播源傳送的組播資料感興趣,而不願接收其他源傳送的資料。SSM(指定源組播)模型就是一種為使用者提供能夠在客戶端指定組播源的傳輸服務。
SSM模型與ASM模型的根本區別在於:SSM模型中的接收者已經通過其他手段預先知道了所需接收組播資料的組播源的具體位置,限定了可接收的組播源。然後,SSM模型使用與ASM/SFM模型不同的組播組地址範圍(為232.0.0.0~232.255.255.255)直接在接收者和其指定的組播源之間建立專用的組播轉發樹。
四、IP組播地址
由於組播資料的接收者是一個組播組內的多個主機,因此,需要面對資料來源該將資料發往何處、目的地址如何選取的問題,就是組播定址。與單播中的IP定址或者MAC定址一樣,為了讓組播源和組播成員進行通訊,需要提供網路層組播地址,即IP組播地址。同時必須存在一種技術將IP組播地址對映為鏈路層MAC組播地址。
注意:不要認為在IP組播中所有組播裝置上的IP地址都是使用組播地址。實際上只有組播組IP地址是組播IP地址,而像組播源、接收者主機的IP地址仍是單播IP地址。
1、三層組播IP地址
根據IANA(InternetAssigned Numbers Authority,因特網編號授權委員會)規定,IP地址分為五類:即A類、B類、C類、D類和E類。單播包按照網路規模大小分別使用A、B、C三類IP地址。組播包的目的地址使用D類IP地址,D類地址不能出現在IP包的源IP地址欄位(也就是不能作為組播源地址,換言之,組播源的IP地址仍是單播地址)。E類地址保留以後使用。
在單播資料傳輸過程中,一個資料包傳輸的路徑是從源地址路由到目的地址,利用“逐跳(hop-by-hop)”的原理在IP網路中傳輸。然而在IP組播環境中,資料包的目的地不是一個,而是一組,形成組地址(可理解為所有接收者的單播地址與一個組播組地址形成了對映關係)。所有的資料接收者都加入一個組內,並且一旦加入之後,流向該組地址的資料立即向接收者傳輸,組中的所有成員都能接收到資料包,這個組就是“組播組”。
組播組具有以下幾個特點
(1)組播組中的成員是動態的,主機可以在任何時刻加入或離開組播組。
(2)組播組可以是永久的也可以是臨時的。
(3)由IANA分配組播組地址的組播組稱為永久組播組(又稱保留組播組)。
對於永久組播組,要注意以下幾點:
(1)永久組播組的IP地址保持不變,但組中的成員構成可以發生變化。
(2)永久組播組中成員的數量可以是任意的,甚至可以是零。
(3)那些沒有保留下來供永久組播組使用的IP組播地址,可以被臨時組播組使用。
D類組播地址範圍是224.0.0.0~239.255.255.255,其中包括了很多地址,但不同地址段有不同用途,如下表,記住這個表中各個組播段的使用範圍相當重要,這樣就不會在配置組播網路中錯誤的使用了不該在特定環境下使用的組播地址。根據IANA的約定,224.0.0.0~224.0.0.255網段地址被預留給本地網路中的路由協議使用,如下表說明:
與IANA為IP單播預留私有地址網段10.0.0.0/8等類似,IANA也為IP組播預留了私有網址網段239.0.0.0/8(也就是這個地址段中的組播地址可以在區域網內使用)。這些地址屬於管理範圍地址,可以靈活地定義組播域範圍,實現不同組播域之間的地址隔離,有助於相同組播地址在不同組播域內的重複使用而不會衝突。
2、二層乙太網組播MAC地址
乙太網傳輸單播IP包的時候,目的MAC地址使用的是接收者的MAC地址。但是在傳輸組播包時,傳輸目標不再是一個具體的接收者,而是一個成員不確定的組,所以對應也就需要使用組播MAC地址作為目的地址。
IANA規定,組播MAC地址的高25位固定為0000 00010000 0000 0101 1110 0,形成MAC地址25位字首,MAC地址的低23位為組播IPv4地址的低23位。它們之間的對映關係如下圖(組播IPv4地址中的低23位對映到組播MAC地址的低23位)
由於IPv4組播地址的高4位是1110,代表組播標識,而低28位中只有23位被對映到MAC地址,這樣IP地址中就會有5位資料丟失,直接的結果是出現了32(2的5次方)個IP組播地址對映到同一組播MAC地址上。
IPv6組播MAC地址的高16位為0x3333,低32位是從IPv6組播地址的低32位對映過來的。如下圖IPv6組播地址FF1E::F30E:101的MAC地址對映:
五、IP組播協議
要實現一套完整的組播服務,需要在網路各個位置部署多種組播協議相互配合,共同運作。不同結構的組播網路所需使用的組播協議不完全一樣。
下圖是一個典型的單PIM域組播網路示意圖,整個組播網路是由路由器或三層交換機+二層交換機組成的。
從圖中可以看出在這些組播裝置上執行的組播協議包括PIM(協議無關組播,同時由IPv4和IPv6版本)、IPv4網路的IGMP(因特網組管理協議),IPv6網路中的MLD(組播監聽器發現)、IPv4網路的IGMP Snooping(因特網組管理協議嗅探),IPv6網路中的MLD Snooping(組播監聽器發現嗅探)。
下圖12-7是一個跨PIM-SM域的組播網路示意圖,與上圖所示的單PIM域組播網路相比,在執行的組播協議上僅需在PIM域邊界組播路由器上多了一個實現跨PIM域連線的MSDP(組播源發現協議)。而12-8是一個跨AS域組播網路示意圖,與12-7所示的跨PIM域組播網路相比,在執行的組播協議又僅需在AS邊界組播路由器上多了一個用於不同AS組播連線的MBGP(組播邊界管理協議)。
1、IGMP和MLD
在IP組播傳輸模型中,傳送者不關心接收者所處的位置,只要將資料傳送到約定的目的地址,剩下的工作就交給網路去完成。網路中的路由器裝置必須收集接收者的資訊,並按照正確的路徑實現組播報文的轉發和複製。
接收者資訊的收集和管理的工作通過IGMP(InternetGroup Management Protocol,因特網組管理協議)或MLD(Multicast Listener Discovery,組播監聽器發現)協議來完成的。其中,IGMP用於IPv4網路,MLD用於IPv6網路。用於為主機側提供組播組成員動態加入與離開服務,為路由器側提供組成員關係的維護與管理服務,同時與上層組播路由協議進行資訊互動。
IGMP包含3個版本,分別是IGMPv1、IGMPv2和IGMPv3。新版本完全相容舊版本。目前應用最廣泛的是IGMPv2。在組播模型方面,3個版本都支援ASM模型;IGMPv3可以直接支援SSM模型,而IGMPv1和IGMPv2需要結合SSMMapping技術才能支援SSM模型。
在IPv6組播中使用MLD協議來替代IGMP協議,也是一種三層組播協議。MLD包含兩個版本,分別是MLDv1和MLDv2。MLDv1的功能與IGMPv2相似;MLDv2的功能與IGMPv3相似。兩個MLD版本都支援ASM模型;MLDv2可以直接支援SSM模型,而MLDv1需要結合SSM-Mapping技術才能支援SSM模型。
2、IGMPSnooping和MLD Snooping
IGMP Snooping和MLD Snooping協議是執行在組播路由器和使用者主機之間的二層交換機上的二層組播協議,配置在VLAN內。其中,IGMP Snooping用於IPv4網路,MLD Snooping用於IPv6網路,用來偵聽路由器和主機之間傳送的IGMP、MLD報文建立組播資料的二層轉發表,從而管理和控制組播資料在二層網路中的轉發。
3、PIM和MSDP
組播報文轉發路徑的建立,有多種組播路由協議可以完成。目前應用廣泛的是PIM(Protocol Independent Multicast,協議無關組播)協議。PIM是一種域內組播路由協議,當跨PIM域傳遞組播源資訊時,需要MSDP(Multicast Source Discovery Protocol,組播源發現協議)支援;當跨AS域建立組播路由時則同時需要MSDP和MBGP(MultiProtocolBorder Gateway Protocol,組播邊界閘道器協議)支援。
PIM是用於IPv4或IPv6組播網路中域內組播路由器之間的組播路由與轉發,用來在自治系統AS內發現組播源並構建組播分發樹,將資訊傳遞到接收者。在一個小型網路中,所有的組播路由器都在一個PIM組播域內。他可以動態響應網路拓撲變化,維護組播路由表,並按照路由表項執行轉發。PIM有兩套獨立的模式:
(1)DM(Dense Mode):適用於小規模、接收者分佈較為密集的情況,支援ASM模型。
(2)SM(Sparse Mode):適用於大規模、接收者分佈較為稀疏的情況,同時支援ASM模型和SSM模型。
如圖12-6,為了便於控制和管理組播資源(組播組、組播源和組播組成員),需要將組播資源在域間進行隔離,從而形成一個個隔離的PIM-SM域。圖12-7所示為跨PIM-SM域的組播網路。由於PIM協議依賴於單播路由表,所以組播轉發路徑與單播轉發路徑是一致的。當組播源與接收者分佈在不同的AS中時,需要跨AS建立組播轉發樹,如圖12-8.此時可以部署MBGP協議,生成一張獨立於單播路由的組播路由表,使組播資料通過組播路由表進行傳輸。
MSDP目前僅用於IPv4組播網路中域間組播路由器之間的域間組播源資訊共享,但只對ASM服務模型有意義。它可以實現源所在域內的路由器將本地源資訊傳播給其他域內的路由器,以及不同域的路由器之間傳遞源資訊。為了使不同的PIM-SM域之間組播資料能夠互通,需要在域間部署MSDP協議。MSDP通過在各個PIM-SM域之間建立MSDP對等體關係,對等體之間互動SA(Source Active,源啟用)訊息來傳遞組播資訊,從而實現接收者主機可以接收其他PIM-SM域的組播源資料。
相關文章
- IP組播
- 偵錯程式工作原理(1):基礎篇
- HCNP Routing&Switching之組播技術-組播基礎
- MPLS基礎與工作原理
- WiFi基礎(四):WiFi工作原理及WiFi接入過程WiFi
- 組播IP地址到底是誰的IP?
- Mybaitis入門基礎(一)MyBatis的概念引入及工作原理AIMyBatis
- 海外IP池的工作原理及應用場景
- Elaticsearch(一)--基礎原理及用法
- IP組播網路程式設計程式設計
- Laravel 廣播系統工作原理Laravel
- camera理論基礎和工作原理
- IIC序列匯流排的組成及工作原理
- 逆向工程核心原理(1)逆向基礎
- HTTPS基礎原理和配置 - 1HTTP
- ES 架構及基礎 - 1架構
- 搜尋引擎工作的基礎流程與原理
- 廣播基礎使用
- Hadoop安裝手冊1-基礎掃盲及準備工作Hadoop
- 計算機組成原理基礎知識(一)計算機
- TCP/IP 基礎TCP
- IP基礎--7.IP封包
- YUM工作原理及使用
- 《通訊原理基礎》學習筆記(1)筆記
- Tomcat組成與工作原理Tomcat
- JVM基礎:JVM記憶體組成及分配JVM記憶體
- Java 基於UDP 實現單播、組播、廣播 Socket 程式設計JavaUDP程式設計
- IP基礎--7.IP封包(轉)
- vlc的應用:用vlc做單播,組播及點播伺服器伺服器
- 傳智播客 java基礎 相關資料 Day1Java
- Presto記憶體調優及原理(基礎篇)REST記憶體
- JVM 內部原理(六)— Java 位元組碼基礎之一JVMJava
- JVM 內部原理(七)— Java 位元組碼基礎之二JVMJava
- kafka基礎原理Kafka
- JavaScript基礎原理JavaScript
- Docker基礎原理Docker
- [基礎] DDPM原理
- ppium簡介及工作原理