计算机网络-IGMP Snooping特性

news2025/1/2 2:37:59

一、以太网的组播转发问题

当组播数据从最后一跳路由器发往组播组成员时,往往会经过交换机。由于组播数据的目的MAC地址是组播MAC地址,默认情况下交换机将泛洪此类数据帧,有可能导致不同组的组播流量会被别组的成员接收。

当Router将组播报文转发至Switch以后,Switch负责将组播报文转发给组播用户。由于组播报文的目的地址为组播组地址,在二层设备上是学习不到这一类MAC表项的,因此组播报文就会在所有接口进行广播,和它在同一广播域内的组播成员和非组播成员都能收到组播报文。这样不但浪费了网络带宽,而且影响了网络信息安全。

IGMP Snooping有效地解决了这个问题。配置IGMP Snooping后,二层组播设备可以侦听和分析组播用户和上游路由器之间的IGMP报文,根据这些信息建立二层组播转发表项,控制组播数据报文转发。这样就防止了组播数据在二层网络中的广播。 以太网的组播转发问题

二、IGMP Snooping介绍

IGMP Snooping(互联网组管理协议侦听)是一种网络技术,用于优化局域网(LAN)上的多播流量。IGMP Snooping功能可以控制组播流量在以太网的泛洪范围,避免不同组的组播流量被别组成员接收。

在二层交换机配置IGMP Snooping,交换机可以维护一个二层组播转发表项,可以只转发到特定端口与VLAN中,提高安全性。

IGMP Snooping
IGMP Snooping

IGMP Snooping端口与转发表介绍

二层组播转发表项中存在两类接口:

  • 路由器端口(Router Port):二层组播设备上朝向三层组播设备(DR或IGMP查询器)一侧的接口,二层组播设备从此接口接收组播数据报文。
  • 成员端口(Member Port):又称组播组成员端口,表示二层组播设备上朝向组播组成员一侧的端口,二层组播设备往此接口发送组播数据报文。

成员端口生成过程:由协议生成的成员端口叫做动态成员端口。收到IGMP Report报文的接口,二层组播设备会将其标识为动态成员端口。手工配置的成员端口叫做静态成员端口。

alt

三、IGMP Snooping转发原理

IGMP Snooping转发
IGMP Snooping转发

IGMP Snooping设备通过监听IGMP报文,形成二层组播转发表,并决定接口类型,具体过程如下:

路由器端口形成后会启动老化计时器(默认180s),当路由器端口收到新的普遍组查询后刷新该计时器。

成员端口形成后会启动老化计时器(默认180s),当成员端口收到新的成员关系报告报文后刷新该计时器。

IGMP Snooping不再使用成员关系报告报文抑制机制:

  • 由于IGMP Snooping需要监听IGMP报文才能决定端口角色,进而指导转发,所以所有组成员都需要发送IGMP组成员关系报告报文。
  • 当IGMP Snooping设备收到成员关系报告报文后,只将成员关系报告报文从路由器接口发送出去,从而避免其余组成员收到成员关系报告报文,不触发成员关系报告报文抑制机制。

维护转发表项: IGMP表项维护

收到IGMP离开报文后,成员端口的老化定时器 = 健壮系数(默认2) x 特定组查询间隔(默认1s)。

总结:默认一般情况下最后一跳路由器不是直接连接组播组成员,而是通过交换机等设备,交换机会将组播报文进行泛洪,导致所有组播组成员能够收到所有报文。通过在交换机上配置OGMP Snooping可以使得组播组成员只接收特定的组播组报文,减少组播流量泛洪。IGMP Snooping有路由器端口和成员端口,连接最后一跳路由器的端口为路由器端口,连接组播组成员的为成员端口。

如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子 不喜欢热闹的孩子

本文由 mdnice 多平台发布

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

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

相关文章

mysql更改密码后,若依 后端启动不了解决方案

我原先的mysql 密码是 数字字符串 我想改成000 纯数字 改完之后,连接的数据库的代码 也更改后 ,后端启动不了 因为原先 密码数字字符串 不需要用引号" " 括起来 我改成纯数字 需要用 " " 括起来 如下图 然后就可以运行成功了

KineFX —— Skeleton

一,KineFX skeletons介绍 在KineFX内,每件事都是SOP point,点的世界变换(translation, rotation, scale)由positionmatrix3*3定义; 当一个点具有transform和name属性,点就是一个joint&#xff…

RabbitMQ发送者重连、发送者确认

RabbitMQ发送者重连、发送者确认 一、发送者重连 spring:rabbitmq:connection-timeout: 1s #设置MQ的连接超时时间template:retry:enabled: true #开启超时重试机制initial-interval: 1000ms #失败后的初始等待时间multiplier: 1 #失败后下次的等待时长倍数,下次等…

Axure中文版资源免费下载!

Axure是一种专业的原型设计工具,可以帮助用户以最快的速度将产品想法转化为可视化原型,为设计师、产品经理和开发人员之间的沟通搭建桥梁。Axure功能强大,可绘制高保真原型、建立动态面板、使用复杂函数库、多人合作设计、标准化导出等功能&a…

一文带你读懂GPU算力在不同行业的应用!

随着科技的飞速发展,图形处理器(Graphics Processing Unit, GPU)已经不仅仅局限于图形渲染的传统领域,其强大的并行计算能力在多个行业得到了广泛应用。GPU算力,即图形处理器所提供的计算能力,正逐步成为推…

大模型之多模态大模型技术

本文作为大模型综述第三篇,介绍语言大模型多模态技术。 不同于语言大模型只对文本进行处理,多模态大模型将文本、语音、图像、视频等多模态数据联合起来进行学习。多模态大模型融合了多种感知途径与表达形态, 能够同时处理和理解来自不同感知通道(例如视觉、听觉、语言和触…

Python数值计算(1)——Numpy中数据的保存和加载

这里讨论一下在进行数值计算中,对计算数据的保存和加载。 1. 文本格式 这种方式可以采用文本的方式保存numpy数组,函数原型如下: numpy.savetxt(fname, X, fmt%.18e, delimiter , newline\n, header, footer, comments# , encodingNone) …

全源最短路问题:Floyd算法详解【经典算法,限时免费】

文章目录 最短路问题概述带边权的图的全源最短路径Floyd算法解决全源最短路问题dist数组初始化dist数组迭代以及动态转移方程Floyd算法求解dist数组完整代码pythonjavacpp时空复杂度 *Floyd算法正确性证明证明过程初始情况归纳假设归纳步骤终止条件 完整证明 相关题目 最短路问…

log4j2 远程代码执行漏洞复现(CVE-2021-44228)

目录 一、相关概念 二、漏洞复现 步骤一:执行一下命令启动靶场环境并在浏览器访问!!! 1.启动命令 2.访问网址 步骤二:先在自己搭建的DNSLOG平台上获取一个域名来监视我们注入的效果... 步骤三:可以发现 /solr/ad…

小米手机通知栏横条无法清除 刻晴主题 历史通知记录功能使用方案

问题环境💕 Root K50 Ultra HyperCeiler (系统修改) Lspose(框架)魔改刻晴主题(自用)隐藏(最近任务)后台 在搞机过程中出现过如下情况 通知条无法被清除,导…

本地索引和全局索引视图测试

1、创建分区表 CREATE TABLE "OSGIC"."TT" ( "ID" VARCHAR2(32) NOT NULL ENABLE, "BUSS_ID" VARCHAR2(64), "REEST_TIME" DATE ) PARTITION BY RANGE ("REEST_TIME") INTERVAL(NUMTOYMINTERVAL(1, MONTH)) (…

Redis部署策略

文章目录 Redis部署策略单机部署主从复制哨兵模式Redis集群 Redis部署策略 部署方式描述单机部署适用于对数据可靠性要求不高、规模较小的应用。部署简单,但没有冗余和高可用性。主从复制数据从主节点同步到一个或多个从节点,提升读性能和数据备份能力。…

堆的实现-向上调整算法-向下调整算法-堆排序-TopK问题 C语言

一、堆的概念及结构 二、 向上调整算法 注意:循环条件不可写parent > 0 //向上调整算法 //child为下标 void adjustup(int* a, int child) {int parent (child - 1) / 2;while (child > 0){if (a[child] < a[parent]){swap(&a[child], &a[parent]);child pa…

免费开源的私人笔记项目,极空间搭建全平台笔记和待办事项『Joplin』

免费开源的私人笔记项目&#xff0c;极空间搭建全平台笔记和待办事项『Joplin』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 我想很多小伙伴都有记录笔记或者备忘的习惯&#xff0c;其实目前市面可用的这类应用还是很多的&#xff0c;比如印象笔记&#xff0c;有道云笔记。作为…

文件解析漏洞集合

IIS解析漏洞 IIS6 目录解析 在网站下建立文件夹的名字为.asp/.asa 的文件夹&#xff0c;其目录内的任何扩展名的文件都被IIS当作asp 文件来解析并执行。 这里显示的是 1.asp下的1.jpg&#xff0c;按照道理来说里面的文件是一个图片&#xff0c;但是访问的话&#xff0c;会出…

SpringBoot面试题整理(1)

面试整理 前置知识 ApplicationContextInitializerApplicationListenerBeanFactoryBeanDefinitionBeanFactoryPostProcessorAwareInitializingBean/DisposableBeanBeanPostProcessor 面试题 SpringBoot启动流程IOC容器初始化流程Bean声明周期Bean循环依赖SpringMVC执行流程…

JavaEE 初阶(13)——多线程11之“定时器”

目录 一. 什么是“定时器” 二. 标准库的定时器 三. 定时器的实现 MyTimer 3.1 分析思路 1. 创建执行任务的类。 2. 管理任务 3. 执行任务 3.2 线程安全问题 四. 拓展 一. 什么是“定时器” 定时器是软件开发中的一个重要组件&#xff0c;类似于一个“闹钟”&#xff0…

【Spring】详细理解Spring中控制反转(IOC)和依赖注入(DI)的设计思想。

目录 1.相关概念 2. 设计IOC容器的两个主要接口 2.1 BeanFactory接口 2.2 ApplicationContext接口 2.3 两个接口的区别【面试题】 3. Bean对象的管理&#xff08;控制反转&#xff09; 3.1 基于XML文件管理bean对象 3.2 基于注解方式去管理【重点】 4. 依赖注入&#…

81.WEB渗透测试-信息收集-框架组件识别利用(5)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;80.WEB渗透测试-信息收集-框架组件识别利用&#xff08;4&#xff09; solr&#xff1a;…

第三方库jsoncpp

文章目录 0.jsoncpp库是做什么的&#xff1f;1.安装库2.有哪几个类&#xff0c;如何使用Json::Value类Json::Writer类-StreamWriterJson::Reader类-CharReader三者关系 3.使用样例将数据先存入Value类&#xff0c;再通过StreamWriter类转为Json格式的字符串获取到Json格式字符串…