Title: Adhoc OnDemand Distance Vector Routing
1Ad-hoc On-Demand Distance Vector Routing
2- Ad-hoc On-Demand Distance Vector Routing, Charles
E. Perkins, Elizabeth M. Royer. Proceedings of
IEEE WMCSA'99,New Orleans, LA, Feb. 1999
3Outline
- Introduction
- Ad-hoc Network routing constraints
- Destination Sequenced Distance Vector (DSDV)
Routing - The Ad-hoc On-Demand Distance Vector (AODV)
Algorithm - Simulation and Results
- Current Status and Future Work
- Conclusion
4Constraints in Ad-hoc Network Routing
- No infrastructure support
- No specialized routers
- Also no fixed routers (physically)
- Frequent topology change
- Problems due to wireless media
- Bandwidth, range of communication, collisions due
to broadcasting, asymmetric one-way links
5Destination Sequenced Distance-Vector Routing
(DSDV)
- A variant of the distance vector routing method
- Not efficient for large ad-hoc networks
- Uses periodic advertisements
- Global dissemination of connectivity information
- Nodes need to maintain a complete list of routes.
6What is AODV?
- An improved algorithm of DSDV
- A Source Initiated (reactive) routing protocol
- Main goals
- Quick adaptation under dynamic link conditions
- Lower transmission latency
- Low network utilization (less broadcast)
- Loop-free property (How using destination
sequence ) - Scalable to large network
7AODV
- Features
- Routes are created only when required
- Each node doesnt maintain all routes to other
nodes (only active routes) - Use of sequence numbers at each destination to
maintain freshness of routing information - Reduces periodic broadcast
- Paths generated are loop-free
- Uses symmetric links (if a link is not symmetric
it is not up) - Works both on wired media and wireless media
8AODV Algorithm
- Primary Objectives
- To broadcast discovery packets only when
necessary - To distinguish between local connectivity
management and general topology maintenance - To disseminate information about changes in local
connectivity to neighboring mobile nodes that may
need the information
9AODV Algorithm
- Path Discovery
- Reverse Path Setup
- Forward Path Setup
- Route Table Management
- Path Maintenance
- Local Connectivity Management
10Path Discovery
- Initiated when no route to reach destination node
- Each node has 2 counters
- Source node sends a route request (RREQ)
11Details of RREQ
- ltsource_addr, broadcast_idgt is unique
- Broadcast_id is incremented for new RREQ
- If the neighboring node doesnt reply with a
RREP, hop_cnt is incremented. - RREQ from same node with same broadcast_id will
not be broadcasted more than once.
For example, node A wants to contact node D, but
there is no active path to reach node D.
A
B
D
C
B wont rebroadcast this RREQ
12RREP
13Reverse Path Setup
- Source_sequence_ To maintain freshness
information about the reverse route to the source - Dest_sequence_ how fresh a route to the
destination must be in order to be accepted by
the source - Every node will record the neighbors address
where first copy of RREQ is from - These entries will be maintained for long enough
for RREQ to traverse and produce a RREP to the
sender
14Reverse Path Setup
- Reverse Path
- Broadcast route request (RREQ) lt source_addr,
source_sequence- , broadcast_id, dest_addr,
dest_sequence_, hop_cnt gt - RREQ uniquely identified by ltsource_addr ,
broadcast_idgt - Route reply (RREP) if neighbor is the target, or
knows a higher dest_sequence_ - Otherwise setup a pointer to the neighbor from
whom RREQ was received - Maintain reverse path entries based on timeouts
15Example
Assume same dest_sequence_ for all nodes
Source
Source
A
A
B
B
C
C
D
E
D
E
Destination
Destination
Reverse Path Formation
Network Layout
16Forward Path Setup
- RREQ arrives at a node that has current route to
the destination ( larger/same sequence number) - unicast request reply (RREP)ltsource_addr,
dest_addr, dest_sequence_, hop_cnt,lifetimegt to
neighbor - RREP travels back to the source along reverse
path - each upstream node updates dest_sequence_, sets
up a forward pointer to the neighbor who transmit
the RREP
17Forward Path Setup
Nodes A sends B a RREQ with dest_sequence_ 100
and B has a route entry to reach D with
dest_sequene_ 99. B can NOT use its recorded
route to respond to the RREQ. B will rebroadcast
the RREQ. However, for node C, C can respond with
its recorded route.
100
100 or gt 100
99
E
C will send node A RREP ltAs address, Ds
address, 100, 1, lifetimegt
- If C can supply a route to destination D, a
reverse path has been connected from D to A. - RREP traverses from D to A, C (intermediate
nodes) will setup a forward pointer to D and
updates lifetime and records the latest
dest_sequence_ - Nodes that are not on the path determined by the
RREP will timeout after 3 seconds and will delete
the reverse pointers (e.g. reverse pointer from E
to A)
18Example
19More Example
100
101
E
RREP Paths from H to A
B
A
H
D
100
C
G
F
101
Path with largest last dest_sequence_ or
smallest hop_cnt with same dest_sequence_ will
be chosen
20Route Table Management
- Route request expiration time to purge reverse
path routing entries from nodes are not on the
path from source to destination - Route caching timeout when the route is
considered to be invalid
What is active?
A
B
C
- B is an active neighbor of A if A sends/receives
gt1 packets from B within active_timeout period - The route entry on node A (A??B) is active if A
and B communicates - The path A? C is active if route entries along
node A to node C are active
Note like DSDV, all routes in routing table are
tagged with destination sequence numbers ?
loop-free
21Route Table Management (cont.)
- Each route table entry contains
- Destination
- Next Hope
- Number of hops
- Sequence number for the destination
- Active neighbors for this route
- Expiration time for the route table entry
- When a route entry is used to transmit data from
source to destination, Timeout for each entry is
current time active_route_timeout - When a new route is available, route table will
be updated only if new route has larger
dest_sequence_ or same dest_sequence_ but with
smaller hop_cnt to the destination.
22Route Table Management (cont.)
- Route request expiration timer purges reverse
paths that do not lie on active route - Active neighbor relays a packet within
active_route_timeout - Route cache timer purges inactive routes
- New routes preferred if higher destination
sequence number or lower metric
23Path Maintenance
- If source node moves during an active session ?
it can redo Path discovery - If destination or intermediate nodes move ? a
special RREP is sent to affected source nodes
(Upon link breakage, affected node propagates an
unsolicited RREP ltdest_sequence_1, 8gt to all
upstream nodes) - Source may restart route discovery process
- If link between C and D is broken, a special
RREP will sent to B and E by C. (C will
increment its dest_sequence_ by 1 and set hop
count to infinity) - Then B and E will send this RREP to its active
neighbors F and G. At the end, all active source
nodes are notified.
E
F
G
- When source find out a link to destination is
broken, and like to rebuild the path to
destination, source will send a RREQ with last
dest_squence_ 1
24Local Connectivity Management
- 2 ways for a node to find its neighbors
- Receiving broadcast from its neighbors
- Send its neighbors hello messages containing its
identity and sequence number - Sequence number is not changed for hello message
- Nodes can not rebroadcast hello messages (TTL1)
- Local Connectivity has changed if
- Receiving a broadcast or a hello from a new node
- Failing to receive allowed_hello_loss consecutive
hello message from a node was in the neighborhood - Neighbors only communicate when heard each
others hello message Ensure the link is
bidirectional