# An Adaptive Hierarchical Hybrid Multicast Based on Information-Centric Networking
## 3 System Overview  
AHHM completely separates the identifier from the location by using Entity-ID (EID) as the identifier and Network Address (NA) as the locator. All elements in the network are treated as entities, including devices, contents, services, etc. Each entity is assigned a fixed-length flat and globally unique EID. NA can be represented by IP address to be compatible with existing IP networks. NRS is used to map the EID to one or multiple NAs. In AHHM, each multicast group is assigned a Multicast Group EID (MGEID). Receivers can easily join or leave a multicast group based on the MGEID. Compared with multicast IP addresses, MGEID has a larger namespace so that more multicast groups can be enabled. Meanwhile, MGEID also eliminates the need for complicated multicast IP address management and allocation mechanisms, such as MASC [25]. AHHM is designed as a two-layer structure, in which the upper layer uses the stateful mode and the lower layer uses the stateless mode. Single-layer stateful (or stateless) multicast can be regarded as the special form of AHHM. Figure 1 is an example of the proposed AHHM system, which consists of a multicast source, receivers, AHHM routers, and NRS. The AHHM router contains some modules, such as Topology-based Routing Table (TBRT), Name Forwarding Table (NFT), Group Map Table (GMT), and BIFT. TBRT maintains topology-based routing information to forward packets based on the NA. NFT maintains name forwarding information to forward packets based on the EID. Each router is set with an NFT load threshold, which means that the network performance will be greatly affected when the NFT load is greater than it. In order to support the stateless mode, each edge router is assigned a globally unique router ID (RID). The RID indicates which bit in the bit string represents the router. GMT maintains the RIDs of the egress routers corresponding to each MGEID. The router can forward the multicast packet according to the bit string through the BIFT, which is generated according to the topology-based routing information. For each multicast group, AHHM establishes a stateful main tree similar to traditional IP Multicast in the upper layer and several stateless sub trees using the BIER mechanism in the lower layer. In the stateful main tree, the root node is the source-side edge router (SER), and the leaf node is the receiver-side edge router (RER) or the root node of the lower-level sub tree. The router on the main tree needs to maintain the multicast forwarding state for the group in its NFT. After the router receives the multicast packet, it searches for the matching entry in its NFT and then quickly replicates and forwards the packet according to the matching NFT entry. The NFT entry has the following format:  
<MGEID, Parent NA, Out-Interface List>  
where MGEID identifies the group; Parent NA is the NA of the parent node on the main tree; Out-Interface List maintains outgoing interfaces used to forward multicast packets identified by the MGEID. In the stateless sub tree, the root node is a node on the main tree, and the leaf node is the RER. The root node keeps track of the destinations it wants to send packets to by maintaining the leaf node's information of the sub tree in its GMT. The GMT entry has the following format:  
<MGEID, RER list>  
Figure 1: An example of the adaptive hierarchical hybrid multicast system. where MGEID identifies the group; RER List maintains the RIDs of leaf nodes of this sub tree. The root node encodes the list of RERs into a bit string and attaches the bit string into the header. Intermediate nodes on the sub tree directly forward the multicast packet according to the bit string without maintaining the forwarding state. The leaf node clears the bit string in the multicast packet and delivers the packet to receivers. The router on the main tree is defined as the multicast joining node (MJN) of the group. NRS maintains the mapping between each MGEID and the NAs of MJNs corresponding to the group.