溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

IGMP協(xié)議知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2022-02-19 09:35:59 來源:億速云 閱讀:151 作者:iii 欄目:開發(fā)技術(shù)

這篇“IGMP協(xié)議知識(shí)點(diǎn)有哪些”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“IGMP協(xié)議知識(shí)點(diǎn)有哪些”文章吧。

一、IGMP 簡介

IGMP(Internet Group Management Protocol)互聯(lián)網(wǎng)組管理協(xié)議是TCP/IP 協(xié)議族中負(fù)責(zé)IP組播成員管理的協(xié)議,用來在IP主機(jī)和與其直接相鄰的組播路由器之間建立、維護(hù)組播組成員關(guān)系。

IGMP協(xié)議知識(shí)點(diǎn)有哪些

到目前為止,IGMP 有三個(gè)版本:

IGMPv1(由RFC 1112 定義)IGMPv2(由RFC 2236 定義)IGMPv3(由RFC 3376 定義)所有版本的IGMP 都支持ASM(Any-Source Multicast,任意信源組播)模型;IGMPv3 可以直接應(yīng)用于SSM(Source-Specific Multicast,指定信源組播)模型,而IGMPv1 和IGMPv2 則需要在IGMP SSM Mapping 技術(shù)的支持下才能應(yīng)用于SSM 模型。

二、IGMP 工作機(jī)制

1. IGMPv1 工作機(jī)制

IGMPv1 主要基于查詢和響應(yīng)機(jī)制來完成對(duì)組播組成員的管理。當(dāng)一個(gè)網(wǎng)段內(nèi)有多臺(tái)組播路由器時(shí),由于它們都能從主機(jī)那里收到IGMP 成員關(guān)系報(bào)告報(bào)文(Membership Report Message)。

因此,只需其中一臺(tái)路由器發(fā)送IGMP 查詢報(bào)文(Query Message)就足夠了。這時(shí)就需要有一個(gè)查詢器(Querier)的選舉機(jī)制來確定由哪臺(tái)路由器作為IGMP查詢器。

對(duì)于IGMPv1 來說,由組播路由協(xié)議(如PIM)選舉出唯一的組播信息轉(zhuǎn)發(fā)者DR(Designated Router,指定路由器)作為IGMP 查詢器。IGMP協(xié)議知識(shí)點(diǎn)有哪些如上圖所示,假設(shè)Host B與Host C想要收到發(fā)往組播組G1 的組播數(shù)據(jù),而Host A想要收到發(fā)往組播組G2 的組播數(shù)據(jù),那么主機(jī)加入組播組以及IGMP查詢器(Router B)維護(hù)組播組成員關(guān)系的基本過程如下:

1)主機(jī)將主動(dòng)發(fā)送IGMP 成員關(guān)系報(bào)告報(bào)文到其要加入的組播組,以聲明加入,而不必等待IGMP查詢器發(fā)來的IGMP 查詢報(bào)文;

2)IGMP 查詢器周期性地以組播方式,向本地網(wǎng)段內(nèi)的所有主機(jī)與路由器發(fā)送IGMP 查詢報(bào)文(目的地址為224.0.0.1);

3)在收到該查詢報(bào)文后,關(guān)注G1 的Host B 與Host C 其中之一(這取決于誰的延遲定時(shí)器先超時(shí)),譬如Host B 會(huì)首先以組播方式向G1 發(fā)送IGMP 成員關(guān)系報(bào)告報(bào)文,以宣告其屬于G1。

由于本地網(wǎng)段中的所有主機(jī)和路由器都能收到Host B 發(fā)往G1 的報(bào)告報(bào)文,因此當(dāng)Host C 收到該報(bào)告報(bào)文后,將不再發(fā)送同樣針對(duì)G1的報(bào)告報(bào)文,因?yàn)镮GMP 路由器(Router A和Router B)已知道本地網(wǎng)段中有對(duì)G1 感興趣的主機(jī)了。

這個(gè)機(jī)制稱為主機(jī)上的IGMP 成員關(guān)系報(bào)告抑制機(jī)制,該機(jī)制有助于減少本地網(wǎng)段的信息流量;

4)與此同時(shí),由于Host A 關(guān)注的是G2,所以它仍將以組播方式向G2 發(fā)送報(bào)告報(bào)文,以宣告其屬于G2;

5)經(jīng)過以上的查詢和響應(yīng)過程,IGMP 路由器了解到本地網(wǎng)段中有G1 和G2 的成員,于是由組播路由協(xié)議(如PIM)生成(,G1)和(,G2)組播轉(zhuǎn)發(fā)項(xiàng)作為組播數(shù)據(jù)的轉(zhuǎn)發(fā)依據(jù),其中的“*”代表任意組播源;

6)當(dāng)由組播源發(fā)往G1 或G2 的組播數(shù)據(jù)經(jīng)過組播路由到達(dá)IGMP 路由器時(shí),由于IGMP 路由器上存在(,G1)和(,G2)組播轉(zhuǎn)發(fā)項(xiàng),于是將該組播數(shù)據(jù)轉(zhuǎn)發(fā)到本地網(wǎng)段,接收者主機(jī)便能收到該組播數(shù)據(jù)了。

IGMPv1 沒有專門定義離開組播組的報(bào)文。當(dāng)運(yùn)行IGMPv1 的主機(jī)離開某組播組時(shí),將不會(huì)向其要離開的組播組發(fā)送報(bào)告報(bào)文。當(dāng)網(wǎng)段中不再存在該組播組的成員后,IGMP 路由器將收不到任何發(fā)往該組播組的報(bào)告報(bào)文,于是IGMP 路由器在一段時(shí)間之后便刪除該組播組所對(duì)應(yīng)的組播轉(zhuǎn)發(fā)項(xiàng)。

2. IGMPv2 的改進(jìn)

與IGMPv1 相比,IGMPv2 增加了查詢器選舉機(jī)制和離開組機(jī)制。

(1) 查詢器選舉機(jī)制

在IGMPv1 中,當(dāng)某共享網(wǎng)段上存在多個(gè)組播路由器時(shí),由組播路由協(xié)議(如PIM)選舉的指定路由器充當(dāng)查詢器。

在IGMPv2 中,增加了獨(dú)立的查詢器選舉機(jī)制,其選舉過程如下:

所有IGMPv2 路由器在初始時(shí)都認(rèn)為自己是查詢器,并向本地網(wǎng)段內(nèi)的所有主機(jī)和路由器發(fā)送IGMP 普遍組查詢(General Query)報(bào)文(目的地址為224.0.0.1);本地網(wǎng)段中的其它IGMPv2 路由器在收到該報(bào)文后,將報(bào)文的源IP地址與自己的接口地址作比較。通過比較, IP 地址最小的路由器將成為查詢器, 其它路由器成為非查詢器(Non-Querier);所有非查詢器上都會(huì)啟動(dòng)一個(gè)定時(shí)器(即其它查詢器存在時(shí)間定時(shí)器Other Querier Present Timer)。在該定時(shí)器超時(shí)前,如果收到了來自查詢器的IGMP 查詢報(bào)文,則重置該定時(shí)器;否則,就認(rèn)為原查詢器失效,并發(fā)起新的查詢器選舉過程。(2) 離開組機(jī)制

在IGMPv1 中,主機(jī)離開組播組時(shí)不會(huì)向組播路由器發(fā)出任何通知,導(dǎo)致組播路由器只能依靠組播組成員查詢的響應(yīng)超時(shí)來獲知組播組成員的離開。

而在IGMPv2 中,當(dāng)一個(gè)主機(jī)離開某組播組時(shí):

該主機(jī)向本地網(wǎng)段內(nèi)的所有組播路由器(目的地址為224.0.0.2)發(fā)送離開組(Leave Group)報(bào)文;當(dāng)查詢器收到該報(bào)文后, 向該主機(jī)所聲明要離開的那個(gè)組播組發(fā)送特定組查詢(Group-Specific Query)報(bào)文(目的地址字段和組地址字段均填充為所要查詢的組播組地址);如果該網(wǎng)段內(nèi)還有該組播組的其它成員,則這些成員在收到特定組查詢報(bào)文后,會(huì)在該報(bào)文中所設(shè)定的最大響應(yīng)時(shí)間(Max Response Time)內(nèi)發(fā)送成員關(guān)系報(bào)告報(bào)文;如果在最大響應(yīng)時(shí)間內(nèi)收到了該組播組其它成員發(fā)送的成員關(guān)系報(bào)告報(bào)文,查詢器就會(huì)繼續(xù)維護(hù)該組播組的成員關(guān)系;否則,查詢器將認(rèn)為該網(wǎng)段內(nèi)已無該組播組的成員,于是不再維護(hù)這個(gè)組播組的成員關(guān)系。

3. IGMPv3 的改進(jìn)

IGMPv3 在兼容和繼承IGMPv1 和IGMPv2 的基礎(chǔ)上,進(jìn)一步增強(qiáng)了主機(jī)的控制能力,并增強(qiáng)了查詢和報(bào)告報(bào)文的功能。

(1) 主機(jī)控制能力的增強(qiáng)

IGMPv3 增加了針對(duì)組播源的過濾模式(INCLUDE/EXCLUDE),使主機(jī)在加入某組播組G的同時(shí),能夠明確要求接收或拒絕來自某特定組播源S的組播信息。當(dāng)主機(jī)加入組播組時(shí):

若要求只接收來自指定組播源如S1、S2、……的組播信息,則其報(bào)告報(bào)文中可以標(biāo)記為INCLUDE Sources(S1,S2,……);若拒絕接收來自指定組播源如S1、S2、……的組播信息,則其報(bào)告報(bào)文中可以標(biāo)記為EXCLUDE Sources(S1,S2,……)。

IGMP協(xié)議知識(shí)點(diǎn)有哪些

如上圖所示,網(wǎng)絡(luò)中存在Source 1(S1)和Source 2(S2)兩個(gè)組播源,均向組播組G發(fā)送組播報(bào)文。Host B僅對(duì)從Source1 發(fā)往G的信息感興趣,而對(duì)來自Source 2 的信息沒有興趣。

如果主機(jī)與路由器之間運(yùn)行的是IGMPv1 或IGMPv2,Host B 加入組播組G 時(shí)無法對(duì)組播源進(jìn)行選擇,因此無論Host B 是否需要,來自Source 1 和Source 2 的組播信息都將傳遞給Host B。

當(dāng)主機(jī)與路由器之間運(yùn)行了IGMPv3 之后,Host B 就可以要求只接收來自Source 1、發(fā)往G 的組播信息(S1,G),或要求拒絕來自Source 2、發(fā)往G 的組播信息(S2,G),這樣就只有來自Source 1 的組播信息才能傳遞給Host B 了。

(2) 查詢和報(bào)告報(bào)文功能的增強(qiáng)

a. 攜帶源地址的查詢報(bào)文

IGMPv3 不僅支持IGMPv1 的普遍組查詢和IGMPv2 的特定組查詢,而且還增加了對(duì)特定源組查詢的支持:

普遍組查詢報(bào)文中,既不攜帶組地址,也不攜帶源地址;特定組查詢報(bào)文中,攜帶組地址,但不攜帶源地址;特定源組查詢報(bào)文中,既攜帶組地址,還攜帶一個(gè)或多個(gè)源地址。b. 包含多組記錄的報(bào)告報(bào)文

IGMPv3 報(bào)告報(bào)文的目的地址為224.0.0.22,可以攜帶一個(gè)或多個(gè)組記錄。在每個(gè)組記錄中,包含有組播組地址和組播源地址列表。組記錄可以分為多種類型,如下:

IS_IN:表示組播組與組播源列表之間的過濾模式為INCLUDE,即只接收從指定組播源列表發(fā)往該組播組的組播數(shù)據(jù)。IS_EX:表示組播組與組播源列表之間的過濾模式為EXCLUDE,即只接收從指定組播源列表之外的組播源發(fā)往該組播組的組播數(shù)據(jù)。TO_IN:表示組播組與組播源列表之間的過濾模式由EXCLUDE 轉(zhuǎn)變?yōu)镮NCLUDE。TO_EX:表示組播組與組播源列表之間的過濾模式由INCLUDE 轉(zhuǎn)變?yōu)镋XCLUDE。ALLOW:表示在現(xiàn)有狀態(tài)的基礎(chǔ)上,還希望從某些組播源接收組播數(shù)據(jù)。如果當(dāng)前的對(duì)應(yīng)關(guān)系為INCLUDE,則向現(xiàn)有組播源列表中添加這些組播源;如果當(dāng)前的對(duì)應(yīng)關(guān)系為EXCLUDE,則從現(xiàn)有組播源列表中刪除這些組播源。BLOCK:表示在現(xiàn)有狀態(tài)的基礎(chǔ)上,不再希望從某些組播源接收組播數(shù)據(jù)。如果當(dāng)前的對(duì)應(yīng)關(guān)系為INCLUDE,則從現(xiàn)有組播源列表中刪除這些組播源;如果當(dāng)前的對(duì)應(yīng)關(guān)系為EXCLUDE,則向現(xiàn)有組播源列表中添加這些組播源。

4. 組播模型分類

根據(jù)接收者對(duì)組播源處理方式的不同,組播模型分為以下三類:

(1) ASM 模型:Any-Source Multicast,任意信源組播

在ASM 模型中,任意一個(gè)發(fā)送者都可以作為組播源向某組播組地址發(fā)送信息。眾多接收者通過加入由該組播組地址標(biāo)識(shí)的組播組以獲得發(fā)往該組播組的組播信息。

在ASM 模型中,接收者無法預(yù)先知道組播源的位置,但可以在任意時(shí)間加入或離開該組播組。

(2) SFM 模型:Source-Filtered Multicast,信源過濾組播

該模型繼承了ASM 模型,從發(fā)送者角度來看,兩者的組播組成員關(guān)系完全相同。SFM 模型在功能上對(duì)ASM 模型進(jìn)行了擴(kuò)展。

在SFM 模型中,上層軟件對(duì)收到的組播報(bào)文的源地址進(jìn)行檢查,允許或禁止來自某些組播源的報(bào)文通過。

因此,接收者只能收到來自部分組播源的組播數(shù)據(jù)。從接收者的角度來看,只有部分組播源是有效的,組播源被經(jīng)過了篩選。

(3) SSM 模型:Source-Specific Multicast,指定信源組播

在現(xiàn)實(shí)生活中,用戶可能只對(duì)某些組播源發(fā)送的組播信息感興趣,而不愿接收其它源發(fā)送的信息。該模型為用戶提供了一種能夠在客戶端指定組播源的傳輸服務(wù)。

SSM 模型與ASM 模型的根本區(qū)別在于:SSM 模型中的接收者已經(jīng)通過其它手段預(yù)先知道了組播源的具體位置。SSM 模型使用與ASM/SFM 模型不同的組播地址范圍,直接在接收者與其指定的組播源之間建立專用的組播轉(zhuǎn)發(fā)路徑。

5. IP組播

(1) 對(duì)于IP 組播,需要關(guān)注下列問題:

組播源將組播信息傳輸?shù)侥睦?即組播尋址機(jī)制;網(wǎng)絡(luò)中有哪些接收者?即主機(jī)注冊;這些接收者需要從哪個(gè)組播源接收信息?即組播源發(fā)現(xiàn);組播信息如何傳輸?即組播路由。(2) IP 組播屬于端到端的服務(wù),組播機(jī)制包括以下四個(gè)部分:

尋址機(jī)制:借助組播地址,實(shí)現(xiàn)信息從組播源發(fā)送到一組接收者;主機(jī)注冊:允許接收者主機(jī)動(dòng)態(tài)加入和離開某組播組,實(shí)現(xiàn)對(duì)組播成員的管理;組播路由:構(gòu)建組播報(bào)文分發(fā)樹(即組播數(shù)據(jù)在網(wǎng)絡(luò)中的樹型轉(zhuǎn)發(fā)路徑),并通過該分發(fā)樹將報(bào)文從組播源傳輸?shù)浇邮照?組播應(yīng)用:組播源與接收者必須安裝支持視頻會(huì)議等組播應(yīng)用的軟件,TCP/IP 協(xié)議棧必須支持組播信息的發(fā)送和接收。為了讓組播源和組播組成員進(jìn)行通信,需要提供網(wǎng)絡(luò)層組播地址,即IP 組播地址。同時(shí)必須存在一種技術(shù)將IP 組播地址映射為鏈路層的組播MAC 地址。(3) IP 組播地址

IANA(Internet Assigned Numbers Authority,互聯(lián)網(wǎng)編號(hào)分配委員會(huì))將D類地址空間分配給IPv4組播使用,范圍從224.0.0.0到239.255.255.255。說明:

組播組中的成員是動(dòng)態(tài)的,主機(jī)可以在任何時(shí)刻加入或離開組播組。GLOP 是一種AS(Autonomous System,自治系統(tǒng))之間的組播地址分配機(jī)制,將AS 號(hào)填入該范圍內(nèi)組播地址的中間兩個(gè)字節(jié)中,每個(gè)AS 都可以得到255 個(gè)組播地址。有關(guān)GLOP 的詳細(xì)介紹請(qǐng)參見RFC 2770。(4) 以太網(wǎng)組播MAC 地址

以太網(wǎng)傳輸單播IP 報(bào)文的時(shí)候,目的MAC 地址使用的是接收者的MAC 地址。但是在傳輸組播數(shù)據(jù)包時(shí),其目的地不再是一個(gè)具體的接收者,而是一個(gè)成員不確定的組,所以要使用組播MAC 地址。IANA規(guī)定,IPv4 組播MAC地址的高24 位為0x01005E,第25 位為0,低23 位為IPv4 組播地址的低23 位。由于IPv4 組播地址的高4 位是1110,代表組播標(biāo)識(shí),而低28 位中只有23 位被映射到IPv4 組播MAC 地址,這樣IPv4 組播地址中就有5 位信息丟失。于是,就有32 個(gè)IPv4 組播地址映射到了同一個(gè)IPv4 組播MAC 地址上,因此在二層處理過程中,設(shè)備可能要接收一些本IPv4 組播組以外的組播數(shù)據(jù),而這些多余的組播數(shù)據(jù)就需要設(shè)備的上層進(jìn)行過濾了。

6. 組播協(xié)議

通常,我們把工作在網(wǎng)絡(luò)層的IP 組播稱為“三層組播”,相應(yīng)的組播協(xié)議稱為“三層組播協(xié)議”,包括IGMP、PIM、MSDP、MBGP等;把工作在數(shù)據(jù)鏈路層的IP 組播稱為“二層組播”,相應(yīng)的組播協(xié)議稱為“二層組播協(xié)議”,包括IGMP Snooping、組播VLAN 等。

(1) 三層組播協(xié)議

三層組播協(xié)議包括組播組管理協(xié)議和組播路由協(xié)議兩種類型

a. 組播組管理協(xié)議

在主機(jī)和與其直接相連的三層組播設(shè)備之間通常采用組播組的管理協(xié)議IGMP,該協(xié)議規(guī)定了主機(jī)與三層組播設(shè)備之間建立和維護(hù)組播組成員關(guān)系的機(jī)制。

b. 組播路由協(xié)議

組播路由協(xié)議運(yùn)行在三層組播設(shè)備之間,用于建立和維護(hù)組播路由,并正確、高效地轉(zhuǎn)發(fā)組播數(shù)據(jù)包。

組播路由建立了從一個(gè)數(shù)據(jù)源端到多個(gè)接收端的無環(huán)(loop-free)數(shù)據(jù)傳輸路徑,即組播分發(fā)樹。

對(duì)于ASM 模型,可以將組播路由分為域內(nèi)和域間兩大類:

域內(nèi)組播路由用來在AS 內(nèi)部發(fā)現(xiàn)組播源并構(gòu)建組播分發(fā)樹,從而將組播信息傳遞到接收者。在眾多域內(nèi)組播路由協(xié)議中,PIM(Protocol Independent Multicast,協(xié)議無關(guān)組播)是目前較為典型的一個(gè)。按照轉(zhuǎn)發(fā)機(jī)制的不同,PIM 可以分為DM(Dense Mode,密集模式)和SM(Sparse Mode,稀疏模式)兩種模式。域間組播路由用來實(shí)現(xiàn)組播信息在AS 之間的傳遞,目前比較成型的解決方案有:MSDP(Multicast Source Discovery Protocol,組播源發(fā)現(xiàn)協(xié)議)能夠跨越AS 傳播組播源的信息;而MP-BGP(MultiProtocol Border Gateway Protocol,多協(xié)議邊界網(wǎng)關(guān)協(xié)議)的組播擴(kuò)展MBGP(Multicast BGP)則能夠跨越AS 傳播組播路由。對(duì)于SSM 模型,沒有域內(nèi)和域間的劃分。由于接收者預(yù)先知道組播源的具體位置,因此只需要借助PIM-SM 構(gòu)建的通道即可實(shí)現(xiàn)組播信息的傳輸。

(2) 二層組播協(xié)議

二層組播協(xié)議包括IGMP Snooping和組播VLAN等。a. IGMP Snooping

IGMP Snooping(Internet Group Management Protocol Snooping,互聯(lián)網(wǎng)組管理協(xié)議窺探)是運(yùn)行在二層設(shè)備上的組播約束機(jī)制,通過窺探和分析主機(jī)與三層組播設(shè)備之間交互的IGMP 報(bào)文來管理和控制組播組,從而可以有效抑制組播數(shù)據(jù)在二層網(wǎng)絡(luò)中的擴(kuò)散。

b. 組播VLAN

在傳統(tǒng)的組播點(diǎn)播方式下,當(dāng)連接在二層設(shè)備上、屬于不同VLAN 的用戶分別進(jìn)行組播點(diǎn)播時(shí),三層組播設(shè)備需要向該二層設(shè)備的每個(gè)VLAN 分別發(fā)送一份組播數(shù)據(jù);而當(dāng)二層設(shè)備運(yùn)行了組播VLAN。

以上就是關(guān)于“IGMP協(xié)議知識(shí)點(diǎn)有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI