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

igmp是负责ip组播成员管理的协议_IGMP协议组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播路由协议包括PIM-SM、PIM-DM、DVMRP等协议,域间组播路由协议包括MBGP、MSDP等协议。IGMP(InternetGroupManagementProtocol)作为因特网组管理协议,是TCP/IP协议族中负责IP组播成员管理的协议,它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

目录

前言

一、协议体系

二、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协议介绍

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

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

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

IGMP工作机制:

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

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

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

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

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

        ①接收者的加入过程

        ②组成员的维护过程

        ③接收者的离开过程

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

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

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

三、IGMPv1报文格式

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

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

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

四、IGMPv1

IGMPv1组成员加入

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协议

 IGMPv1响应抑制机制

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

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

 IGMPv1组成员离开

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

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

 

总结

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

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193995.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • IDEA2018.2.1最新版本破解[通俗易懂]

    转载自:https://www.52pojie.cn/thread-781394-1-1.html再次换电脑,再次安装IDEA,之前的破解用不了,再次查找破解方法。1、把下载的破解补丁放在你的idea的安装目录下的bin的目录下面(如下图所示),本文示例为F:\ProgramFiles\JetBrains\IntelliJIDEA2018.2\bin\JetbrainsCrack-3….

  • css画三角形

    css画三角形实现原理将div的高和宽设置为0,然后设置四个border不同的颜色。效果如下:div#triangle{width:0;height:0;border-top:50pxsolidblue;border-right:50pxsolidred;border-bottom:50pxsolidgreen;bord…

  • win7中USB音箱没有声音解决的方法

    win7中USB音箱没有声音解决的方法

  • springBoot注解与分析[通俗易懂]

    springBoot注解与分析[通俗易懂]springBoot注解与分析

  • 机器视觉光源的选择_机器视觉光源选择方法

    机器视觉光源的选择_机器视觉光源选择方法环形光源主要是为机器视觉,工业检测灯方面的LED光源,具有亮度可调,低温,均衡,无闪烁,无阴影,同时在特用的内嵌式的结构,同时可以添加偏光片加上光线的干扰应用实例电路板字符检测包装检测易拉罐罐底检测食

  • MapReduce编程快速入门

    MapReduce编程快速入门MapReduce编程规范用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交运行mr程序的客户端)Mapper阶段继承Mapper类(1)用户自定义的Mapper要继承自己的父类(2)Mapper的输入数据是KV对的形式(KV的类型可自定义)(3)Mapper中的业务逻辑写在map()方法中(4)Mapper的输出数据是KV对的形式(KV的类型可自定义)(5)map()方法(maptask进程)对每一个<K,V>调用一次Reducer阶段继承Reduce

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号