一、IGMP 簡介 IGMP(Internet Group Management Protocol)互聯(lián)網(wǎng)組管理協(xié)議是TCP/IP 協(xié)議族中負責IP組播成員管理的協(xié)議,用來在IP主機和與其直接相鄰的組播路由器之間建立、維護組播組成員關系。 到目前為止,IGMP 有三個版本:
所有版本的IGMP 都支持ASM(Any-Source Multicast,任意信源組播)模型;IGMPv3 可以直接應用于SSM(Source-Specific Multicast,指定信源組播)模型,而IGMPv1 和IGMPv2 則需要在IGMP SSM Mapping 技術的支持下才能應用于SSM 模型。
二、IGMP 工作機制1. IGMPv1 工作機制 IGMPv1 主要基于查詢和響應機制來完成對組播組成員的管理。當一個網(wǎng)段內(nèi)有多臺組播路由器時,由于它們都能從主機那里收到IGMP 成員關系報告報文(Membership Report Message)。 因此,只需其中一臺路由器發(fā)送IGMP 查詢報文(Query Message)就足夠了。這時就需要有一個查詢器(Querier)的選舉機制來確定由哪臺路由器作為IGMP查詢器。 對于IGMPv1 來說,由組播路由協(xié)議(如PIM)選舉出唯一的組播信息轉發(fā)者DR(Designated Router,指定路由器)作為IGMP 查詢器。 IGMP 查詢相應示意圖 如上圖所示,假設Host B與Host C想要收到發(fā)往組播組G1 的組播數(shù)據(jù),而Host A想要收到發(fā)往組播組G2 的組播數(shù)據(jù),那么主機加入組播組以及IGMP查詢器(Router B)維護組播組成員關系的基本過程如下:
IGMPv1 沒有專門定義離開組播組的報文。當運行IGMPv1 的主機離開某組播組時,將不會向其要離開的組播組發(fā)送報告報文。當網(wǎng)段中不再存在該組播組的成員后,IGMP 路由器將收不到任何發(fā)往該組播組的報告報文,于是IGMP 路由器在一段時間之后便刪除該組播組所對應的組播轉發(fā)項。 2. IGMPv2 的改進 與IGMPv1 相比,IGMPv2 增加了查詢器選舉機制和離開組機制。 ? 查詢器選舉機制 在IGMPv1 中,當某共享網(wǎng)段上存在多個組播路由器時,由組播路由協(xié)議(如PIM)選舉的指定路由器充當查詢器。 在IGMPv2 中,增加了獨立的查詢器選舉機制,其選舉過程如下:
? 離開組機制 在IGMPv1 中,主機離開組播組時不會向組播路由器發(fā)出任何通知,導致組播路由器只能依靠組播組成員查詢的響應超時來獲知組播組成員的離開。 而在IGMPv2 中,當一個主機離開某組播組時:
3. IGMPv3 的改進 IGMPv3 在兼容和繼承IGMPv1 和IGMPv2 的基礎上,進一步增強了主機的控制能力,并增強了查詢和報告報文的功能。 ? 主機控制能力的增強 IGMPv3 增加了針對組播源的過濾模式(INCLUDE/EXCLUDE),使主機在加入某組播組G的同時,能夠明確要求接收或拒絕來自某特定組播源S的組播信息。當主機加入組播組時: 若要求只接收來自指定組播源如S1、S2、……的組播信息,則其報告報文中可以標記為INCLUDE Sources(S1,S2,……); 若拒絕接收來自指定組播源如S1、S2、……的組播信息,則其報告報文中可以標記為EXCLUDE Sources(S1,S2,……)。 指定源組的組播流路經(jīng) 如上圖所示,網(wǎng)絡中存在Source 1(S1)和Source 2(S2)兩個組播源,均向組播組G發(fā)送組播報文。Host B僅對從Source1 發(fā)往G的信息感興趣,而對來自Source 2 的信息沒有興趣。 如果主機與路由器之間運行的是IGMPv1 或IGMPv2,Host B 加入組播組G 時無法對組播源進行選擇,因此無論Host B 是否需要,來自Source 1 和Source 2 的組播信息都將傳遞給Host B。 當主機與路由器之間運行了IGMPv3 之后,Host B 就可以要求只接收來自Source 1、發(fā)往G 的組播信息(S1,G),或要求拒絕來自Source 2、發(fā)往G 的組播信息(S2,G),這樣就只有來自Source 1 的組播信息才能傳遞給Host B 了。 ? 查詢和報告報文功能的增強 (1) 攜帶源地址的查詢報文 IGMPv3 不僅支持IGMPv1 的普遍組查詢和IGMPv2 的特定組查詢,而且還增加了對特定源組查詢的支持:
(2) 包含多組記錄的報告報文 IGMPv3 報告報文的目的地址為224.0.0.22,可以攜帶一個或多個組記錄。在每個組記錄中,包含有組播組地址和組播源地址列表。組記錄可以分為多種類型,如下:
4. 組播模型分類 根據(jù)接收者對組播源處理方式的不同,組播模型分為以下三類: ? ASM 模型:Any-Source Multicast,任意信源組播 在ASM 模型中,任意一個發(fā)送者都可以作為組播源向某組播組地址發(fā)送信息。眾多接收者通過加入由該組播組地址標識的組播組以獲得發(fā)往該組播組的組播信息。 在ASM 模型中,接收者無法預先知道組播源的位置,但可以在任意時間加入或離開該組播組。 ? SFM 模型:Source-Filtered Multicast,信源過濾組播 該模型繼承了ASM 模型,從發(fā)送者角度來看,兩者的組播組成員關系完全相同。SFM 模型在功能上對ASM 模型進行了擴展。 在SFM 模型中,上層軟件對收到的組播報文的源地址進行檢查,允許或禁止來自某些組播源的報文通過。 因此,接收者只能收到來自部分組播源的組播數(shù)據(jù)。從接收者的角度來看,只有部分組播源是有效的,組播源被經(jīng)過了篩選。 ? SSM 模型:Source-Specific Multicast,指定信源組播 在現(xiàn)實生活中,用戶可能只對某些組播源發(fā)送的組播信息感興趣,而不愿接收其它源發(fā)送的信息。該模型為用戶提供了一種能夠在客戶端指定組播源的傳輸服務。 SSM 模型與ASM 模型的根本區(qū)別在于:SSM 模型中的接收者已經(jīng)通過其它手段預先知道了組播源的具體位置。SSM 模型使用與ASM/SFM 模型不同的組播地址范圍,直接在接收者與其指定的組播源之間建立專用的組播轉發(fā)路徑。 5. IP組播 ?對于IP 組播,需要關注下列問題:
?IP 組播屬于端到端的服務,組播機制包括以下四個部分:
為了讓組播源和組播組成員進行通信,需要提供網(wǎng)絡層組播地址,即IP 組播地址。同時必須存在一種技術將IP 組播地址映射為鏈路層的組播MAC 地址。 ? IP 組播地址 · IANA(Internet Assigned Numbers Authority,互聯(lián)網(wǎng)編號分配委員會)將D類地址空間分配給IPv4組播使用,范圍從224.0.0.0到239.255.255.255,具體分類及其含義如下表所示。 IPv4 組播地址的范圍及含義 說明:
? 以太網(wǎng)組播MAC 地址 · 以太網(wǎng)傳輸單播IP 報文的時候,目的MAC 地址使用的是接收者的MAC 地址。但是在傳輸組播數(shù)據(jù)包時,其目的地不再是一個具體的接收者,而是一個成員不確定的組,所以要使用組播MAC 地址。 · IANA規(guī)定,IPv4 組播MAC地址的高24 位為0x01005E,第25 位為0,低23 位為IPv4 組播地址的低23 位。IPv4 組播地址與MAC地址的映射關系如下圖所示。 IPv4 組播地址與MAC 地址的映射關系 · 由于IPv4 組播地址的高4 位是1110,代表組播標識,而低28 位中只有23 位被映射到IPv4 組播MAC 地址,這樣IPv4 組播地址中就有5 位信息丟失。 于是,就有32 個IPv4 組播地址映射到了同一個IPv4 組播MAC 地址上,因此在二層處理過程中,設備可能要接收一些本IPv4 組播組以外的組播數(shù)據(jù),而這些多余的組播數(shù)據(jù)就需要設備的上層進行過濾了。 6. 組播協(xié)議 通常,我們把工作在網(wǎng)絡層的IP 組播稱為“三層組播”,相應的組播協(xié)議稱為“三層組播協(xié)議”,包括IGMP、PIM、MSDP、MBGP等;把工作在數(shù)據(jù)鏈路層的IP 組播稱為“二層組播”,相應的組播協(xié)議稱為“二層組播協(xié)議”,包括IGMP Snooping、組播VLAN 等。 · 三層組播協(xié)議 三層組播協(xié)議包括組播組管理協(xié)議和組播路由協(xié)議兩種類型,它們在網(wǎng)絡中的應用位置如下圖。 三層組播協(xié)議的應用位置 1) 組播組管理協(xié)議 在主機和與其直接相連的三層組播設備之間通常采用組播組的管理協(xié)議IGMP,該協(xié)議規(guī)定了主機與三層組播設備之間建立和維護組播組成員關系的機制。 2) 組播路由協(xié)議 組播路由協(xié)議運行在三層組播設備之間,用于建立和維護組播路由,并正確、高效地轉發(fā)組播數(shù)據(jù)包。 組播路由建立了從一個數(shù)據(jù)源端到多個接收端的無環(huán)(loop-free)數(shù)據(jù)傳輸路徑,即組播分發(fā)樹。 對于ASM 模型,可以將組播路由分為域內(nèi)和域間兩大類: · 域內(nèi)組播路由用來在AS 內(nèi)部發(fā)現(xiàn)組播源并構建組播分發(fā)樹,從而將組播信息傳遞到接收者。在眾多域內(nèi)組播路由協(xié)議中,PIM(Protocol Independent Multicast,協(xié)議無關組播)是目前較為典型的一個。 按照轉發(fā)機制的不同,PIM 可以分為DM(Dense Mode,密集模式)和SM(Sparse Mode,稀疏模式)兩種模式。 · 域間組播路由用來實現(xiàn)組播信息在AS 之間的傳遞,目前比較成型的解決方案有:MSDP(Multicast Source Discovery Protocol,組播源發(fā)現(xiàn)協(xié)議)能夠跨越AS 傳播組播源的信息;而MP-BGP(MultiProtocol Border Gateway Protocol,多協(xié)議邊界網(wǎng)關協(xié)議)的組播擴展MBGP(Multicast BGP)則能夠跨越AS 傳播組播路由。 對于SSM 模型,沒有域內(nèi)和域間的劃分。由于接收者預先知道組播源的具體位置,因此只需要借助PIM-SM 構建的通道即可實現(xiàn)組播信息的傳輸。 · 二層組播協(xié)議 二層組播協(xié)議包括IGMP Snooping和組播VLAN等,它們在網(wǎng)絡中的應用位置如下圖。 二層組播協(xié)議的應用位置 1) IGMP Snooping IGMP Snooping(Internet Group Management Protocol Snooping,互聯(lián)網(wǎng)組管理協(xié)議窺探)是運行在二層設備上的組播約束機制,通過窺探和分析主機與三層組播設備之間交互的IGMP 報文來管理和控制組播組,從而可以有效抑制組播數(shù)據(jù)在二層網(wǎng)絡中的擴散。 2) 組播VLAN 在傳統(tǒng)的組播點播方式下,當連接在二層設備上、屬于不同VLAN 的用戶分別進行組播點播時,三層組播設備需要向該二層設備的每個VLAN 分別發(fā)送一份組播數(shù)據(jù);而當二層設備運行了組播VLAN。 |
|