PIM-DM/SM (1)
PIM-SM模式和PIM-DM模式除了在发现组成员的方式上不同之外,记录路由表的方式也不一样,例如网络中有一个组,地址为:224.1.1.1,发送者为100.1.1.1,PIM-SM模式记录为(*,224.1.1.1),可以看出,PIM-SM模式并不关心组播的源地址,而统统将源地址使用星号*来表示,这样一来,PIM-SM为一个组只记录一个条目,而不管这个组有多少个发送者。这样的记录方式称为(*,G) ,其中*就是组播源地址,G就是组地址。如果有10个组,每个组有5个发送者,使用(S,G)的记录方式,需要记录10×5=50条,而使用(*,G)的记录方式,则只需要10条,所以使用PIM-SM模式,可以大大缩减组播路由表的空间,从而大大节省系统资源。 PIM-SM模式不仅需要记录(*,G)信息,也和PIM-DM模式一样需要记录在该组中,哪些接口是出口,从此接口将数据发给接收者。但是与PIM-DM模式不同的是,PIM-SM模式只记录连接着接收者的接口,其它没有接收者,不需要接收组播的接口是不会被记录的。比如路由器上有5个接口有PIM邻居,其中只有一个是出口,再去掉1个RPF接口,还剩3个PIM接口是不需要接收组播的,在 PIM-DM模式中,会记录下一个RPF口和一个forwarding状态的出口,以及三个不需要接收组播的pruning状态的接口,而在PIM-SM模式中,只会记录一个RPF口和一个forwarding状态的出口,其它的都不作记录,因此,PIM-SM模式的接口记录方式会比PIM-DM模式更省资源。
在PIM-SM中,因为(*,G)形式的记录中不知道组播源的地址,也就无法完成RPF检测,但是又由于接收者收到的数据,都应该是RP发来的,路由器也就认为PIM-SM中的组播源地址,就是RP的地址,在这种情况下,路由器会以RP的地址为源地址做RPF检测,但是在下面的拓朴中,就会出现问题: