学习笔记——路由——IP组播-PIM(协议无关组播)-概述/PIM模式
八、PIM(协议无关组播)
1、前言
在单播中,是一对一的模型,路由器将IP数据包发往目标地址,因此,单播路由器不用关心发送数据包得源地址。而组播数据流量由组播产生,发向一组接收者,那们组播路由器如何这道组播数据该发向哪里?在哪转发?如何寻找路径?如何放环等,这就需要组播路由协议了。
在组播中,接收者可能存在于全网中的任意位置,所以如果静态配置组播路由的话,存在时差性差、灵活性差以及工作量大容易出错的问题。为了正确高效的转发组播数据报文,路由器之间则需要运行组播路由器协议。
如果像单播路由一样通过多种路由算法动态生成组播路由,会带来不同路由协议间互相引入时操作繁琐的问题。
PIM(协议无关组播)不依赖于某一特定单播路由协议,可利用各种单播路由协议,建立的单播路由表,完成RPF(逆向路径转发)检查功能,而不是维护一个分离的组播路由表,实现组播转发。
由于PIM无需收发组播路由更新,所以与其它组播协议相比,PIM开销降低了许多。PIM的设计出发点是在Internet范围内同时支持SPT和RPT,并使两者之间灵活转换,因而集中了它们的优点提高了组播效率。
组播路由器之间运行组播路由协议,组播路由协议用于建立和维护组播路由,并正确,高效地转发组播数据包。
PIM独立于单播路由,但他的工作依赖于单播路由选择协议的信息(单播路由表),尽管我们倾向于称PIM为组播路由协议,事实上是使用现存的单播路由表去实现RPF检验功能,也就是PIM通过单播路由表来做RPF检查(收到的数据包入接口和到源单播路由的出接口是否一致),从而形成组播分发树,并且产生组播路由表项,从而指导组播流量转发。
作为组播路由解决方案,它直接利用单播路由表的路由信息,对组播报文执行RPF检查,检查通过后创建组播路由表项,从而转发组播报文。
PIM与之前组播路由协议的区别
PIM协议之前,使用的组播路由协议是DVMRP(距离矢量组播路由协议),MOSPF(组播OSPF协议)等,它们的特点都是需要依赖单播路由协议来进行工作,维护大量的拓扑数据库。
PIM称为协议无关组播路由协议(与单播协议无关的组播路由协议),不维护组播拓扑数据库,不能够自己直接画出组播拓扑。因此PIM通过利用单播路由表的路由信息进行组播报文RPF检查,创建组播路由表项,转发组播报文。目前流行PIMv2。
2、PIM(协议无关组播)概述
PIM(Protocol Independent Multicast, 协议无关组播) 这里的协议无关指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息。目前使用最广泛的域内组播路由协议。直接利用单播路由表的路由信息,使用RPF(Reverse Path Forwarding,逆向路径转发)机制检测环路,创建路由表项,从而进行组播报文转发。
PIM协议的本质是:三层协议,处于IP协议的上层,通过原始socket和IP通信。目前PIM有两个版本,PIMv1几乎已经不用了,常用版本是PIMv2。PIM报文直接封装在IP报文中,协议号:103,组播地址:224.0.0.13。
PIM协议包括:PIM-DM(PIM-Dense Mode)、PIM-SM(PIM-Sparse Mode)。
PIMv2依赖设备的单播路由表,之所以叫“协议无关”,是因为PIMv2并不关注设备运行的是哪些单播路由协议,OSPF、ISIS、RIP、BGP甚至静态路由都能为PIM提供服务。
PIM的作用
用于组播路由器与组播路由器之间构建组播路由表协议无关组播。与网络层运行哪一种单播路由协议无关,但是网络层必须要运行一种单播路由协议,用于组播数据转发时进行RPF检查。
PIM指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息。主要作用:构建组播分发树。
4、PIM模式
PIM(Protocol Independent Multicast,协议无关组播)是典型的域内组播路由协议,主要有两种模式:

(1) PIM-DM密集模式(PIM-Dense Dense-Mode, DM)
DVMRP:距离矢量组播路由协议
MOSPF:组播开放式最短链路优先
PIM-DM: 密集模式PIM
(2) PIM-SM稀疏模式(PIM-Sparse Sparse-Mode, SM)
PIM-SM模式根据组播服务模型又可分为:
PIM-SM(ASM):为任意源组播建立组播分发树。
PIM-SM(SSM):为制定预案组播建立组播分发树。
(3) PIM-DM与PIM-SM使用场景
PIM-DM模式:主要用在组成员较少且相对密集的组播网络中,该模式建立组播分发树的基本思路是"扩散-剪枝",即将组播流量全网扩散,然后剪枝没有组成员的路径,最后形成组播分发树。
PIM-SM模式:主要用在组成员较多且相对稀疏的组播网络中,该模式建立组播分发树的基本思路是先搜集组成员信息,然后再形成组播分发树。
使用PIM-SM模式不需要全网泛洪组播,对现网的影响较小,因此现网多使用PIM-SM模式。
整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun 暗号:CSDN】
相关文章:
学习笔记——路由——IP组播-PIM(协议无关组播)-概述/PIM模式
八、PIM(协议无关组播) 1、前言 在单播中,是一对一的模型,路由器将IP数据包发往目标地址,因此,单播路由器不用关心发送数据包得源地址。而组播数据流量由组播产生,发向一组接收者,那们组播路由器如何这道…...
TCP 协议学习
一、引言 在当今的网络通信世界中,TCP(Transmission Control Protocol,传输控制协议)是最为重要的协议之一。它为各种网络应用提供了可靠的、有序的数据传输服务,是互联网通信的基石。无论是网页浏览、电子邮件发送、…...
python3的基本数据类型:String(字符串)
一. 简介 本文简单学习了一下 python3中的一种数据类型: String(字符串)。 Python中的String类型是一种用于表示文本数据的数据类型。 它可以包含字母、数字、符号等字符,用于存储文本信息。 二. python3的基本数据类型&…...
面试总结(2024/10/16)
面试总结(2024/10/16) 面试11.闭包2.promise3.全局数据的保存4.多模板切换,布局,系统主题颜色5.同一个搜索,不同的搜索条件,输入框不同的校验方法6.自定义一个组件,包括哪些属性7.多个父组件之间…...
从图像识别到聊天机器人:Facebook AI的多领域应用
随着人工智能技术的快速发展,Facebook已在多个领域内广泛应用AI技术,以提升用户体验、提高效率并推动创新。从图像识别到聊天机器人,Facebook的AI应用涵盖了社交媒体的方方面面,下面我们将深入探讨这些应用的具体实现及其对用户生…...
linux中级(NFS服务器)
NFS:用于在NNIX/Linux主机之间进行文件共享的协议 流程:首先服务端开启RPC服务,并开启111端口,服务器端启动NFS服务,并向RPC注册端口信息,客户端启动RPC,向服务器RPC服务请求NFS端口࿰…...
微软主动出击,“钓”出网络钓鱼者
微软正采取一种巧妙的策略来对抗网络钓鱼行为者,其手段是通过访问Azure平台创建高度仿真的蜜罐租户,以此作为诱饵,吸引网络犯罪分子进入,进而收集他们的相关信息。 凭借所收集的数据,微软能够绘制出恶意基础设施的地图…...
Xcode16 编译运行YYCache iOS18 sqlite3_finalize 闪退问题解决方案
问题原因 升级Xcode 16 之后,真机运行APP,发现会有Crash,崩溃堆栈线上Crash 在 YYCache 之中。如下图所示 崩溃堆栈如下: * thread #1, queue com.apple.main-thread, stop reason signal SIGABRTframe #0: 0x00000001d9391…...
Kafka-Windows搭建全流程(环境,安装包,编译,消费案例,远程连接,服务自启,可视化工具)
目录 一. Kafka安装包获取 1. 官网地址 2. 百度网盘链接 二. 环境要求 1. Java 运行环境 (1) 对 java 环境变量进行配置 (2) 下载完毕之后进行解压 三. 启动Zookeeper 四. 启动Kafka (1) 修改Conf下的server.properties文件,修改kafka的日志文件路径 (2)…...
django模板相关配置
模板引擎配置 Django支持多种模板引擎,最常用的是Django自带的模板引擎和Jinja2模板引擎。模板引擎的配置主要在settings.py文件中的TEMPLATES列表中进行。 BACKEND:指定模板引擎。例如,BACKEND: django.template.backends.django.DjangoTe…...
MongoDB等保限制下的连接认证问题
目录 一、问题描述 二、解决方案 三、代码示例 四、拓展知识 一、问题描述 用户调整用户连接认证机制以满足等保要求,调整后程序连接mongodb失败。数据库日志报错如下: {"t":{"$date":"2024-10-10T14:39:07.825+08:00"},"s":&q…...
2024 睿抗机器人开发者大赛(RAICOM)-【网络安全】CTF 部分WP
文章目录 一、前言二、MICS你是黑客么循环的压缩包Goodtime 三、WEBpy 四、Crypto变异凯撒RSAcrypto3 一、前言 WP不完整,仅供参考! 除WEB,RE,PWN外,其余附件均已打包完毕 也是一个对MISC比较友好的一个比赛~ 123网…...
idea 无法输入中文 快速解决
idea在某些情况会出现无法输入中文的情况,我们不去深究内部原因,直接上解决方案: 1、点击菜单help->Edit Custom VM Options 2、最后一行,追加: -Drecreate.x11.input.methodtrue 、 3、重启...
掌握ElasticSearch(五):查询和过滤器
一、查询和过滤器的区别 在 Elasticsearch 中,查询(Query)和过滤器(Filter)是用于检索和筛选数据的重要组成部分。它们虽然都能用来查找文档,但在性能和用法上有所不同。下面详细介绍查询和过滤器的概念以…...
自学[vue+SpringCloud]-012-SpringCloud工程发送邮件
文章目录 前言一、配置QQ邮箱1.1 设置1.2 获取授权码 二、服务发送邮件2.1 引入依赖包2.2 新建AlarmMessageDto2.3 增加controller代码2.4 main方法测试 总结 前言 skywalking监控通过webhook调用SpringCloud服务接口,接口中发送告警邮件。 一、配置QQ邮箱 1.1 设…...
STM32通信协议-I2C
目录 一,IC2的协议规则 I2C总线是PHILIPS公司开发的两线式串行总线,I2C总线主要解决了单片机一对多通信的问题 两根通信线:SCL,SDA,同步,半双工通信,支持数据应答机制,支持总线挂载多设备。 …...
廉颇老矣尚能饭否,实践甘肃数据挖掘挑战赛作物与杂草的智能识别,基于YOLOv3全系列【tiny/l/spp】参数模型开发构建田间低头作物杂草智能化检测识别模型
一、背景 田间杂草的有效管理是现代农业生产中面临的重要挑战之一。杂草不仅竞争作物的养分、 水分和阳光,还可能成为害虫和病原体的寄主,从而降低农作物的产量和品质。因此,开发 高效、精确的杂草检测和管理系统对于提高农业生产效率、降低化…...
基于Django+Python的宾馆管理系统设计与实现
项目运行 需要先安装Python的相关依赖:pymysql,Django3.2.8,pillow 使用pip install 安装 第一步:创建数据库 第二步:执行SQL语句,.sql文件,运行该文件中的SQL语句 第三步:修改源…...
MySQL--mysql的安装
1.Linux上mysql的安装: Ubuntu下: (1)安装前首先切换到管理员身份:sudo su (2)然后执行命令:apt install mysql-server (注意:装的是服务器端,客户端自动就安装了) (3)执行过程中按y; 2.Mysql初始化配置 注意,一定是sudo su,必须是管理员才能进行Mysql的初始化设置; 初始化…...
qt 构建、执行qmake、运行、重新构建、清除
qt右键功能有 构建、执行qmake、运行、重新构建、清除,下面简单介绍一下各个模块的作用。 1. 执行qmake qmake是一个工具, 它根据pro文件生成makefile文件,而makefile文件中则定义编译与连接的规则。pro文件中定义了头文件,源文件…...
Godot资源解包工具:专业级游戏资源提取技术方案
Godot资源解包工具:专业级游戏资源提取技术方案 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker Godot资源解包工具是一款专为Godot游戏引擎设计的专业级资源提取解决方案,能够…...
UAssetGUI终极指南:深度解析虚幻引擎资源文件转换技术
UAssetGUI终极指南:深度解析虚幻引擎资源文件转换技术 【免费下载链接】UAssetGUI A tool designed for low-level examination and modification of Unreal Engine game assets by hand. 项目地址: https://gitcode.com/gh_mirrors/ua/UAssetGUI UAssetGUI是…...
claw-gatekeeper:构建稳定智能的数据抓取守护服务
1. 项目概述:一个守护数据抓取流程的“看门人”在数据驱动的时代,无论是市场分析、舆情监控还是学术研究,自动化数据抓取(爬虫)都扮演着至关重要的角色。然而,任何稍有规模的抓取任务,都绕不开几…...
LeetCode 1665.完成所有任务的最少初始能量:排序(贪心)
【LetMeFly】1665.完成所有任务的最少初始能量:排序(贪心) 力扣题目链接:https://leetcode.cn/problems/minimum-initial-energy-to-finish-tasks/ 给你一个任务数组 tasks ,其中 tasks[i] [actuali, minimumi] : actuali 是完…...
C#初步认识/入门基础
一、注释/运行/项目介绍1.注释1.// 双斜杠是单行注释,注释代码不会被执行;/* */是多行注释格式。两种均不会被执行;.///三斜杠一般写在方法前//1111/*111*11*////11112.运行2.运行调试 : 实心三角(运行控制台后会消失…...
不删除属性的情况下简化对象属性的方法探讨
是否还有其他方法可以简化从对象中删除特定属性的操作。舍友提出了一个对象属性简化的问题,询问在不删除属性的情况下,如何简化从对象中删除特定属性的操作。02解决方案最初,我曾考虑过不直接删除属性,而是仅保留业务所需的那些。…...
Python内置模块:io、file、json、csv
一、io StringIO - 文本字符串的缓冲区 from io import StringIO# 创建StringIO对象 sio StringIO() # 空缓冲区 sio StringIO("initial text") # 带初始数据# 常用方法 sio.write("Hello ") # 写入字符串&…...
智慧港口高风险作业AI实时监督技术实操解析
在智慧港口建设中,集装箱堆场、高风险作业的安全管控是核心重点,其中皮带运输、高风险作业(吊装、动火、高处、有限空间等)的安全保障,是港口运维的关键。当前,港口高风险作业普遍面临痛点:人工…...
AD覆铜时引脚‘粘’在一起了?别慌,三步排查法帮你搞定Modified Polygon和覆铜粘连
AD覆铜引脚粘连问题排查指南:从现象到解决方案的完整路径 在PCB设计过程中,覆铜操作看似简单却暗藏玄机。许多Altium Designer用户都曾遭遇过这样的场景:当你信心满满地完成布线,准备进行最后的覆铜操作时,突然发现不同…...
长沙定制开发本地生活APP打造城市便民消费场景
随着长沙城市发展,市民对便民消费的需求越来越高,长沙本地生活APP定制开发也逐渐成为本地商家、政企单位布局数字化的重要选择。不同于通用模板APP,长沙定制本地生活APP可根据长沙本地特色,整合餐饮、生鲜、家政、休闲娱乐、政务便…...
