王浦衡
【摘 要】隨著計算機通信技術的發展,多播通信以其高效、快捷的數據傳輸技術得到廣泛應用。本文主要論述IGMP協議v1,v2,v3三個版本的原理和區別。
【關鍵詞】多播協議;IGMP;TCP/IP
中圖分類號: TP212.9;TN929.5 文獻標識碼: A文章編號: 2095-2457(2019)34-0207-002
DOI:10.19694/j.cnki.issn2095-2457.2019.34.096
Analysis on the Difference of Three Versions of Multicast Protocol IGMP
WANG Pu-heng
(Hunan Chemical Vocational and Technical College,Zhuzhou Hunan 412000,China)
【Abstract】With the development of computer communication technology,multicast communication has been widely used for its efficient and fast data transmission technology.This paper mainly discusses the principles and differences of three versions of IGMP protocol v1,V2 and v3.
【Key words】Multicast protocol;IGMP;TCP/IP
1 多播協議IGMP介紹
IGMP英文全稱Internet Group Management Protocol,中文稱多播協議或者組播協議,是TCP/IP協議簇中負責聯網設備節點多播成員管理的協議,用于管理各IP主機以及和其連接的路由器共同搭建維護多播組成員關系。
截至目前,有V1/V2/V3三個版本多播協議。
這三個版本的IGMP都支持“任意信源多播”;V3版本可以直接支持“指定信源多播”,而V1和V2兩個版本則需要在IGMP指定信源多播映射技術支持下才能支持“指定信源多播”。
2 多播工作原理
2.1 v1版多播協議工作機制
v1版IGMP協議通過查詢報文和響應報文來實現對多播組成員的管理。當一個多播網絡中存在多個多播路由器時,因為所有的多播路由器都能從主機節點接收到IGMP成員發送過來的關系報告報文,所以,只需要指定一個路由器能發送IGMP查詢報文就可以了,因此這個時候就需要有一個選舉機制來選出其中某一個路由器作為IGMP查詢器。
如圖1所示,假設PC-B與PC-C想要接收到多播組信源為G1的多播數據,而PC-A想要收到多播組信源為G2的多播數據,那么主機加入多播組以及IGMP協議查詢器路由器(RB)與主機構建成員組關系的基本過程應該是:
1)網絡中的主機首先將主動向查詢路由器發送成員關系報告報文用來申明它要加入的多播組,而不是被動等待IGMP協議查詢路由器發來的IGMP查詢報文;
2)IGMP查詢路由器以目的地址為224.0.0.1周期性向本地網段內的所有路由器與主機發送IGMP查詢報文;
3)本網段內主機和路由器收到查詢報文之后,延時定時器先到時的主機或路由器會先以多播的方式向G1(查詢器)發送IGMP成員關系報文報告自己屬于多播組G1。因為是以多播形式發送的報告,所以本地網段中同屬于此多播組的其他主機都能收到此報告報文,因此,其他同屬于此多播組的主機或路由器將不再發送同樣的報告報文,這時的IGMG查詢路由器已經知道本地網段中有主機從屬于G1多播組。這種機制稱為成員關系報告抑制機制,這個機制有助于降低本地網段中的報文流量;
4)與此同時,屬于多播組G2的其他主機或者路由器,仍將依據上述原理以多播方式向G2查詢器發送報告報文,告知G2查詢器本網段中有從屬于G2多播組的成員。
5)通過上述的查詢和報告后,IGMP路由器可以確認多播組G1和G2在本地網段中有相應的成員,隨后多播路由協議如PIM生成任意源多播數據向多播組G1和G2進行多播數據發送;
2.2 v2版多播協議工作機制
與v1版IGMP協議相比,v2版IGMP協議改進了查詢器選舉機制,并定義了成員離開多播組機制。
1)多播協議查詢路由器選舉機制
在v1版的IGMP協議中,當某個網絡上有多個多播路由器時,多播路由協議將直接指定其中某個路由器作為IGMP的查詢器。但在第二版的IGMP協議中,多播路由協議不是直接指定某一臺路由器作為查詢器,而是會在這幾個路由器之間實施一個選舉機制,選出一個路由器作為查詢器。選舉過程是:
當啟用v2版多播協議的所有路由器在開機初始化時,默認情況下都會認為自己是IGMP查詢路由器,然后以目的地址為224.0.0.1的多播報文向本網段內的所有主機及路由器發送IGMP查詢報文。本網絡中其他路由器(或者主機)收到該查詢報文后,會將路由器發來的查詢報文的源IP地址跟自己的接收報文接口IP地址做比較,IP地址相對小的路由器將被選舉成為IGMP查詢路由器,其他路由器自動成為非查詢路由器。而且,所有非查詢路由器上都會啟用一個計時器,用來記錄“查詢器”存在的時間,如果在計時器結束計時前收到了來自查詢路由器的查詢報文,則重置這個計時器,不然就認為原來選舉出來的查詢路由器失效不存在,并以此觸發查詢器的重新選舉。
2)多播離組機制
在v1版的多播協議中,如果其中某一個主機要離開多播組時,這個主機是不會向多播路由器發出任何離組通告的,這種機制設定導致了多播路由器只能依據多播組路由器向成員主機發送查詢報文的響應超時來判斷成員離組。但在v2版的多播協議中,當某一臺主機離開多播組時,這臺主機將以目的IP地址為224.0.0.2向本地網段中的所有多播路由器發送離組報文,當多播組的查詢器路由器收到這個離組通告報文后,會立即向這臺主機聲明要離開的多播組發送特定的多播查詢報文,查詢該多播組是否還有其他的成員,如果這個網絡中這個多播組還有其他的多播成員主機,則會在收到這個特定的多播查詢確認報文后,會在規定的響應時間內(查詢路由器查詢報文給出)向查詢器路由器發送關系報告報文,告知查詢路由器自己的存在。查詢路由器收到這個關系報告報文后,會繼續保持這個多播組的成員關系表,不然的話,查詢路由器會認為這個網絡中已經沒有這個多播組成員,就不會再維護這個多播的成員關系表。
2.3 v3版多播協議的改進
v3版的IGMP相比v1版IGMP和v2版IGMP,在兼容和繼承的基礎上進一步加強了主機的控制能力,改進了查詢路由器查詢報文和主機報告報文的功能。
1)改進主機控制能力
v3版多播協議增加了針對多播源的過濾模式,方法就是當某臺主機在加入某多播組G的同時,能夠明確是接收(include)還是拒絕(exclude)來自某個特定多播源Sources的多播報文。
如圖2所示,一個網絡中存在Source 1(S1)和Source 2(S2)兩個多播源,同時向多播組G發送多播報文。但是Pc B只想接收從Source1發往多播組G的信息,而不想接收從Source 2發往多播組G的信息。這時,如果這個網絡中的主機和路由器之間運行的是v1和v2版的IGMP多播協議,那么Pc B將無法對來自不同多播源(Source1、Source2)的信息進行取舍,結果就造成不管Pc B是否需要,所有發往多播組G的多播信息都將被Pc B接收。但如果此時運行的是v3版的IGMP多播協議,Pc B就可以按照自己的需求,只接收來自Source1發往多播組G的多播信息(或者按照自己的需求拒絕接收來自Source2 的多播信息),這樣,Pc B就可以按自己的需求接收自己想要的多播信息,以便節約線路和設備的資源。
2)增強查詢路由器查詢報文和主機報告報文功能
A.查詢路由器的查詢報文包含源地址
v1版IGMP協議的“普通組查詢報文”,不包含源地址,也不包含組地址;
v2版IGMP協議的“特定組查詢報文”,不包含源地址,但包含組地址;
v3版IGMP多播協議,在原有支持v1版和v2版的“普通組查詢報文”及“特定組查詢”的基礎之上,還支持對特定源組的查詢,所謂的“特定源組查詢”就是既包含1個或多個源地址,還包含組地址;
B.主機的報告報文包含多個多播組的組記錄
v3版多播協議主機報告報文中,目的地址為多播地址“224.0.0.22”,同時多播組的組記錄可以包含一個或多個組記錄。而在每個組記錄中,包含有多播組地址和多播源地址列表。
3 小結三個版本IGMP協議的區別
3.1 IGMP V1:沒有leave報文,主要依靠Timer計時器,來決定是否離開組。
3.2 IGMP V2:增加leave報文,明確了查詢路由器的選舉機制。
3.3 IGMP V3:增加SSM(Source Specific Multicast)功能。取消V1&V2版本中的響應抑制功能。
【參考文獻】
[1]侯艷,徐寶海.《IGMP工作原理與安全技術》,《才智》,2010.10.25.
[2]王躍.《IGMP組播協議與應用》,《才智》,2010.3.15.