Ad hoc On Demand Distance Vector AODV Ro
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/2440375
Ad hoc On-Demand Distance Vector (AODV) Routing
Article · December 2000
Source: CiteSeer
CITATIONS
READS
4,031
451
3 authors, including:
Charles Edward Perkins
Institute of Electrical and Electronics Engineers
148 PUBLICATIONS 43,481 CITATIONS
SEE PROFILE
All content following this page was uploaded by Charles Edward Perkins on 22 December 2014.
The user has requested enhancement of the downloaded file.
Ad-Hoc On-Demand Distance Vector
(AODV) Routing
Charles E. Perkins, Elizabeth M. Belding-Royer, and Samir Das,
Proceedings of IEEE WMCSA'99,New Orleans, LA,
February 1999
Presented by 민 병 호
(Byungho Min)
17 April, 2006
Contents
Ad-Hoc Network Routing Constraints
Ad-Hoc On-Demand Distance Vector (AODV)
AODV Algorithm
Path Discovery
Route Table Management
Path Maintenance
Local Connectivity Management
Simulation and Results
Current Status and Future Work
Conclusion
Ad-Hoc On-Demand Distance Vector
2
Ad-Hoc Network Routing Constraints
No Infrastructure Support
No Specialized Routers
(Physically) No Fixed Routers
Frequent Topology Change
Mobility
Problems Due to Wireless Media
Bandwidth
Range of Communication
Collisions Due to Broadcasting
Asymmetric One-Way Links
Ad-Hoc On-Demand Distance Vector
3
Ad-Hoc On-Demand Distance Vector
(AODV)
A Source Initiated Routing Protocol
Premise
Symmetric Links
Features
Pure On-Demand Acquisition
Broadcast only when necessary
Notion of ‘Active’ Paths
No centralized topological knowledge
Neighborhood detection
Topological Maintenance
Uses ‘Hello’ to identify neighbors
Ad-Hoc On-Demand Distance Vector
4
AODV Algorithm
Path Discovery
Reverse Path Setup
Forward Path Setup
Route Table Management
Path Maintenance
Local Connectivity Management
Ad-Hoc On-Demand Distance Vector
5
Path Discovery
When?
No Information on Some Node to Which Communication Is
Requested
Each Node Has Two Counters
node sequence number
broadcast_id
Path Discovery Process
Source Node Broadcasts a Route Request (RREQ) Packet to
Its Neighbors
Neighbors Forward the Request to Their Neighbors, and so
on until Either the Destination or
an Intermediate Node with a “Fresh Enough” Route to the
Destination Is Located
Ad-Hoc On-Demand Distance Vector
6
More on RREQ
broadcast_id Is Incremented for New RREQ
RREQ from Same Node with Same broadcast_id Will
Not Be Broadcasted More than Once
A
B
D
C
B won’t rebroadcast this RREQ
Node A wants to contact node D,
Ad-Hoc On-Demand Distance Vector
7
Route Requests
Y
Broadcast transmission
Z
S
E
F
B
C
M
J
A
L
G
H
This example is taken
from Wireless Internet
Class Material
K
I
D
N
Represents transmission of RREQ
Ad-Hoc On-Demand Distance Vector
8
Route Requests (Cont’d)
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
D
I
N
Represents links on Reverse Path
Ad-Hoc On-Demand Distance Vector
9
Reverse Path Setup
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
I
D
N
• Node C receives RREQ from G and H, but does not forward
it again, because node C has already forwarded RREQ once
Ad-Hoc On-Demand Distance Vector
10
Reverse Path Setup (Cont’d)
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
I
Ad-Hoc On-Demand Distance Vector
D
N
11
Reverse Path Setup
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
D
I
N
• Node D does not forward RREQ, because node D
is the intended target of the RREQ
Ad-Hoc On-Demand Distance Vector
12
Route Reply
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
D
I
N
Represents links on path taken by RREP
Ad-Hoc On-Demand Distance Vector
13
Forward Path Setup
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
I
D
N
Forward links are setup when RREP travels along
the reverse path
Represents a link on the forward path
Ad-Hoc On-Demand Distance Vector
14
Data Delivery
Y
Data
Z
S
E
F
B
C
M
J
A
L
G
H
K
D
I
N
Routing table entries used to forward data packet.
Route is not included in packet header.
Ad-Hoc On-Demand Distance Vector
15
Path Discovery (Cont’d)
RREQ Generates Backward Path to Source
RREP Generates Forward Path to Destination
1. G로 전달할 패킷 발생
2. G로의 ro ute 가 존재
Æ 이 ro ute 를 통해 패킷 전달
2’ . G로의 ro ute 가 존재하지 않음
Æ G로의 루트 탐색을 위해 RREQ를 b ro a d c a st
3. B가 A로부터 RREQ를 수신하면
A로 가는 b a c kwa rd p a th를 생성하고
RREQ를 re -b ro a d c a st
4. G가 RREQ를 수신하면 se q # 를 증가시키고
A로의 b a c kwa rd p a th를 생성하며
이 ro ute 를 통해 RREP를 unic a st
C
RREQ
D
B
EQ
RR
A
P
G
RREP
EP
RR
F
5. D가 RREP를 수신하면
G로의 fo rwa rd p a th를 생성하고,
A로의 b a c kwa rd p a th를 통해 RREP를 unic a st
E
6. A가 RREP를 수신하면
G로의 fo rwa rd p a th를 생성하고
이 루트를 통해 패킷을 unic a st
Ad-Hoc On-Demand Distance Vector
16
Route Request (RREQ)
Message Format
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type
|J|R|G|D|U|
Reserved
|
Hop Count
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
RREQ ID (broadcast id)
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination IP Address
+
|
Unique
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination Sequence Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Originator IP Address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Originator Sequence Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ad-Hoc On-Demand Distance Vector
17
Route Reply (RREP)
Message Format
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type
|R|A|
Reserved
| Prefix Sz |
Hop Count
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination IP address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination Sequence Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Originator IP Address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Lifetime
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ad-Hoc On-Demand Distance Vector
18
Route Table Management
Route Request Expiration Timer
Purges Reverse Paths That Do Not Lie on Active Route
active_route_timeout
Is Used to Determine If Neighboring Node Is Active i.e.
Sends at Least One Packet in This Time
Route Cache Timer
Purges Inactive Routes
Ad-Hoc On-Demand Distance Vector
19
Route Table Management (Cont’d)
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
Ad-Hoc On-Demand Distance Vector
20
Route Table Management (Cont’d)
When a Route Entry Is Used to Transmit Data from
Source to Destination, Timeout for Each Entry Is
Reset to 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
Ad-Hoc On-Demand Distance Vector
21
Path Management
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
On link breakage, affected node propagates an unsolicited
RREP to all active neighbors
Æ Source May Restart Route Discovery Process
Ad-Hoc On-Demand Distance Vector
22
Path Management Example
If Link between C and D Is Broken, a Special RREP
Will Be Sent to B and E by C
C Will Increase Its dest_sequence_# by 1 and Set hop_
count to ∞)
Then B and E Will Send This RREP to Its Active
Neighbors F and G
At the End, All Active Source Nodes Are Notified
When Source Finds Out a Link to Destination Is
Broken, and It Likes to Rebuild the Path to
Destination, Source Will Send a RREQ with Last
dest_squence_# + 1
100
100
100
100
A
B
G
F
Ad-Hoc On-Demand Distance Vector
C
D
E
23
Local Connectivity Management
Two 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 (TTL=1)
Local Connectivity Is Changed If
Receiving a Broadcast or a Hello from a New Node
Failing to Receive allowed_hello_loss Consecutive Hello
Message from a Node Previously in the Neighborhood
Neighbors Only Communicate When Heard Each
Other’s Hello Message
It Ensures the Link Is Bidirectional
Ad-Hoc On-Demand Distance Vector
24
Simulations and Results
Ad-Hoc On-Demand Distance Vector
25
Simulations and Results
Ad-Hoc On-Demand Distance Vector
26
Current Status and Future Work
Current Status
Multicast
RREQ, RREP, and Multicast validation message
Future Works
Intermediate Node Route Rebuilding
Try ‘repair’ before link failure notification
Elimination of Hello Messages
Locality of Association and QoS
Improve bandwidth utilization by varying route propagation
without indiscriminate relays
Ad-Hoc On-Demand Distance Vector
27
Conclusion
Storing Only the Needed Routes
Minimized Need for Broadcast
Reduced Memory Requirements and Needless
Duplications
Quick Response to Link Breakage in Active Routes
Loop-Free Routes Maintained by Use of Destination
Sequence Numbers
Scalable to Large Populations of Nodes
Ad-Hoc On-Demand Distance Vector
28
Thank you!
Ad-Hoc On-Demand Distance Vector
29
Ad hoc On-Demand Distance Vector (AODV) Routing
Article · December 2000
Source: CiteSeer
CITATIONS
READS
4,031
451
3 authors, including:
Charles Edward Perkins
Institute of Electrical and Electronics Engineers
148 PUBLICATIONS 43,481 CITATIONS
SEE PROFILE
All content following this page was uploaded by Charles Edward Perkins on 22 December 2014.
The user has requested enhancement of the downloaded file.
Ad-Hoc On-Demand Distance Vector
(AODV) Routing
Charles E. Perkins, Elizabeth M. Belding-Royer, and Samir Das,
Proceedings of IEEE WMCSA'99,New Orleans, LA,
February 1999
Presented by 민 병 호
(Byungho Min)
17 April, 2006
Contents
Ad-Hoc Network Routing Constraints
Ad-Hoc On-Demand Distance Vector (AODV)
AODV Algorithm
Path Discovery
Route Table Management
Path Maintenance
Local Connectivity Management
Simulation and Results
Current Status and Future Work
Conclusion
Ad-Hoc On-Demand Distance Vector
2
Ad-Hoc Network Routing Constraints
No Infrastructure Support
No Specialized Routers
(Physically) No Fixed Routers
Frequent Topology Change
Mobility
Problems Due to Wireless Media
Bandwidth
Range of Communication
Collisions Due to Broadcasting
Asymmetric One-Way Links
Ad-Hoc On-Demand Distance Vector
3
Ad-Hoc On-Demand Distance Vector
(AODV)
A Source Initiated Routing Protocol
Premise
Symmetric Links
Features
Pure On-Demand Acquisition
Broadcast only when necessary
Notion of ‘Active’ Paths
No centralized topological knowledge
Neighborhood detection
Topological Maintenance
Uses ‘Hello’ to identify neighbors
Ad-Hoc On-Demand Distance Vector
4
AODV Algorithm
Path Discovery
Reverse Path Setup
Forward Path Setup
Route Table Management
Path Maintenance
Local Connectivity Management
Ad-Hoc On-Demand Distance Vector
5
Path Discovery
When?
No Information on Some Node to Which Communication Is
Requested
Each Node Has Two Counters
node sequence number
broadcast_id
Path Discovery Process
Source Node Broadcasts a Route Request (RREQ) Packet to
Its Neighbors
Neighbors Forward the Request to Their Neighbors, and so
on until Either the Destination or
an Intermediate Node with a “Fresh Enough” Route to the
Destination Is Located
Ad-Hoc On-Demand Distance Vector
6
More on RREQ
broadcast_id Is Incremented for New RREQ
RREQ from Same Node with Same broadcast_id Will
Not Be Broadcasted More than Once
A
B
D
C
B won’t rebroadcast this RREQ
Node A wants to contact node D,
Ad-Hoc On-Demand Distance Vector
7
Route Requests
Y
Broadcast transmission
Z
S
E
F
B
C
M
J
A
L
G
H
This example is taken
from Wireless Internet
Class Material
K
I
D
N
Represents transmission of RREQ
Ad-Hoc On-Demand Distance Vector
8
Route Requests (Cont’d)
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
D
I
N
Represents links on Reverse Path
Ad-Hoc On-Demand Distance Vector
9
Reverse Path Setup
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
I
D
N
• Node C receives RREQ from G and H, but does not forward
it again, because node C has already forwarded RREQ once
Ad-Hoc On-Demand Distance Vector
10
Reverse Path Setup (Cont’d)
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
I
Ad-Hoc On-Demand Distance Vector
D
N
11
Reverse Path Setup
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
D
I
N
• Node D does not forward RREQ, because node D
is the intended target of the RREQ
Ad-Hoc On-Demand Distance Vector
12
Route Reply
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
D
I
N
Represents links on path taken by RREP
Ad-Hoc On-Demand Distance Vector
13
Forward Path Setup
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
I
D
N
Forward links are setup when RREP travels along
the reverse path
Represents a link on the forward path
Ad-Hoc On-Demand Distance Vector
14
Data Delivery
Y
Data
Z
S
E
F
B
C
M
J
A
L
G
H
K
D
I
N
Routing table entries used to forward data packet.
Route is not included in packet header.
Ad-Hoc On-Demand Distance Vector
15
Path Discovery (Cont’d)
RREQ Generates Backward Path to Source
RREP Generates Forward Path to Destination
1. G로 전달할 패킷 발생
2. G로의 ro ute 가 존재
Æ 이 ro ute 를 통해 패킷 전달
2’ . G로의 ro ute 가 존재하지 않음
Æ G로의 루트 탐색을 위해 RREQ를 b ro a d c a st
3. B가 A로부터 RREQ를 수신하면
A로 가는 b a c kwa rd p a th를 생성하고
RREQ를 re -b ro a d c a st
4. G가 RREQ를 수신하면 se q # 를 증가시키고
A로의 b a c kwa rd p a th를 생성하며
이 ro ute 를 통해 RREP를 unic a st
C
RREQ
D
B
EQ
RR
A
P
G
RREP
EP
RR
F
5. D가 RREP를 수신하면
G로의 fo rwa rd p a th를 생성하고,
A로의 b a c kwa rd p a th를 통해 RREP를 unic a st
E
6. A가 RREP를 수신하면
G로의 fo rwa rd p a th를 생성하고
이 루트를 통해 패킷을 unic a st
Ad-Hoc On-Demand Distance Vector
16
Route Request (RREQ)
Message Format
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type
|J|R|G|D|U|
Reserved
|
Hop Count
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
RREQ ID (broadcast id)
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination IP Address
+
|
Unique
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination Sequence Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Originator IP Address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Originator Sequence Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ad-Hoc On-Demand Distance Vector
17
Route Reply (RREP)
Message Format
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type
|R|A|
Reserved
| Prefix Sz |
Hop Count
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination IP address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination Sequence Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Originator IP Address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Lifetime
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ad-Hoc On-Demand Distance Vector
18
Route Table Management
Route Request Expiration Timer
Purges Reverse Paths That Do Not Lie on Active Route
active_route_timeout
Is Used to Determine If Neighboring Node Is Active i.e.
Sends at Least One Packet in This Time
Route Cache Timer
Purges Inactive Routes
Ad-Hoc On-Demand Distance Vector
19
Route Table Management (Cont’d)
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
Ad-Hoc On-Demand Distance Vector
20
Route Table Management (Cont’d)
When a Route Entry Is Used to Transmit Data from
Source to Destination, Timeout for Each Entry Is
Reset to 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
Ad-Hoc On-Demand Distance Vector
21
Path Management
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
On link breakage, affected node propagates an unsolicited
RREP to all active neighbors
Æ Source May Restart Route Discovery Process
Ad-Hoc On-Demand Distance Vector
22
Path Management Example
If Link between C and D Is Broken, a Special RREP
Will Be Sent to B and E by C
C Will Increase Its dest_sequence_# by 1 and Set hop_
count to ∞)
Then B and E Will Send This RREP to Its Active
Neighbors F and G
At the End, All Active Source Nodes Are Notified
When Source Finds Out a Link to Destination Is
Broken, and It Likes to Rebuild the Path to
Destination, Source Will Send a RREQ with Last
dest_squence_# + 1
100
100
100
100
A
B
G
F
Ad-Hoc On-Demand Distance Vector
C
D
E
23
Local Connectivity Management
Two 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 (TTL=1)
Local Connectivity Is Changed If
Receiving a Broadcast or a Hello from a New Node
Failing to Receive allowed_hello_loss Consecutive Hello
Message from a Node Previously in the Neighborhood
Neighbors Only Communicate When Heard Each
Other’s Hello Message
It Ensures the Link Is Bidirectional
Ad-Hoc On-Demand Distance Vector
24
Simulations and Results
Ad-Hoc On-Demand Distance Vector
25
Simulations and Results
Ad-Hoc On-Demand Distance Vector
26
Current Status and Future Work
Current Status
Multicast
RREQ, RREP, and Multicast validation message
Future Works
Intermediate Node Route Rebuilding
Try ‘repair’ before link failure notification
Elimination of Hello Messages
Locality of Association and QoS
Improve bandwidth utilization by varying route propagation
without indiscriminate relays
Ad-Hoc On-Demand Distance Vector
27
Conclusion
Storing Only the Needed Routes
Minimized Need for Broadcast
Reduced Memory Requirements and Needless
Duplications
Quick Response to Link Breakage in Active Routes
Loop-Free Routes Maintained by Use of Destination
Sequence Numbers
Scalable to Large Populations of Nodes
Ad-Hoc On-Demand Distance Vector
28
Thank you!
Ad-Hoc On-Demand Distance Vector
29