On-demand Multipath
Distance Vector Routing
in Ad Hoc
Networks(AOMDV)
Mahesh K. Marina , Samir R. Das
Department of Electrical &
Computer Engineering and
Computer Science University of
Cincinnati
Sequence Numbers and
Loop Freedom(1/3)
Every node maintains a monotonically increasing
sequence number for itself.
It also maintains the highest known sequence numbers
for each destination in the routing table (called
destination sequence numbers).
Destination sequence numbers are tagged on all routing
messages, thus providing a mechanism to determine
the relative freshness of two pieces of routing
information generated by two different nodes for the
same destination.
The AODV protocol maintains an invariant that
destination sequence numbers monotonically increase
along a valid route, thus preventing routing loops.
Sequence Numbers and
Loop Freedom(2/3)
A node can receive a routing
update via a RREQ or RREP packet
either forming or updating a
reverse or forward path.
We refer to such routing updates
received via a RREQ or RREP as
route advertisements.
Sequence Numbers and
Loop Freedom(3/3)
seqnumid
represents the sequence number at
node i for the destination.
hopcountid represents the hopcount to the
destination d from node i .
For any two successive nodes i and j on a valid
path to the destination, j being the next hop
from i To d , the route update rule enforces that
The tuples along any valid route are in a
lexicographic total order, which in turn implies
loop freedom.
AODV route update rule
Self seq_num:
Routing table
destination
Reverse path
destination
table
Seq_num
hopcount
nexthop
Seq_num
hopcount
nexthop
Packet field
destination
Seq_num(j)
hopcount(j)
A node receives a RREQ
X=Source, D=Destination
In Algorithm X=j Y=i
X
RREQ
A node receives a RREP
X=Source, D=Destination
In Algorithm X=i Y=j
X
RREP
Ad Hoc On-Demand Multipath
Distance
Vector Routing
The advertised hopcount of a node i
for a destination d represents the
maximum hopcount of the
multiple paths for d available at i .
The protocol only allows accepting
alternate routes with lower
hopcounts.
This invariance is necessary to
guarantee loop freedom.
Computing Multiple Loopfree
Paths
In AOMDV, advertised_hopcount replaces
hopcount in AODV.
A route_list replaces the nexthop, and essentially
defines multiple next hops with respective
hopcounts.
A node i updates its advertised_hopcount for a
destination d whenever it sends a route
advertisement for d .
A key observation here is that similar to AODV the
following condition holds good for two successive
nodes i and j on any valid route to destination d.
Structure of routing table
entries
AOMDV route update rules
I finds two node-disjoint paths to S