首页 > 其他分享 >组播架构:

组播架构:

时间:2023-12-28 10:34:22浏览次数:35  
标签:组播 RP PIM 报文 架构 路由表 路由器

     1.源端网络     2.组播转发网络(组播路由PIM)   3.成员端网络(IGMP协议)    


PIM协议 (协议无关组播  路由协议)

   组播路由计算时,需要依赖单播路由实现防环、防次优等功能,PIM协议对于单播路由协议没    有要求,例如MOSPF协议必须要求单播协议使用OSPF协议

   实现:基于单播路由对收到组播报文进行RPF检查,检查通过后创建组播路由表项,转发组播              流量

   报文D.IP 组播地址:224.0.0.13     协议号:103


工作模式:

-----------------------------------------------------------------------------------------------

PIM-DM(密集模式):  采用“推”方式将组播流量推送到组播网络的所有设备,再由设备

                                      决定是否继续接收组播流量

PIM-DM模式主要用在组成员较少且相对密集的组播网络中,该模式建立组播分发树的基本思路是“扩散-剪枝”,即将组播流量全网扩散,然后剪枝没有组成员的路径,最终形成组播分发树



实现步骤过程:

   一、邻居发现(涉及报文:Hello报文)

          使能PIM-DM的路由器,需要通过Hello报文,发现、建立、维护邻居关系

                    邻居发现:使能PIM-DM后,从接口组播发送Hello报文,接口使能PIM,监听

                                    224.0.0.13,一定会接收到对端发送Hello报文

                    邻居建立:Hello报文会携带相关参数,互相收到Hello报文进行参数检查,协商成                                       功则代表邻居建立完成

                     邻居维护:PIM路由器会周期性30s/次发送Hello报文用于维护邻居关系

                                      邻居超时时间:105s

  二、扩散机制

           当组播源发送组播数据被第一跳路由器收到后,第一跳路由器进行RPF检查

               RPF检查: RPF路由出接口 是否与 组播数据的入接口一致

               PRF检查成功:创建组播路由表(S , G),上游接口为RPF接口,下游接口为所有连接

                                      PIM邻居的接口

               路由器按照组播路由表从所有下游接口转发组播流量  

           其它路由器收到后,进行RPF检查,再创建组播路由表(S,G),按照表项转发

           *PIM-DM路由器进行周期性扩散,周期时间180s

           *创建的组播路由表存在老化时间,默认210s

 三、剪枝机制(涉及报文:Prune消息)

         当路由器建立组播路由表中不存在下游接口(最后一跳路由器不存在IGMP路由表)

                并且路由器向上游PIM邻居发送剪枝消息(Prune消息)

         收到剪枝消息的路由器,将收到Prune消息的接口从下游接口列表中删除,并维护剪枝

                计时器(210s),当计时器超时,被剪枝的接口重新恢复成下游接口转发组播数据

         *当路由器所有下游接口都被剪枝,改路由器同样会向上游邻居发送剪枝消息

 四、状态刷新机制

          剪枝计时器210s超时之后,被剪枝的接口重新加入下游接口列表中并转发组播数据,

              导致下游接口连接设备又会接收组播数据(下游设备不需要组播数据),严重浪费

              网络带宽资源

      由第一跳路由器周期性60s/次向下游接口列表中所有接口发送状态刷新State Refresh消息

      收到状态刷新消息的下游设备,刷新剪枝计时器,目的:原被剪枝接口一直处于剪枝状态

           并且下游设备继续向下游接口转发状态刷新消息

  五、嫁接机制(涉及报文:Graft、Graft-ACK)

          原被剪枝的最后一跳路由器通过IGMP协议感知到存在组播组成员加入,最后一跳路由器

                 会向上游设备发送Graft消息

          上游设备收到Graft消息,将收到Graft消息的接口维护的剪枝计时器删除,重新加入下游

                接口列表中,并向该恢复的下游接口恢复Graft-ACK消息,且该接口可以进行组播数                 据转发

  六、断言机制(涉及报文:Assert消息)

          在同一个网段内存在多台组播路由器向该网段转发组播流量,导致下游设备收到多份重复

               的组播流量

          当路由器从下游接口收到组播流量,触发断言竞选        

                 竞选参数: 1.比较去往组播源的路由优先级

                                   2.比较去往组播源的开销

                                  3.比较下游接口IP地址,以大为优

              胜利方:正常向下游转发组播流量

              失败方:将下游接口从路由表中删除(*180s后自动恢复)


PIM-DM采用扩散/剪枝原理将组播流量扩散到整个组播网络,通过RPF检查机制在所有组播路由器创建组播路由表(S , G),建立组播分发树(SPT树)

SPT树,以组播源为根,组播组成员为叶子的组播分发树

-----------------------------------------------------------------------------------------------

PIM-SM(稀疏模式)

    PIM-DM缺陷:1.周期性进行扩散/剪枝,对组播网络造成一定冲击

                            2.所有路由器都会对组播流量进行RPF检查创建并维护组播路由表

                            3.在组成员分部散且稀疏的场景下,扩散剪枝建立SPT树的效率低

   解决:PIM-SM:采用“拉”的方式

PIM-SM(ASM)

       核心: 1.建立SPT最短路径树,以组播源为根,以RP为叶子节点的组播分发树

               2.建立RPT共享树,以RP为根,以组成员为叶子节点的组播分发树

       *RP汇聚点:作用,1.RP向组播源发起建立SPT树

                                    2.最后一跳路由器向RP发起建立RPT树

                 汇聚点RP为全网组播路由器可知且路由可达,使用Loopback接口作为RP IP地址


一、建立PIM邻居(与PIM DM一致)(涉及报文:Hello报文)

二、在网络确定汇聚点RP(涉及报文:自举报文、C-RP通告报文)

1.静态RP:手工静态指定,所有PIM路由器上指定

            [huawei-pim]static-rp 172.16.1.4

2.动态RP:通过自举协议选举RP

                   BSR自举路由器、C-BSR候选自举路由器

                   RP汇聚点、C-RP 候选RP

  1.网络中可以指定一台或多台C-BSR,每台C-BSR认为自身为BSR并向组播网络内泛洪自举报文

  2.网络中所有组播路由器可以收到所有的C-BSR发送的自举报文

        每台路由收到自举报文通过相同规则确定网络中BSR:

                   规则:1.比较优先级,以大为优      2.比较IP地址,以大为优

  3.在网络选择合适的设备作为C-RP(可以配置多台)

  4.所有C-RP单播向BSR发送C-RP通告报文,报文中携带C-RP自身的RP信息

  5.BSR可以收集到组播网络内所有C-RP信息,汇总为C-RP Set信息集,封装在自举报文中,

              通过自举报文将C-RP Set信息泛洪到整个组播网络

  6.PIM路由器根据RP-Set,使用相同的规则进行计算和比较,从多个针对特定组的C-RP中竞选                    出该组播组的RP

           规则:1.C-RP服务组播组范围,越精确越优先(掩码越长)

                     2.C-RP优先级,以小为优

                     3.哈希函数大者为优

                     4.C-RP IP地址,以大为优

  7.所有PIM路由器都可以为每个组播组确定一个唯一的RP,并记录组播组和RP的映射关系

三、DR选举(可选,涉及报文:Hello报文)

   选举参数:1.优先级    2. IP地址,以大为优

      组播源侧DR:负责向RP发送注册消息

      组播成员侧DR:负责向组成员转发组播流量;在IGMPv1版本作为查询器

四、建立SPT树(组播源到RP)(涉及报文:注册报文、注册停止报文、加入消息)

      1.活跃的组播源发送组播流量

      2.组播流量被源侧DR接收后,源侧DR将组播流量封装在注册报文中,单播发送给RP

      3.RP收到注册报文后,接封装获取组播流量(组播源信息、组播组信息)

         并查找路由向上游设备发送Join加入消息反向建立SPT树 /(S , G)路由表

         上游设备收到后,建立(S,G)路由表,并继续向上游传递Join消息,直到源侧DR

      4.源侧DR收到Join消息,代表SPT建立成功,可以按照建立(S,G)表项转发组播流量

      5.RP收到组播流量,立马向源侧DR发送注册停止消息

      6.源侧DR收到注册停止消息则不再向RP发送注册消息

五、建立RPT树(RP到组成员)(涉及报文:加入报文)

     1.组成员通过IGMP协议报告报文声明希望加入的组播组

     2.成员侧DR收到后,建立IGMP路由表

        触发向RP发送join加入消息建立(* ,G)路由表 / RPT

        沿途所有路由器都要将Join消息转发至RP,所有路由器都会建立(* ,G)路由表

     3.RP收到Join消息后,将收到Join消息的接口添加到(S , G)路由表的下游接口列表中

        并从该接口转发组播流量

     4.RP转发的组播流量沿着RPT树一直到成员侧DR

     5.成员侧DR将组播流量转发给组成员

六、SPT切换机制

    RPT树存在的问题:1.所有流量都需要经过RP中转,对于RP负担比较大

                                 2.SPT+RPT转发路基对于组成员可能存在次优路径

    SPT切换:1.初始组播流量沿着SPT+RPT转发路径进行转发

                    2.组成员侧DR收到第一份组播数据后,从组播数据获取组播源和组播组信息

                    3.成员侧向组播源发送Join加入消息,反向建立(S , G)路由表 / SPT树  

七、维护组播路由表

     组播路由表存在老化时间 210s,当长时间未接收组播流量,(S ,G)路由表会被删除

               成员侧DR又需要重新向RP发送Join消息建立RPT

     为了避免重新切换到RPT树,组成员侧DR会周期性60s/次向组播源发送Join消息维护

              组播路由表/ (S ,  G)路由表


(S , G)----->SPT树

(* , G)----->RPT树

 PIM-DM:(S , G)   SPT树

 PIM-SM(ASM):初始  (S , G)  SPT树

                                        (* , G)  RPT树

                               切换  (S , G)  SPT树

八、断言机制(与PIM-DM一致)

标签:组播,RP,PIM,报文,架构,路由表,路由器
From: https://blog.51cto.com/u_15735404/9010406

相关文章

  • C# 如何设计一个好用的日志库?【架构篇】
    C#如何设计一个好用的日志库?【架构篇】 阅读目录〇、前言一、日志的简单记录二、通过开源库HslCommunication记录不同级别的日志三、通过开源库NLog实现通过配置文件配置日志选项1.配置文件2.测试代码3.日志记录类四、日志查看器TextAnalysisTool.NET......
  • 云计算:从基础架构原理到最佳实践之:云计算人工智能与深度学习
    1.背景介绍云计算是一种基于互联网的计算资源共享和分配模式,它允许用户在网络上获取计算资源,而无需购买和维护自己的硬件和软件。云计算的核心思想是将计算任务分解为多个小任务,并将这些小任务分配给不同的计算节点进行处理。这种分布式计算模式有助于提高计算效率、降低成本和提高......
  • 云计算:从基础架构原理到最佳实践之:云计算基础架构与组件
    1.背景介绍云计算是一种基于互联网的计算资源分配和共享模式,它可以让用户在不需要购买和维护计算机硬件和软件的基础设施的情况下,通过互联网访问计算资源。云计算的核心思想是将计算资源作为服务提供,让用户按需购买。云计算的发展有助于减少企业的计算机硬件和软件的购买和维护成本......
  • 云计算与大数据处理的架构与实现
    1.背景介绍随着互联网的普及和数据的快速增长,大数据技术已经成为了当今世界各行各业的核心技术之一。大数据处理技术涉及到的领域非常广泛,包括但不限于人工智能、机器学习、深度学习、大数据分析、大数据挖掘、大数据存储、大数据计算、大数据安全等。云计算是一种基于互联网的计算......
  • 实时风控预警平台:架构设计之精髓
    1.背景介绍实时风控预警平台是一种基于大数据技术的应用,主要用于实时监控和预警各种风险事件。在当今的数字化时代,数据量不断增加,风险事件也变得更加复杂和快速。因此,实时风控预警平台的重要性不断提高,成为企业和组织的核心需求。实时风控预警平台的核心功能包括数据收集、数据处理......
  • 写给开发者的软件架构实战:并发与并行编程
    1.背景介绍并发与并行编程是计算机科学的基石之一,它们在现代软件系统中扮演着至关重要的角色。随着计算机硬件的不断发展,并发与并行编程的应用也日益广泛。然而,这些概念和技术也带来了许多挑战,如数据一致性、死锁、负载均衡等。在这篇文章中,我们将深入探讨并发与并行编程的核心概念......
  • 写给开发者的软件架构实战:非关系数据系统探索
    1.背景介绍非关系数据系统(NoSQL)是一种不使用关系数据库管理系统(RDBMS)的数据库系统,它们主要面向特定的应用场景,提供了更高的性能和更好的可扩展性。随着大数据时代的到来,非关系数据系统已经成为企业和组织中最重要的数据存储和处理技术之一。在过去的几年里,非关系数据系统已经取代了......
  • 写给开发者的软件架构实战:服务降级与服务熔断
    1.背景介绍随着互联网的发展,微服务架构已经成为企业应用中的主流。微服务架构将应用程序拆分成多个小的服务,这些服务可以独立部署和扩展。虽然这种架构带来了许多好处,如更高的灵活性和可扩展性,但它也带来了一些挑战。当服务之间的依赖关系复杂且网络条件不佳时,可能会导致服务之间的......
  • 写给开发者的软件架构实战:容器化与云原生架构
    1.背景介绍容器化与云原生架构是当今最热门的技术趋势之一,它们为开发者提供了一种更加高效、灵活和可扩展的软件开发和部署方法。在这篇文章中,我们将深入探讨容器化与云原生架构的核心概念、算法原理、实例代码和未来趋势。1.1容器化与云原生的出现容器化与云原生技术的出现,主要是......
  • 写给开发者的软件架构实战:如何进行高效的项目管理
    1.背景介绍软件项目管理是现代软件开发过程中的一个关键环节,它涉及到项目的规划、组织、执行和控制等方面。随着软件项目的规模和复杂性不断增加,项目管理也需要不断发展和创新,以满足不断变化的市场需求和技术挑战。在这篇文章中,我们将从以下几个方面进行深入探讨:背景介绍核心概念与......