1.IGMP(Internet Group Management Protocol)作为因特
网组管理协议,是TCP/IP协议族中负责IP组播成员管理的协议,它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。该协议在接收者主机和组播路由器之间运行,定义了主机与路由器之间建立和维护组播成员关系的机制。
2.IGMP协议是IP组播在末端网络上使用的主机对路由器的
信令机制,分为两个功能部分:主机侧和路由器侧。
3.IGMP工作机制如下所述:
a)接收者主机向所在的共享网络报告组成员关系。
b)处于同一网段的所有使能了IGMP功能的组播路由器选
举出一台作为查询器(查询器在不同的版本中有不同
的选举机制),查询器周期性地向该共享网段发送组成
员查询消息。
c)接收者主机接收到该查询消息后进行响应以报告组成
员关系。
d)网段中的组播路由器依据接收到的响应来刷新组成员
的存在信息。如果超时无响应,组播路由器就认为网
段中没有该组播组的成员,从而取消相应的组播数据
转发。
4.所有参与组播传输的接收者主机必须应用IGMP协议。主
机可以在任意时间、任意位置、成员总数不受限制地加入
或退出组播组。
5.支持组播的路由器不需要也不可能保存所有主机的成员
关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。而各主机只需要保存自己加入了哪些组播组。
6.从此体系结构中可以知道IGMP处于组播协议的最底层,
是整个组播协议的基础。在组播协议中,只有IGMP协议直接与点播主机联系,运行IGMP的路由器负责管理组用户主机的加入、离开,通过维护用户数据,发送组播数据到主机。
7.到目前为止,IGMP有三个版本:IGMPv1版本、IGMPv2版
本和IGMPv3版本。所有IGMP版本都支持ASM(Any-Source Multicast)模型。IGMPv3可以直接应用于SSM (Source-Specific Multicast)模型,而IGMPv1和IGMPv2则需要SSM-Mapping技术的支持.。
8.IGMPv1(RFC1112)定义了基本的组成员查询和报告过程。
9.IGMPv2(RFC2236)定义,在 IGMPv1 的基础上添加了组
成员快速离开的机制。
10.IGMPv3 ,增加的主要功能是成员可以指定接收或指定
不接收某些组播源的报文。
11.Version:IGMP版本标识,版本1为1。IGMPv2的报文
中没有该字段。
12.Type:类型字段。表示IGMP报文类型。
13.IGMPv1支持两种类型的报文:
a)成员关系查询(0x11):路由器周期性的发送成员关系
查询报文去查询是否有组播成员。默认查询周期为60
秒。
b)成员关系报告(0x12):成员关系报告用于表示主机想
加入某个组播组。
c)成员关系报告的发送可以被动发送也可主动发送。
d)被动发送是指当主机收到成员关系查询消息后如果对
某个组播组感兴趣想加入组播组时发送成员关系报告。
e)主动发送是指如果主机想加入某个组播组时,可以不
用等待成员关系查询报文,而主动地发送成员关系报
告。
14.组地址:不同类型的IGMP报文中组地址不同。
a)在成员关系报告报文中,组地址为某个特定的组播地
址。
b)在成员关系查询报文中,组地址为0。
15.主机主动发送IGMP成员关系报告报文,表示想加入一
个组播组中。
16.该报文中组地址为主机想加入的组播组的地址。
17.IGMPv1的查询与响应过程如下:
a)IGMP查询器周期性地向共享网段内所有主机以组播方
式(目的地址为224.0.0.1)发送成员关系查询消息(组
地址为0)。
b)网络内所有主机都接收到该查询消息,如果某主机(如
PC1、PC2和PC3)对任意组播组G感兴趣,则以组播
方式发送“成员关系报告”报文(其中携带组播组G
的地址)来宣告自己将加入该组播组,假设PC2首先
发送此报告。
c)经过查询/响应过程后,IGMP路由器了解到本网络内存
在组播组G对应的接收者,生成(*,G)组播转发项
并依此作为组播信息的转发依据。*表示组播组成员,G表示某个组播组。
18.IGMPv1规定,当共享网络中有多台路由器时,由组播
路由协议选举查询器。不同的组播路由协议有不同的选举机制。
19.IGMP成员关系查询报文是目的地址是224.0.0.1,就
是说网段内所有的设备都会接收到该查询报文。但并不是所有接收到该报文的主机都会响应查询请求的。只有一个主机会以成员关系报告报文响应,而其他主机则抑制成员关系报告的发送。
20.实际上主机收到IGMP成员关系查询时,会对它已经加
入的每个组播组启动一个倒计数报告计时器。V1中计时器值固定使用10秒。计时器到时的主机则主动发送成员
关系报告,组地址为该组播组地址,目的地址为224.0.0.1。
于是网段内其它主机都会收到该成员关系报告报文,接收到成员关系报告报文的主机抑制成员关系报告的发送,并删除计时器。
21.当路由器周期性的发送成员关系查询报文时,每个主
机都会再次启动计时器进行查询/响应/抑制。
22.由于IGMPv1版本没有定义专门离开组播组的消息,因
此主机离开组时是默默离开不发送任何报文。而组播路由器如何知道用户已经离开组播组呢?IGMPv1主要是基于查询无响应进而超时的思路实现的。
23.成员悄悄离开组播组,不发送任何报文。路由器依旧
周期性的发送成员关系查询报文,周期为60秒,当路由器发送3次成员关系查询报文都没有收到响应的成员关系报告报文时,路由器认为组内已经没有成员,不再向该网段转发组播报文。
24.IGMPv2报文与IGMPv1报文略有不同,取消了版本字段
而相应增加了最大响应时间字段。
25.IGMPv2报文中有三种报文类型:
26.Type=0x11 成员关系查询报文,又分两种子类型:
a)常规查询:用于确定哪些组播组是有效的,即该组是
否还有成员在使用,常规查询组地址全零;
b)特定查询:用于查询特定的组播组是否还有组成员。