Research of Tree-based Multicast Routing Protocols for Ad Hoc Networks

Multicast is an important function of Ad Hoc network. It is a point to multipoint or multipoint to multipoint packet transmitting mode. Group management and maintenance, multicast packet routing are two factors of multicast protocol. This paper analyzes the classification of multicast protocols and focuses on tree based multicast protocols, compares several protocols and analyzes the advantages and disadvantages of tree based multicast protocols.


Introduction
In the application of Ad Hoc networks, hosts work in groups to accomplish a specific task together. So multicast is an important function of Ad Hoc network layer.
Multicast is a type of packets transmission that one point to multiple points or multiple points to multiple points [1]. Source host sends data simultaneously to a group of hosts in network. Ideally, the sender sends packet only once and only one packet passes through each physical link. When more than one host becomes receiver of a packet at the same time, multicast is the best choice for bandwidth and CPU burdens.
Multicast address does not uniquely identify a single host like unicast address. It specifies an arbitrary host group. In IPv4 address allocation scheme, category D address which is from 224.0.0.0 to 239.255.255.255 is allocated for multicast.

Factors of Multicast Protocol
Multicast protocol has two factors: (1) Management and maintenance of group: In multicast protocols, network devices need to know which hosts belong to a specific group. They need to manage the addition and departure of multicast members. A group management protocol was created accordingly. The common group management protocol is IGMP (Internet Group Management Protocol). By using IGMP messages, a host notifies local multicast routers if it wants to join a group. Multicast router maintains a multicast member list through the IGMP protocol and periodically sends a "member query" message to find out if each member of the table still exists.
(2)Routing of multicast packets: Unicast route only needs to know the address of next hop to transmit packets. Multicast is to transmit packets generated by source host to a group of destination hosts. On a particular router, a packet needs to have multiple backups and may be sent out from multiple interfaces. If a loop exists, one or more packets return to their input interface and are copied and transmitted to another output port. This result may lead to a multicast storm. This packet is constantly duplicated between routers and switches until TTL is reduced to 0. Because it is a replication process, its harm is much more serious than unicast loop. So all multicast routers must know source interface of multicast packets and need to ensure that multicast packets cannot be sent from the source interface. So it must distinguish the upstream interface and downstream interface.
If packet is not from the upstream interface, it will be discarded. Multicast routing protocol must concerns with the shortest path or the upstream interface to source host. When transmitting, the root node sends packets from an interface other than the upstream interface. So it also cares about the downstream interface. When the upstream and downstream interfaces are identified, a multicast tree is built. The main functions of multicast message routing are as follows: ①It tries to find upstream interface. The upstream interface is the nearest interface to source host. Multicast routing protocol is only concerned with the shortest path to source host.
②It tries to determine the true downstream interface. When all routers are aware of their upstream and downstream interfaces, a multicast tree has been built. The root node is a routers connected directly to source host. Branch is a router that the subnet directly connects to which found team members through IGMP protocol.
③Multicast message routing manages multicast tree.

Classification of Multicast Protocols
At present, many Ad Hoc network multicast routing protocols have been proposed. The main differences among protocols are the different transmitting structure and different strategies for building and maintaining routing. According to the structure difference, Ad Hoc network multicast routing protocol can be divided into four types: tree-based transmitting structure, mesh-based transmitting structure, no transmitting structure and hybrid structure. The specific protocol is shown in Figure 1[2].

Figure 1. Classification of Ad Hoc multicast routing protocols
Tree-based multicast routing protocol provides a high data exchange capability. Multicast tree is the least expensive tree to connect all multicast members and it is a very good protocol.

Tree-based Multicast Protocol
In tree-based multicast routing, the topology of nodes participating in multicast routing is a tree.

MAODV (Multicast Ad Hoc On-Demand Vector)
protocol is a shared tree multicast routing protocol [3]. It adds multicast function on the base of unicast routing protocol AODV.
In MAODV, nodes broadcasts routing request message RREQ (Route Request) firstly when they hope to join in multicast tree [4]. In message transmitting process, middle node records the address of prior hop node. It builds a reverse routing to joining node. When tree node receives this RREQ, it answers RREP (Route Reply) message through reverse routing. Joining node builds a transmitting path when receives RREP and so it joins in multicast tree. MAODV protocol maintains multicast tree through periodically broadcasting Hello message from packet head of shared tree. When member node does note receive Hello message in a certain time, it considers the link from this node to multicast tree is disconnect. Then this node requests again to join in multicast tree along the above method. Routing finding process is shown in Figure 2. S is source node and R is multicast member node.
The first member of multicast tree automatically becomes the leader of the group. The group leader maintains the serial number of multicast tree by broadcasting GRPH (Group Hello) message periodically. It notifies new multicast information to other network nodes. In order to ensure the group header information of nodes is consistent and up-to-date, the group header node of multicast tree broadcasts GRPH messages to the whole network at intervals of Group_hello_interval microseconds. The node that receives GRPH message increases the value of Hop_Count domain before transmitting the message. When node that is not a member of multicast tree receives GRPH message, the M flag is set. This indicates that the information has been transmitted out of multicast tree and can not be used to update the distance to group leader by members of multicast tree. The U flag setting represents the change of leader information in multicast tree. It is used to notify nodes that the leader information of multicast tree must be updated. The information contained in GRPH packet includes address and multicast serial number of multicast group. The nodes that receive GRPH packet first judge whether the information has been received according to IP address of multicast group and multicast sequence number. If it has been received, the packet is discarded otherwise the group leader routing table information of multicast tree is updated to increase the value of the Hop_Count. If the node receiving GRPH message is multicast tree members, nodes update the information of multicast routing table at the same time. If M flag is not set, nodes can also use Hop_Count to update the distance information to multicast tree leader. Because GRPH is transmitted in the whole network by broadcasting, nodes may repeatedly receive the same GRPH packet.

AMRIS (Ad Hoc Multicast Routing Protocol Utilizing
Increasing id-number S) is a multicast routing protocol based on shared distribution tree.
AMRIS assigns an ID number dynamically for every node in every multicast conversation. Multicast sender has the minimum ID (called SID) and initializes multicast conversation one time. AMRIS makes SID as the root and builds multicast tree based on ID. AMRIS mainly includes the following contents: (1)Initialization of Multicast Tree For a multicast conversation that has only one sender, SID is allocated to the sender. For a multicast session with multiple sender and multiple recipients, it is necessary to elect a sender and assign SID to it. The election method can adopt a simple strategy, such as the sender with larger network address gets the SID. The calculation process of each node ID is shown in Figure 3. The SID node broadcasts a NEW-SESSION message to its neighbors. The NEW-SESSION message includes at least the node ID value, multicast ID number and route metric. The neighbor node that receives the NEW-SESSION message is incrementally generated its own ID number (called MID) based on SID. The sender and receiver's ID number is discontinuous and retaining a certain gap for fast local modification of multicast transport tree. Neighbor node accepting message modifies the NEW-SESSION message. It replaces the ID in the NEW-SESSION message with its own MID number and modifies the routing metric. Then it rebroadcasts the new NEW-SESSION message.
The above process is repeated so that all nodes can get their respective ID numbers quickly.
(2)Maintenance of Multicast Tree In maintenance process of multicast tree, when new nodes try to join multicast session or those who have exited from session try to rejoin multicast session, they run Branch Reconstruction algorithm to join the multicast tree. AMRIS detects the validity of link by sending soft state Beacon message mechanism to neighbour nodes periodically. The Beacon packet has ID of sending node. When a node needs to rejoin multicast group because of link failure, it first determines whether there is a small ID node in adjacent nodes according to the received Beacon message. If such nodes exist then it chooses the smallest ID as a potential parent node. Then it applies for joining the parent node directly. Otherwise it broadcasts the joining request packet locally. The packet has the current ID of the node. Only the ID itself is smaller than the ID in packet is eligible to respond to the request. This prevents downstream node from becoming the parent node of upstream node. This method prevents the formation of loop effectively.

LAM Protocol
LAM protocol is a multicast protocol based on TORA (Temporally-ordered Routing Algorithm), which is based on the kernel tree algorithm CBT (Core Based Tree) [5]. A share multicast routing tree with core node (Core) as the root is established for each multicast group. The source node sends multicast data to Core and then distributes along the multicast tree. The maintenance of multicast tree is completed by TORA.
In LAM protocol, nodes contain two variables: POTENTIAL_PARENT and PARENT. And there are two tables to maintain: POTENTIAL_CHILD_LIST and CHILD_LIST. The PARENT variable is used to record the parent node in multicast tree, and CHILD_LIST is used to store child nodes in multicast tree. When a node wants to join or leave multicast tree, these data structures will be used. Because LAM protocol is based on CBT method to build multicast transmitting tree, LAM is not highly robust.

LGT Protocol
LGT protocol is a small scale multicast routing protocol based on packet encapsulation technology.
LGT builds a multicast routing tree based on unicast routing protocol.
Multicast data is encapsulated in unicast packets and is transmitted only in packet members. Packets include the destination address list. Nodes uses LGK (location guided k array) and LGS (location guided Steiner) algorithm to transmit packet based on destination list. It does not need to know the global network topology. The geometric location information of destination node can be used to build packet distribution tree. The network level hops to destination node is more when geometric distance is longer. The algorithm tries to find shorter edges to construct multicast. The protocol also supports routing optimization mechanism, which stores the existing routing information through cache, thereby reducing information storage and improving routing speed.
In LGK tree, the sender first selects the nearest K target nodes as child nodes. Next the sender divides the remaining nodes according to the degree of intimacy of K child nodes. The packet nodes are mapped to corresponding child nodes. The sender sends a copy of the encapsulated packets to K child nodes. If the incoming package has empty destination address table, the process will end.
In LGS method, geometric distance is used as a measure of distance between nodes. In this way, a Steiner tree is constructed by using multicast packet members as nodes. The protocol uses hybrid mechanism to update location and member information, including built-in updates and periodic updates. In built-in update phase, if a node needs to send data packets, it always contains geometric locations. If a node does not need to send data packets in extended time period, it sends a periodic update.

Comparison of Several Multicast Protocol
AMRIS: The number of control packets and the size of beacon message will increase with the increase of network load and mobility in AMRIS. The increase of control packets may cause packet collisions, and the increase of beacon messages will reduce the efficiency of transmission. So in the case of higher mobility and larger network load, the performance is poorer. The performance will be worse in a dense network. MAODV: The immediate activation of multicast tree path can effectively improve the packet transmitting rate of MAODV in the case of fast network topology change.
With the rapid change of network topology, the rate of packet transmitting will be reduced; In addition, MAODV is sensitive to the type of business. The type of burst transmitting will lead to the deterioration of MAODV performance. MAODV uses shared two-way multicast tree. There is only one path from data source to data receiver.
LAM: It builds a shared multicast routing tree. When the mobile nodes are few and the network load is small, the performance is better. It bases on CBT method to build multicast tree and it does not have very high robustness.
LGT: It is a multicast routing protocol based on tree. It stores existing routing information through cache, so as to reduce information storage and improve routing speed. It has the advantages of high transmitting efficiency and simple routing decision, but its robustness is not good.

Summary
Tree based multicast routing protocol has following advantages: (1) Efficiency. In multicast routing tree, a path is provided between two nodes. Multicast sender can send packets to each group of receivers with the least copy. For a network with N nodes, only N-1 links are needed to transmit the same data packet to all nodes.
(2) The routing decision of nodes is simple. It just transmits packets to accessible tree interface.
Tree based multicast routing protocol has following disadvantages: (1) The robustness is poor. Because there are no multiple paths among nodes, if any link of the routing tree fails or the connection is interrupted, then we need to rebuild the routing.
(2) The transmitting path is not the best. The transmitting is based on the center of shared tree. It will only proceed according to the path established in advance.
(3) All shared trees need a core node to maintain group information and create multicast tree. This will increase the traffic of core node.