全部課程
什么是IGMP協(xié)議
發(fā)布時間: 2021-07-06
什么是IGMP協(xié)議?IGMP是Internet Group Management Ptotocol的簡稱,被稱為互聯(lián)網(wǎng)組管理協(xié)議,是TCP/IP協(xié)議族中負責IPV4組播成員管理的協(xié)議。
一、IGMP的作用
作用1,IGMP用來在接收者主機和直接相鄰的組播路由器之間建立和維護組播組成員的關(guān)系。
作用2,IGMP通過在接收者主機和組播路由器之間交互IGMP報文實現(xiàn)組成員管理功能,IGMP報文封裝在IP報文中。
二、IGMP的版本
IGMP有三個版本,用于IPv4中一個網(wǎng)段內(nèi)運行與組成員和路由器之間的協(xié)議:
版本1,IGMPv1
版本2,IGMPv2
版本3,IGMPv3
用于IPV6中運行與組成員和組成員路由器之間的協(xié)議:
版本1,MLDv1,等同于IGMPv2
版本2,MLDv2,等同于IGMPv3圖片
三、IGMPv1報文
報文1,普遍組查詢報文
報文2,成員報告報文圖片
普遍組查詢報文
1.周期。路由器周期發(fā)送,默認每間隔60s發(fā)送一次,通過IP報文封裝,SIP為路由器接口IP地址,DIP為224.0.0.1(代表鏈路上所有路由器和主機)。
2.查詢。普遍組查詢報文的Group address為0.0.0.0 ,代表針對所有組播組發(fā)起組成員查詢。
3.地址。當組成員收到普遍組查詢報文后,隨機延時一個0-10s的時間后,發(fā)送成員報告報文,SIP為主機自身接口IP地址,DIP為該主機所屬的組播組地址,Group address為主機所屬的組播組地址。
4.時間。隨機延時時間為0-10s之間的一個值,10s稱為較大響應(yīng)時間,實現(xiàn)針對組成員報告報文的抑制,IGMPv1無法修改該時間值。
為什么要設(shè)計較大響應(yīng)時間?避免同組播組的成員重復(fù)發(fā)送成員報告報文,減小路由器負擔。
由于組成員報告報文延時時間不一致,因此誰先超時誰先發(fā)送組成員報告報文。
5.創(chuàng)建。路由器收到成員報告報文以后,將自動創(chuàng)建(*,G)表項,并將收到該成員報告報文的接口作為該(*,G)報文的下游接口。
未來路由器收到發(fā)向該組的組播報文就復(fù)制一份,從該下游接口發(fā)送出去,接收者就從互聯(lián)該接口的組成員路由器收到了該組播報文。
6.離組。IGMPv1沒有設(shè)計離組機制,成員離組不會發(fā)送任何通知給組成員路由器。
如果該組中最后一個組成員離開或者只有一個組成員由于某種故障脫離該組播組,將導(dǎo)致路由器在130s【兩個普遍組查詢報文發(fā)送時間+較大抑制延時(60s*2+10s)】內(nèi)無法接收到任何組成員的報文。
當超時以后,路由器將刪除關(guān)于組成員(*,G)表項的下游接口,停止向該網(wǎng)絡(luò)發(fā)送關(guān)于該組播組的組播報文。
注意
由于在超時之前,組播路由器并沒有收到該組播組成員發(fā)送的報告報文,無法觸發(fā)刪除關(guān)于該組播組的(*,G)表項。
因此,當組播路由器收到發(fā)往關(guān)于該組播組的組播報文時,仍然會將組播報文從該組播組成員關(guān)聯(lián)的下游接口發(fā)送出去,造成組播流量浪費,消耗鏈路帶寬。(在130s內(nèi)還是會繼續(xù)發(fā)送組播流量,造成組播流量的浪費,鏈路帶寬的浪費)。
通常情況下,組播路由器會周期性發(fā)送普遍組查詢報文,但是在IGMPv1中,組播路由器默認情況下不會發(fā)送普遍組查詢報文。
成員報告報文
沒有開啟PIM協(xié)議:不會發(fā)送組成員報告報文的原因是在IGMPv1中,默認沒有查詢者,只有查詢者才能發(fā)送普遍組查詢報文(通過display igmp interface命令可以查看)。
只有當查詢被選舉出來以后才會發(fā)送普遍組查詢報文,而IGMPv1并沒有查詢器選舉機制,所以該組播路由器并不知道自己是查詢者。
什么是查詢者?當一個網(wǎng)段存在多臺路由器時,負責向該網(wǎng)段發(fā)送普遍組查詢報文的路由器。
在IGMPv1中需要PIM協(xié)議的DR選舉機制來協(xié)助查詢器的選舉,因此啟用IGMPv1的接口還需啟用PIM協(xié)議,通過PIM協(xié)議選舉出在該網(wǎng)段上的DR,然后由DR充當IGMPv1的查詢者。
在接口使能PIM協(xié)議:
接口使能PIM協(xié)議后:
PIM DR如何選舉?
1.優(yōu)先級,根據(jù)PIM協(xié)議中hello包中攜帶的優(yōu)先級選舉DR,優(yōu)先級越大的成為DR。
2.IP地址大小,優(yōu)先級相同,則比較接口IP地址的大小,IP地址大的成為DR。
普遍組查詢報文示例
當組成員收到該普遍組查詢報文后,會隨機延時1-10s,以自身接口IP地址為源,自身加入的組播組地址為目的發(fā)送成員報告報文。
成員報告報文示例:
在收到了組成員發(fā)送的成員報告報文,組播路由器會自動生成關(guān)于該下游接口收到組成員報告報文的(*,G)表項。
示例圖:
為什么產(chǎn)生的是(*,G)表項?因為組成員發(fā)送的成員報告報文中沒有協(xié)議組播源信息,那么也就說明,任何一個組播報文發(fā)送者都有可能成為組播的發(fā)送源,所以用“ * ” 來標識,“ * ” 代表任意。
IGMPv1的普遍組查詢報文缺省60s發(fā)送一次,可以在接口下通過igmp timer query命令更改,V1,V2,V3都可以更改。
通過更改查詢器發(fā)送普遍組查詢報文的時間,可以控制普遍組查詢報文及其組成員報告報文的發(fā)送頻率,以此提高收斂速度,但隨之也會增加設(shè)備負擔。
PIM的hello包中默認協(xié)議的優(yōu)先級為1,且DR是可以被搶占。
可以通過pim hello-option dr-priority命令修改優(yōu)先級。
非查詢器收到成員報告報文也會生成(*,G)表項。
為什么只有查詢器才發(fā)送普遍組查詢報文?只有查詢器發(fā)送普遍組查詢報文,這樣可以減少鏈路帶寬浪費,也減輕了組成員的負擔。
如果其他組播路由器也發(fā)送普遍組查詢報文,那么將導(dǎo)致收到普遍組查詢報文的主機都要回應(yīng)成員報告報文,當組播路由器的數(shù)量增加,會導(dǎo)致主機負擔加重。
如果DR失效,其他組播路由器要多久才能檢測到DR故障,并接替DR位置?
PIM的hello發(fā)送周期為30s,holdtime為105s,也就是說,105s后如果沒有收到其他組播路由器發(fā)送的PIM hello。
那么這時該組播路由器將經(jīng)過DR的選舉成為新的DR,并默認以30s為周期發(fā)送PIM hello。
PIM hello也可以在接口下通過pim timer hello命令更改,hold time可以在接口下通過pim hello option holdtime更改。
四、IGMP特點
優(yōu)點:
IGMPv1一共有兩種報文,普查報文和成員報告報文,沒有離組報文。
IGMPv1只有一種機制,響應(yīng)抑制機制,沒有離組機制。
缺點:
IGMPv1沒有查詢器選舉機制,需要PIM的DR來充當IGMPv1的查詢器。
IGMPv1沒有離組機制,對流量的控制性不好。
上一篇: 學(xué)html5能干什么
下一篇: 華為鯤鵬中有哪幾個開源