next up previous
Next: Feedback Control Up: Multicast Support in Previous: Multicasting Groups and

Multicast Routing

The basic means of conserving resources via multicasting is sharing: instead of transmitting packets from a sender to each receiver separately, we can arrange for routes that share some links to carry each packet only once. Furthermore, we can design the routes in such a way as to maximize shared links and thus minimize resource consumption. We can picture a multicast route as a tree rooted at the sender with a receiver at each leaf, and possibly some receivers on internal nodes.

Traditional unicast routing decisions intend to minimize transmission costs or delay (depending on the interpretation of the metric used), using shortest path algorithms, with the Dijkstra[34] and Bellman-Ford[35][36] algorithms being two common cases. These algorithms find optimal routes between one node (the sender) and all other nodes in the network (including all receivers). Thus, a straightforward solution to the multicast routing problem can be based on the shortest path trees produced by these algorithms, by pruning off any branches that do not lead to any receivers in the group (see Figure 1 and Figure 2). Although details vary according to the base algorithm[37][38], there are some observations that apply to those approaches in general. On the plus side, these algorithms are easy to implement, as direct extensions of existing ones, and thus fast to deploy; additionally, each path is optimal by definition, regardless of changes in group membership, and this optimality comes essentially for free. On the down side, these algorithms suffer from poor scalability since they make unnecessary calculations (routing to all network nodes) and, even though they are not affected by membership dynamics, they are affected by network dynamics, i.e. link failures and network reconfigurations, which can cause them to frequently repeat routing calculations. For large internetworks with widely dispersed groups, either the scale of the network or the continuous network changes will restrict use of these algorithms to subnetworks that already use their unicasting counterparts.gif

Cost optimization in multicasting can be viewed from another angle: overall cost optimization for the distribution tree. The shortest path algorithms concentrate on pairwise optimizations between the source and each destination and only conserve resources when paths happen to converge. We can instead try to build a tree that exploits link sharing as much as possible, and by duplicating packets only when paths diverge, minimize total distribution cost, even at the expense of serving some receivers over longer paths. Since we need a tree that reaches all receivers and may use any additional network nodes on the way, finding the optimal tree is identical to solving the Steiner tree problem with the sender and the receivers as the Steiner points[39] (see Figure 3). Even though this problem is NP-complete[40], approximation algorithms exist with proven constant worst case bounds[41][42]. Implementations of such algorithms have been shown to produce low cost multicast trees with very good average behavior[43][44][45]. The advantage of this approach is its overall optimality with respect to a single cost metric, such as transmission cost. However, the disadvantages are also important: the algorithm needs to run in addition to the unicast algorithms, and it will itself have scaling problems for large networks. Furthermore, optimality is generally lost after group membership changes and network reconfigurations if the tree is not recomputed from scratch. Thus, Steiner tree algorithms are best suited to slowly changing environments since changes lead to expensive recalculations to regain optimality.

Both approaches discussed above suffer from an inability to maintain their measure of optimality in a large and dynamic network. Approaches for extending these algorithms to deal with changes in group membership without complete tree reconfigurations include extending an existing tree in the cheapest way possible to support a new group member and pruning the redundant branches of the tree when a group member departs[46][44]. The quality of the trees after several local modifications of this sort will deteriorate over time though, eventually leading to a need for global tree reconfiguration.

A radically different approach to the routing problem opts for a solution in realistic settings by adopting the practical goal of finding good rather than optimal trees, that can also be easily maintained. The departure point for this approach is the center based trees[43] which is an optimal cost tree that instead of being rooted at the sender, is rooted at the topological center of the receivers. Even though such a tree may not be optimal for any one sender, it was proved to be an adequate approximation for all of them together. The implication is that one basic tree can serve as a common infrastructure for all senders. Thus, maintenance of the tree is greatly simplified and nodes on the tree need only maintain state for one shared tree rather than many source rooted trees. Since this method has been developed for broadcasting rather than multicasting, much of the theoretical investigation does not hold when we prune the broadcast trees to get multicast ones. In addition, the topological center of the tree, apart from being hard to find for the multicast case, will not even be of use in a dynamic environment.

Practical proposals for multicast routing abandon the concrete optimality claims discussed above, but keep the basic idea of having a single shared multicast tree for all senders to a group. This is a departure from approaches that build one tree for each sender. Routing is then performed by defining one or more core[47] or rendez-vous[48] points to serve as the basis for tree construction and adding branches by separately routing optimally (in the unicast sense) packets from the senders to these fixed points and then from there to the receivers (see Figure 4). Again, merging of paths is exploited whenever possible, but it is not an explicit goal of the routing calculations. Instead, because of the concentration of paths around the fixed points, common paths are expected to arise. These trees are clearly not optimal in any strict sense, but their advantages are numerous. First, a shared tree for the whole group means that this approach scales well in terms of maintenance costs as the number of senders increases.gif Second, the trees can be made quite efficient by clever choice of the fixed points. Third, routing is performed independently for each sender and receiver, with entering and departing receivers influencing only their own path to the fixed points of the single shared tree, employing any underlying mechanism available for unicast routing. This last property means that network and group membership dynamics can be dealt with without global recalculations and by using available mechanisms. In practice, these multicast algorithms are expected to use the underlying unicast algorithms, but are independent of them. Interoperability with different unicast schemes, coupled with the scalability of the shared trees, make these algorithms ideal for use on very large scale heterogeneous networks. The fixed points can also be selected so as to facilitate hierarchical routing for very large internetworks, further enhancing scalability properties.



next up previous
Next: Feedback Control Up: Multicast Support in Previous: Multicasting Groups and



George Polyzos
Wed Feb 7 10:23:23 PST 1996