Ad hoc On Demand Distance Vector AODV Ro (2)

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