组播路由协议——PIM SM工作机制

这篇具有很好参考价值的文章主要介绍了组播路由协议——PIM SM工作机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

PIM SM基本概念

PIM工作步骤

DR竞选

RP基本概念(Bootstrap自举报文)

RP的作用

RP的两种类型

RP的缺点

PIM SM建树过程

成员接收者到RP建树过程(Join加入报文)

组播源到RP建树过程(Register注册报文、Join加入报文)

SPT切换

SSM模型


PIM SM基本概念

PIM SM采用“拉”(Pull)的方式来转发组播报文并生成组播表,建立SPT(最短路径树)、RPT(共享树)转发组播报文。它假定每条链路都没有需求。

PIM工作步骤

邻居建立

全网开启组播、配置PIM

通过Hello报文建立PIM邻居,并选举DR

选举RP

通过RP建立SPT以及RPT树

RPT树建立

在RP与组成员端建立RPT树(*,G)树

SPT树建立

在组播源与RP之间建立(S,G)树

通过组播源流量在RP与组成员端之间也建立(S,G)表项

SPT切换

为了减少RP的负担和避免次优路径,进行SPT切换

DR竞选

当组播源或组成员所在的网段,同时连接着多个PIM路由器时,会通过选举一个DR来负责源段或组成员端组播报文的收发

DR的选举规则(通过Hello报文来选举)

DR优先级高的为DR(前提网段中的所有PIM路由器都支持DR优先级)

优先级相同或有PIM路由器不支持DR优先级的情况,IP地址大的优先

当DR故障时,会重新选举新的DR

DR的主要作用

DR分为两种类型,不同类型的DR作用不同

源DR:连接组播源的,负责向RP发送Register注册报文

组成员端DR:连接组成员的,负责向RP发送Join加入报文

组播路由协议——PIM SM工作机制


RP基本概念(Bootstrap自举报文)

如果采用组播源去拉流量的话,对于使用IGMPv1、v2的组成员来说是无法找到组播源的

所以在PIM SM模式中,定义了RP(汇聚点,其实就是一台被设备为RP的网络设备),通过RP作为中介实现成员与组播源建树(即成员无法直接与组播源建SPT树)

RP的作用

RP是PIM SM中一台“核心”的路由器,它起到的是“汇聚”的作用,汇聚组播接收者的加入/剪枝请求和组播源的组播数据与注册请求。

具体如何汇聚如下

组播接收者所在网段的DR路由器向RP发(*,G)Join报文,建立RPT共享树

RP在收到组播路由器发送的Register注册报文后,向组播源转发(S,G)Join报文,建立SPT树

收到组播数据的最后一跳路由器(DR)向组播源建立SPT树(可选过程)

RP的注意事项

在PIM SM中,每一个PIM组播组都需要且只需要一个RP地址来建树,因此要求全网的路由器都要事先知道某个组的RP地址。(每个PIM域可以有多个RP)

RP的两种类型

按照RP部署维护的复杂性和方式,可以分为静态RP和动态RP部署

静态RP部署

手工添加RP和组的对应关系(全网PIM路由器都要配置)

注意

  1. 如果配置的静态RP地址是本机状态为UP的某个接口地址,本机就作为静态RP,作为静态RP的接口不必使能PIM协议。
  2. 如果没有指定ACL,配置的静态RP为所有组播组224.0.0.0/4服务
  3. 重复执行静态RP的配置命令,会创建多个RP
  4. 当存在多个静态RP为某个组服务的情况,则选择IP地址最大的RP为该组服务
  5. 当配置静态RP时携带了Preferred命令,静态RP的优先级高于动态RP。当配置静态RP时没有携带Preferred命令,则动态RP优先级高于静态RP

动态RP部署(Bootstrap自举报文)

目前动态RP协议使用的是PIMv2的BSR(自举协议)

BSR协议概念

  1. 在BSR协议中,定义了两种角色的设备:C-RP(Candidate-RP)、C-BSR(Candidate-BSR)两种
  2. 手动配置多台路由器为C-RP与C-BSR,从C-RP中竞选出RP,从C-BSR中竞选出BSR
  3. 这两种角色都可以定义多台,以提供冗余备份能力

从C-BSR选举BSR——通过BSR报文选举

C-BSR启动时会启动BSR超时计时器130s,并逐跳泛洪自身的Boostrap(BSR)报文

  • 1、在130s内未收到其它Boostrap报文,则自己选举为BSR
  • 2、在130s内收到其它Boostrap报文,则提取报文中的部分信息进行选举
  1. BSR报文中的优先级值越大,越优先
  2. BSR报文中的BSR的IP地址越大,越优先

BSR全网通告自己的IP地址

BSR会将自己是BSR的消息通过Boostrap报文全网泛洪

C-RP发送自己的RP映射信息给BSR

每个C-RP定义自己的一个接口IP地址和多个组播地址范围的对应关系

每一对IP地址和组播地址范围的对应关系都叫做RP映射

C-RP通过接收泛洪的BSR通告报文,获取BSR的地址。

之后每个C-RP会以单播的方式周期性60s把RP映射发往BSR

BSR全网通告C-RR的RP映射信息

BSR将收集到的RP映射通过周期性每隔60s发送的BSR报文通告出去

此时Boostrap报文会额外包含组范围、C-RP的优先级、C-RP的地址信息

如果路由器130s未收到BSR报文,则会清除本地已有的BSR信息和RP映射关系

全网路由器从C-RP中选举RP

接收端收到BSR泛洪的关于RR映射消息,从收到的RP映射关系中选择最优的C-RP作为RP

  • 由于收到的RP映射关系中,组范围可能会重叠,会优选最最小的组范围所对应的RP

例如:C-RP1的组播范围为224.0.0.0/4,C-RP2的组播范围为224.1.2.0/24,当为组224.1.2.3选择RP时,会选择C-RP2为RP

  • 优选C-RP优先级值小的(默认为0,值越小越优先)
  • 执行Hash算法,结果大的优选
  • C-RP地址大的获胜

RP的缺点

RP是PIM SM的核心,容易出现瓶颈,发生单点故障

RP未必处于源和接收者路由器之间的最优路径上,经过的RPT树路径未必是最优路径


PIM SM建树过程

成员接收者到RP建树过程(Join加入报文)

由接收端DR逐跳向RP建立RPT,发送(*,G)Join报文

  • 当连接组成员的DR路由器收到IGMP成员报告报文,创建(*,G)表项,并查找对应此组播组的RP地址(收到IGMP报告报文的接口为下游接口)
  • 根据RP地址进行RPF检查,找到去往RP的RPF接口,并发送(*,G)Join报文(此RPF接口为上游接口)
  • 上游路由器收到(*,G)Join报文后,创建(*,G)的表项(收到此报文的接口为下游接口),并查找对应此接口的RP地址,并向RPF接口发送(*,G)Join报文,逐跳构建RPT树直到找到RP为止

只要接收者存在,连接组成员的设备会每60s向上游发送(*,G)Join刷新组播路由表(*,G)条目

组播路由协议——PIM SM工作机制

为什么组成员到RP生成的是(*,G)表项?

对于组成员来说,当组成员使用IGMPv1和v2时,不知道组播源IP,只知道组播地址,因此刚开始成员端与RP建立(*,G)表项。

组播源到RP建树过程(Register注册报文、Join加入报文)

  • 当连接组播源的DR路由器收到组播流量后,根据组地址查到RP的地址。然后将组播报文通过单播的注册报文(携带源信息和组信息)发送给RP

组播路由协议——PIM SM工作机制

  • 如果RP存在(*,G)表项,并存在下游接口,则解封装注册报文,根据RPT树转发组播流量。并根据组播源地址检查RPF接口,发送(S,G)Join报文,逐渐构建SPT树。源端DR构建SPT树后,会沿着SPT树转发组播流量到RP,RP收到后发送注册停止报文
  • 如果RP不存在(*,G)表项或者没有下游接口,则直接注册停止报文给源端DR。源端DR停止将组播报文封装在注册报文中,RP也不会发送(S,G)Join报文
组播路由协议——PIM SM工作机制

组播路由协议——PIM SM工作机制

注册报文和注册停止报文在组播源活跃期间会一直发送

源端DR会在组播源活跃期间每个55s发送一次空的注册报文给RP

  • RP如果已经存在关于组播源的(S,G)表项,则会发送注册停止报文(表示自己已经有此组播源表项)
  • RP如果不存在关于组播的(*,G)表项,则会发送注册停止报文(表示此组播源下无成员,不需要)
  • RP如果存在关于组播的(*,G)表项,但是没有关于组播源的(S,G)表项,则不会发送注册停止报文(表示自己需要组播源注册建立SPT树)

源端DR在发送空的注册报文后,如果5s内收不到注册停止报文,就会发送带组播流量的单播注册报文到RP

  • RP收到后建立关于组播源的(S,G)表项,重复上述建立SPT树的过程

为什么也要与成员端DR建立SPT树

因为转发流量一定需要(S,G)表项


SPT切换

组播路由协议——PIM SM工作机制

对于一些接收者来说,通过RP的组播转发路径并不是最优的路径,此时就需要Switchover机制(即SPT切换),SPT切换由与组成员直连的路由器触发的

接收者到组播源也会建立SPT树,之前RP与源建立的树就不用了,这个过程就称为SPT切换

什么时候进行SPT切换

当用户端DR收到组播报文的速率超过阈值时,会进行SPT切换,由组成员端DR发起

华为设备上阈值默认为0,即只要有流量就会进行SPT切换

SPT切换的工作过程

组成员DR检查自己(S,G)表项的上游接口是否为组源接口

如果是则继续向上游检查,如果不是则向真正的上游接口发送(S,G)表项发送Join报文

当真正的上游接口收到组播源流量后,会向之前的上游接口发送剪枝报文

组播路由协议——PIM SM工作机制


SSM模型

上述介绍的PIM为ASM模型的建树过程,SSM模型需要借助PIM-SM的部分技术和IGMPv3/MLDv2来实现

SSM模型的特点

SSM模型无需维护RP、无需构建RPT、无需注册组播源、可以直接在组播源与成员之建立SPT(需要选举DR,建立邻居,然后直接建立SPT树)

当成员端使用IGMPv3/MLDv2加入组播组时,为SSM模型

SPT建树

接收端DR直接发送关于(S,G)表项的Join报文,逐跳向源发送

PIM路由器通过Join报文创建(S,G)表项

SPT建立后,源段就会将组播报文沿着SPT分发给组成员

PIM实现方式比较

组播路由协议——PIM SM工作机制

华为PIM-SM 动态RP实验配置_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/128685766?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128685766%22%2C%22source%22%3A%22m0_49864110%22%7D文章来源地址https://www.toymoban.com/news/detail-465115.html

到了这里,关于组播路由协议——PIM SM工作机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTPS协议详解:基本概念与工作原理

    个人主页: insist--个人主页​​​​​​ 本文专栏 :网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、HTTPS协议的基本概念

    2024年02月10日
    浏览(30)
  • HTTP协议详解:基本概念与工作流程

    HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于在计算机网络上进行数据交换的通信协议。它是互联网上最常用的协议之一,被广泛应用于Web浏览器和服务器之间的通信。本文将深入探讨HTTP协议的基本概念和工作流程,帮助读者更好地理解这个重要的通信协议。

    2024年02月10日
    浏览(32)
  • 198、RabbitMQ 的核心概念 及 工作机制概述; Exchange 类型 及 该类型对应的路由规则;了解什么是JMS。

    看RabbitMQ 之前,可以先了解下什么是 JMS。 先简单看下 JMS 是什么,用来对比。 JMS 也是一种消息机制 JMS 规范,属于 Java EE 规范 AMQP ( Advanced Message Queuing Protocol ) 高级消息队列协议 Connection: 代表客户端(包括消息生产者和消费者)与RabbitMQ之间的连接。 Channel: 连接内部的

    2024年02月07日
    浏览(29)
  • Kafka系列(一)【消息队列、Kafka的基本概念、Kafka的工作机制、Kafka可满足的需求、Kafka的特性、Kafka的应用场景】

    转自《Kafka并不难学!入门、进阶、商业实战》 1. 消息队列的来源 在高并发的应用场景中, 由于来不及同步处理请求,接收到的请求往往会发生阻塞。 例如,大量的插入、更新请求同时到达数据库,这会导致行或表被锁住,最后会因为请求堆积过多而触发“连接数过多的异

    2024年02月20日
    浏览(25)
  • 区块链工作原理,工作机制和详细概念

     各位小伙伴想要博客相关资料的话,关注公众号:chuanyeTry即可领取相关资料! 工作原理         区块链是一种去中心化的分布式账本技术,它的工作原理可以简单概括为以下几个步骤:         1. 交易:区块链中的交易可以是任何数字化的价值交换,例如加密货币

    2024年02月09日
    浏览(38)
  • RabbitMQ基本概念和工作原理

    目录 RabbitMQ的基本概念 RabbitMQ的工作原理 RabbitMQ的交换机类型 RabbitMQ的实现原理 RabbitMQ的消息确认机制 RabbitMQ的消息持久化机制 RabbitMQ的事务 RabbitMQ的消息分发流程 RabbitMQ的消息分发机制 RabbitMQ实现RPC的机制 RabbitMQ是一个功能强大的开源消息队列中间件,具有许多基本概念。

    2024年02月09日
    浏览(33)
  • Linux工作原理2常用基本命令和目录层次结构

    本章是对本书中你将遇到的Unix命令和工具的指南。 为什么是Unix命令?这不是一本关于Linux如何工作的书吗?当然是的,但Linux在本质上是一种Unix风格。在本章中,你会看到Unix这个词,而不是Linux,因为你可以把你学到的东西直接带到BSD和其他Unix风味的系统中去。我试图避免

    2024年02月06日
    浏览(36)
  • TCP协议内部工作机制一(确认应答,超时重传,连接管理)

    目录 TCP报文结构 TCP的首部长度 保留(6位) TCP特点 TCP内部的工作机制 一确认应答 超时重传 连接管理 建立建立(三次握手)  TCP断开连接(四次挥手)  TCP的报文结构中, 16位源端口 , 16位目的端口 , 16位校验和和 UDP是一样的,本篇文章就暂不介绍了,可参考俺之前写的UDP协议详解, T

    2023年04月09日
    浏览(71)
  • AXI4协议学习:架构、信号定义、工作时序和握手机制

    UG1037 不是 高级微控制器总线结构(advanced micro controller bus architecture,AMBA)ARM AXI4规范 的替代品,而是说明: 可用于创建基于AXI的IP的Xilinx工具。 被Xilinx采用的AXI功能。 将现有设计改为AXI接口的向导文件。 XIlinx 从Spartan-6和Virtex-6开始使用 高级可扩展接口(Advanced eXtensible In

    2024年02月16日
    浏览(30)
  • STM32 DMA的基本原理和工作机制解析

    STM32微控制器中的DMA(Direct Memory Access,直接内存访问)是一种用于高效数据传输的特殊硬件功能。 DMA允许外设之间直接进行数据传输,而无需CPU的干预。下面,我将为您详细解释STM32 DMA的基本原理和工作机制。 ✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进

    2024年02月20日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包