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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 二进制除法_111011001÷1011二进制除法

    二进制除法_111011001÷1011二进制除法题目描述: 二进制数nmodm的结果是多少?对于二进制数的取模运算,我们的第一反应一定是模拟其减法运算,然后逐位相减。但是这道题的数据达到了$2e5$,鉴于减法模拟的巨大常数,一定是会

    2022年8月4日
    58
  • 二进制小数转十进制方法_小数进制转换

    二进制小数转十进制方法_小数进制转换知识点一:一个数的负次方即为这个数的正次方的倒数。方法一、转换分数法参考文章:https://jingyan.baidu.com/article/597a0643614568312b5243c0.html参考文章:https://zhidao.baidu.com/question/1308562360873359899.html举例:将二进制0.1111转换成十进制数二进制…

    2022年9月16日
    0
  • android之解析包时出现错误(二)

    为什么是二呢,之前遇到过一次了,详见http://blog.csdn.net/jason0539/article/details/12222173这次的原因不同,再记录下public class DownloadTask { /** * @param path下载地址 * @param filePath存储路径 * @param progressDialog进度

    2022年3月11日
    36
  • mysql设置隔离级别_修改mysql事务隔离级别

    mysql设置隔离级别_修改mysql事务隔离级别引言开始我们的内容,相信大家一定遇到过下面的一个面试场景面试官:“讲讲mysql有几个事务隔离级别?”你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读”面试官:“为什么mysql选可重复读作为默认的隔离级别?”(你面露苦色,不知如何回答!)面试官:”你们项目中选了哪个隔离级别?为什么?”你:“当然是默认的可重复读,至于原因。。呃。。。”(然后你就可以回去等通知了!)为了避免上述尴尬的…

    2022年9月3日
    9
  • 支持向量机的基本思想和原理_人民战争思想的基本理论内容

    支持向量机的基本思想和原理_人民战争思想的基本理论内容一、支持向量机:SVM即支持向量机(SupportVectorMachine),是有监督学习算法的一种,用于解决数据挖掘或模式识别领域中数据分类问题。二、基本原理:SVM算法即寻找一个分类器使得超平面和最近的数据点之间的分类边缘(超平面和最近的数据点之间的间隔被称为分类边缘)最大,对于SVM算法通常认为分类边缘越大,平面越优,通常定义具有“最大间隔”的决策面就是S…

    2022年10月20日
    0
  • Html图片懒加载动画,js实现图片懒加载效果

    本文实例为大家分享了js图片懒加载的具体代码,供大家参考,具体内容如下图片懒加载,思路:当鼠标滑动到对应图片的高度时,进行图片的加载;#div{width:575px;height:auto;overflow:hidden;border:red1pxsolid;margin:0auto;/*给该div设置定位*/position:relative;}#divimg{width:…

    2022年4月8日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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