组播组管理协议(IGMP)

IGMPv1版本:
1.主机加入:
a:路由器的接口开启IGMP协议,会询问该端口下有没有要接收组播的
b:主机收到路由器的查询(Query)报文后,如果想要接收报文,则会向路由器的接口发送一个report报文,并且会把想要加入的具体的组播地址发过去,如果不希望接收任何组播,则不做回复
c:路由器收到report报文后,会在本地建立一个组播组信息表,记录改组的(,G)表项,后续将会转发该组组播。
2.主机离开:默默离开,当路由器在后续的查询报文中,没有收到某组的report报文时,路由器将会把本地的(
,G)表项删除,不在转发该组组播。
3.IGMPv1版本没有查询器选举机制,只能依靠上层组播路由协议选举。
4.成员报告抑制机制:主机以组播224.0.0.1的地址发送report报文,该报文也会发送给其他主机,收到该报文的其他主机会启动计时器(10秒),在计时器时间内,如果该主机也想加入该组播组,则不会发送report报文。
5.主机希望加入某个组播组,不用等到路由器发送查询报文,会直接向路由器发送report报文,加入自己想加入的组播组。
**IGMPv2版本:**路由器会周期性的发送开启了IGMP协议端口的查询报文,其他和IGMPv1一致。
2.主机离开:a:主机会主动向路由器发送leave报文,告诉路由器需要离开的组播地址。
b:路由器收到后会发送指定查询报文,询问该网段是否还有其他的主机接收此组播
c:如果该网段还有主机想要接收该组播,则向路由器回复Rembership-report报文,告诉路由器该网段还有其他主机想要接收该组播,如果不希望接收此组播,则不做回复。
d:路由器如果接收到report报文,则不对组播组信息表进行任何操作,如果没有收到则删除该组播组表项。

IGMPv3版本:
1.主机上维护的组播信息:主机通过发送report报文来通告路由器自己的当前的组播状态,过滤模式的变化,源列表的变化。
3.主机加入:
a:路由器发送普遍查询报文
b:收到查询报文的主机,会通告路由器自己想要加入的组播组,
c:路由器收到报文后会汇总信息,生成相应的组播信息表项。
4.主机离开:
a:离开某个组播源
1.主动向路由器发送report报文,报文内容包含希望变更的组播地址,离开的源地址。
2.路由器收到该报文后会发送指定查询报文,询问是否还有其他的主机想要继续接受该组播源发送的组播。
3.如果收到回复,则删除组播源,未收到不做任何操作。
离开某个组播组:
1.主动向路由器发送report报文,通告希望离开的组播组
2.路由器收到该报文发送指定查询报文,询问是否还有其他主机接收
3.收到回复,路由器删除该组播组的信息记录,如果未收到则不做任何处理。
5.取消了成员报告抑制机制。

猜你喜欢

转载自blog.csdn.net/qq_43590351/article/details/84556891