网络通信 频道

组播协议和组播路由(完)

四、组播报文如何来进行路由

现下常用的组播路由协议有一下几种,由于现在主流的路由器产品只支持Pim,其他的路由器协议都不支持,所以只会对PIM做个详细的解释。

DVMRP 它是通过RIP来发现到源的最短路径,采用广播/剪除的方式来构建一颗多播树。

MOSPF 它是通过OSPF协议来发现到源的最短路径,也是用在密集方式的拓扑下。

CBT 是一个与协议无关的,基于稀疏模式的,共享树协议。他和DVMRP和MOSPF的区别有两点:它无需要在组播中在加入一个路由协议,可以在现有的任何协议上查找到到源的最短路径;它是基于共享树的协议,所以必须要在网络里设置一个网络的核心来确保组播包的前转;更适合使用在稀疏模式下。

PIM-DM 它是个与协议无关的组播协议,同时又是基于密集拓扑的组播协议。采用广播/剪除的方法来进行多播树的构造。

功能:

* 通过交换Hello报文发现邻居

* 当单播路由发生变化时,重新计算RPF接口

* 在多路访问的网络中选举指定路由器

* 在多路访问的网络中使用剪除覆盖

* 在多路访问的网络中用Assert消息选举指定前转器

其中会产生一下5中PIMv2消息:

* Hello

周期性地发送用来发现PIM邻居。和OSPF中的Hello报文有着类似点,如果没有在一定的时间内收到,就会认为邻居已经死亡。

* Join/Prune

这是一个合成的报文,其中有要加入组播树的路由器信息,也有要被剪除路由器信息,都会在这样一个报文里列出来。

当源在发送多播报文的时候,PIM-DM用扩散与剪除的方式建立多播树。那些没有组员连接的路由器通过发送Prune消息可以把自己变成处于剪除状态。

当处在剪除状态的路由器,它收到了所直连的子网所发出的IGMP加入信息,就会发出这样一个join的报文给上游路由器,通知列出了需要加入多播树的子网列表。

* Graft

当一个下游路由器发送给上游路由器一个Prune报文时,上游路由器不会马上把通告的子网从多播前转表中删除,而是会等待一段时间,如果下游路由器所直连的子网又要加入多播树时,需要发出一个Graft报文,通知上游路由器来加入多播树。 (转载注明出处n et130)

* Graft-Ack

上游路由器收到一个Graft信息,必须要回一个Ack信息,这样才会使下游路由器接受组播报文

* Assert

当有两台设备同时连在同一个广播网络上,并且有相同的上游路由器接口,如果两台路由器同时负责前转多播报文的话,会造成网络资源的浪费,所以需要可以在两台路由器中选出一个来作为唯一的前转报文路由器,Assert报文就是在两个路由器中互相通信,选出一个前转器的报文,通过优先权值,IP地址等参数来协商前转器。

 
PIM-SM

采用共享树的拓扑方式,建立起多播树。使用显示加入的方式来加入多播树。

查找汇聚点:

* 自举协议

* 自动RP协议

* 静态设置

PIM-SM和共享树:

PIM-SM由于是单向传输协议,所以组播流量只能从RP向外发送,而不能向RP发送,而源是通过把组播报文封装在PIM Register报文里,发送RP接口,然后再由RP进行剥头,对其中的组播报文进行处理。如果组播报文比较多,通过封装Register报文对设备来说是一种负担,所以可以在RP和源之间建立一个基于源的树,进行源到RP的组播报文传送。

PIM-SM和最短路径树

在大型网络中,共享树的路径未必是最短路径,PIM-SM可以通过在源和目的地之间建立一个基于源的树实现最短路径的传送。


0
相关文章