IGMP v1 v2 v3 區別

IGMP有3個版本V1(RFC1112),V2(RFC2236),V3(RFC3376),

IGMP v1支持host membership query 和host membership report
report message是由IGMP host發給IGMP router來報告它加入的組播組.
query message是由IGMP router發給IGMP client來查詢IGMP host所加入的組播組.
這樣做之後,IGMP路由器就記錄了它所在網段主機加入的所有組播地址.

下面看這個例子之後可能大家就比較清楚了,
在IGMP router的LAN端有2臺PC,hostA,hostB,hostC,hostA加入了224.100.1.1,hostB加入了224.100.1.2,hostC沒有加入任何的組播.

當IGMP router想要查詢lan端的組播地址是,它以組播地址224.0.0.1 發到它的lan端,224.0.0.1代表子網中所有支持多播的設備的多播地址, 這個時候如果pc和IGMP router之間用hub或者layer2的交換機(沒有enable IGMP snooping),那麼包括hostC的3臺主機都會收到,只不過hostC不會迴應,hostA和hostB會發送報告信息給router,內容分別 爲224.100.1.1和224.100.1.2.

如果hostA想要加入一個新的組播地址224.100.1.3,它會發個report信息給想要加入的組播地址,router收到後加入IGMP table.
===========================================
IGMPv2,包括membership query,membership report, Leave Group message .
membership query 包括general query,group-specific query.
general query和IGMP V1一樣,發224.0.0.1來查詢在網絡中有哪些組播組.
group-specific query,用來查詢是否在網絡中存在特定的組播組.
membership report,這個和V1一樣,加入一個新的GROUP也一樣.
Leave Group message是由這個組的最後一個成員發給224.0.0.2(網絡中的所有組播路由器),內容爲這個組播地址,IGMP router收到後,會發送一個group-specific query來查詢是否網絡中的這個組播地址已經不存在了,如果沒有迴應,就把這個組從IGMP table 中刪除.
==============================================
IGMP V3, 

Membership Report 

其中Membership Query分爲三種:

General Query,用於查詢接口下所有多播成員信息;

Group-Specific Query,用於查詢接口下指定組的成員信息; 

Group-and-Source-Specific Query,該類型爲IGMPv3中新增加的,用於查詢接口下是否有成員需要接收指定源列表中的源所發出的特定組的多播流。 
==========================================
下面來談談IGMP V1,V2,V3的區別,

IGMPv1 :主機可以加入組播組。沒有離開信息(leave messages)。路由器使用基於超時的機制去發現其成員不關注的組。 

IGMPv2 :該協議包含了離開信息,允許迅速向路由協議報告組成員終止情況,這對高帶寬組播組或易變型組播組成員而言是非常重要的。 

IGMPv3 :與以上兩種協議相比,該協議的主要改動爲:允許主機指定它要接收通信流量的主機對象。來自網絡中其它主機的流量是被隔離的。 IGMPv3 也支持主機阻止那些來自於非要求的主機發送的網絡數據包。 

IGMPv3同路由器的交互過IGMPv2程同相同。但是在IGMP V1/V2中,主機只根據組地址來決定加入某個組並從任何一個源接收發給該組地址的組播流。而使用IGMP V3的主機通告該主機所希望加入的 多播組,同時還通告該主機所希望接收的多播源的地址。主機可以通過一個包括列表或一個排除列表來指明希望從哪些源能接收多播流。同時IGMP v3帶來的另外一個好處是節省帶寬,避免不需要的、非法的組播數據流佔用網絡帶寬,這尤其在多個多播源共用一個多播地址的網絡環境中表現明顯。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章