组播要正常通信的前提是要建立组播树,组播树要正常建立,RP就必须要知道组播源和组成员,如果是同一个PIM-SM域内,RP想要知道所有的组播源和组成员是非常轻松的事,但RP却没有办法知道其它PIM-SM域中的组播源。要解决这个问题让一个PIM-SM域中的RP把自己知道的组播源信息告诉其它PIM-SM域中的RP就可以了,所以我们要想办法让不同PIM-SM之间的RP能够互相共享和交换组播源信息,这个信息被称为Source Active(SA),这个协议就是Multicast Source Discovery Protocol(MSDP),即组播源发现协议。

MSDP协议概述_组播

MSDP协议的功能和目的只有一个,就是把一个PIM-SM域内的组播源信息(SA)发送给其它PIM-SM域的RP,从而让PIM-SM域间的组播通信正常,MSDP只是在PIM-SM域之间传个消息而已至于后面组播是通还是不通,都不是MSDP的责任.

单个域内的PIM-SM要通信,是建立的(*,G)条目,如果PIM-SM域之间要通信,建立的是(S,G)条目,相当于是距离矢量的路径方式。
使用MSDP的优点:

1. 不存在第三方(Third-party)资源依赖域内RP。
2. PIM-SM域只依靠本身的RP。
3. 接收端域:只带接受端的域可以获取数据而不用全局通告组成员。MSDP可以和其它非PIM-SM协议一起使用。

MSDP使用TCP639端口建立对等连接(高ip侦听,低ip连接),和BGP一样,对等间连接必须明确配置,当PIMDR在RP注册源时,RP向所有的MSDP对等体发送源激活消息,然后其他MSDP路由器将SA泛洪,为防止环回,现检查MBGP,再检查BGP Message-Type。