Network Working Group D. Johnson
Request for Comments: 4728 Rice University
Category: Experimental Y. Hu
UIUC
D. Maltz
Microsoft Research
February 2007
The Dynamic Source Routing Protocol (DSR)
for Mobile Ad Hoc Networks for IPv4
Status of This Memo
This memo defines an Experimental Protocol for the Internet
community. It does not specify an Internet standard of any kind.
Discussion and suggestions for improvement are requested.
Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Abstract
The Dynamic Source Routing protocol (DSR) is a simple and efficient
routing protocol designed specifically for use in multi-hop wireless
ad hoc networks of mobile nodes. DSR allows the network to be
completely self-organizing and self-configuring, without the need for
any existing network infrastructure or administration. The protocol
is composed of the two main mechanisms of "Route Discovery" and
"Route Maintenance", which work together to allow nodes to discover
and maintain routes to arbitrary destinations in the ad hoc network.
All aspects of the protocol operate entirely on demand, allowing the
routing packet overhead of DSR to scale automatically to only what is
needed to react to changes in the routes currently in use. The
protocol allows multiple routes to any destination and allows each
sender to select and control the routes used in routing its packets,
for example, for use in load balancing or for increased robustness.
Other advantages of the DSR protocol include easily guaranteed loop-
free routing, operation in networks containing unidirectional links,
use of only "soft state" in routing, and very rapid recovery when
routes in the network change. The DSR protocol is designed mainly
for mobile ad hoc networks of up to about two hundred nodes and is
designed to work well even with very high rates of mobility. This
document specifies the operation of the DSR protocol for routing
unicast IPv4 packets.
Johnson, et al. Experimental [Page 1]
RFC 4728 The Dynamic Source Routing Protocol February 2007
Table of Contents
1. Introduction ....................................................5
2. Assumptions .....................................................7
3. DSR Protocol Overview ...........................................9
3.1. Basic DSR Route Discovery .................................10
3.2. Basic DSR Route Maintenance ...............................12
3.3. Additional Route Discovery Features .......................14
3.3.1. Caching Overheard Routing Information ..............14
3.3.2. Replying to Route Requests Using Cached Routes .....15
3.3.3. Route Request Hop Limits ...........................16
3.4. Additional Route Maintenance Features .....................17
3.4.1. Packet Salvaging ...................................17
3.4.2. Queued Packets Destined over a Broken Link .........18
3.4.3. Automatic Route Shortening .........................19
3.4.4. Increased Spreading of Route Error Messages ........20
3.5. Optional DSR Flow State Extension .........................20
3.5.1. Flow Establishment .................................21
3.5.2. Receiving and Forwarding Establishment Packets .....22
3.5.3. Sending Packets along Established Flows ............22
3.5.4. Receiving and Forwarding Packets Sent along
Established Flows ..................................23
3.5.5. Processing Route Errors ............................24
3.5.6. Interaction with Automatic Route Shortening ........24
3.5.7. Loop Detection .....................................25
3.5.8. Acknowledgement Destination ........................25
3.5.9. Crash Recovery .....................................25
3.5.10. Rate Limiting .....................................25
3.5.11. Interaction with Packet Salvaging .................26
4. Conceptual Data Structures .....................................26
4.1. Route Cache ...............................................26
4.2. Send Buffer ...............................................30
4.3. Route Request Table .......................................30