前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IGMP协议

IGMP协议

作者头像
紫禁玄科
发布2022-11-24 16:28:33
6440
发布2022-11-24 16:28:33
举报
文章被收录于专栏:紫禁玄科紫禁玄科

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通过查询器选举机制从中选举出唯一的查询器。

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

新组成员加入

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

组成员离开

  1. 主机A退出组播组G1,发出针对G1的Leave消息。
  2. 收到离开组消息后,查询器发送特定组查询消息来确定是否所有组成员都已离开。
    • 如果有组成员向查询器发送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报文

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 紫禁玄科 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云点播
面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档