当前位置: 首页 > article >正文

HCIP-Datacom Core Technology V1.0_18 IGMP原理与配置

IGMP用于接收者和直连组播路由之间建立和维护组播成员关系的组播协议本章课程将介绍IGMP的原理以及它不同版本的区别还有一些其它特性。IGMP介绍组播网络的转发困境正常情况下组播源将组播报文推送给第一跳路由器之后第一跳路由器就应该将这个数据推送给特定的接收者成员现在问题在于路由器去判断组播成员在哪里。第二个是对于用户而言哪些成员想要接收组播报文组成员又要去选择哪些组播数据来进行正常接收。以及是否会存在其它的新增组播成员都是所面临的问题。所学习的IGMP它就是用于感知组播组成员的。感知组播组成员正常情况下有两种第一种可以在组播路由器上手工配置该接口下面的用户想要接收某个组的消息这样的情况下对于新上线的用户能够直接快速上线能够接收想要的组播数据流量但是缺点是非常明显的因为组播用户的上线和下线是不确定很随机性的没有办法实时感知整个组播网络的状况因此用静态的方式去配置的话工作量非常大而且灵活性也非常差因此一般情况下采用的是动态动态感知就是通过IGMP这个协议去通知整个组播网络中哪些成员想要接收组播数据以及哪些成员它想要接收哪个组的组播数据都是通过IGMP协议去实现的这种方式更加灵活配置也非常简单。基于IGMP得知成员的位置和它想要加入的组播之后就可以基于这些信息将组播数据报文推送给想要加入的成员其中IGMP这个协议是运行在最后一条路由器和组播组成员之间。而从第一跳路由器到最后一跳路由器中间转发组播数据的过程是由组播路由协议去实现的。IGMP协议的概述∑IGMP这个协议是在IPv4的网络中是用来管理组播成员的一个协议这是由主机和直连组播路由器也就是最后一跳路由器来建立和维护组播成员关系的IGMP一共有三个版本v1,v2和v3,在现网中用的最多的是v2和v3的版本v1的版本已经被淘汰了在组播路由器和组成员之间通过IGMP协议会生成IGMP路由表项以及IGMP的组表项。通过这样的一个协议就能够正常的去感知成员所在的位置以及它想要加入的组播组。IGMP组表项与路由表项通过IGMP这个协议它生成的两个表项分别是什么含义在正式介绍这两个表项之前回顾一下两个比较重要的概念分别是(*,G)表项和(S,G)表项。*G表项*是代表想要加入的是任意源G代表它想要加入的组播组。正常情况下(*,G)表项是由主机直连组播路由器去触发生成这样的一个表项。因为对于主机而言它并不知道它想要接收的组播是来自于哪个源的它只想要接收该组的消息所以成员端和直连组播路由器之间所建立的是(*,G)表项。S,G表项正常情况下一般是由组播路由器接收到组播源接收到推送过来的组播数据之后形成的(S,G)表项因为得知是哪个组播源发送过来的组播数据给这台路由器因此它是知道源在哪里。当运行IGMP协议之后如果终端设备和组播路由器正常交互的话这个时候就会生成IGMP组表项时面包含了哪些重要的信息最后一个向组播路由器发送报告的成员的IP地址前面是它想要加入的组播组。IGMP路由表项会生成一个(*,G)表项表明它想要接收的组播组最关键的在于接口是出接口这个出接口有什么作用呢得知通过IGMP生成的两个表项第一个能够知道哪一台成员想要接收哪个组的消息就完成了成员的位置以及它想要加入的组播组再到后面这个出接口针对整个组播数据的转发有什么意义呢?IGMP表项与组播路由表项正常运行的组播路由协议的路由器它需要转发组播流量然后再到最后一条路由器由最后一跳路由器去推送流到成员端。组播路由表它并不是单一的运行组播路由协议就能够产生它是由IGMP路由表项IGMP组表项以及运行组播路由协议也就是PIM路由表项汇总而成的也就是说这是一个比较复杂的过程当最后一条路由器运行了IGMP以及PIM协议之后它会生成IGMP的组表项IGMP的路由表项包括PIM的路由表项将这三个表项里面的信息进行汇总之后再组成了组播路由表项由组播路由表项指导组播流量的转发。首先它包含的是(S,G)表项这个G表明想要加入的组播组这个组播组是怎么来的呢就是由IGMP组表项里面的组播组映射过来的第二个IGMP路由表项的出接口有什么作用它会直接映射到组播路由表项里面的下游的出接口这样的意义在于什么呢想像一下一台路由器运行了PIM协议运行了IGMP协议最后形成了组播路由表项当它收到这样一个组播数据流之后要对应着从某一个接口把数据流推送下去应该从哪个接口推送下去呢?也就是说组播路由协议的下游接口对应着IGMP路由表项的出接口因为从该接口接收到了IGMP里面所想要加入的组播组的这样的一个信息表明我接收到该组的组播流量应该从该出接口再转发下去给下面的成员端设备因此它们之间是一个映射的关系在这里大家可能有很多疑问比如说组播路由表项它是怎么指导组播数据转发的PIM路由表是怎样的。IGMP工作原理理解成员和直连路由器之间的邻居关系建立以及维护这个关系。IGMPv1基本概念在IGMPv1的版本中会发现它的机制非常简单正常情况下只有两个报文。第一个是普遍组查询报文第二个成员关系报告报文。普通组查询报文是由查询器也就是说某一台设备向该网络上所有的主机和路由器之间周期性的去发送查询报文去询问下面是否有某些组播组成员想要接收该组的消息类似于我主动向我的成员端去发送各种通知问你们有没有想要接收的组播组而成员关系报告报文是由主机主动向查询器去汇报我想要接收某个组播的消息。因此你会发现这两个报文是针对不同的设备而言一个是查询器主动向下游去询问一个是下游组播组成员主动向上游去告知。在IGMPv1版本中其实有一个非常大的问题在一个多路访问里面只需要一台组播路由器去发送查询报告就可以了比如说按图中的案例在一个MA网络中如果这两台路由器都充当查询器向下游设备去查询某些成员想要接收哪个组的消息这样就会显得非常繁琐而且查询的消息也重复了浪费了设备的带宽以及这样的一个链路的资源。因此只要选举一台设备作为查询器进行查询就可以完成这样的操作但是在IGMPv1版本中它自己没有本身机制去选举查询器在IGMPV1版本中查询器的选举是依赖于组播路由协议PIM协议去完成的也就是说如果用的是IGMPv1的版本最后一条路由器不仅要在接口上去运行IGMP,同时也要运行PIM协议才能去实现这样一个查询器的选举然后由查询器周期性发送普遍组查询报文。它存在着一个依赖关系。在后续的版本中它就会有自己本身的机制去选举查询器。IGMPv1报文格式IGMPv1的报文格式非常简单主要是包含了两个报文类型分别是普通组查询报文和成员关系报告报文其中Group Address是组播组地址在普遍组查询报文中该字段全为0因为在普遍组查询报文中它表明所有主机都应该去接收这样的一个查询报文然后由你向我进行响应因此0.0可以理解为代表所有的意思而在成员关系报告报文中这个字段就表明它自己想要加入的某个组播的组播地址。IGMPv1组成员加组机制周期性的去发送成员关系查询报文是为了获知下面的主机是否想要加入某个组来判断这样的组播流量是否要下发给成员端。首先查询器会周期性的发送普遍组查询报文正常情况下每60秒发送一次当成员端所有主机接收到这样的一个普遍查询报文之后如果它想要加入某个组播组这个时候它就应该正常通过成员关系报告报文进行反馈但是如果多台主机想要加入同一个组播组它应该是怎样的反馈呢现在假设PC1和PC2它们都想要加入组播组G1这个时候它们接收到普遍组查询报文之后会怎么办呢第一步它们会启动一个定时器这个定时器在0~10秒内随机选取一个数值按图中的案例比如PC1它选出来了是5秒PC2它最后随机选出来的一个是7秒通过定时器开始倒计时谁先倒计时完成然后谁先向查询器去发送成员关系报告报文这个时候成员关系报告报文不仅会发送给查询器也会发送给同一组的成员端主机这个时候会造成什么问题呢对于查询器而言接收到这样的一个成员关系报告报文之后它就会形成相应的IGMP的路由表项和IGMP的组表项里面包含了想要加入的某个组以及对应的出接口。这样当从上游设备接收到关于某个组的流量之后就会从对应的出接口将流量推送下来给下面的成员端主机对于其它主机而言这样的一个成员关系报告报文它起到的作用是一个抑制的概念PC1和PC2都想要加入到组播给G1中这个时候如果PC1已经向查询器汇报了我需要这们的组播流量这个时候查询器就会将这样的组播流量从出接口推送下来给下游成员端主机既然已经完成了这个操作组播流量已经推送下来了这个时候自己的成员2不需要再去发送成员关系报告报文了因为我想要的组播流量已经推送下来了我会接收的到。如果再发送成员关系报告报文类似于做了一个重复的这样的操作并没有任何意义因此为了节省资源就抑制了这样的一个成员关系报告是通过这样一个定时器来完成 的谁先数到0谁先报告然后其它的成员主机就会抑制成员关系报告报文的发送。实际上在现网中成员关系报文都是需要去发送的因为这会涉及到后续一个比较重要的机制正常情况下不需要抑制的而是需要去发送成员关系报告报文。IGMPv1查询器选举机制在IGMPv1版本中是要选举一个查询器的这个查询器类似于帮助我们去查询下面的终端设备想要加入的组播组如果多台设备都去发送查询的话那就完全浪费了设备的资源这个查询器类似于DR的概念在v1的版本中并没有本身的机制能够选举这个查询器因此在v1的版本中它需要和组播路由协议也就是PIM协议通过它去选举一个成员端DR由成员端的DR充当查询器在v1版本中向下游设备发送成员关系查询报文。如何在PIM协议中选举成员端的DRIGMPv1组成员离组机制组播的这样的一个成员它想要加入组和离开组都是随机性的完全没有办法去干涉这个时候如果说某一台主机它想要离开组不接受关于该组的消息之后会发生怎样的情况呢在IGMPv1版本中它的机制是比较落后的它没有专门定义离开消息也就是说成员离开类似于静默离开悄悄的走查询器并不知道你走了它是通过怎样的机制去判断你离开的呢然后再杜绝发送组播流量给下游设备。之前介绍过查询器会周期性的发送普遍组查询报文这个时间是60秒按图中的案例现在这两台成员想要接收的组播组的这样的一个消息是不同的分别是G1和G2, 现在通过周期性的发送普遍组查询报文给下游设备就类似于下游设备是否想要接收组1的消息是否想要接收组2的消息现在G1里面的PC1,它依然想要接收该组的消息因此它会去反馈成员关系报告依然想要接收关于G1的流量给查询器但是成员2它里面所有的成员全部离开了没有任何一台设备想要接收关于G2的组播流量因此它就不做任何响应这个时候关于G2就会启动一个定时器这个定时器也可以简单的理解为一个超时时间就是130秒在130秒以内查询器没有接收到关于G2组播组的任何成员关系的反馈查询器就默认为关于G2的流量下面已经没有任何人想要接收了这个时候就不应该将组播的流量推送给下游设备因为没有接收者推送数据流下来就等于浪费了链路的带宽因此就会在IGMP的路由表项里面把对应关于阻碍的组播表项和出接口给它删除接收到成员反馈的这样的一个关系报告的流量依然会在这样的一个组播路由表项里面存在为它去推送组播数据流量所以会发现IGMPv1的组成员离开机制可以说是非常简陋的因为它是采取定时器的这样的一个机制。

相关文章:

HCIP-Datacom Core Technology V1.0_18 IGMP原理与配置

IGMP用于接收者和直连组播路由之间,建立和维护组播成员关系的组播协议,本章课程将介绍IGMP的原理,以及它不同版本的区别,还有一些其它特性。IGMP介绍组播网络的转发困境正常情况下,组播源将组播报文推送给第一跳路由器…...

AI产品经理入门实战:如何理解知识图谱?

亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习AI产品经理课程! 《AI产品经理入门实战》https://edu.csdn.net/course/detail/41126《Axure原型设计精品课》...

Java 面向对象 - 触发类的初始化,执行其中的 static 块(包含不会触发初始化的情况)

触发类的初始化,执行其中的 static 块 访问 static 字段 public class SomeClass {static {System.out.println("static block executed");}public static int num 100; }int num SomeClass.num;访问 static 方法,可以使用空方法&#xff08…...

2026年京东云OpenClaw/Hermes Agent配置Token Plan安装详细指南

2026年京东云OpenClaw/Hermes Agent配置Token Plan安装详细指南。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...

企业级GPU显存稳定性测试完整方案:memtest_vulkan深度解析与高级指南

企业级GPU显存稳定性测试完整方案:memtest_vulkan深度解析与高级指南 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan Vulkan计算驱动的GPU显存稳定性…...

FSearch:Linux终极文件搜索工具完全指南 - 如何实现毫秒级文件查找

FSearch:Linux终极文件搜索工具完全指南 - 如何实现毫秒级文件查找 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 你是否曾在Linux系统中为寻找一个文件而…...

Java 进化之路:从 Java 8 到 Java 21 的重要新特性

Java 进化之路:从 Java 8 到 Java 21 的重要新特性 文章目录 前言(必看!!!)一、Java 8:划时代的革命 1. Lambda 表达式(史诗级更新)2. Stream API(数据操作新…...

Dism++终极指南:轻松掌握Windows系统优化与维护的10个关键技巧

Dism终极指南:轻松掌握Windows系统优化与维护的10个关键技巧 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否曾经因为Windows系统变得越来越慢…...

Engage2026会议各种Notes/Domino演示文档可以下载了

大家好,才是真的好。上周翻阅了一下Engage 2026大会的网站,发现一大半会议议程上的PPT演示文稿都已经放出来能够进行下载。地址是:https://engage.ug/engage2.nsf/Pages/session2026如果没看到下载的地方,要以List的方式来查看所有…...

Java学习笔记——DAY3

目录 1、Java方法 2、方法的定义 3、方法调用 4、方法的重载 5、命令行传参 6、可变参数 7、递归 1、Java方法 Java方法是语句的集合,它们在一块执行一个功能。 方法是解决一类问题的步骤的有序集合方法包含与类或对象中方法在程序中被创建,在其…...

企业AI项目紧急叫停!DeepSeek许可证新增限制条款(2024.06.18生效)及72小时补救路径

更多请点击: https://kaifayun.com 第一章:DeepSeek许可证紧急变更事件全景速览 2024年7月12日,DeepSeek官方突然宣布对其开源模型系列(包括DeepSeek-V2、DeepSeek-Coder、DeepSeek-MoE等)的许可证进行紧急修订&#…...

HAMi:面向云原生AI基础设施的异构计算统一管理平台

HAMi:面向云原生AI基础设施的异构计算统一管理平台 【免费下载链接】HAMi Heterogeneous GPU Sharing on Kubernetes 项目地址: https://gitcode.com/GitHub_Trending/ha/HAMi 随着AI工作负载在Kubernetes集群中的大规模部署,异构计算资源管理已成…...

实战案例|向导布局一出手,企业流程表单直接专业满级

实战案例|向导布局一出手,企业流程表单直接专业满级 在企业系统里,有一类表单天生就必须按步骤走:用户注册、企业认证、项目申报、入职办理、采购申请、合同签署…这类表单一旦用 Tab 或折叠面板,就会显得不规范、不正…...

Perseus:5分钟解锁碧蓝航线全皮肤的神奇补丁

Perseus:5分钟解锁碧蓝航线全皮肤的神奇补丁 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 还在为碧蓝航线中那些精美皮肤需要付费而烦恼吗?想免费体验所有舰娘的不同外观吗&…...

如何3分钟搞定抖音视频批量下载?完整无水印下载指南

如何3分钟搞定抖音视频批量下载?完整无水印下载指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...

5分钟搞定!RK3588开发板Ubuntu系统终极配置指南 [特殊字符]

5分钟搞定!RK3588开发板Ubuntu系统终极配置指南 🚀 【免费下载链接】ubuntu-rockchip Ubuntu for Rockchip RK35XX Devices 项目地址: https://gitcode.com/gh_mirrors/ub/ubuntu-rockchip 还在为RK3588开发板的系统配置发愁吗?别担心…...

从账单明细看Taotoken按Token计费模式如何帮助用户精确定位高消耗场景

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从账单明细看Taotoken按Token计费模式如何帮助用户精确定位高消耗场景 在构建基于大模型的应用时,成本控制是一个持续性…...

在Python项目中快速接入Taotoken多模型API的完整步骤指南

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Python项目中快速接入Taotoken多模型API的完整步骤指南 对于希望将大模型能力集成到Python应用中的开发者而言,直接对…...

如何永久免费使用Cursor Pro?终极破解工具完整指南

如何永久免费使用Cursor Pro?终极破解工具完整指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial …...

百度网盘提取码智能查询工具:3分钟掌握资源密码自动获取技巧

百度网盘提取码智能查询工具:3分钟掌握资源密码自动获取技巧 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗?每次找到心仪的资源却卡在密码输入环节&#xff0…...

【产品发布】建享云智能单据扫描仪正式上线,一站式解决单据数字化处理难题

建享云正式推出全新智能单据扫描仪,聚焦各行业单据数字化处理的核心痛点,无需复杂部署流程、无需专业技术支撑,轻松适配个人办公与企业级各类场景。本文将简洁明了地介绍产品核心功能、操作方法及适配范围,帮助用户快速了解产品价…...

<el-button type=“primary“><el-icon><Plus /></el-icon> 上传照片</el-button>的庖丁解牛

它的本质是:**这行代码不仅仅是一个按钮,它是一个 复合交互单元 (Composite Interaction Unit)。它通过 语义化标签 (el-button)、视觉信号 (type"primary", Plus Icon) 和 文本提示 (“上传照片”) 的组合,向用户传达了一个明确的…...

小红书内容采集终极指南:一键下载无水印图文视频的完整教程

小红书内容采集终极指南:一键下载无水印图文视频的完整教程 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接…...

USB扩展坞

usb中引脚含意DP表示USB的差分信号线正极DM表示USB的差分信号线负极差分对布线:大于设置的距离,使用等长调节每一个晶振都要放置...

微信QQ语音解码终极指南:silk-v3-decoder免费解锁音频文件

微信QQ语音解码终极指南:silk-v3-decoder免费解锁音频文件 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. …...

Windows热键冲突终结者:Hotkey Detective一键定位占用程序

Windows热键冲突终结者:Hotkey Detective一键定位占用程序 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是…...

清华PPT模板:如何在5分钟内打造专业学术演示文稿

清华PPT模板:如何在5分钟内打造专业学术演示文稿 【免费下载链接】THU-PPT-Theme 清华主题PPT模板 项目地址: https://gitcode.com/gh_mirrors/th/THU-PPT-Theme 还在为学术汇报PPT设计而烦恼吗?面对即将到来的答辩、会议或课堂展示,你…...

3分钟搞定!GetQzonehistory教你永久保存QQ空间青春回忆

3分钟搞定!GetQzonehistory教你永久保存QQ空间青春回忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在担心那些承载着青春记忆的QQ空间说说会消失吗?GetQzo…...

开源项目治理:ECC 社区贡献指南与协作模式

作者注:本文基于 ECC 项目的开源治理实践,帮助中国开发者理解如何参与大型开源项目并建立有效的协作流程。项目开源地址:github.com/affaan-m/ECC摘要 ECC(Everything Claude Code)是一个拥有 170 贡献者、28K Forks 的…...

ISTA 2A-2011 (2022) 全解析|≤68kg 单个包装件部分模拟运输测试标准

前言ISTA 2A-2011 (2022) 属于 ISTA 2 系列部分模拟性能测试,专门针对重量不大于 68kg(150lb)的单个运输包装件设计,是中小型产品包装最常用的入门级运输验证标准。该标准通过温湿度、堆码压力、振动、冲击等测试模块,…...