zoukankan      html  css  js  c++  java
  • YL_组播_PIM-DM协议原理

    PIM-DM协议原理

           1、前言

                 组播路由器之间运行组播路由协议,组播路由协议用于建立和维护组播路由,建立一个从数据源端到多个接收端的无环数据传输路径,即构建组播分发树,并正确、高校地转发组播数据包。

                 PIM(Protocol Independent Multicast)是典型的域内组播路由协议,分为DM(Dense Mode)和SM(Sparse Mode)两种模型

    一、PIM-DM概述与配置

           1、组播路由协议概述

                  

                 和单播路由一样,组播路由也分为域内和域间两大类

                     域内组播路由协议

                         通过发现组播源并构建组播分发树,将信息传递到接收者

                         DVMRP、MOSPF、PIM-DM、PIM-SM、PIM-SSM、CBT

                     域间组播路由协议

                         需要一种机制能发现其他组播域内的组播源:MDSP、PIM-SSM

                         用于RPF检测的路由信息如何在自治系统间传递:M-BGP、BGP

           2、域内的组播路由协议可以分为三类

                 密集模式协议(DVMRP和PIM-DM)

                 密集模式协议用Push方式,Push原理假设网络里的每个子网至少有一个组播信息的接收点,因此,信息扩散到网络中的所有点;然后再利用扩散、剪枝和嫁接来维护组播分发树。

       稀疏模式协议(PIM-SM)、CBT

                 稀疏模式协议用Pull而不是Push的方式,即组播信息被拉入网络中的接收站点。这种方式假定组播数据不被需要,除非有加入申请,否则组播信息不会被传送到接收站点。

    链路状态协议(MOSPF)--使用密集模式

           3、PIM概述

                 PIM(Protocol Independent Multicast)称为协议无关组播,表示组播依靠的单播路由可以由静态、RIP、OSPF、IS-IS、BGP等提供,组播路由和单播路由协议无关,只要单播路由协议产生所需路由表项能够完成RPF检查即可。

                    协议号:103

                    PIM路由器组播地址为:224.0.0.13

                    PIM协议分为:

                        PIM-DM(协议无关组播-密集模式)

                        PIM-SM(协议无关组播-稀疏模式)

                    协议假设:网络中的每个子网都存在至少一个对组播源感兴趣的接收站点,因此组播数据包被扩散到网络中的所有网段。(Push模式)

                    PIM-DM对没有组播数据转发的分支进行Prune剪枝操作,只保留包含接收者的分支

                    为了使减掉的有组播数据转发需求的分支能够重新接收组播数据流,减掉的分支周期性地回复称转发状态。(泛洪修剪时间周期是3分钟)

                    为了减少等待被剪掉的分支恢复成转发状态的延迟时间,PIM-DM使用Graft嫁接机制主动恢复组播报文的转发。

                 

           4、PIM-DM中数据包的转发

                 PIM-DM域中数据包的转发路径是“有源树”

                 以“组播源”为根、组播组成员为枝叶的一棵树

                 由于有源树使用的是从组播源到接收者的最短路径,因此也称为最短路径树SPT(Shortest Path Tree)

                    PIM-DM不依赖于特定的单播路由协议,而是使用现存的单播路由进行RPF检查

                    路由器收到组播数据的接口称为上游接口,转发组播数据的接口称为下游接口

                  

            5、PIMv2报文头格式

                  

                 版本

                     版本字段标识版本信息,当前为2

                 类型

                     0:hello

                     3:加入/剪枝

                     5:assert

                     6:嫁接

                     7嫁接回应

                     9:状态刷新

           6、PIM-DM基本配置

                 Pim                    // 全局开启PIM

                 Multicast routing-enable  // 在路由器全局开机组播路由功能

                 Interface Ethernet 0/0/0   // 进入接口模式

                 Pim dm                 // 设置接口为PIM的DM模式

    二、PIM-DM协议机制

           1、邻居发现hello报文

                 Hello报文的目的地址是224.0.0.13

                   

           2、hello报文

                 

                Hello(默认30秒)报文类型(Option Type)=1

                Holdtime(默认为105)定时器,这个定时器只是接收方何时终止与发送方的邻接关系

                组播路由器需要使用hello消息来发现邻居,并维护邻居关系

                通过比较hello消息上携带的优先级(越高越好)和IP地址(越大越好),各路由器为多路由器网段选举指定路由器DR

           3、构建STP树—扩散

              

               当某组播源S开始向组播组G发送数据时,路由器接收到组播报文后,首先根据单播路由进行RPF检查如果检查通过则创建一个(S,G)表项,然后数据向网络上所有下游PIM-DM节点转发,这个过程称为扩散(Flooding)

           4、构建SPT树—剪枝

      

                如果下游节点没有组播成员,则向上游节点发Prune剪枝消息(224.0.0.13),通知上游节点不用再转发数据到该分支。上游节点接收到Prune剪枝消息后,就将相应的接口从某组播转发表项(S,G)对应的输出接口列表中至于Prune状态(列表中删除),剪枝过程继续指导PIM-DM中仅剩下了必要的分支,这就建立了一个组播源S为根的SPT

           6、SPT树的形成

                  

                 网路中的每个路由器仍然会保留(S,G)表项

                 注意:扩散—剪枝周期性进行!每3分钟重复一次!

           7、剪枝的触发条件

                    流量达到非RPF点对点接口

                    没有直连接收者的叶节点路由器

                    位于点到点链路上的非叶节点路由器从其邻居收到剪枝信息

                    LAN网段上的非叶路由器从其邻居接收到剪枝信息,而且LAN网段上的其他邻居没有剪枝信息的否决(oevrride)

           8、多路访问网段的修剪延迟

                  

                 B是叶节点路由器并且没有接收者,发送修剪信息

                 A收到修剪信息后要等待3S才能继续向上修剪

                 C收到了B的修剪信息,立马发送否决信息

                 A接收到join信息后放弃向上修剪。(Prune override)

                  

           9、嫁接机制

                  

                 由谁触发的:接收者(发送了一个IGMP的report报文)

                 由谁发送的:最后一跳路由器(发送group信息:PIM信息)

           10、RPF检查

                     利用单播路由表(默认),可以是任何方式生成的路由表项;如果组播包到达接口是单播路由只是的通往组播源S的接口,就认为这个组播包是从正确路径来的。

           11、RPF细则

                  RPF检查也可以使用其他信息源来选择RPF接口,有MBGP(多播BGP),静态多播路由表等。当路由是从多个路由源学到时,组播RPF将使用路由协议优先级来进行计算。如果有多条路由匹配并且管理距离相同,那么最长匹配原则。

                  

                      步骤一:依据上述规则找到RPF接口(或者说找到RPF的邻居)

                      步骤二、当多播数据包从接口收到后进行RPF检查

                 Display multicast rpf-info 10.1.123.100(组播源IP)   // 查看关于组播源的RPF信息

                 IP rpf-route-static 1.1.1.1 24 2.2.2.2 // 指定组播的单播路由,1.1.1.1:源IP 2.2.2.2:下一跳

           12、Assert机制

                 

                 触发规则:一台路由器的OIL列表接口收到一份多播信息,会触发发送PIM assert信息

                 网络中的各路由器通过发送Assert报文选出一条最优的路径,获胜路由器称为该(S,G)项的上游邻居,由它负责该(S,G)组播报文的转发,而其他落选路由器则剪掉对应的接口以禁止转发信息。

           13、PIM-DM协议机制概括

                 邻居发现、扩散、剪枝、嫁接、Assert机制(只有收到多分相同的报文都会选举Assert)

    三、PIM-DM配置验证

           Display pim routing-table   // 查看PIM-DM组播路由表

           Display pim neighbor       // 查看PIM邻居

           Display pim interface verbose // 查看PIM接口配置

  • 相关阅读:
    分布式基础学习(1)--分布式文件系统
    吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
    单点登录SSO的实现原理
    Java基础学习总结——Java对象的序列化和反序列化
    谈谈Memcached与Redis
    Java并发集合的实现原理
    Head First 设计模式 第4章工厂模式
    CentOS Linux 系统 英文 改中文
    Red Hat 9.0 Linux 分辨率修改
    Head First 设计模式 第5章 单例模式
  • 原文地址:https://www.cnblogs.com/laixufie2046/p/12885467.html
Copyright © 2011-2022 走看看