2024年4月27日发(作者:)

IGMP V1 V2 V3 定义和区别

前两天遇到了一个IGMP的问题,应用在IGMP的一些概念.

那就让我们完整的看一下这个组播协议把,以下是我学习过程重总结的一些东西,

先来认识一下IGMP这个协议吧,它的全称是Internet Group Management

Protocol,它和unicast和multicast的区别是它是发往一组计算机(属于它这个组播组的

所有计算机),IGMP主要用于在线的视频和在线游戏,像IPTV就是一种比较广泛的应用.

现在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