IGMP协议

​IGMP协议用途

IGMP(Internet Group Management Protocol)用于维护主机和路由器之间组播组成员的协议,其功能主要是建立和维护组播组成员关系。

1、在主机侧实现组播成员动态加入与离开。

2、在路由器测实现组成员关系的维护与管理,同时支持与上层组播路由协议的信息交互。

3、接收者主机向所在的共享网络报告组成员。

4、查询器周期性的向该共享网段发送组成员查询信息。

5、接收者主机接收到查询消息后进行响应以报告组成员关系。

6、网段中的组播路由器依据接收到的响应来刷新组成员的存在信息。

IGMP的三个版本

IGMPv1

IGMPv1是在RFC 1112中定义的,本协议定义了基本的组成成员查询和报告过程,基本上已经被停用了。

报文格式:

版本:(version):对IGMPv1而言,该字段值为1.
类型:(type):指示了IGMPv1报文的报文类型。如果是成员关系查询报文,该字段值为1,若是成员关系报告报文,该字段值为2。
校验和:(checksum):用于校验IGMPv1报文。
组地址:(group address):若是IGMPv1成员关系查询报文,该字段值为0(0.0.0.0);若是IGMPv1成员关系报告报文,该字段值是主机加入组播组的组地址。

主机主动发送IGMP成员关系报告报文,表示想加入组播组中。
该报文中组播地址为主机想加入的组播组的地址

IGMPv2

GMPv2是在RFC 2236中定义的,在IGMPv1的基础上添加了组成员快速离开的机制。

组成员关系维护

前提:当同一个网段内有多个组播路由器时,IGMPv2通过查询器选举机制从中选举出唯一的查询器。
查询器周期性地发送通用组查询消息进行成员关系查询。
网段内主机收到通用组查询消息后,不同的主机会有不同的响应。
如果定时器超时,未侦听到其它成员响应的Report报文,则向查询器发送Report响应报文。
如果在定时器超时前,侦听到其它成员响应的Report报文,则不向查询器发送Report响应报文,即抑制自己的响应报文。
不在组播组的成员,不做任何响应。
在组播组的成员会在本地启动定时器。
查询器接收到Report消息后,了解到本网段内存在组播组成员,则生成组播转发项。网络中一旦有该组播组的数据到达路由器,将向该网段成员转发。
新组成员加入

主机A加入组播组G1,且侦听到网段中没有G1的组播数据。则不等待查询消息的到来,立即发送针对组G1的Report消息。
网段中的路由器接收到Report消息后,了解到本网段内出现了组播组G1的成员,则在组播路由表项(*,G1)中添加对应的下游接口。网络中一旦有组播组G1的数据到达路由器,将向该网段转发。
组成员离开

主机A退出组播组G1,发出针对G1的Leave消息。
收到离开组消息后,查询器发送特定组查询消息来确定是否所有组成员都已离开。
如果有组成员向查询器发送Report响应消息,则说明该网段还有G1的组成员,查询器不会删除(,G1)表项中对应的下游接口。
如果没有组成员向查询器发送Report响应消息,则查询器删除(
,G1)表项中对应的下游接口。

IGMPv3
IGMPv3是在RFC 3376中定义的,相比IGMPv2(RFC 2236)主要有以下改进点:
兼容和继承 IGMPv1 和 IGMPv2 的基础上进一步增强了主机的控制能力。
支持指定组播源/组播组功能(即主机在加入某组播组 G 的同时能够明确地要求接收或不接收某特定组播源 S 发出的组播信息。这主要是为了配合 SSM 模型发展起来的,提供了在报文中携带组播源信息的能力,使组播成员能加入指定源的组播组。)
在IGMPv3中一个成员报告报文可以携带多个组播组信息(而之前的IGMP版本一个成员报告只能携带一个组播组)
IGMPv3没有定义专门的成员离开报文,成员离开通过特定类型的报告报文来传达。例如组225.1.1.1的成员想离开这个组,则会发送:
(225.1.1.1,CHANGE_TO_INCLUDE_MODE,(0))的报告报文,通过清空里面的指定组播源来预示要离开对应的组播组。
IGMPv3报告报文示例

查询报文中最大查询响应时间支持范围从IGMPv2的25.5秒扩大到3174.4秒,从而使IGMP能够适应更大的网络规模。
支持源过滤功能,所谓源过滤:指主机能指定接收或不接收来自特定组播源IP地址的组播数据。通过该功能可以更好的实现SSM,以支持多ISP场景。而IGMPv2只支持ASM。下面通过不同报文类型的说明,来解释源过滤功能的实现。
查询报文

报告报文

点播行为转换为IGMPv3报文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫禁玄科

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值