Mobile Ad Hoc Networking Working Group Charles E. Perkins
INTERNET DRAFT Nokia Research Center
19 October 2003 Elizabeth M. Belding-Royer
University of California, Santa Barbara
Ian D. Chakeres
University of California, Santa Barbara
Ad hoc On-Demand Distance Vector (AODV) Routing
draft-perkins-manet-aodvbis-00.txt
Status of This Memo
This document is a submission by the Mobile Ad Hoc Networking Working
Group of the Internet Engineering Task Force (IETF). Comments should
be submitted to the manet@ietf.org mailing list.
Distribution of this memo is unlimited.
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at
any time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at:
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at:
http://www.ietf.org/shadow.html.
Abstract
The Ad hoc On-Demand Distance Vector (AODV) routing protocol
is intended for use by mobile nodes in an ad hoc network. It
offers quick adaptation to dynamic link conditions, low processing
and memory overhead, low network utilization, and unicast route
determination to destinations within the ad hoc network. It uses
destination sequence numbers to ensure loop freedom at all times
(even in the face of anomalous delivery of routing control messages),
avoiding problems (such as ``counting to infinity'') associated with
classical distance vector protocols.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page i]
Internet Draft AODV 19 October 2003
Contents
Status of This Memo i
Abstract i
1. Introduction 1
2. Overview 1
3. AODV Terminology 2
4. Applicability Statement 4
5. Message Formats 4
5.1. Route Request (RREQ) Message Format . . . . . . . . . . . 5
5.2. Route Reply (RREP) Message Format . . . . . . . . . . . . 6
5.3. Route Error (RERR) Message Format . . . . . . . . . . . . 8
5.4. Route Reply Acknowledgment (RREP-ACK) Message Format . . 8
6. AODV Operation 9
6.1. Maintaining Sequence Numbers . . . . . . . . . . . . . . 9
6.2. Creating and Updating Route Table Entries . . . . . . . . 10
6.3. Generating Route Requests . . . . . . . . . . . . . . . . 12
6.4. Receiving Route Requests . . . . . . . . . . . . . . . . 13
6.5. Generating Route Replies . . . . . . . . . . . . . . . . 13
6.6. Receiving Route Replies . . . . . . . . . . . . . . . . . 14
6.7. Interfaces . . . . . . . . . . . . . . . . . . . . . . . 14
7. Performance Improvements 15
7.1. Operation over Unidirectional Links . . . . . . . . . . . 15
7.2. Hello Messages . . . . . . . . . . . . . . . . . . . . . 16
7.3. Maintaining Local Connectivity . . . . . . . . . . . . . 17
7.4. Generating Route Error Messages . . . . . . . . . . . . . 18
7.5. Receiving Route Error Messages . . . . . . . . . . . . . 18
7.6. Intermediate Node Route Replies . . . . . . . . . . . . . 19
7.6.1. Generating Gratuitous Route Replies . . . . . . . 19
7.7. Actions After Reboot . . . . . . . . . . . . . . . . . . 20
8. AODV and Aggregated Networks 21
9. Extensions 22
9.1. Lifetime Extension Format . . . . . . . . . . . . . . . . 22
10. Configuration Parameters 23
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page ii]
Internet Draft AODV 19 October 2003
11. Security Considerations 23
12. IANA Considerations 25
13. IPv6 Considerations 25
14. Acknowledgments 25
A. Draft Modifications 27
1. Introduction
The Ad hoc On-Demand Distance Vector (AODV) algorithm enables
dynamic, self-starting, multihop routing between participating mobile
nodes wishing to establish and maintain an ad hoc network. AODV
allows mobile nodes to obtain routes quickly for new destinations and
does not require nodes to maintain routes to destinations that are
not in active communication. AODV allows mobile nodes to respond to
link breakages and changes in network topology in a timely manner.
The operation of AODV is loop-free, and by avoiding the Bellman-Ford
``counting to infinity'' problem offers quick convergence when the
ad hoc network topology changes (typically, when a node moves in the
network). When links break, AODV causes the affected set of nodes to
be notified so that they are able to invalidate the routes using the
lost link.
One distinguishing feature of AODV is its use of a destination
sequence number for each routing table entry. The destination
sequence number is created by the destination and is included along
with any route information it sends to requesting nodes. Using
destination sequence numbers ensures loop freedom and is simple to
program. Given the choice between two routes to a destination, a
requesting node is required to select the one with the greatest
sequence number.
2. Overview
Route Requests (RREQs), Route Replies (RREPs) and Route Errors
(RERRs) are message types defined by AODV. These message types are
received via UDP (on port 654), and normal IP header processing
applies. So, for instance, the requesting node is expected
to use its IP address as the Originator IP address for the
messages. For broadcast messages, the IP limited broadcast address
(255.255.255.255) is used. This means that such messages are not
blindly forwarded. However, AODV operation does require certain
messages (e.g., RREQ) to be disseminated widely, perhaps throughout
the ad hoc network. Fragmentation is typically not required.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 1]
Internet Draft AODV 19 October 2003
When a route to a new destination is needed, the node broadcasts a
RREQ to find a route to the destination. Each node receiving the
request caches a route back to the originator of the request, so that
the RREP can be unicast from the destination along a path to that
originator. A route can be determined when the RREQ reaches a node
that offers reachability to the destination (e.g., the destination
itself). The route is made available by unicasting a RREP back to
the origination of the RREQ.
For nodes monitoring the link status of next hops for active routes,
when a link break in an active route is detected, the broken link is
invalidated and a RERR message is typically transmitted to notify
other nodes that the loss of that link has occurred. The RERR
message indicates the destination that is no longer reachable by way
of the broken link.
AODV is a routing protocol, and hence it deals with routing table
management. Routing table information must be kept for all known
routes. AODV uses the following fields with each routing table
entry:
- Destination IP Address
- Prefix Size
- Destination Sequence Number
- Next Hop IP Address
- Lifetime (expiration or deletion time of the route)
- Hop Count (number of hops to reach the destination)
- Network Interface
- Other state and routing flags (e.g., valid, invalid)
Managing the sequence number is crucial to avoiding routing loops.
A destination becomes unreachable when a link breaks or it is
deactivated. When these conditions occur, the route is invalidated
by operations involving the sequence number and marking the routing
table entry state as invalid. See section 6.1 for details.
3. AODV Terminology
This protocol specification uses conventional meanings [1] for
capitalized words such as MUST, SHOULD, etc., to indicate requirement
levels for various protocol features. This section defines other
terminology used with AODV that is not already defined in [3].
active route
A route towards a destination that has a routing table entry
that is marked as valid. Only active routes can be used to
forward data packets.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 2]
Internet Draft AODV 19 October 2003
broadcast
Transmitting to the IP Limited Broadcast address,
255.255.255.255.
destination
An IP address to which data packets are to be transmitted. The
IP address of the destination node for a typical data packet
appears in the designated field of the IP header.
forwarding node
A node that agrees to forward packets destined for another
node. The node retransmits the packets to a next hop that
is closer to the unicast destination along a path previously
established by AODV that has been set up using control
messages.
inactive route
A route that has expired, denoted by a state of invalid in
the routing table entry. An invalid route is used to store
previously valid route information, such as the sequence
number, for an extended period of time. An invalid route
cannot be used to forward data packets, but it can provide
information useful when processing other control messages (e.g.
future RREQ messages).
invalid route
See inactive route.
originating node
A node that initiates an AODV route request message. For
instance, the node that initiates a Route Discovery process and
first broadcasts the RREQ message is called the originating
node of the RREQ message.
sequence number
A monotonically increasing number that is maintained by each
node. It is used by other nodes to determine the freshness of
routing information obtained from AODV protocol messages about
the originating node. The sequence number zero (0) is reserved
and represents an unknown sequence number.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 3]
Internet Draft AODV 19 October 2003
valid route
See active route.
4. Applicability Statement
The AODV routing protocol is designed for mobile ad hoc networks
with populations of tens to thousands of mobile nodes. AODV can
handle low, moderate, and relatively high mobility rates, as well
as a variety of data traffic levels. AODV is designed for use in
networks where the nodes can all trust each other, either by use of
preconfigured keys or because it is known that there are no malicious
nodes. AODV has been designed to reduce the dissemination of control
traffic and eliminate overhead on data traffic in order to improve
scalability and performance.
A recent study [4] has indicated that, for networks of limited size,
reliable communications can be managed by nodes that implement only
a very limited number of AODV features. For instance, in networks
of 50 nodes, the performance does not suffer very much even if nodes
only implement RREQ and RREP, without any RREPs from intermediate
nodes. Thus, we have revised the original AODV specification so
that many features are no longer mandated, even if they are strongly
recommended for all general purpose ad hoc network nodes. Networks
of nodes which only implement the mandated specification may not be
useful except for certain limited scenarios, and may even effectively
consume more power than when the nodes contain the congestion control
and latency reduction features recommended in section 7.
5. Message Formats
In this section, the formats for the basic AODV messages are
specified. RREQ and RREP messages MUST be implemented by all AODV
nodes. RERR and RREP-ACK messages SHOULD be implemented, but there
may be cases where nodes can be built for certain limited deployments
that do not need to have the features enabled by those messages.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 4]
Internet Draft AODV 19 October 2003
5.1. 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 |D|G| Reserved | Hop Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RREQ ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Path Node IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Path Node Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (additional node IP address and sequence number pairs) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The format of the Route Request message is illustrated above, and
contains the following fields:
Type 1
D Destination-only flag. If set a intermediate node
may not respond to this RREQ (see section 7.6).
G Gratuitous Route Reply flag. Indicates whether a
gratuitous RREP should be sent to the destination
(see section 7.6). This flag should be set for
traffic bi-directional traffic, such as TCP.
Reserved Sent as 0; ignored on reception.
Hop Count The number of hops from the originating node to
the node handling the request. This field also
indicates the number of accumulated path node IP
addresses and sequence numbers in the RREQ.
RREQ ID A sequence number uniquely identifying the
particular RREQ when taken in conjunction with the
originating node's IP address.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 5]
Internet Draft AODV 19 October 2003
Destination IP Address
The IP address of the destination for which a route
is desired.
Destination Sequence Number
The latest sequence number received by the
originator for any route towards the destination.
Originator IP Address
The IP address of the originating node that issued
the Route Request.
Originator Sequence Number
The current sequence number of the originating
node.
Next Path Node IP Address
The IP address of the next node along the path from
the Originator to the Destination.
Next Path Node Sequence Number
The Sequence Number of the next node along the path
from the Originator to the Destination.
5.2. 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 |A|Reserved | APN Cnt |Prefix Sz| Hop Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination IP address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator IP address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Path Node IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Path Node Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (additional node IP address and sequence number pairs) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The format of the Route Reply message is illustrated above, and
contains the following fields:
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 6]
Internet Draft AODV 19 October 2003
Type 2
A RREP Acknowledgment required. See section 7.1.
Reserved Sent as 0; ignored on reception.
APN Count The number of accumulated path nodes appended to the
RREP.
Prefix Size The Prefix Size Field indicates the nodes within a
destination's subnet that are reachable via the same
route. For example, a prefix size of eight (8) is
equivalent to a subnet mask of 255.255.255.0. For
a host route the prefix size is zero (0), This is
equivalent to a subnet mask of 255.255.255.255.
Hop Count The number of hops from the originating node to the
destination node.
Destination IP Address
The IP address of the destination node.
Destination Sequence Number
The sequence number associated with the destination
node.
Originator IP Address
The IP address of the node that originated the RREQ
for which the route is supplied.
Originator Sequence Number
The current sequence number of the originating node.
Next Path Node IP Address
The IP address of the next node along the path from
the Originator to the Destination.
Next Path Node Sequence Number
The Sequence Number of the next node along the path
from the Originator to the Destination.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 7]
Internet Draft AODV 19 October 2003
5.3. Route Error (RERR) 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 | Reserved | DestCount |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unreachable Destination IP Address (1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unreachable Destination Sequence Number (1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
| (more node IP address and sequence number pairs as needed) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The format of the Route Error message is illustrated above, and
contains the following fields:
Type 3
Reserved Sent as 0; ignored on reception.
DestCount The number of unreachable destinations included in the
message; MUST be at least 1.
Unreachable Destination IP Address
The IP address of the destination that has become
unreachable due to a broken link.
Unreachable Destination Sequence Number
The sequence number in the route table entry for
the destination listed in the previous Unreachable
Destination IP Address field.
5.4. Route Reply Acknowledgment (RREP-ACK) Message Format
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type 4
Reserved Sent as 0; ignored on reception.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 8]
Internet Draft AODV 19 October 2003
6. AODV Operation
This section describes the scenarios during which nodes generate
Route Request (RREQ) and Route Reply (RREP) for unicast communication
to a destination node and how the message fields are handled. In
order to process the messages correctly, certain state information
has to be maintained in the routing table for destinations of
interest.
All AODV messages are sent to port 654 using UDP.
6.1. Maintaining Sequence Numbers
Every routing table at every node MUST include the latest information
available about the sequence number for the IP address of each
destination for which a routing table entry is maintained. This
sequence number is called the "destination sequence number". It is
updated whenever a node receives new (i.e., not stale) information
about the sequence number from RREQ, RREP, or RERR messages that may
be received related to that destination.
AODV requires each node in the network to own and maintain its
destination sequence number in order to guarantee the loop-freedom
of all routes towards that node. A node increments its own sequence
number in two circumstances:
- Immediately before a node initiates a route discovery, it MUST
increment its own sequence number. This prevents conflicts with
previously established reverse routes towards the originator of a
RREQ.
- Immediately before a node issues a RREP in response to a RREQ, it
MUST update its own sequence number to the maximum of its current
sequence number and the destination sequence number in the RREQ
packet plus one (1).
When a node increments a sequence number, it MUST do so by treating
the sequence number value as if it were an unsigned number.
Additionally the sequence number zero (0) is reserved and MUST never
be used. To accomplish sequence number rollover, if the sequence
number has already been assigned to be the largest possible number
representable as a 32-bit unsigned integer (i.e., 4294967295), then
it MUST then have a value of one (1) when it is incremented. This is
in contrast to the manner in which the result of comparing two AODV
sequence numbers is to be treated (see below).
In order to ascertain that information about a destination is not
stale, the node compares its current numerical value for the sequence
number in its routing table with that obtained from the incoming AODV
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 9]
Internet Draft AODV 19 October 2003
message. In AODV, the sequence number zero (0) has special meaning
and represents an unknown sequence number. Any known sequence number
is considered higher than an unknown sequence number. Given a known
sequence number in an AODV message, this comparison MUST be done
using signed 32-bit arithmetic. This is necessary to accomplish
sequence number rollover. If the result of subtracting the currently
stored sequence number from the value of the incoming sequence
number is less than zero, or a sequence number is known and the
incoming sequence number is unknown, then the information related
to that destination in the AODV message MUST be discarded, since
that information is stale compared to the node's currently stored
information.
The only other circumstance in which a node may change the
destination sequence number in one of its routing table entries is
in response to a lost or expired link to the next hop towards that
destination. The node determines which destinations use a particular
next hop by consulting its routing table. For each destination
that uses the next hop, the node increments the sequence number and
marks the route as invalid. Whenever any fresh (i.e., containing
a sequence number at least equal to the recorded sequence number)
routing information for an affected destination is received, the
node SHOULD update its route table information according to the
information contained in the update.
A node may change the sequence number in the routing table entry of a
destination only if:
- it is itself the destination node, and it offers a new route to
itself, or
- it receives an AODV message with new information about the
sequence number for a destination node, or
- the path towards the destination node expires or breaks.
6.2. Creating and Updating Route Table Entries
When a node receives an AODV control packet from a neighbor
or creates or updates a route for a particular destination, it
checks its routing table for an entry to the destination using
longest-prefix matching. In the event that there is no corresponding
entry for that destination, an entry is created. The sequence number
is either determined from the information contained in the control
packet or set to zero (0), representing an unknown sequence number.
A route is only updated if one of the following conditions is met:
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 10]
Internet Draft AODV 19 October 2003
(i) the new sequence number is higher than the destination
sequence number in the route table, or
(ii) the new sequence number is the same as destination
sequence number in the route table and the route is
marked as invalid, or
(iii) the new sequence number is the same as destination
sequence number in the route table and the Hop Count
(determined from the control packet) is smaller than the
existing hop count in the routing table, or
(iv) the sequence number in the routing table is unknown.
If the route table entry to this destination is created or updated,
then the following actions occur:
- the route is marked as valid,
- the Next Hop IP Address in the routing table entry for the
destination is assigned to be that of the node from which
the control packet was received, which is indicated by the
source IP address field in the IP header, or by examining the
accumulated path list,
- the Hop Count is set to the number of hops to this
destination,
- the Prefix Size is set to the value from the control packet
or zero,
- the Lifetime field is set to the current time plus the value
of ACTIVE_ROUTE_TIMEOUT,
- and the Destination Sequence Number is set to the sequence
number for this destination from the control packet or zero
(0) for an unknown sequence number.
After updating a route, if it is valid it may now be used to send any
queued data packets and to fulfill any outstanding route requests.
Each time a route is used to forward a data packet, the Lifetime
field of the routing table entry for the IP destination is updated to
be no less than the current time plus ACTIVE_ROUTE_TIMEOUT.
Note that the Lifetime field in the routing table plays a dual role
-- for an active route it is the expiry time, and for an invalid
route it is the deletion time. If a data packet is received for an
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 11]
Internet Draft AODV 19 October 2003
invalid route, the Lifetime field is updated to current time plus
DELETE_PERIOD.
6.3. Generating Route Requests
A node generates a RREQ when it determines that it needs a route to
a destination and does not have one available. This can happen if
the destination is previously unknown to the node or if a previously
valid route to the destination has expired or been marked as invalid.
The Destination Sequence Number field in the RREQ message is the last
known destination sequence number for this destination and is copied
from the Destination Sequence Number field in the pertinent routing
table entry. If no sequence number is known, the sequence number
field MUST be set to zero (0). The Originator Sequence Number in the
RREQ message is the node's own sequence number, which is incremented
prior to insertion in a RREQ. The RREQ ID field is incremented by one
from the last RREQ ID used by the current node. Each node maintains
only one RREQ ID. The Hop Count field is set to zero. The RREQ TTL
value is set to NET_DIAMETER.
Before broadcasting the RREQ, the originating node buffers the RREQ
ID and the Originator IP address (its own address) of the RREQ for
PATH_DISCOVERY_TIME. By doing so, the node will not reprocess or
re-forward the packet when it receives the packet again from its
neighbors. The originating node then broadcasts the RREQ. A node
SHOULD NOT originate more than RREQ_RATELIMIT RREQ messages per
second.
After broadcasting a RREQ, a node waits for a RREP or other control
message with current information regarding the destination. If a
route is not received within NET_TRAVERSAL_TIME milliseconds, the
node MAY again try to discover a route by broadcasting another RREQ,
up to a maximum of RREQ_TRIES times. Each new attempt MUST increment
and update the RREQ ID.
To reduce congestion in a network, repeated attempts by a source
node at route discovery for a single destination MUST utilize a
binary exponential backoff. The first time a source node broadcasts
a RREQ, it waits NET_TRAVERSAL_TIME milliseconds for the reception
of a RREP. If a RREP is not received within that time, the source
node sends a new RREQ. When calculating the time to wait for
the RREP after sending the second RREQ, the source node MUST use
a binary exponential backoff. Hence, the waiting time for the
RREP corresponding to the second RREQ is 2 * NET_TRAVERSAL_TIME
milliseconds. If a RREP is not receivied within this time period,
another RREQ may be sent, up to RREQ_TRIES additional attempts after
the first RREQ. For each additional attempt, the waiting time for
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 12]
Internet Draft AODV 19 October 2003
the RREP is multiplied by 2 so that the time conforms to a binary
exponential backoff.
Data packets waiting for a route (i.e., waiting for a RREP after a
RREQ has been sent) SHOULD be buffered. The buffering SHOULD be
"first-in, first-out" (FIFO). If a route discovery has been attempted
RREQ_TRIES times at the maximum TTL without receiving any RREP, all
data packets destined for the corresponding destination SHOULD be
dropped from the buffer and a Destination Unreachable ICMP message
SHOULD be delivered to the application.
6.4. Receiving Route Requests
When a node receives a RREQ, the node increments the Hop Count field
in the RREQ by one, to account for the previous hop. Then it MAY
create or update route to any destination listed in the accumulated
path list as specified in section 6.2. The node can use any valid
route to forward data packets.
Next it checks to determine whether it has received a RREQ with the
same Originator IP Address and RREQ ID within PATH_DISCOVERY_TIME. If
such a RREQ has been received, the node silently discards the newly
received RREQ. The rest of this subsection describes actions taken
for RREQs that are not discarded.
If this intermediate node does not generate a RREP (following the
rules in section 7.6) and if the incoming IP header has a TTL larger
than 1, then the RREQ is updated. The TTL field in the outgoing
IP header is decreased by one. The Destination Sequence number in
the RREQ for the requested destination is set to the maximum of the
original value received in the RREQ message and the destination
sequence value currently maintained by the node for the requested
destination. However, the forwarding node MUST NOT modify the
maintained value in its routing table for the destination sequence
number, even if the value received in the incoming RREQ is larger
than the value currently maintained by the forwarding node. Finally,
the current host appends its sequence number and IP address to the
accumulated path list. After updating the RREQ, it broadcasts the
RREQ to address 255.255.255.255 on each of its configured interfaces
(see section 6.7).
6.5. Generating Route Replies
Upon reception of a RREQ, a node MUST generate a RREP if it is the
destination. When generating a RREP message, a node copies the
Destination IP Address, Originator IP Address and Originator Sequence
Number from the RREQ message into the corresponding fields of the
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 13]
Internet Draft AODV 19 October 2003
RREP message. In addition, the accumulated path list from the RREQ
is appended to the RREP in the same order as listed in the RREQ. The
APN Count field is set to the length of accumulated path node list.
If the destination generates a response, it MUST increment its own
sequence number to be at least one greater than the Destination
Sequence Number in the RREQ. If this condition is already satisfied
the destination does not change its sequence number before generating
the RREP message. The destination node places its (perhaps newly
changed) sequence number into the Destination Sequence Number field
of the RREP, and enters the value zero into the Hop Count field of
the RREP.
Once created, the RREP is unicast to the next hop toward the
originator of the RREQ, indicated by the last entry in the
accumulated path list.
6.6. Receiving Route Replies
When a node receives a RREP message, it increments the Hop Count
field in the RREP by one to account for the new hop through the
previous node. Next a route MAY be created for the source and each
destination listed in the accumulated path list. Then a route to
the destinationis created or updated. MUST be updated or created by
way of the procedure specified in section 6.2. Subsequently, the
node can use any of its active routes to forward data packets to the
destination.
If the current node is not the node indicated by the Originator IP
Address in the RREP message, AND after a valid route has been created
or updated to the destination, the node then sends the RREP to the IP
address previous to its own IP address in the accumulated path list.
If there are no nodes listed in the accumulated path list, denoted by
zero (0) in APN Count, the RREP is sent to the Next Hop IP Address in
the valid routing table entry for the Originator IP Address.
6.7. Interfaces
Because AODV should operate smoothly over heterogeneous networks
(wired, as well as wireless) and it is likely that AODV will also
be used with multiple wireless devices, the particular interface
over which packets arrive must be known to AODV whenever a packet
is received. This includes the reception of RREQ, RREP, and RERR
messages. Whenever a packet is received from a new neighbor, the
interface on which that packet was received is recorded into the
routing table entry for that neighbor along with all the other
appropriate routing information. Similarly, whenever a route to
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 14]
Internet Draft AODV 19 October 2003
a new destination is discovered, the interface through which the
destination can be reached is also recorded into the destination's
route table entry.
When multiple interfaces are available, a node transmitting a
broadcast control message SHOULD broadcast the message on all
interfaces that have been configured for operation in the ad hoc
network.
7. Performance Improvements
Nodes that implement only the basic AODV features do not economize
the use of the physical network medium, and thus are more likely to
contribute to the overall congestion in the network. That is not a
problem, as long as the medium does not experience sustained periods
of high utilization. However, whenever it is expected that there
may be periods of high traffic, or if there are likely to be many
nodes within the ad hoc network, it becomes more important for the
AODV nodes to implement more features in order to reduce network
congestion.
Another way that performance can be improved in an ad hoc network
is to reduce the time duration of communications disruptions caused
by node movement. This can be done in several ways, notably by
the transmission of the RERR message to trigger route repair and
update mechanisms. Without RERR, the robustness of the communication
between the application endpoints becomes dependent upon recovery
methods that are been built into the application. There are
applications that have no such recover mechanisms, and those
applications, hosted on nodes that do not attempt any routing
repairs, would be adversely affected by node mobility. If any node
in the network depends on RERR messages to detect route breaks, all
nodes SHOULD support it.
Each of the performance improvements in this section SHOULD be
implemented by every AODV node, so that the network as a whole runs
in a way more responsive to application needs, and creates less
network congestion.
7.1. Operation over Unidirectional Links
It is possible that a RREP transmission may fail, especially if the
RREQ transmission triggering the RREP occurs over a unidirectional
link. If no other RREP generated from the same route discovery
attempt reaches the node which originated the RREQ message, the
originator will reattempt route discovery after a timeout (see
section 6.3). However, the same scenario might well be repeated
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 15]
Internet Draft AODV 19 October 2003
without any improvement, and no route would be discovered even after
repeated retries. Unless corrective action is taken, this can happen
even when bidirectional routes between originator and destination
do exist. Link layers using broadcast transmissions for the RREQ
will not be able to detect the presence of such unidirectional links.
In AODV, any node acts on only the first RREQ with the same RREQ ID
and ignores any subsequent RREQs. Suppose, for example, that the
first RREQ arrives along a path that has one or more unidirectional
link(s). A subsequent RREQ may arrive via a bidirectional path
(assuming such paths exist), but it will be ignored.
To prevent this problem, when a node detects that its transmission of
a RREP message has failed, it remembers the next-hop of the failed
RREP in a ``blacklist'' set. Such failures can be detected via
the absence of a link-layer or network-layer acknowledgment (e.g.,
RREP-ACK). A node ignores all RREQs received from any node in its
blacklist set. Nodes are removed from the blacklist set after a
BLACKLIST_TIMEOUT period. This period should be set to the upper
bound of the time it takes to perform the allowed number of route
request retry attempts as described in section 6.3.
Note that the RREP-ACK packet does not contain any information about
which RREP it is acknowledging. The time at which the RREP-ACK
is received will likely come just after the time when the RREP
was sent with the 'A' bit. This information is expected to be
sufficient to provide assurance to the sender of the RREP that the
link is currently bidirectional, without any real dependence on the
particular RREP message being acknowledged. However, that assurance
typically cannot be expected to remain in force permanently.
If unidirectional links are likely to occur the 'A' bit in RREPs
SHOULD be set.
7.2. Hello Messages
A node MAY offer connectivity information by broadcasting local
Hello messages. A node SHOULD only use hello messages if it is
participating in routing of data packets. Every HELLO_INTERVAL
milliseconds, the node checks whether it has sent a broadcast control
message (e.g., a RREQ). If it has not, it SHOULD broadcast a RREP
with TTL = 1, called a Hello message, where the RREP message fields
are set as follows:
Destination IP Address
The node's IP address.
Destination Sequence Number
The node's sequence number.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 16]
Internet Draft AODV 19 October 2003
Hop Count 0
Whenever a node receives a Hello message from a neighbor, the node
SHOULD process it as a normal RREP, as specified in section 6.6.
Additionally, a neighboring node MAY determine connectivity by
listening for packets from its set of neighbors. If a valid route to
a neighbor exists but no packets from that neighbor (Hello messages
or otherwise) have been received for more than (ALLOWED_HELLO_LOSS
* HELLO_INTERVAL) milliseconds, the node SHOULD assume that the
link to this neighbor is currently lost. When this happens, the
node SHOULD invalidate the route to that neighbor and increase the
sequence number stored in the routing table by one. Additionally,
each valid route in the routing table that lists this neighbor as the
next hop should be invalidated and its corresponding sequence number
incremented.
7.3. Maintaining Local Connectivity
Each forwarding node SHOULD keep track of its continued connectivity
to its active next hops as well as neighbors that have transmitted
Hello messages during the last (ALLOWED_HELLO_LOSS * HELLO_INTERVAL).
A node can maintain accurate information about its continued
connectivity to these active next hops using one or more of the
available link or network layer mechanisms, as described below.
- Any suitable link layer notification can be used to determine
connectivity each time a packet is transmitted to an active next
hop. For example, failure to transmit a packet after the maximum
number of retransmission attempts in IEEE 802.11 results in an
indicator signifying a failed transmission. This indicator
should be understood as loss of the link to the active next hop.
- If layer-2 notification is not available, passive acknowledgment
MAY be used, when the next hop is expected to forward the packet,
by listening to the channel for a transmission attempt made by
the next hop.
- If transmission is not detected within NEXT_HOP_WAIT milliseconds
or the next hop is the destination (and thus is not likely to
forward the packet), the node may signal the next hop to cause it
to transmit a packet in return. Many methods may be used. For
example, sending an ICMP Echo Request message to the next hop
should cause the next hop to send an Echo Reply.
- Use of Hello messages.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 17]
Internet Draft AODV 19 October 2003
If a link to the next hop cannot be detected by any of these
methods, the node SHOULD assume that the link is lost after
(ALLOWED_HELLO_LOSS * HELLO_INTERVAL) milliseconds. It should
invalidate the route to the next hop and increase the destination
sequence number by one. Additionally, for all active routes that
utilize the lost link as the next hop, these routes should be
invalidated and their sequence numbers incremented by one.
7.4. Generating Route Error Messages
When a data packet for a invalid route or unknown destination is
received, a Route Error (RERR) message is generated. The Unreachable
Destination field is the IP address of the invalid or unknown
destination. If an invalid route exists in the routing table, the
Unreachable Destination Sequence Number field of the RERR is filled
with the value in the routing table; otherwise zero (0) is placed
in the Unreachable Destination Sequence Number field of the RERR.
All unreachable destinations, with the same next hop, and their
corresponding sequence numbers SHOULD be placed in the same RERR
message. Then the RERR message is broadcast to all neighbors. A
node SHOULD NOT generate more than RERR_RATELIMIT RERR messages per
second.
The RERR is sent to the local broadcast address (Destination IP
== 255.255.255.255, TTL == 1) with the unreachable destinations,
and their corresponding sequence numbers included in the packet.
The DestCount field of the RERR packet indicates the number of
unreachable destinations included in the packet.
7.5. Receiving Route Error Messages
When a node receives a RERR message, and a route to the next hop
does not already exist, a route MAY be created for the previous
hop without a valid sequence number and a hop count of one (1)
(see section 6.2). Then the node compares the first unreachable
destination listed in the RERR to the routes in its routing table.
If a route to the unreachable destination exists and the next hop
listed in the routing table entry is the node that sent this RERR
(indicated by the source IP address field in the IP header), and
either:
(i) the Unreachable Destination Sequence Number in the RERR
is zero (0), or
(ii) the Unreachable Destination Sequence Number in the RERR
is higher than the destination sequence number listed in
the routing table for the unreachable destination
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 18]
Internet Draft AODV 19 October 2003
then the route is invalidated and the destination sequence number
for the unreachable destination is updated to be the maximum of the
sequence number listed in the routing table entry and the Unreachable
Destination Sequence number from the RERR. If a route is invalidated
then a RERR message is created to be broadcast with the unreachable
destination.
If additional unreachable destinations are listed in the RERR they
MAY be used to invalidate other unreachable destinations as described
above.
Any additional destinations that because unreachable due to the
processing of this RERR SHOULD be added to the new RERR message sent
by this node.
7.6. Intermediate Node Route Replies
An intermediate node MAY generate a RREP if it has a valid route
to the destination and the destination-only flag is not set. If
an intermediate node generates the response, it places the known
destination sequence number from the routing table entry for the
destination into the Destination Sequence Number field of the RREP,
and places the known hop count from the routing table entry into the
Hop Count field in the RREP.
When generating a RREP message, a node copies the Destination IP
Address, Originator IP Address and Originator Sequence Number from
the RREQ message into the corresponding fields of the RREP message.
In addition, the accumulated path list from the RREQ is appended to
the RREP in the same order as listed in the RREQ. The APN Count field
is set to the length of accumulated path node list.
Once created, the RREP is unicast to the next hop toward the
originator of the RREQ, indicated by the last entry in the
accumulated path list.
If the Gratuitous Route Reply flag is set, the intermediate node MUST
generate a Gratuitous Route Reply.
7.6.1. Generating Gratuitous Route Replies
After an intermediate node receives a RREQ and responds with a RREP,
it discards the RREQ. If the RREQ has the 'G' flag set, and the
intermediate node returns a RREP to the originating node, it MUST
also send a gratuitous RREP to the destination node. The gratuitous
RREP that is to be sent to the desired destination contains the
following values in the RREP message fields:
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 19]
Internet Draft AODV 19 October 2003
APN Count 0
Hop Count The Hop Count as indicated in the
node's route table entry for the
originator
Destination IP Address
The IP address of the node that
originated the RREQ
Destination Sequence Number
The Originator Sequence Number from
the RREQ
Originator IP Address
The IP address of the Destination
node in the RREQ
Destination Sequence Number
The Sequence Number of the
Destination node in the RREQ
The gratuitous RREP is then sent to the next hop along the path to
the destination node, just as if the destination node had already
issued a RREQ for the originating node and this RREP was produced
in response to that (fictitious) RREQ. The RREP that is sent to the
originator of the RREQ is the same whether or not the 'G' bit is set.
7.7. Actions After Reboot
Transient routing loops SHOULD be protected against in an ad hoc
network, because whenever the transient condition occurs, there is
a lot of unnecessary routing and energy expenditure by the nodes
creating the loop. For this reason, AODV nodes SHOULD implement the
simple protective measures specified in this section.
A node participating in the ad hoc network must take certain actions
after reboot if it loses its own sequence number. Otherwise, if
neighboring nodes are using this node as an active next hop, there
would be a potential for routing loops. To prevent this possibility,
each node (if it has lost its sequence number) on reboot waits for
DELETE_PERIOD before transmitting any route discovery messages.
During this time, if the node receives a RREQ, RREP, or RERR control
packet, it SHOULD create route entries as appropriate given the
sequence number information in the control packets, but it MUST not
forward any control packets. If the node receives a data packet for
some unicast destination, it SHOULD broadcast a RERR as described
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 20]
Internet Draft AODV 19 October 2003
in subsection 7.4 and MUST reset the reboot waiting timer to expire
after current time plus DELETE_PERIOD.
It can be shown [5] that by the time the rebooted node comes out of
the waiting phase and resumes routing again, its neighbors will no
longer be using it as an active next hop. Its own sequence number
is updated once it receives a RREQ from any other node, as the RREQ
always carries the maximum destination sequence number seen en route.
If no such RREQ arrives, the node may initialize its own sequence
number to any allowable value other than zero (0) (for example, (1)).
8. AODV and Aggregated Networks
AODV has been designed for use by mobile nodes with IP addresses that
are not necessarily related to each other. However, in some cases
a collection of mobile nodes MAY operate in a fixed relationship to
each other and share a common subnet prefix, moving together within
the ad hoc network. Call such a collection of nodes a ``subnet''.
In this case, it is possible for a single node within the subnet
to advertise reachability for all other nodes in the subnet, by
responding with a RREP message to any RREQ message requesting a route
to any node with the subnet routing prefix. Call this single node
the ``subnet router''. In order for a subnet router to operate the
AODV protocol for the whole subnet, it has to maintain a destination
sequence number for the entire subnet. In any RREP message sent by
the subnet router, the Prefix Size field of the RREP message MUST
be set to the length of the subnet prefix. Other nodes sharing the
subnet prefix SHOULD NOT issue RREP messages, and SHOULD forward RREQ
messages to the subnet router.
The processing of RREPs that give routes to subnets (i.e., have
nonzero prefix length) is the same as processing for host-specific
RREP messages. Every node that receives the RREP with prefix size
information SHOULD create or update the route table entry for the
subnet. Then, in the future nodes with this subnet route can use
the information to avoid sending RREQs for other nodes in the same
subnet.
When a node uses a subnet route it may be that a packet is routed to
an IP address on the subnet that is not assigned to any existing node
in the ad hoc network. When that happens, the subnet router MUST
return ICMP Host Unreachable message to the sending node. Upstream
nodes receiving such an ICMP message SHOULD record the information
that the partcular IP address is unreachable, but MUST NOT invalidate
the route entry for any matching subnet prefix.
If several nodes in the subnet advertise reachability to the subnet
defined by the subnet prefix, the node with the lowest IP address
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 21]
Internet Draft AODV 19 October 2003
is elected to be the subnet router, and all other nodes MUST stop
advertising reachability.
The behavior of default routes (i.e., routes with routing prefix
length 0) is not defined in this specification. Selection of routes
sharing prefix bits should be according to longest match first.
9. Extensions
In this section, the format of extensions to the RREQ and RREP
messages is specified. All such extensions appear after the message
data, and have the following 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 | Length | type-specific data ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
Type 1-255
Length The length of the type-specific data, not including the
Type and Length fields of the extension in bytes.
Extensions with types between 128 and 255 may NOT be skipped. The
rules for extensions conform to the rules for handling IPv6 options.
9.1. Lifetime Extension 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 | Length | Lifetime ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... Lifetime, continued |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type 2
Length 4
Lifetime The number of milliseconds to be added to the lifetime
field for this route entry.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 22]
Internet Draft AODV 19 October 2003
The Lifetime extension MAY be appended to a RREQ or RREP. If this
field is used the Lifetime value from the extension SHOULD be used to
update the lifetime field in the routing table for this valid route
entry instead of ACTIVE_ROUTE_TIMEOUT.
10. Configuration Parameters
This section gives default values for some important parameters
associated with AODV protocol operations.
Parameter Name Value
---------------------- -----
NODE_TRAVERSAL_TIME 10 milliseconds
NET_DIAMETER 20
NET_TRAVERSAL_TIME 2 * NODE_TRAVERSAL_TIME * NET_DIAMETER
PATH_DISCOVERY_TIME 2 * NET_TRAVERSAL_TIME
ACTIVE_ROUTE_TIMEOUT 2 * NET_TRAVERSAL_TIME
DELETE_PERIOD 5 * NET_TRAVERSAL_TIME
RREQ_TRIES 3
RREQ_RATELIMIT 10
RERR_RATELIMIT 10
HELLO_INTERVAL 1,000 Milliseconds
ALLOWED_HELLO_LOSS 2
NEXT_HOP_WAIT 2 * NODE_TRAVERSAL_TIME
BLACKLIST_TIMEOUT RREQ_RETRIES * NET_TRAVERSAL_TIME
For correct operation ACTIVE_ROUTE_TIMEOUT MUST be greater than
both (ALLOWED_HELLO_LOSS * HELLO_INTERVAL) and NET_TRAVERSAL_TIME.
Likewise, DELETE_PERIOD MUST be greater than ACTIVE_ROUTE_TIMEOUT.
11. Security Considerations
Currently, AODV does not specify any special security measures.
Routing protocols, however, are prime targets for impersonation
attacks. In networks where the node membership is not known, it
is difficult to determine the occurrence of impersonation attacks,
and security prevention techniques are difficult at best. However,
when the network membership is known and there is a danger of
such attacks, AODV control messages must be protected by the use
of authentication techniques, such as those involving generation
of unforgeable and cryptographically strong message digests or
digital signatures. While AODV does not place restrictions on the
authentication mechanism used for this purpose, IPsec Authentication
Header (AH) is an appropriate choice for cases where the nodes share
an appropriate security association that enables the use of AH.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 23]
Internet Draft AODV 19 October 2003
In particular, RREP messages SHOULD be authenticated to avoid
creation of spurious routes to a destination. Otherwise, an attacker
could masquerade as that destination, and maliciously deny service
to the destination and/or maliciously inspect and consume traffic
intended for delivery to the destination. RERR messages, while less
dangerous, SHOULD be authenticated in order to prevent malicious
nodes from disrupting valid routes between communicating nodes.
AODV does not make any assumption about the method by which addresses
are assigned to the mobile nodes except that they are presumed to
have unique IP addresses. Therefore, no special consideration, other
than what is natural because of the general protocol specifications,
can be made about the applicability of IPsec authentication headers
or key exchange mechanisms. However, if the mobile nodes in the
ad hoc network have pre-established security associations, it is
presumed that the purposes for which the security associations are
created include that of authorizing the processing of AODV control
messages. Given this understanding, the mobile nodes should be able
to use the same authentication mechanisms based on their IP addresses
as they would have used otherwise.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 24]
Internet Draft AODV 19 October 2003
12. IANA Considerations
AODV defines a "Type" field for messages sent to port 654. A new
registry is to be created for the values for this Type field, and the
following values assigned:
Message Type Value
--------------------------- -----
Route Request (RREQ) 1
Route Reply (RREP) 2
Route Error (RERR) 3
Route-Reply Ack (RREP-ACK) 4
AODV control messages can have extensions. Currently, only one
extension is defined. A new registry is to be created for the Type
field of the extensions:
Extension Type Value
--------------------------- -----
Lifetime 1
Future values of the Message Type or Extension Type can be allocated
using standards action [2].
13. IPv6 Considerations
See [6] for detailed operation for IPv6. The only changes to the
protocol are that the address fields are enlarged.
14. Acknowledgments
Special thanks to Samir Das, University of Cincinnati, for his
extensive contributions to prior revisions.
We acknowledge with gratitude the work done at University of
Pennsylvania within Carl Gunter's group, as well as at Stanford and
CMU, to determine some conditions (especially involving reboots and
lost RERRs) under which previous versions of AODV could suffer from
routing loops. Contributors to those efforts include Karthikeyan
Bhargavan, Joshua Broch, Dave Maltz, Madanlal Musuvathi, and
Davor Obradovic. The idea of a DELETE_PERIOD, for which expired
routes (and, in particular, the sequence numbers) to a particular
destination must be maintained, was also suggested by them.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 25]
Internet Draft AODV 19 October 2003
We also acknowledge the comments and improvements suggested by
Sung-Ju Lee, Mahesh Marina, Erik Nordstrom, Yves Prelot, Marc Mosko,
Manel Guerrero Zapata, Philippe Jacquet, Fred Baker, and Chris
Shiflet.
References
[1] S. Bradner. Key words for use in RFCs to Indicate Requirement
Levels. Request for Comments (Best Current Practice) 2119,
Internet Engineering Task Force, March 1997.
[2] T. Narten and H. Alvestrand. Guidelines for Writing an IANA
Considerations Section in RFCs. Request for Comments (Best
Current Practice) 2434, Internet Engineering Task Force, October
1998.
[3] J. Manner et al. Mobility Related Terminology (work in
progress). draft-manner-seamoby-terms-02.txt, July 2001.
[4] Ian D. Chakeres and Luke Klein-Berndt. AODVjr: AODV Simplified.
In ACM SIGMOBILE Mobile Computing and Communications Review,
pages 100--101, July 2002.
[5] Karthikeyan Bhargavan, Carl A. Gunter, and Davor Obradovic.
Fault Origin Adjudication. In Proceedings of the Workshop on
Formal Methods in Software Practice, Portland, OR, August 2000.
[6] C. Perkins, E. Royer, and S. Das. Ad hoc on demand distance
vector (AODV) routing for ip version 6 (work in progress).
Internet Draft, Internet Engineering Task Force, November 2001.
References [1] and [2] are normative; all others are informative.
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 26]
Internet Draft AODV 19 October 2003
A. Draft Modifications
The following are major changes between this version (00) of the AODV
draft and previous versions:
- Added Originator Sequence Number in RREP.
- Removed lifetime from RREP.
- Added lifetime extension.
- Require path accumulation in RREQ and RREP.
- Path information used to route RREP to the Originator node.
- Removed restriction requiring reverse route creation.
- Removed Many flags.
- Removed Precursors Lists.
- Removed Local Repair.
- Removed Expanding Ring Search.
- Removed AODV with other networks.
- Removed multicast discussion.
- Moved route check and update from RREQ, RREP and RERR to
section 6.2.
- Revamped routing table update section.
- Revamped route invalidation and RERR creation.
- Most of the removals will be described in an additional Internet
Draft and be used optionally depending on your network needs.
Author's Addresses
Questions about this memo can be directed to:
Charles E. Perkins
Communications Systems Laboratory
Nokia Research Center
313 Fairchild Drive
Mountain View, CA 94303
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 27]
Internet Draft AODV 19 October 2003
USA
+1 650 625 2986
+1 650 691 2170 (fax)
charles.perkins@nokia.com
Elizabeth M. Belding-Royer
Department of Computer Science
University of California, Santa Barbara
Santa Barbara, CA 93106
+1 805 893 3411
+1 805 893 8553 (fax)
ebelding@cs.ucsb.edu
Ian D. Chakeres
Department of Electrical and Computer Engineering
University of California, Santa Barbara
Santa Barbara, CA 93106
+1 805 893 8981
+1 805 893 8553 (fax)
idc@engineering.ucsb.edu
Perkins, Belding-Royer, Chakeres Expires 19 April 2003 [Page 28]