Some applications require widely-separated processes to work together as groups.
i.e, for example a distributed data base system.
so there is a need to send a message to well defined groups normally large in size but small compared as a whole (system).
sending a message to such group is called Multi casting and the routing algorithm used is called Multicast Routing.
therefore some mechanism is required to create and destroy groups and allow processes to leave and join a group.
i.e, Routers learn about the hosts belong to which group, this is possible by ‘2’ ways
- Either hosts must inform their routers about changes in groups.
- (or) routers must query their hosts periodically.
Now let us see how to route messages in Multicast routing
Consider a N/W with ‘2’ groups 1 and 2 and some are members of both 1,2. a spanning tree for the left most router A is given in the figure.
when a process sends a multicast packet to a group the first router examines it’s spanning tree and prunes(cuts) it without having the members of the other group.
Then using this pruned trees, the router can send messages to the specific group only either to group 1 using Fig(a) and to groups using Fig(b).
while pruning we use Link State Routing (or) Distance Vector Routing.
if a router B is not a member of either 1 (or) 2 and it receives a multicast message if it doesn’t want to receive messages . It sends a PRUNE message saying don’t send any multicast messages to it.
disadvantage of this algorithm is it scales poorly to large N/w’s hence another alternative design is core-based tree.