IGMP——组播成员端网络协议

news2024/11/27 21:48:09

目录

一.IGMP基本概念

(1)组播转发困境

(2)感知组播成员方式

(3)IGMP版本

二.IGMP各版本的区别与联系

(1)IGMPV1

1.普遍组查询报文

2.成员关系报告报文

3.IGMPV1报文格式

4.IGMPv1工作机制

5.IGMPV1查询器选举机制

6.IGMPV1离组机制

(2)IGMPv2

1.添加离组机制

2.添加查询器选举机制

(3)IGMPV3

1.添加特定源组查询报文

2.无专门Leave报文

三.IGMP特性

(1)IGMP Snooping——嗅探

(2)IGMP SSM Mapping

(3)IGMP代理


一.IGMP基本概念

用于组播成员端网络,感知组播组ID,组播成员位置。

(1)组播转发困境

组播工作原理是将组播信息发给一组特定组播成员,组播源发出组播数据时并不在意接收者的位置,所以需要IGMP感知组播成员的位置

(2)感知组播成员方式

静态——当然可以静态绑定,但这样不方便大型组网

动态——IGMP感知

接收者与最后一跳路由器建立维护组播成员关系。

(3)IGMP版本

有v1 v2 v3 三个版本

维护IGMP路由表项(组播组)和IGMP组表项(入接口)

组表项(*,G),用户向组播组发送IGMP加入报文,包括组ID,不知道出接口,*表示未知组播源

路由表项(S,G),用户加入组播组,包括组播组和出接口,S表示源IP地址

二.IGMP各版本的区别与联系

已知IGMP可发现组播成员,是组播网络的构成的一部分,那么IGMP如何实现发现成员网络,或者说如何获取出接口与组播组信息呐?

(1)IGMPV1

IGMPv1包含两个报文——普遍组查询报文,成员关系报告报文

1.普遍组查询报文

查询器(路由器)向共享网络中所有路由器和主机发送的查询报文,感知组播组成员

2.成员关系报告报文

成员向查询器(router)发,申请加入组,响应普通组查询报文

(查询器是发送组播查询报文的路由器,只有一台,如果最后一跳路由器有两个就选出一个作为查询器)

3.IGMPV1报文格式

version ——版本

type ——报文类型

0x11—普通组查询报文

0x12——成员关系报告报文

group address —— 加入组播组地址

4.IGMPv1工作机制

成员关系报告报文工作机制

(1)启动随机定时器(0-10S之间),PC1,PC2的定时器时间为随机数

        假设PC1为4S,PC2为6S

(2).PC1先倒计时结束,PC1先发送成员关系报告报文,是组播报文,

(3)PC2可以收到组播报文(PC1的成员关系报告报文),PC2倒计时结束时,发现PC1已经发         了,开启成员关抑抑制报文,不再发成员关系报告报文

5.IGMPV1查询器选举机制

无选举机制,依靠PIM选举

6.IGMPV1离组机制

不主动离组,静默离开

(2)IGMPv2

是在IGMPV1基础上建立的,普遍组查询报文和成员关系报告报文与IGMPV1相同

1.添加离组机制

IGMPV1静默离开,离组时间130S很长,IGMPV2进行改进

IGMPv2 是主动离开。

特定组查询报文与Leave报文一起完成成员主动离开

超过4S没收到成员关系报告报文就认为超时

2.添加查询器选举机制

(3)IGMPV3

IGMPV2都没有组播源的信息,属于ASM,

IGMPV3添加组播源信息,支持SSM网络

1.添加特定源组查询报文

成员关系报告报文有组播源信息

可能同组用户有不同源,取消成员抑制报文

2.无专门Leave报文

成员关系报告报文添加include (接收某些源)exclude(拒接某些源)

三.IGMP特性

(1)IGMP Snooping——嗅探

成员端网络希望最后一跳路由器按组发送组播数据,但最后一跳路由器与主机之间会有交换机,

交换机依靠泛洪传输数据,这就与广播处理的问题一样了

我们就利用IGMP Snooping——嗅探来解决这个问题

二层交换机侦听查询器与成员之间的IGMP报文,学习到组播组与出接口关系,在二层(数据链路层按需转发)

端口角色

路由器端口——二层组播朝向三层组播转发设备

成员端口——组播接口映射关系

关注成员离开,成员报告报文,普通查询报文

(2)IGMP SSM Mapping

用于不支持IGMPV3的情况

v1 v2无组播源信息,无法构建SSM网络

静态方式绑定组播组和组播源

(3)IGMP代理

有些情况下,成员离组或加组并不会改变组播路由表项或组播组表项,查询器却会收到报文,会处理大量组成员情况

就有了IGMP Proxy 代理接收成员关系报告报文,Leave,不影响组播表项的就不发给查询器

接口角色

主机接口——代理的接口,面向查询器,

路由器接口——面向组成员

这个要记清楚,与他名字的意思相反

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1708482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生成验证码的奥秘:从列表到字符串的魔法转换

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:验证码生成的背景与需求 二、生成验证码的方法一:列表生成…

ACM Proceedings Template 使用方法

模板导入 打开ACM Primary Article Template官网,可以看到自带overleaf模板,接下来我们使用overleaf来自动导入模板。 选择你需要的ACM Conference or Journals模板,然后Open as Template 栏目说明 接下来依次解释一下左边栏目的作用 …

装机必备——360压缩安装教程

装机必备——360压缩安装教程 软件下载 软件名称:360压缩 软件语言:简体中文 软件大小:3.38M 系统要求:Windows7或更高, 32/64位操作系统 硬件要求:CPU2GHz ,RAM4G或更高 下载通道①迅雷云盘丨…

14、类与对象(采用图解方式分析内存结构)①

在idea中创建一个新文件,名称为Hello.java 其中,Hello就是一个类,main是这个类里面的方法,这意味着我们在学习的时候已经在使用类了。 对象和类 一、概念二、⭐内存分配机制分析Ⅰ、基本内存结构⭐⭐Ⅱ、调用类方法的内存分析&am…

HCIP的学习(24)

第七章,VLAN—虚拟局域网 ​ 通过在交换机上部署VLAN技术,将一个规模较大的广播域在逻辑上划分成若干个不同的、规模较小的广播域。 ​ IEEE 802.1Q标准----虚拟桥接局域网标准----Dot1Q标准 标签协议标识符:0x8011(代表数据帧是8…

MySQL数据库案例实战教程:数据类型、语法与高级查询详解

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

【Python-OS】os.path.splitext()

作用:将文件路径分割成文件名和扩展名两部分。 slide_id, _ os.path.splitext(slide) print("slide:") print(slide) print("slide_id:") print(slide_id)注: slide是文件名,可以自行赋值

美光EMMC芯片丝印型号查询 8LK17/D9PSK, OXA17/JY997

问题说明 最近在使用美光EMMC的时候,发现通过芯片丝印查询不到 芯片的规格说明书; 经过查阅资料,发现美光的EMMC芯片 “由于空间限制,FBGA 封装组件具有与部件号不同的缩写部件标记”,需要通过官网查询丝印的FBGA cod…

极验3逆向 JS逆向最新点选验证码 逆向分析详解

目录 声明! 一、请求流程分析 二、w参数生成位置 三、主要问题 四、结果展示 原创文章,请勿转载! 本文内容仅限于安全研究,不公开具体源码。维护网络安全,人人有责。 声明! 本文章中所有内容仅供学习交流…

《中国科技投资》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答: 问:《中国科技投资》期刊什么级别? 答:国家级 问:《中国科技投资》期刊是核心期刊吗? 答:不是,是万方维普收录的正规期刊。 主管单位:中国信息协会 主办单位&#…

SwiftUI中EnvironmentObject的使用(多界面共享数据)

SwiftUI的EnvironmentObject是一个强大的工具,它允许你在多个视图之间共享数据(使用一个可观察对象)。当你有一个复杂的视图层次结构,并且需要在没有直接连接的视图之间共享相同的可观察对象时,它特别有用。 我们之前传递数据主要是通过init…

详解 Scala 的变量、标识符、数据类型

一、注释 Scala 注释与 Java 一致 // 单行注释/** 多行注释*//*** 文档注释*/二、变量与常量 1. 语法 // 变量,类型可以省略 var varName:varClass value // 常量,类型可以省略 val valName:valClass value2. 案例 // 使用 var/val 才会在类中声明属…

【教学类-58-06】黑白三角拼图06(1页3张彩色黑点卡片,一种宫格36张,适合一个班级一次操作)

作品展示 背景需求 【教学类-58-05】黑白三角拼图05(2-10宫格,每个宫格随机1张-6张,带空格纸,1页3张黑白3张白卡)-CSDN博客文章浏览阅读343次,点赞10次,收藏6次。【教学类-58-05】黑白三角拼图…

线性插值的频域特性

1、抽取和插值的简单说明 抽取和插值是变采样过程中常用的两种手段,其中抽取的目的是降低数据的采样率,以降低对系统存储深度或计算量的要求。插值的目的是提高数据的采样率,以提高系统的计算精度。 M M M倍抽取通常是通过每隔 M M M…

卧槽!这项目开源了!【送源码 】

随着科技的飞速发展,个人财务管理变得越来越重要。一个名为‘Maybe’的创新型个人财务与财富管理应用程序随之诞生,它以其丰富的功能和用户友好的界面受到了广大用户的关注。 现在项目方将这个价值 100万美元的个人理财应用项目开源了 Maybe Maybe应用…

利用cherry pick巧妙地将某次提交单独合并到其他分支

0. 引言 最近在进行系统的多版本并行开发,涉及一些共有基础功能提交时就遇到了麻烦,一份代码需要向多个版本分支进行同步,以保证多版本都能有更新该基础功能。 多次对比提交的方式显然会带来巨大的工作量。但实际上我们可以通过git的cherry…

5,串口编程---实现简单的用串口发送接收数据

单片机通过串口向PC机发送数据 PC机通过串口接收单片机发过来的数据 1.UART和USART的区别: USART支持同步通信方式,可以通过外部时钟信号进行同步传输,而UART仅支持异步通信方式 本开发板STM32F103ZET6有5个串口,用串口1作调试串口,因为串…

git教程(IDEA + 命令行)

首先假设你已经安装 git 且 已经初始化完成: // 初始化git config --global user.name "你的用户名" git config --global user.email "你的邮箱"在当前文件夹下创建一个仓库,且该文件夹下会有多个项目 首先在当前文件夹下新建git…

网工内推 | 高校、外企网工,IE认证优先,年薪最高18w

01 上海外国语大学贤达经济人文学院 🔷招聘岗位:高校网络主管 🔷职责描述: 1、负责总机房、网络规划及管理,包括容量规划、成本评估、建设管理等; 2、负责设计、实施及维护全网络架构及规划网络变更计划 3、负责网络功…

什么是“SQL注入攻击”?如何预防和应对?

一、SQL注入攻击的概念 SQL注入攻击是一种针对数据库驱动的应用程序的攻击技术,其中攻击者通过在应用程序的输入字段中插入或“注入”恶意的SQL代码,试图非法访问、操作或破坏后端数据库。当应用程序不正确地处理用户输入,并将其直接拼接到SQ…