IGMP版本
IGMPv1中定義了基本的組成員查詢和報(bào)告過程,IGMPv2在此基礎(chǔ)上添加了查詢器選舉和組成員離開的機(jī)制,IGMPv3中增加的主要功能是成員可以指定接收或指定不接收某些組播源的報(bào)文。三個(gè)版本在演進(jìn)過程中對(duì)協(xié)議報(bào)文的處理是向前兼容的,因此盡管各個(gè)版本的協(xié)議報(bào)文格式不同,但是運(yùn)行IGMP高版本的路由器可以識(shí)別低版本的IGMP報(bào)文。
所有IGMP版本都支持ASM(Any-Source Multicast)模型。IGMPv3可以直接應(yīng)用于SSM(Source-Specific Multicast)模型,而IGMPv1和IGMPv2則需要IGMP SSM Mapping技術(shù)的支持才可以應(yīng)用于SSM模型。
IGMPv3詳解
與IGMPv2相比,IGMPv3報(bào)文的變化如下:
IGMPv3報(bào)文包含兩大類:查詢報(bào)文和成員報(bào)告報(bào)文。IGMPv3沒有定義專門的成員離開報(bào)文,成員離開通過特定類型的報(bào)告報(bào)文來傳達(dá)。
??查詢報(bào)文中不僅包含普遍組查詢報(bào)文和特定組查詢報(bào)文,還新增了特定源組查詢報(bào)文(Group-and-Source-Specific Query)。該報(bào)文由查詢器向共享網(wǎng)段內(nèi)特定組播組成員發(fā)送,用于查詢?cè)摻M成員是否愿意接收特定源發(fā)送的數(shù)據(jù)。特定源組查詢通過在報(bào)文中攜帶一個(gè)或多個(gè)組播源地址來達(dá)到這一目的。
??成員報(bào)告報(bào)文不僅包含主機(jī)想要加入的組播組,而且包含主機(jī)想要接收來自哪些組播源的數(shù)據(jù)。IGMPv3增加了針對(duì)組播源的過濾模式(INCLUDE/EXCLUDE),將組播組與源列表之間的對(duì)應(yīng)關(guān)系簡(jiǎn)單的表示為(G,INCLUDE,(S1、S2...)),表示只接收來自指定組播源S1、S2……發(fā)往組G的數(shù)據(jù);或(G,EXCLUDE,(S1、S2...)),表示接收除了組播源S1、S2……之外的組播源發(fā)給組G的數(shù)據(jù)。當(dāng)組播組與組播源列表的對(duì)應(yīng)關(guān)系發(fā)生了變化,IGMPv3報(bào)告報(bào)文會(huì)將該關(guān)系變化存放于組記錄(Group Record)字段,發(fā)送給IGMP查詢器。
??在IGMPv3中一個(gè)成員報(bào)告報(bào)文可以攜帶多個(gè)組播組信息,而之前的版本一個(gè)成員報(bào)告只能攜帶一個(gè)組播組。這樣在IGMPv3中報(bào)文數(shù)量大大減少。
?
IGMP各版本間的差異