Reactive protocols seek to set up routes on-demand. If a node wants to initiate communication with a node to which it has no route, the routing protocol will try to establish such a route.
The Ad-Hoc On-Demand Distance Vector routing protocol is described in RFC 3561. The philosophy in AODV, like all reactive protocols, is that topology information is only transmitted by nodes on-demand. When a node wishes to transmit traffic to a host to which it has no route, it will generate a route request(RREQ) message that will be flooded in a limited way to other nodes. This causes control traffic overhead to be dynamic and it will result in an initial delay when initiating such communication. A route is considered found when the RREQ message reaches either the destination itself, or an intermediate node with a valid route entry for the destination. For as long as a route exists between two endpoints, AODV remains passive. When the route becomes invalid or lost, AODV will again issue a request.
AODV avoids the ``counting to infinity'' problem from the
classical distance vector algorithm by using sequence numbers
for every route.
The counting to infinity problem is the
situation where nodes update each other in a loop. Consider nodes
D making up a MANET as
illustrated in figure 2.2.
is not updated on the fact that its route to
is broken. This means that
A has a registered
route, with a metric of 2, to
C has registered
that the link to
D is down, so once node
B is updated
on the link breakage between
D, it will calculate
the shortest path to
D to be via
using a metric of 3.
C receives information that
in 3 hops and updates its metric to 4 hops.
A then registers an update
in hop-count for its route to
C and updates the metric to 5.
And so they continue to increment the metric in a loop.
As route to
Dis old based on a sequence number.
Bwill then discard the route and
Cwill be the node with the most recent routing information by which
Bwill update its routing table.
AODV defines three types of control messages for route maintenance:
As an optimization AODV uses an expanding ring technique when flooding these messages. Every RREQ carries a time to live (TTL) value that states for how many hops this message should be forwarded. This value is set to a predefined value at the first transmission and increased at retransmissions. Retransmissions occur if no replies are received.
Data packets waiting to be transmitted(i.e. the packets that initiated the RREQ) should be buffered locally and transmitted by a FIFO principal when a route is set.
Figure 2.3 illustrates an AODV route lookup session. Node A wishes to initiate traffic to node J for which it has no route. A broadcasts a RREQ which is flooded to all nodes in the network. When this request is forwarded to J from H, J generates a RREP. This RREP is then unicasted back to A using the cached entries in nodes H, G and D.