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

组播基础-2-IGMP协议

文章目录

  • IGMP
    • IGMPv1
    • IGMPv2
    • IGMPv3
    • IGMP总结
    • IGMP Snooping

IGMP

运行于主机和路由器之间

因特网组管理协议,TCP/IP 协议族中负责 IP 组播成员管理的协议,用来在接收者与其他直接相邻的组播路由器之间建立、维护组播组成员关系

  • 负责组播成员管理,运行在主机和组播路由器之间
  • 主机侧:通过IGMP向路由器通告组成员关系
  • 路由器侧:通过IGMP协议维护组成员关系

- 所有IGMP版本都支持ASM模型 - IGMPv3可以直接应用于SSM模型,而 IGMPv1 和 IGMPv2 则需要 SSM-Mapping 技术的支持 - 运行 IGMP 高版本的路由器可以识别低版本的成员报告(向前兼容)



组播组管理协议工作机制:

  • 主机加入或离开组播组
  • 路由器维护组播组
  • 查询器选举
  • 成员报告抑制



IGMPv1

定义基本的组成员查询和报告过程

类型

  • 成员关系查询 0x11
  • 成员关系查询 0x12

组地址

  • 当一个成员关系报告正被发送时,组地址字段包含组播地址
  • 当用于成员关系查询时,本字段为0,并被主机忽略

路由器周期性发送成员关系查询,默认查询周期为 60s,

成员关系报告的发送可以被动发送也可主动发送
被动发送:主机收到成员关系查询消息后,发送成员关系报告
主动发送:主机主动发送成员关系报告

工作机制

  • 普遍组查询与响应
  • 响应抑制机制(当发现已经有人向自己感兴趣的组发送过数据之后,本地这边就不会再次发送报告)

每个收到查询的主机会启动一个计时器,默认0——10秒随机值,超时后发送报告

静默离开

记时130秒,即组成员关系超时时间=IGMP普遍查询消息发送间隔 x 健壮系数 + 最大查询响应时间

查询器选举

查询器依靠组播路由协议PIM,PIM中选择的DR会充当IGMPv1里面的查询器



IGMPv2

IGMPv2为默认版本,在IGMPv1的基础上添加了查询器选举和离开组机制

类型

  • 成员关系查询 0x11
    常规查询:用于确定哪些组播组有效,该组播组是否还有成员在使用,常规查询地址全零表示
    指定组查询:用于查询特定的组播组是否还有组成员,在一台设备发送离开报文后进行特定查询该组是否还有使用者两次
  • 版本2的成员关闭报告 0x16;版本1的成员关系报告 0x12
  • 离开组信息 0x17

组地址

  • 在成员查询消息中,发送一个常规查询时组地址设为0,当发送一个特定组查询时,则应设置为组的地址
  • 在成员报告或离开组的消息中,组的地址保留了要报告或要离开的地址

IGMPv2增加了最大响应时间字段,以动态地调整主机对组查询报文的响应时间

工作机制

  • 独立的查询器选举机制
  • 存在多个组播源的时候IP地址小的获胜,成为查询者,进行普遍组查询



IGMPv3

成员可以指定接受或不接受某个组播源的报文

  • 服务于 SSM 模型
  • 增加了主机的控制能力,对组播源进行过滤
  • 取消了成员报告抑制机制
  • 过滤模式包含 Include 和 Exclude

工作机制

  • 周期性地向 224.0.0.1 发送普通查询
  • 接受端发送成员报告,指出希望加入或拒绝某些组播发送的数据
  • 独立的查询器选举机制
  • 存在多个组播源的时候IP地址小的获胜,成为查询者,进行普遍组查询

IGMPv3主机发送类型

组数和地址数为1

  • Mode Is Include:接收从指定源列表发往该组播组的数据
  • Mode Is Exclude:不接收源地址列表中包含的源发往该组的组播数据
  • Change To Include Mode:表示组播组与源列表之间的对应方式由EXCLUDE转换到INCLUDE
  • Change To Exclude Mode:表示组播组与源列表之间的对应方式由INCLUDE转换到EXCLUDE
  • Allow New Source:现有基础上,还希望从某些组播源接收组播数据
  • Block Old Sources:现有基础上,不再希望从某些组播源接收组播数据

特定源组查询

无离开报文,通过这种方式进行离开

  • 针对某个源某个组进行特定组的查询,确保组还有成员在使用



IGMP总结

机制IGMPv1IGMPv2IGMPv3
查询器选举依靠其他协议自己选举自己选举
普遍组查询支持支持支持
成员报告报文支持支持支持
特定组查询报文不支持支持支持
成员离开方式静默离开主动发送离开报文未定义专门的离开报文,通过特定类型的报告报文传达
特定源、组查询报文不支持不支持支持
指定组播源不支持不支持支持
可识别协议报文IGMPv1IGMPv1 IGMPv2IGMPv1 IGMPv2 IGMPv3
ASM模型支持支持支持
SSM模型需要IGMP Mapping需要IGMP Mapping支持



IGMP Snooping

组播数据在二层被泛洪

  • 网络资源浪费
  • 存在安全隐患

IGMP Snooping概述

  • 解决组播报文在二层泛洪的问题
  • 运行在数据链路层,是二层交换机上的组播约束机制,用于管理和控制组播组
  • 通过监听 IGMP 报文,建立组播MAC地址表

端口角色

路由器端口:接受组播数据----上游接口

  • 收到源地址不为 0.0.0.0 的 IGMP 普遍组查询报文或PIM Hello 报文的接口都将被叫做动态路由器端口
  • 手工配置的路由器端口叫做静态路由器端口

成员端口:发送组播数据----下游接口

  • 收到 IGMP Report 报文的接口,叫做动态成员端口
  • 手动配置的成员叫做静态成员端口

工作原理

启用 IGMP Snooping 机制后,查询响应仅向路由器接口转发

模拟器环境会出现BUG,报告可以,但是普遍组查询和离开报文会被隔离,这种情况要想实现 IGMP 操作就需要在组管理设备上配置静态的 IGMP表项

相关文章:

组播基础-2-IGMP协议

文章目录 IGMPIGMPv1IGMPv2IGMPv3IGMP总结IGMP Snooping IGMP 运行于主机和路由器之间 因特网组管理协议,TCP/IP 协议族中负责 IP 组播成员管理的协议,用来在接收者与其他直接相邻的组播路由器之间建立、维护组播组成员关系 负责组播成员管理&#xf…...

基于Springboot+Vue的视频点播系统设计与实现登录 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…...

执行力怎么培养?

执行力怎么培养? 并行:适合在初期养成习惯,不抱对结果的期望天才就是强迫症:适合中期修身:适合高级 并行:适合在初期养成习惯,不抱对结果的期望 在你开始做任何事情的时候,不要一开…...

Power apps:一次提交多项申请

1、添加一个Form,导入sharepoint列表,添加确认,继续,取消按钮 2、在页面的onvisible属性中添加 Set(applynumber,Last(付款申请表).申请编号1); #定义一个申请编号变量,每次申请,就将列表最后一个…...

Oracle数据库物理结构操作管理

实验步骤 (1)查询数据库初始化参数中参数名包含sga的参数的名称、值和描述信息。 SQL> select name,value,description from V$PARAMETER where name like %sga%; (2)设置sga_max_size的大小为1G SQL> alter system set sg…...

Python自然语言处理之spacy模块介绍、安装与常见操作案例

文章目录 spacy模块介绍安装spacy常见操作案例及代码1. 加载模型并处理文本2. 词性标注3. 命名实体识别4. 依存句法分析5. 可视化(在Jupyter Notebook中) spacy模块介绍 spacy是一个强大的Python库,用于自然语言处理(NLP&#xf…...

DSPy101

DSPy 介绍 DSPy(Declarative Self-improved Language Programs in Python) 是一个用于系统化和增强在流水线内使用语言模型的框架,它通过数据驱动和意图驱动的系统来优化大型语言模型(LLM)的使用。 DSPy 的核心是模块…...

网格交易策略:从原理、应用到实战Python回测

01 引言 随着金融市场的快速发展,量化交易成为投资者追求收益的一种重要手段。在众多的量化交易策略中,网格交易策略(Grid Trading Strategy)因其简单易用、风险控制灵活等优点而备受青睐。网格交易策略的核心思想是“低买高卖”&…...

软考论文《论大数据处理架构及其应用》精选试读

论文真题 模型驱动架构设计是一种用于应用系统开发的软件设计方法,以模型构造、模型转换和精化为核心,提供了一套软件设计的指导规范。在模型驱动架构环境下,通过创建出机器可读和高度抽象的模型实现对不同问题域的描述,这些模型…...

fatfs API使用手册

配置 /*---------------------------------------------------------------------------/ / Configurations of FatFs Module /---------------------------------------------------------------------------*/#define FFCONF_DEF 80286 /* Revision ID *//*---------------…...

9.23作业

仿照string类&#xff0c;自己手动实现 My_string 代码如下 MyString.h #ifndef MYSTRING_H #define MYSTRING_H #include <iostream> #include <cstring>using namespace std;class My_string { private:char *ptr; //指向字符数组的指针int size; …...

Unity3D 房间去重叠化算法详解

前言 在Unity3D游戏开发中&#xff0c;经常需要生成和处理多个房间的场景&#xff0c;特别是在地牢生成、房屋布局或迷宫设计等应用中。为了确保生成的房间不会重叠&#xff0c;我们需要一种有效的去重叠化算法。以下将详细介绍该算法的原理和代码实现。 对惹&#xff0c;这里有…...

mybatis 配置文件完成增删改查(五) :单条件 动态sql查询,相当于switch

文章目录 单条件 动态sql查询写测试方法 疑问总结 单条件 动态sql查询 <select id"selectByConditionBySingle" resultMap"brandResultMap">.select *from tb_brandwhere<choose>/*相当于switch*/<when test"status ! null">…...

全球IP归属地查询-IP地址查询-IP城市查询-IP地址归属地-IP地址解析-IP位置查询-IP地址查询API接口

IP地址城市版查询接口 API是指能够根据IP地址查询其所在城市等地理位置信息的API接口。这类接口在网络安全、数据分析、广告投放等多个领域有广泛应用。以下是一些可用的IP地址城市版查询接口API及其简要介绍 1. 快证 IP归属地查询API 特点&#xff1a;支持IPv4 提供高精版、…...

Vue3+FastAPI中Token的刷新机制(含代码示例)

在Vue3和FastAPI的应用中&#xff0c;token刷新机制通常涉及以下几个步骤&#xff1a; 登录过程&#xff1a;用户登录时&#xff0c;后端FastAPI验证用户信息&#xff0c;验证通过后生成一个访问令牌&#xff08;access token&#xff09;和一个刷新令牌&#xff08;refresh t…...

【GAN 图像生成】

理论知识学习&#xff1a; PART 1&#xff1a; 生成对抗网络GAN 深度学习模型&#xff0c;用于生成数据 对抗式训练&#xff0c;生成器v判别器 DCGAN>WGAN>StyleGAN技术不断进化 GAN在艺术创作。数据增强领域应用越来越广泛 应用&#xff1a; GAN在图像合成&#x…...

【自然语言处理】词嵌入模型

词嵌入&#xff08;Word Embedding&#xff09; 是一种将词汇表示为实数向量的技术&#xff0c;通常是低维度的连续向量。这些向量被设计为捕捉词汇之间的语义相似性&#xff0c;使得语义相似的词在嵌入空间中的距离也更近。词嵌入可以看作是将离散的语言符号&#xff08;如单词…...

了解针对基座大语言模型(类似 ChatGPT 的架构,Decoder-only)的重头预训练和微调训练

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 随着自然语言处理&#xff08;NLP&#xff09;技术的飞速进步&#xff0c;基于 Transformer 架构的大语言模型在众多任务中取得了显著成就。特别是 Decoder-only 架构&#xff0c;如 GPT 系列模型&…...

cmake如何在编译时区分-std=c++17和-std=gnu++17?检查宏

如何在编译时区分-stdc17和-stdgnu17&#xff1f;检查宏&#xff1f;-腾讯云开发者社区-腾讯云 我正在使用__int128扩展的g。-stdc17的问题是&#xff0c;一些C库不具备对该扩展的全部支持(即std::make_unsigned<>失败)。当使用-stdgnu17时&#xff0c;它工作得很好。 我…...

速通数据结构与算法第七站 排序

系列文章目录 速通数据结构与算法系列 1 速通数据结构与算法第一站 复杂度 http://t.csdnimg.cn/sxEGF 2 速通数据结构与算法第二站 顺序表 http://t.csdnimg.cn/WVyDb 3 速通数据结构与算法第三站 单链表 http://t.csdnimg.cn/cDpcC 4 速通…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...