## 2 Literature Survey  
### IP Multicast  
IP multicast is a bandwidth-conserving technology that runs the TCP/IP suite of protocols, specifically designed to reduce traffic to forward IP datagrams to members in multicast groups by simultaneously delivering a single stream of information to potentially thousands of corporate recipients. It can deliver both data and video streaming to specific users in groups, and can do so based on the structure of the multicast tree and whether it incorporates source-based routing, center-based routing, or a hybrid of the two [3]. By replacing copies for all recipients with the delivery of a single stream of information, IP Multicast is able to minimize the burden on both sending and receiving hosts and reduce overall network traffic [4]. Various structures, including Distance Vector Multicast Routing Protocol (DVMRP), Multicast Open Shortest Path First (MOSPF), Protocol-Independent Multicast Sparse Mode (PIM-SM), PIM Dense Mode (PIMDM), Core-Based Trees (CBT), Ordered CBT (OCBT), and Border Gateway Multicast Protocol (BGMP), are briefly introduced as follows [5, 6]. Distance Vector Multicast Routing Protocol (DVMRP) is defined in RFC 1,075 and is used to share information between routers to facilitate the transportation of IP Multicast packets among networks. The protocol is based on the RIP protocol for forwarding packets: the router generates a routing table with the multicast group corresponding to number of devices/routers between the router and the destination. Multicast Open Shortest Path First (MOSPF) is an extension to the Open Shortest Path First (OSPF) protocol to support multicast routing. It is allowed for routers to share information about group memberships. PIM Sparse Mode (PIM-SM) is one of the variants of Protocol-Independent Multicast (PIM). PIM provides one-to-many and many-to-many distribution of data over Internet. It is defined in RFC 4601 and termed protocol-independent because topology discovery mechanism is not included in PIM, but instead uses routing information supplied by other traditional routing protocols such as the Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Border Gateway Protocol (BGP) and Multicast Source Discovery Protocol (MSDP). PIM-SM explicitly is built unidirectional shared trees rooted at a rendezvous point per group, and optionally creates shortest-path trees per source. PIM-SM generally scales fairly well for wide-area usage. Core-Based Trees (CBT) was proposed for making IP Multicast scalable by constructing a tree of routers. The differentiation with other protocols for multicasting is called the routing tree that comprises multiple \"cores\" (also known as \"centres\"). The core router locations are statically configured. Other routers are added by growing \"branches\" of a tree, comprising a chain of routers, from the core routers out towards the routers directly adjacent to the multicast group members. The CBT protocol can form loops during periods of routing instability, and that it can consistently fail to build a connected multicast tree when the underlying routing is stable, so the Ordered CBT (OCBT) is used. The OCBT protocol is proven to eliminate these deficiencies and reduces the latency of tree repair following a link or core failure. OCBT builds a shared multicast tree distributed per group. It is suited to inter- and intra-domain multicast routing. It uses the property to guarantee that no transient or permanent loops ever form in the structure of the tree. The protocol is that routing-table loops occur in the underlying routing protocols. OCBT also improves scalability by allowing flexible placement of the cores that serve as points of connection to a multicast tree. Border Gateway Multicast Protocol (BGMP) is a scalable multicast routing protocol which addresses how to choose a global root for a delivery tree. However, the root is a domain, not a single router, so if there is any path available to the domain connectivity can be maintained. BGMP builds a bidirectional, shared tree of domains.