2021-08-05 PIM-DM

1.PIM的英文全称?为什么叫这个名字?

PIM 是Protocol Independent Multicast(协议无关组播)的简称,表示可以利用静态路由或者任意单播路由协议(包括RIP、OSPF、IS-IS、BGP 等)所生成的单播路由表为IP 组播提供路由。组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可。PIM 借助RPF(Reverse PathForwarding,逆向路径转发)机制实现对组播报文的转发。当组播报文到达本地设备时,首先对其进行RPF 检查:若RPF 检查通过,则创建相应的组播路由表项,从而进行组播报文的转发;若RPF 检查失败,则丢弃该报文。

2.PIM-DM适用场景?

PIM-DM,即密集型协议无关组播(Protocol independent multicast-dense mode),主要用于中小
型网络。协议构建组播分发树的方法为泛洪(Flooding)、剪枝(Prune)和嫁接(Graft)机制。

3.PIM-DM的主要工作原理:详细说明扩散、剪枝、嫁接、断言的原理和过程

  • 周期性扩散—剪枝过程:当一台路由器收到组播流,且通过RPF检查后,假定所有下游邻居都存在接收者,因此向所有下游设备转发该组播流,网络中各路由器都依次类推,直至扩散到整个网络。在此过程中,依靠RPF检查防止出现环路。若网络边缘路由器不存在接收者,也即下游出口为空,则会向上游路由器发送剪枝报文,通知上游不要再将组播流量转发下来;上游收到剪枝报文后,会将该接口变成剪枝状态,若自身所有下游接口都变为剪枝状态,则向上游继续发送剪枝报文,这样逐跳处理。最终保证组播流只转发到有接收者的路由器上,将SPT树裁减到最小,避免不必要的组播流量消耗网络资源。通过上面的扩散— 剪枝过程,网络中所有路由器都建立了(S,G)表项。在PIM DM中,每条组播流都会通过扩散—剪枝方式让所有组播路由器建立对应(S,G),每个(S,G)表项会维护一个定时器,超时后删除表项,每个处于剪枝状态的下游接口也会维护一个定时器,超时后端口变为转发状态,允许转发组播流。因此全网中这种组播流量的扩散—剪枝过程是周期性的。由于通过数据流量来刷新表项方式过于消耗网络资源,目前PIMDM增加了一种通过协议报文来完成表项刷新的替代方式(状态刷新机制)。

  • 剪枝机制:当(S,G)表项的下游出接口为空,即没有处于转发状态的出接口时,(S,G)的RPF接口会变为剪枝状态,同时向上游RPF邻居发送剪枝报文。当(S,G)的下游接口处于剪枝状态时候,会启动一个定时器,当定时器超时后,接口恢复为默认的转发状态。通过剪枝机制,DM将网络中没有接收者的分支剪掉;存在接收者的分支状态没有变化,其接口始终处于转发状态。当一个接口收到下游发给自身的剪枝报文后,根据该接口邻居数量不同处理流程不同:

    • 只有一个邻居:
      当接口只有一个邻居的情况下,收到下游的剪枝报文后,立刻将该接口变为剪枝状态。
    • 一个邻居以上:
      当接口有两个或者两个以上的邻居时候,若从其中一个邻居收到剪枝报文,则会启动剪枝否决机制。
  • 嫁接机制:当网络中出现新的组播接收者后,需要使用嫁接机制重新恢复其所在SPT树的分支。
    在这里插入图片描述

    如图:当路由器B下游出现接收者后,出接口变为非空,向上游RPF邻居A单播发送嫁接报文,启动嫁接定时器(3秒):

    • B的RPF接口收到A回应的嫁接ACK报文后,切换为转发状态。
    • 若3秒超时后没有收到ACK,则继续向RPF邻居发送嫁接报文。

    路由器A收到嫁接报文后的处理:

    • 若接口处于转发状态,则单播回应嫁接ACK报文。
    • 若接口处于剪枝状态,则变为转发状态,同时回应嫁接ACK。
    • 若其RPF接口也处于剪枝状态,则继续向上游发送嫁接报文。
    • 若其RPF接口处于转发状态,则直接将组播流量转发下来。
  • 断言机制:如果网络是一个简单的星型拓扑,则上面的扩散—剪枝—嫁接过程就满足需要了。可实际上网络拓扑各种各样,环形和网状比较多,RPF检查只能够防止组播流量出现环路,但无法避免出现组播流量重复或者多份。因此,PIM DM中还需要使用断言(Assert)机制。断言机制适用PIM SM和PIM DM。

4.剪枝过程最早是哪里发起的?

剪枝过程最先由叶子路由器发起,没有接收者(Receiver)的路由器(如与Host A直连的路由器)主动发起剪枝,并一直持续到PIM-DM域中只剩下必要的分支,这些分支共同构成了SPT。

5.剪枝是周期性的么?周期详细过程是什么样的?

各个被剪枝的节点提供超时机制,当剪枝超时后便重新开始这一过程。

6.状态刷新机制产生的背景

PIM DM网络中,每个210秒会重新进行一次扩散—剪枝过程,同时Assert环境中也会每隔180秒周
期性重复,这些流量都会消耗网络资源。
状态刷新(State-Refresh)属于PIM DM的可选功能,使用周期性协议报文替代周期性组播数据的
洪泛,减少网络消耗,优化网络资源。

7.状态刷新机制的工作原理和详细过程

  • 状态刷新机制属首先需要通过Hello报文进行该能力的协商,只有全网中所有设备都支持才可以生效。
  • 状态刷新报文周期性逐跳发送,默认60秒。
  • 新定义了状态刷新报文(SR)类型Type=9以及Hello报文中的能力协商Option。

1) 状态刷新报文的发起源是谁?是否周期持续发送?
只有直接连接组播源的路由器才可以初始发送状态刷新报文(SR)
状态刷新报文周期性逐跳发送,默认60秒。

2) 其他路由器收到报文如何处理?

  • 首先判断报文的合法性:只有从RPF接口且是RPF邻居发送过来的才有效,其他邻居或者接
    口发送过来的都会丢弃;另外,为了防止频繁的SR报文处理,接口设定了一个速率限制定时器(默认30秒),该时间内收到的SR不处理。
  • 若SR通过合法性检查,则会根据RPF接口状态进行一些操作:
    • 若RPF接口为剪枝状态:
      • SR携带的剪枝位置1,重置剪枝计时器为210秒
      • SR携带的剪枝位置0,向上游发送剪枝报文
    • 若RPF接口为转发状态:
      • SR携带的剪枝位置1,等待2.5秒后发送加入报文
      • SR携带的剪枝位置0,保持转发状态不变
  • 按照前面讲述的发送将TTL减一,更新管理距离,Metric等参数,然后从出接口继续向下转发。
  • 需要说明的是,在Assert环境中,只有Winner才发送SR报文。

3) 状态刷新报文中的P bit作用,接收者收到后如何处理
在每个SR报文中,会携带所对应的(S,G)信息,组播数据流的TTL(每经过一跳减一),第一跳
路由器地址,到达组播源的路由管理距离(也称协议优先级),Metric,掩码长度等,另外,最重要的是根据发送的出接口状态设置剪枝位P bit:
出接口为Prune状态,则P=1
出接口为转发状态,则P=0

对于接收者:

  • 若SR通过合法性检查,则会根据RPF接口状态进行一些操作:
    • 若RPF接口为剪枝状态:
      • SR携带的剪枝位置1,重置剪枝计时器为210秒
      • SR携带的剪枝位置0,向上游发送剪枝报文
    • 若RPF接口为转发状态:
      • SR携带的剪枝位置1,等待2.5秒后发送加入报文
      • SR携带的剪枝位置0,保持转发状态不变

4) 接收者转发状态刷新报文时,是否需要更新报文内容?哪些字段要更新?更新为什么值?
按照前面讲述的发送将TTL减一,更新管理距离,Metric等参数,然后从出接口继续向下转发。

8.各种报文的详细格式(不需要背下来,但要知道有几种报文,每种报文携带的主要内容及作用,对着文档能说明各个字段的含义和作用)

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值