本文章主要介绍了IGMP协议的实现过程以及从v1版本到v3版本的演进,阅读本文,您需要具有IGMP协议、组播的一些基础知识。
IGMP(Internet Group Management Protocol)是组播的重要协议之一,主要运行于最后一跳路由器和组播接受者之间。目前的IGMP协议共有3个版本——v1、v2、v3。新的版本对老的版本做出了一些改进,同时兼容老的版本。(注:这里的兼容只允许最后一跳路由器运行高版本的协议而组播接受这运行低版本的协议)

一、IGMPv1简介

IGMPv1版本的IGMP协议是一个比较老的协议了,目前基本上已经停用,IGMPv1版本定义了成员关系查询成员关系报告两种报文。
组播接受者在加入一个组播组后,需要使用成员关系报告报文通知最后一跳路由器加组,最后一跳路由器需要使用成员关系查询报文来向下游询问是否有组播组成员,如果网络中存在组播组成员,那么该组播组成员会恢复成员关系报告报文,如果最后一跳路由器收不到成员关系报告报文,则证明下游网络中已经没有加入该组播组的接受者,因此停止向下游发送组播流量,同时也会进行修剪等操作。
通过以上两种报文,IGMP完成最基本的任务,可以实现由最后一跳路由器到组播接受者之间的信息传递功能。

二、IGMPv2改进

虽然IGMPv1实现了IGMP协议的最基本操作,但是其实IGMPv1协议还存在有很多不足的地方,这些不足很多都在IGMPv2版本中得到了改进。
IGMP不足主要有以下几点:
①当一个组播接受者离开组播组后,直到最后一跳路由器发起IGMP查询之前,最后一跳路由器都会想网络内发送组播流量,从而造成不必要的带宽浪费。
②当最后一跳路由器发送成员关系查询报文后,底下所有的组播接受者都会发送成员关系报告报文,也产生了一些不必要的数据。(尽管这一些数据很少)
③当同时又多个路由器连接进入一个网络后,IGMPv2定义了查询者,所有的组播路由器会选举一个成为查询者,只有查询者才会向网络内发送组播流量,其他路由器会监听查询器的状态,随时准备在查询机宕机后接替其工作。(其实IGMPv1版本虽然没有定义查询器的概念,但是由于PIM会在该状态下选举一个DP,实际上代替了查询器的工作,可以起到和查询器相同的效果)
针对上述问题,IGMPv2主要进行了如下改进:
①IGMPv2定义了离组报文,当一个组播接受者要离开一个组播组时,会发送一个离组报文告知组播接受者,组播接受在时候到这个离组报文后,就明白下面网络中有一个组播接受者已经离开了该组,如果组播路由器认为该组播组内没有其他的组播接受者,并且发送成员关系查询报文确认后,就会停止发送该组播组的组播流量。
IGMPv2报文同时对IGMP成员关系查询报文进行了改进,一方面,将成员关系查询报文分成了常规查询特定组查询两种,另一方面在成员关系查询报文中定义了最大响应时间。常规查询可以查询所有组播组的组播接受者,而特定组查询可以查询特定组播组的组播接受者,这样最后一跳路由器就可以更加灵活。同时,组播组成员在收到含有最大响应时间的报文后,就会在自己本地设置一个计时器,当到最大响应时间后,会主动发送成员关系报告报文,但是如果还没到最大响应时间,收到其他同组组播接受者的成员关系报告报文,该设备就会重置计时器,也在一定程度上减少了网络内的组播流量。

三、IGMPv3改进

如果说IGMPv2相对于IGMPv1,主要是消除了组播实现的不必要流量的话。那么IGMPv3相对于IGMPv2主要是增加了一些功能,使得组播功能的实现更加的灵活。
IGMPv3主要是定义了SSM(Source-Specific Multicast,特定源组播)模式。使得组播接受者可以选择接受什么组播源发送的组播或者说不接受什么组播源发送的组播流量。
注:
①与SSM模式相对应的是ASM(Any-Source Multicast)模式,在ASM模式中,组播组成员无法对组播源流量进行选择。IGMPv1和IGMPv2主要运行的就是这种模式。
②其实IGMPv1和IGMPv2也可以运行SSM模式,但是需要其他配合手段,不能单单依靠IGMP协议来实现。
原创不易,转载请说明出处,原文链接:https://blog.csdn.net/weixin_40228200/article/details/118162571

IGMP协议 v1-v3版本简介相关推荐

  1. linux igmp 属于那层协议,Linux下IGMP协议测试工具的开发与应用

    摘要: 组播以其节约网络带宽.降低网络负荷,实现接收者的并行接收等优势而具有广泛的应用,成为重要的网络技术.对于组播各种应用的研究正在成为热点,对组播各种功能及性能的测试也越来越重要.IGMP (In ...

  2. CaysnPrinter 云打印机MQTT上层通讯协议V1.1_20170624

    打印机MQTT上层通讯协议V1.3 版本 修改日期 修改人 修改内容 1.1 2017-06-22 许森煌 1. 增加设置心跳控制 2. 增加打印机心跳包返回 NOTE: 本次修改内容使用蓝色字区分 ...

  3. 2022-11- 10 网工进阶(三十六)IP组播协议--IGMP(v1、v2、v3)、IGMP snooping、IGMP SSM Mapping、IGMP Proxy(代理)

    感知组播组成员 组播通信中,组播网络需要将组播数据发送给特定的组播组成员,因此组播网络需要知道组成员的位置与组成员所加的组播组. 组播网络感知组播组成员的方法有手工静态配置和动态感知. 手工静态配置 ...

  4. 组播学习之——IGMP协议简介

    CSDN文章转载地址 组播学习之--IGMP协议简介 IGMP 是Internet Group Management Protocol(互联网组管理协议)的简称.它是TCP/IP 协议族中负责IP 组 ...

  5. 网络协议学习笔记-IGMP协议

     网络协议学习笔记-IGMP协议 http://hi.baidu.com/clxye/item/3db870336d86c0c11a969614 IGMP协议(Internet Group Man ...

  6. 组播——IGMP协议讲解

    目录 IGMP基本概念 IGMP版本 IGMP v1 报文格式 两种协议报文 响应抑制机制 IGMPv1问题 IGMPv2 报文格式 查询器选举--不依赖组播路由协议 三种协议报文 IGMPv3 报文 ...

  7. dubbo-go v3 版本 go module 踩坑记

    作者 | 董剑辉.盛傲飞 来源 | 阿里巴巴云原生公众号 ​ 问题背景 ​ 该问题源于我们想对 dubbo-go 的 module path 做一次变更,使用 dubbo.apache.org/dub ...

  8. 路由器---IGMP协议详解

    路由器作用 路由器的作用: 第一,网络互连,路由器支持各种局域网和广域网接口,主要用于互连局域网和广域网,实现不同网络互相通信: 第二,数据处理,提供包括分组过滤.分组转发.优先级.复用.加密.压缩和 ...

  9. SOAP(简单对象访问协议) 1.1规范简介

    SOAP(简单对象访问协议) 1.1规范简介 SOAP(Simple Object Access Protocal ,简单对象访问协议 ) 技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的 ...

最新文章

  1. php中使用mysql_fetch_array输出数组至页面中展示
  2. [CSS]30种时尚的CSS网站导航条
  3. 人人FED CSS编码规范
  4. 47.内存连续分配管理方式有哪几种?
  5. DeepWalk 和 Node2Vec
  6. 【业务知识】档案数字化加工处理过程
  7. COBOL 学习笔记 之 入門篇(续集)
  8. 全备份失败后,如何手工清除exchange日志文件,附微软KB
  9. C++知识总结(1)--变量和基本类型
  10. 【VB.NET】测验题目Quiz2
  11. android 坐标布局变形,Android:scrollBy实现view随意移动并显示坐标
  12. QT + MinGW 中文显示乱码解决方案
  13. 依赖搞定 Spring Boot 接口防盗刷
  14. 紧密中心性(closeness centrality)
  15. Liunx 切换用户This account is currently not available
  16. facebook第三方登陆
  17. 表单及阿里巴巴矢量图
  18. 计算机视觉方向简介 | 深度学习3D重建
  19. 国内首部创业纪实电影《燃点》进校园:如何靠近成功的2%
  20. “全包”给装修公司,验收时发现甲醛超标,能要求重装或赔偿吗?

热门文章

  1. 经济与社会发展研究杂志社经济与社会发展研究编辑部2022年第30期目录
  2. phpstudy配置web服务器(apache/Nginx)
  3. Find My资讯|美国警察通过Find My找回失窃车,苹果Find My为防盗窃起大作用
  4. 软件测试数学基础,大学数学基础实验-中国大学mooc-题库零氪
  5. Elasticsearch 实现分页的 3 种方式,还有谁不会??
  6. switch语句块里面的case的后面的参数有什么要求?
  7. 阿里高级程序猿精准分享:SQL中的替换函数replace()使用
  8. 1恢复 群晖raid_群晖SHR、RAID1阵列模式拆分、降级为BASIC教程
  9. 艾永亮:企业如何用超级产品方法论突破瓶颈期?
  10. CentOS官方推荐的RPMforge软件仓库安装方法[linux]