组播基础-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总结
机制 IGMPv1 IGMPv2 IGMPv3 查询器选举 依靠其他协议 自己选举 自己选举 普遍组查询 支持 支持 支持 成员报告报文 支持 支持 支持 特定组查询报文 不支持 支持 支持 成员离开方式 静默离开 主动发送离开报文 未定义专门的离开报文,通过特定类型的报告报文传达 特定源、组查询报文 不支持 不支持 支持 指定组播源 不支持 不支持 支持 可识别协议报文 IGMPv1 IGMPv1 IGMPv2 IGMPv1 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 组播成员管理的协议,用来在接收者与其他直接相邻的组播路由器之间建立、维护组播组成员关系 负责组播成员管理…...

基于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…...

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类,自己手动实现 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游戏开发中,经常需要生成和处理多个房间的场景,特别是在地牢生成、房屋布局或迷宫设计等应用中。为了确保生成的房间不会重叠,我们需要一种有效的去重叠化算法。以下将详细介绍该算法的原理和代码实现。 对惹,这里有…...

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 特点:支持IPv4 提供高精版、…...
Vue3+FastAPI中Token的刷新机制(含代码示例)
在Vue3和FastAPI的应用中,token刷新机制通常涉及以下几个步骤: 登录过程:用户登录时,后端FastAPI验证用户信息,验证通过后生成一个访问令牌(access token)和一个刷新令牌(refresh t…...

【GAN 图像生成】
理论知识学习: PART 1: 生成对抗网络GAN 深度学习模型,用于生成数据 对抗式训练,生成器v判别器 DCGAN>WGAN>StyleGAN技术不断进化 GAN在艺术创作。数据增强领域应用越来越广泛 应用: GAN在图像合成&#x…...
【自然语言处理】词嵌入模型
词嵌入(Word Embedding) 是一种将词汇表示为实数向量的技术,通常是低维度的连续向量。这些向量被设计为捕捉词汇之间的语义相似性,使得语义相似的词在嵌入空间中的距离也更近。词嵌入可以看作是将离散的语言符号(如单词…...

了解针对基座大语言模型(类似 ChatGPT 的架构,Decoder-only)的重头预训练和微调训练
🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 随着自然语言处理(NLP)技术的飞速进步,基于 Transformer 架构的大语言模型在众多任务中取得了显著成就。特别是 Decoder-only 架构,如 GPT 系列模型&…...
cmake如何在编译时区分-std=c++17和-std=gnu++17?检查宏
如何在编译时区分-stdc17和-stdgnu17?检查宏?-腾讯云开发者社区-腾讯云 我正在使用__int128扩展的g。-stdc17的问题是,一些C库不具备对该扩展的全部支持(即std::make_unsigned<>失败)。当使用-stdgnu17时,它工作得很好。 我…...

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

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...