组播通信中,组播网络需要将组播数据发送给特定的组播组成员,因此组播网络需要知道组成员的位置与组成员所加的组播组。
通过IGMP(Internet Group Management Protocol,.因特网组管理协议),组成员可以将加组消息发送给组播网络,从而让组播网络感知到组成员的位置和所加组播组。
IGMPv1协议
工作原理:
1、启用IGMPv1协议的路由器接口,每隔60秒周期性发送IGMPv1的普遍组查询报文
2、IGMPv1没有查询器选举机制,查询器的选举借用PIM协议,IGMPv1使用PIM协议的DR充当查询器
3、IGMPv1普遍查询报文使用目的IP为224.0.0.1,代表该链路上的所有设备
4、组成员接收到普遍组查询/组成员主动加组时会发送成员关系报告报文,成员关系报告报文目的地址为成员加组的组地址
5、IGMPv1协议没有设计离组机制。路由器在130s(2倍查询间隔+最大响应时间10s)没有收到某个组的成员关系报告,则认为该组不存在组成员,删除对应的IGMP表项(PIM表项)停止在接口向该组转发组播流量
6、组成员报告抑制机制
当组成员收到普遍组查询后,不会立即发送报告报文,而且启动一个最大响应计时器,随机一个10s内的时间,超时后在回复报告报文
收到报告报文的同组主机不在该轮发送报文
7、IGMPv1无法修改最大响应时间,默认10s
IGMPv2
IGMPv2的优化
1、增加查询器的选举机制,当存在多台IGMPv2的路由器时,接口IP地址大的成为查询器
2、添加了离组机制
当组成员离组时,发送离组报文,报文目的地址为224.0.0.2,代表该链路上的路由器
查询器收到离组报文后,发送特定组查询报文,1s为间隔,连续发2次,间隔时间*健壮系数内没有收到组成员报告,则认为该组不存在成员,删除对一组播表项
特点组查询报文也存在成员关系报告报文抑制机制,但最大响应时间默认1s,普遍组查询时间同IGMPv1
IGMPv2可以控制最大响应时间
3、发送特定组查询报文的2种实现机制
只要收到离组报文,或发送特定组查询
收到Last Reporter的离组报文,才发送特定组查询、
4、发送离组报文的机制
只要离组就发离组报文
Last Reporter发送离组报文,其他成员不发送离组报文,成员和路由器一样要维护LastReporter信息实现复杂
igmp robust-count 5
设置健壮系数
igmp timer query 10
普通组查询的发送间隔
igmp max-response-time 9
普通组查询最大响应时间
igmp lastmember-queryinterval 3
特定组查询的最大响应时间