# A Multicast Routing Scheme for the Internet: Simulation and Experimentation in Large-Scale Networks
## 1 Introduction  
Multicast routing is a distributed algorithm for efficient distribution of one-to-many traffic. A multicast source can send packets in one stream to a group of destination nodes (i.e., a multicast group). To enable such a traffic distribution, the multicast routing protocol configures the involved routers to build a (logical) delivery tree, usually known as Multicast Distribution Tree (MDT), between the source and the multicast group. The network is thus responsible for duplicating the multicast packet at given nodes in the MDT; such nodes are commonly referred as to branching node (i.e., the node at which the branches fork). This means that only one copy of the packet is sent by the multicast source and each packet travels only once over any particular link in the network, making multicast trees extremely efficient for distributing the same information to many destinations. Originally defined 30 years ago [1], the potential benefits of multicast routing as a bandwidth saving technique have been verified by studies several times since then [2, 3]. In the present context of a cloud-centric environment where multimedia streaming, content and machine-to-machine traffic are increasing their volume, multicast is (re-)gaining world-wide interest [4, 5] together with new potential multicast business models [6, 7, 8, 9]. Although widely investigated, the problems of multicast faced in the 1990's remain mostly unaddressed. The complete analysis of the deployment issues for the IP multicast routing architecture available in [10], although dated 2000, is still valid today [11]. Indeed, the adoption of multicast routing has failed due to several issues:  
* Multicast depends on an overlay routing executed over the unicast routing topology, which suffers in terms of scalability, as it maintains a high number of routing entries and forwarding states at each node;
* It adds a level of indirection as routers forward the multicast traffic to the multicast group, and hosts have to subscribe to that multicast group using a subscription protocol like Internet Group Management Protocol (IGMP) or Multicast Listener Discovery (MLD) in IPv6;
* It uses special address space structure (class D for IPv4 and prefix f60::/8 for IPv6) which requires that firewalls and Network Address Translation (NAT) routers have to be upgraded and configured to support multicast addresses;
* Economic reasons, as there is a need to determine how upstream providers reimburse downstream providers for installing state and replication of data;
* Management and security concerns about setting up shared trees between domains. In this paper, we present the Greedy Compact Multicast Routing (GCMR) scheme as a possible solution to some of the above issues. The concept of GCMR was initially proposed in [12]; here, we provide a comprehensive description and performance analysis of GCMR. In particular, the main goal of GCMR is to compact (i.e., to minimise) the routing information stored at each router by taking greedy (i.e., local) decisions. Instead of relying on unicast routing information to derive the multicast entries--as in the case of conventional multicast routing protocols--in GCMR, the information needed to join a given multicast source is acquired when needed by means of a two-stage search process.