In a multicast network, sources and receivers register with their local rendezvous points to announce sessions and enable receivers to find content. Large multicast networks typically have several rendezvous points at different locations or domains.
The trouble is, there’s no way for a rendezvous point to inform remote rendezvous points of all the sources it knows about. If a user in the U.S. is looking for a source in its network that is multicasting live TV from Europe, it will go to its local rendezvous point. Because the European source is not registered with the user’s local rendezvous point, the user will not be able to access the session. The session will be available only to users who are local to the rendezvous point with which the source is registered.
Multicast Source Discovery Protocol (MSDP) solves this problem by enabling rendezvous points to inform each other about the sources that are known to them, thereby enabling access to these sources from any domain or location. An experimental protocol described in IETF RFC 3618, MSDP can be used between multicast domains and within domains.
A large organization with several rendezvous points located across the globe would use MSDP. In the scenario described above, the multicast session of live TV will begin in Europe and the source will register with its local rendezvous point. The local rendezvous point will then use MSDP to tell all the other rendezvous points on the network about the source and group that is using this session. When a user wants to receive this multicast feed, it will go to its local rendezvous point and request the data to be delivered from the source. The rendezvous point then will have the source and group addresses of this session and connect the user to the live TV. When a rendezvous point receives an source-active message, it checks to see if it has any interested receivers for that group.Text
Although MSDP originally was specified to connect different multicast domains, it also can be used with a technology called “anycast” within domains. Anycast is used when multiple rendezvous points are required for load balancing and redundancy. Sources and receivers will use their closest rendezvous point. If one rendezvous point fails, the other rendezvous point still will be available with no need for any convergence or configuration changes.
Rendezvous points set up peering relationships with other rendezvous points that have MSDP enabled. This peering relationship uses TCP for connectivity and to exchange control information.
When a new multicast source comes online, it needs to first register with its local rendezvous point. The rendezvous points receives an encapsulated data packet from the source’s first-hop router and adds this information to its mroute table. This packet also is encapsulated in a source-active message and is forwarded to all MSDP peers. The source-active message contains the address of the data source, the group address the data source intends to send to and the IP address of the rendezvous point.
When a rendezvous point receives an source-active message, it checks to see if it has any interested receivers for that group. If it does, the rendezvous point will send a “join” message to the source asking to receive the data. It then forwards the data it receives down the multicast tree to the receiver.
Rendezvous points that receive source-active messages must cache them even if there are not interested receivers at that time. This prevents join latency. Rendezvous points periodically send source-active messages as long as the source is still active or immediately when a new source comes online.
MSDP is used widely in enterprise networks to ensure that no matter where and what rendezvous point a source joins, it can be reached throughout its network.
Gilbert is vice president of Router Management Solutions Inc. He can be reached at paul@routermanagement.com.