您的位置:首页 > 博客中心 > 互联网 >

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

时间:2022-05-05 17:56

一、
1)PIM-SM
1.PIM-SM转发、加入
技术分享图片
PIM-SM适合于接收成员较少的环境。它与DM有何显著的区别?先看PIM-SM转发机制。
转发:
当组播数据到达路由器时,路由器也会去创建转发项。转发项的入接口也依据单播路由指向源(请注意这里的源不再一定是数据源S,它是网络中某一个作为核心的路由器RP。所有数据源向组发送数据时都由源DR先将数据发向RP。RP再将数据向网络转发);但出接口列表却为空。因此,路由器并不向网络转发组播数据。为什么?因为,SM默认为其所有接口上并无谁需要组播数据。
加入:
但是,当网络中有主机想加入组,接收组数据时怎么办?这时主机先向DR发送IGMP加入。DR接收到IGMP加入后,就在该组转发项出接口列表中添加接收到IGMP加入的接口。
如果DR出接口列表从空变成非空,则向其RP发送加入消息。沿途所有路由器就会将收到加入消息的接口添加到出接口列表中。如果路由器的转发项出接口也从空变为非空,则路由器向RP转发该加入消息。如果路由器的转发项不为空,则路由器只是在出接口列表中添加收到消息的接口。这样路由器就建立起了转发项。组播数据就能够流到加入到组的所有组成员。
由此可以看出,SM转发项的建立是依靠主机和RPF下游显式发送加入消息建立起来的

2.PIM-SM剪枝
技术分享图片
当主机不再希望收到组数据时,主机就向DR发送IGMP离开消息。DR收到IGMP离开后就将接收到该消息的接口从出接口列表中删除;如果出接口列表从非空变为空,DR将向RP发送剪枝消息。
上游路由器收到剪枝消息后,也将收到该消息的接口从出接口列表中删除。当其出接口列表从非空变为空时,上游路由器也向RP发送剪枝消息。这样组播数据就不再流向该分支了。
值得提醒的是:SM转发项是通过加入消息显式建立的。所以,剪枝后的接口不会象DM那样经过一段时间后会恢复。SM要恢复向剪枝接口转发数据必须等待下游或主机发送加入消息。

3.PIM-SM状态维护
技术分享图片
PIM-SM如何维护转发项?在PIM-SM是依靠下游路由器周期性的发送加入消息来维护转发项。当路由器收到加入消息,路由器就刷新转发项和出接口。路由器如果长时间未收到加入消息,将删除该出接口;如果出接口列表为空,路由器就删除该转发项。

4.PIM-SM注册
技术分享图片
在网络中某个作为核心的路由器RP。所有组播数据都被DR先发向RP。那么,DR是如何将组播数据发向RP的呢?这就依靠注册消息。
当源的DR收到组播数据后,将整个IP包封装注册消息中,并以单播的方式将注册消息发向RP。RP收到注册消息后,取出里面的组播数据包。如果RP有该组的转发项并且其出接口列表不为空,则转发该数据包;如果RP没有该转发项或者出接口列表为空,则向源的DR单播注册停止消息。
DR收到注册停止消息后,停止向RP发送注册消息。但经过一段时间后DR重新发起一次注册过程。

2)最短路径书切换
技术分享图片
组播数据流在网络中分发途径可以用“树”模型来描述。组播分发树分为最短路径树(Shortest Path Tree)和汇接点树(RPT:Rezendous Point Tree, 也称共享树)。
最短路径树的树根就在源S。网络中所有组成员都根据到源的单播最短路径获得组播数据。按照这种分发树模型,组成员可以更快的接收到组播数据,同时还能避免在网络中某些点出形成拥塞。PIM_DM分发树就是这种模型。
共享树的树根是网络中某一个作核心的路由器RP。源的DR首先将组播数据发到RP。组成员再根据到RP的单播路径获得组播数据。PIM-SM分发树就是这种模型。
共享树的树根是网络中某一个作核心的路由器RP。源的DR首先将组播数据发到RP。组成员再根据到RP的单播路径获得组播数据。PIM-SM分发树就是这种模型。
为什么PIM-SM要采用这种模型?还得从PIM-SM假设说起:PIM-SM首先假定网络中没有组成员,并不需要组播数据流。因此,主机起初并不知道源是谁(当然知道组,因为这是一个前提,就如知道某个频道是某个电视台电视节目一样)。因此,DR在收到某组的IGMP加入后,只能向RP发起加入消息。通过RP获得组播数据,知道源S后才能直接从源获得组播数据。这个切换过程就是最短路径树切换(SPT Switch)。
PIM-SM中还涉及到其根节点RP的选择机制。PIM-SM域内配置了一个或多个候选自举路由器(Candidate-BSR)。应用一定的规则从中选出自举路由器(BSR)。PIM-SM域中还配置了候选 RP路由器(Candidate-RP),这些候选 RP将包含了它们地址及可以服务的组播组等信息的包单播至自举路由器。BSR 定期生成包括一系列候选 RP以及相应的组地址的“自举”消息。“自举"消息在整个域中逐跳发送。路由器接收并保存这些“自举"消息。若 DR 从直连主机收到了某组的成员关系报告后,如果它没有这个组的路由项,DR 将使用一个hash算法将组地址映射至一个可以为该组服务的候选 RP。然后 DR 将朝RP方向逐跳组播“加入/剪枝”消息。若 DR从直连主机收到组播数据包,如果它没有这个组的路由项,DR 将使用hash算法将组地址映射至一个可以为该组服务的候选 RP。然后 DR将组播数据封装在注册消息中单播到RP。

最短路径书切换
技术分享图片
SPT切换由最后一跳路由器DR发起。发生切换的规则很多,最常用的就是流量统计:当流量超过一定阈值时,DR发起从RPT到SPT的切换。
DR首先向其RPT上游发送带有SPT标志的加入消息。上游路由器收到SPT加入后也向源方向发送SPT加入。如果本路由器的到源的出接口与到RP的出接口不是同一接口,则路由器还向RP发送带有RPT标志的剪枝消息。
这样路由器将不再从RP而是直接从源S获取组播数据。当然DR也能发起逆过程,当流量低于该阈值时从SPT切回RPT。

www.huawei.com

热门排行

今日推荐

热门手游