LECTURE 19 (Wed, 17 Sep 2003)

The problems with the protocols considered in the last class (DVMRP and Link-State based protocol) is scalability and their dependence on the underlying unicast routing protocol. The specific disadvantages of each being :
    Distance Vector Multicast Routing Protocol (DVMRP)
        a) Routers not interested in sending/receiving multicast packets to/from group also incur tree building overhead.
        b) The overhead involved in determining child and leaf subnets depends on the stability of the network.
    Link State Based Routing Protocol

        a) Global Group membership is maintained by all routers, whether they form part of a multicast tree or not.
        b) Link State Information flooded throughout the internetwork as a result of either topology changes or group membership changes.


Rather than flooding the data everywhere, or flooding the membership information everywhere, algorithms in the Core-Based Trees (CBT) map the multicast group address to a particular unicast address of a router(Core Router), and they build explicit distribution trees centered around this particular router.

CBT involves  having a single Core Tree per group.

Advantages of Core Based Trees

1) Scalability : Instead of one tree per (source,group) pair as in source based trees, there is one multicast tree per group. So the amount of state that needs to be stored at each router on the tree is O(number of groups) i.e. link information per tree. Moreover, all routers need not support or implement this protocol for this protocol to work i.e. routers which have no members wrt a particular group need not maintain any information as to the existence of that group.

2) Tree Creation is receiver based. Only a router interested in becoming a part of the group (or is on the path between a potential member and the tree) is involved in becoming a part of the tree for that particular group. So tree building overhead is restricted to these routers.

3) It is independent of underlying unicast routing algorithm, resulting in a much simplified multicast tree formation across domain boundaries.


There is a core address and a group identifier associated with every group. The core address is the normal unicast address of the core router. This address is used to get packets to the tree. Once on the tree, the packet is multicast based on a globally unique group identifier or group-id.

1) Identification of Core Router

The placement of a group's core should reflect that group's characteristics since the core placement assists in optimizing the routes between any sender and group members on the tree. A router could become a core when a host on one of its attached subnets wishes to initiate a group. Or in case of a single sender, the router nearest to it could become a core. The topic of core placement is open for research.

2) Data Forwarding

Unicast routing is used to route multicast packets to a multicast tree, allowing multicast groups and multicast packets to remain "invisible" to routers not on the tree. This allows for CBT unaware routers in between and is a good strategy for incremental deployment. This is achieved by using the unicast address of the core in the destination field of multicast packets originating off-tree. Data packets destined for a particular group tree carry the group core address in the "destination field" and group-id in the "option" field of IP packet's header.

Once on the corresponding tree (i.e. on arrival at an on-tree router), multicast packets span the tree based on the packet's group-identifier, or group-id.
Core-address in the "destination field" is discarded and group-id in the "option" field is placed in the "destination field". This leads to faster on-tree switching since it is faster to process fixed length header than an extended header. CBT routers forward arriving packets based on the information contained in their CBT Forwarding Information Base.

3) Tree Formation

When a receiver joins a multicast group, its local CBT router looks up the multicast address and obtains the address of the Core router for the group. It then sends a Join-Request message for the group towards the Core. The Join-Request is forwarded to the next-hop router on the path to the core as determined by the unicast forwarding table. The join continues its journey until it either reaches the addressed core, or reaches a CBT capable router that is already  part of the tree. At this point, the join's journey is terminated by the receiving router and a Join-Ack is sent. At each CBT router traversed by the Join-Ack, forwarding state is instantiated. In this way, a multicast tree is built.

When a receiver wants to quit a multicast group, same procedure is followed(Quit-Req and Quit-Ack).

Path or Node Failure *

Link failure is recognizable as a result of "Keep-Alive" mechanism operating between adjacent on-tree routers.

For any non-core router, if a parent or path to parent fails, there are two options
    a) it submits a new Join-Request message, hence keeping the failure transparent to the downstream branch. OR
    b) Tell downstream routers about the failure and allow them to independently attempt to re-attach themselves to the tree.

Disdvantages of Core Based Trees

1) Core Placement : Core based trees may not provide the most optimal paths between members of a group.

2) The Core as a Single Point of Failure

This problem can be solved by having multiple cores associated with each tree, at the cost of increased complexity

Two choices wrt multiple core nodes

    a) Single Core CBT Trees : We have multiple "backup" cores to increase the probability that every network node can reach at least one of the cores           of  a CBT tree. There are multiple cores, which join each other at group initiation time. The primary core is considered the "central-hub" of a
       tree, with additional nodes simply providing an element of robustness to the design. If the primary core should fail, the recovery scenario is same          as that in case of Path or Node Failure. * This has the dynamic Join Overhead.

   b) Multiple Core CBT Trees : In this subsets of tree attached to each of core routers. It may lead to optimization of routes between those members.           There must be an explicit protocol operating amongst the "backup cores" to handle failure, unlike the earlier case.