前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >igmp是负责ip组播成员管理的协议_IGMP协议

igmp是负责ip组播成员管理的协议_IGMP协议

作者头像
全栈程序员站长
发布2022-10-05 10:09:32
7790
发布2022-10-05 10:09:32
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

目录

前言

一、协议体系

二、IGMP协议介绍

三、IGMPv1报文格式

四、IGMPv1

IGMPv1组成员加入

IGMPv1响应抑制机制

IGMPv1组成员离开

总结

前言

上一篇文章介绍了IP组播的原理,文章链接如下:https://blog.csdn.net/Adsjddjjej/article/details/126305279

在了解了IP组播的原理之后,本文将介绍IP组播最底层的协议——IGMP协议版本中的IGMPv1

一、协议体系

组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播路由协议包括PIM-SM、PIM-DM、DVMRP等协议,域间组播路由协议包括MBGP、MSDP等协议。

igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议

二、IGMP协议介绍

IGMP(Internet Group Management Protocol)作为因特网组管理协议,是TCP/IP协议族中负责IP组播成员管理的协议,它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包转发。

IGMP协议运行于主机与主机直接相连的组播路由器之间。

IGMP工作机制:

  1. 接收者(主机)向所在的共享网络报告组成员关系。
  2. 查询者(路由器)周期性地向该共享网段发送组成员查询信息。
  3. 接收者主机接收到查询消息后进行响应以报告组成员关系。
  4. 网段中的组播路由器依据接收到的响应来刷新组成员的存在信息。
igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议

对于IGMP协议的发展,目前一共有3个版本,分别是IGMPv1,IGMPv2以及IGMPv3。

igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议

这三个版本的协议,只需要从以下几点去认识,实际上就比较好理解了:

①接收者的加入过程

②组成员的维护过程

③接收者的离开过程

IGMPv1定义了基本的组成员查询和报告过程

IGMPv2在IGMPv1的基础上添加了组成员快速离开的机制

IGMPv3增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。

三、IGMPv1报文格式

igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议
  • 版本:IGMP版本标识,版本1为1。IGMPv2的报文中没有该字段。
  • 类型:类型字段。表示IGMP报文类型。IGMPv1支持两种类型的报文:
    • 成员关系查询(0x11):路由器周期性的发送成员关系查询报文去查询是否有组播成员。默认查询周期为60秒
    • 成员关系报告(0x12):成员关系报告用于表示主机想加入某个组播组。
    • 成员关系报告的发送可以被动发送也可主动发送。
      • 被动发送是指当主机收到成员关系查询消息后如果对某个组播组感兴趣想加入组播组时发送成员关系报告。
      • 主动发送是指如果主机想加入某个组播组时,可以不用等待成员关系查询报文,而主动地发送成员关系报告。
  • 组地址:不同类型的IGMP报文中组地址不同。
    • 成员关系报告报文中,组地址为某个特定的组播地址。

成员关系查询报文中,组地址为0。

四、IGMPv1

IGMPv1组成员加入

igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议

主机PC3发送IGMP成员关系报告,表示希望加入组播IP地址为224.1.1.1的组播组。

IGMPv1的查询与响应

IGMPv1的查询与响应过程如下:

  • IGMP查询器周期性地向共享网段内所有主机以组播方式(目的地址为224.0.0.1)发送成员关系查询消息(组地址为0)。(查询周期为60s)
  • 网络内所有主机都接收到该查询消息,如果某主机(如PC1、PC2和PC3)对任意组播组G感兴趣,则以组播方式发送“成员关系报告”报文(其中携带组播组G的地址)来宣告自己将加入该组播组,假设PC2首先发送此报告。(实验效果为,IGMP响应报告的目的地址应该为加入的组播组地址)
  • 经过查询/响应过程后,IGMP路由器了解到本网络内存在组播组G对应的接收者,生成(*,G)组播项并依此作为组播信息的转发依据
    • *表示任意组播源,G表示某个组播组。

IGMPv1规定,当共享网络中有多台路由器时,由组播路由协议选举查询器。不同的组播路由协议有不同的选举机制。(运行PIM DM或PIM SM的网段会选举DR,同时该DR也是IGMPv1的查询器)

igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议

IGMPv1响应抑制机制

  • IGMP成员关系查询报文是目的地址是224.0.0.1,就是说网段内所有的设备都会接收到该查询报文。
  • 但并不是所有接收到该报文的主机都会响应查询请求的。
  • 本例中只有一个主机会以成员关系报告报文响应,而其他主机则抑制成员关系报告的发送。
  • 实际上主机收到IGMP成员关系查询时,会对它已经加入的每个组播组启动一个倒计数报告计时器,计时器的值默认为0到最大响应值,IGMPv1中计时器最大响应值固定使用10秒。计时器到时的主机则主动发送成员关系报告,组地址为该组播组地址,目的地址为加入的组播组的地址,于是网段内其它主机都会收到该成员关系报告报文,接收到成员关系报告报文的主机抑制成员关系报告的发送,并删除计时器。(所以这些被抑制的路由器也就知道自己不是Last Reporter了)
  • 当路由器周期性的发送成员关系查询报文时,每个主机都会再次启动计时器进行查询/响应/抑制。(路由器查询间隔为60秒)
igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议

IGMPv1组成员离开

  • 由于IGMPv1版本没有定义专门离开组播组的消息,因此主机离开组时是默默离开不发送任何报文。
  • 而组播路由器如何知道用户已经离开组播组呢?IGMPv1主要是基于查询无响应进而超时的思路实现的。
  • 成员悄悄离开组播组,不发送任何报文。路由器依旧周期性的发送成员关系查询报文,周期为60秒,当路由器发送3次成员关系查询报文都没有收到响应的成员关系报告报文时,路由器认为组内已经没有成员,不再向该网段转发组播报文。
igmp是负责ip组播成员管理的协议_IGMP协议
igmp是负责ip组播成员管理的协议_IGMP协议

总结

以上就是今天要讲的内容,本文介绍了IGMP协议版本中的IGMPv1协议,从接收者的加入过程、组成员的维护过程、接收者的离开过程三个方面介绍了IGMPv1协议的实现过程,下一节将介绍IGMPv2协议。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月14日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、协议体系
  • 二、IGMP协议介绍
  • 三、IGMPv1报文格式
  • 四、IGMPv1
    • IGMPv1组成员加入
      • IGMPv1响应抑制机制
        • IGMPv1组成员离开
        • 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档