Ad hoc On-Demand Distance Vector Routing

Ad hoc On-Demand Distance Vector (AODV) Routing is a routing protocol for mobile ad hoc networks (MANETs) and other wireless ad hoc networks. It was jointly developed by Charles Perkins (Sun Microsystems) and Elizabeth Royer (now Elizabeth Belding) (University of California, Santa Barbara) and was first published in the ACM 2nd IEEE Workshop on Mobile Computing Systems and Applications in February 1999.

AODV is the routing protocol used in Zigbee – a low power, low data rate wireless ad hoc network. There are various implementations of AODV such as MAD-HOC, Kernel-AODV, AODV-UU, AODV-UCSB and AODV-UIUC.

The original publication of AODV won the SIGMOBILE Test of Time Award in 2018. According to Google Scholar, this publication reached 30,000 citations at the end of 2022. AODV was published in the Internet Engineering Task Force (IETF) as Experimental RFC 3561 in 2003.

How it works
Each node has its own sequence number that grows monotonically over time and ensures that there are no loops in the paths used. In addition, each network component assigned to routing functionality stores its own path index, which contains the address of the next node in the direction of the destination (next hop), its sequence number, and the total distance given in hops, or possibly other metrics designed to measure link quality.

In AODV, the network remains completely silent until a connection is required to forward a data packet. When routes need to be searched on the network, AODV resorts to the following packets defined by its protocol:


 * Route request (RREQ)
 * Route reply (RREP)
 * Route error (RERR)

These messages can be implemented as simple UDP packets, so routing is still based on the Internet Protocol (IP).

RREQ packets are broadcast from the source node, so a burst of messages is generated and forwarded through the entire network. When a node in the network receives a request packet, it can send an RREP packet through a temporary path to the requesting node, which can then exploit the newly received information. Generally, each node compares different paths based on their length and chooses the most convenient one. If a node is no longer reachable, a RERR message is generated to alert the rest of the network.

Each RREQ has a "time to live" that limits the times it can be retransmitted. In addition, AODV implements a binary backoff mechanism in case the node does not receive a response to its RREQ, whereby requests are repeated at linearly increasing time intervals up to a maximum set by the implementation.

Evaluation
The main advantage of AODV is that it does not generate traffic in the case of already established and working routes. In fact, the algorithm itself is completely irrelevant as long as it does not turn out to be necessary to send a packet to a node whose route is unknown. Beyond that, distance vector-based routing is computationally simple and does not require large amounts of memory.

However, the protocol takes longer than other protocols to establish a connection between two nodes in a network.