390 likes | 551 Views
Ad-hoc On-Demand Distance Vector Routing. Charles E. Perkins Elizabeth M. Royer Second IEEE Workshop on Mobile Computing Systems and Applications, 1999 Required Reading: Sections 1, 2. A d Hoc O n-Demand D istance V ector Routing ( AODV ) [Perkins99].
E N D
Ad-hoc On-Demand Distance Vector Routing Charles E. Perkins Elizabeth M. Royer Second IEEE Workshop on Mobile Computing Systems and Applications, 1999 Required Reading: Sections 1, 2
Ad Hoc On-Demand Distance Vector Routing (AODV) [Perkins99] • DSR includes source routes in packet headers • Resulting large headers can sometimes degrade performance • particularly when data contents of a packet are small • AODV attempts to improve on DSR by maintaining routing tables at the nodes, so that data packets do not have to contain routes • AODV retains the desirable feature of DSR that routes are maintained only between nodes which need to communicate Wireless Networks
AODV • Route Requests (RREQ) are forwarded in a manner similar to DSR • When a node re-broadcasts a Route Request, it sets up in its routing table a reverse path pointing towards the source • AODV assumes symmetric (bi-directional) links • When the intended destination receives a Route Request, it replies by sending a Route Reply • Route Reply travels along the reverse path set-up when Route Request is forwarded Wireless Networks
Route Discovery • Every node maintains two counters • a node sequence number: Source_Seq # • a node broadcast id: Broadcast ID • Route Discovery: Initiated whenever a source node needs to communicate with another node for which it has no routing information • source node initiates path discovery by broadcasting a RREQ Wireless Networks
Route Discovery: Continued-I • RREQ contains the following fields: <Source_Addr, Source_Seq #, Source_Broadcast_ID, Dest_Addr, Dest_Seq #, Hop_Count> • Dest_Seq # : last destination sequence number known to source • Source_Addr, Source_Broadcast_ID : uniquely identifies RREQ • broadcast id is incremented whenever the source issues a new RREQ for the same destination Wireless Networks
type flags resvd hopcnt broadcast_id dest_addr dest_sequence_# source_addr source_sequence_# RREQ Packet Format Wireless Networks
Route Discovery: Continued-II • When an intermediate node receives a RREQ • if it has already received a RREQ with the same broadcast id and source address, it drops the redundant RREQ and does not rebroadcast it. • Each neighbor either satisfies RREQ by sending RREP back or rebroadcasts the RREQ after increasing “Hop_Count” Wireless Networks
Route Discovery: Continued-III • If a node cannot satisfy the RREQ it keeps needed information in order to implement reverse path setup as well as forward path setup • Dest_Addr • Source_Addr • Broadcast_ID • Dest_Seq # • Expiration time for reverse path route entry Wireless Networks
Reverse Path Setup • To set up a reverse path, a node records the address of the neighbor from which it received the first copy of the RREQ • These reverse path route entries are maintained for at least enough time for the RREQ to traverse the network and produce a RREP Wireless Networks
Route Requests in AODV Y Broadcast transmission Z S E F B C M L J A G H D K I N Represents transmission of RREQ Wireless Networks
Route Requests in AODV Y Z S E F B C M L J A G H D K I N Represents links on Reverse Path Wireless Networks
Reverse Path Setup in AODV Y Z S E F B C M L J A G H D K I N • Node C receives RREQ from G and H, but does not forward • it again, because node C has already forwarded RREQ once. • Similarly B & E do not forward RREQ again. Wireless Networks
Reverse Path Setup in AODV Y Z S E F B C M L J A G H D K I N Wireless Networks
Reverse Path Setup in AODV Y Z S E F B C M L J A G H D K I N • Node D does not forward RREQ, because node D • is the intended target of the RREQ Wireless Networks
Reverse Path Entry in Table of Router F RREP Destination Next Hope S E Reverse Path Routing Table Entry • A timer (route_request_expiration_timer ) is associated with every reverse path routing entry • purge reverse path routing entries from those nodes that do not lie on path from source to destination • expiration time depends upon size of ad-hoc network Wireless Networks
Forward Path Setup • Eventually, a RREQ will arrive at a node (possibly the destination itself) that possesses a current route to the destination. Wireless Networks
Forward Path Setup: Continued-I • If an intermediate node has a route entry for the desired destination, it determines whether the route is current • compare Dest_Seq # in its own “routing table entry” to the Dest_Seq # in the RREQ • If RREQ’s Dest_Seq # > “routing table entry” Dest_Seq # • intermediate node rebroadcasts the RREQ Wireless Networks
Forward Path Setup: Continued-II • If intermediate node has a current route to the destination ( i.e. a route with a dest_sequence_# >= dest_sequence_# in RREQ) • It unicasts a RREP back to its neighbor from which it received the RREQ Wireless Networks
Forward Path Setup: Continued-III • A RREP contains the following information: • source_addr • dest_addr • dest_sequence_# • hop_cnt • lifetime Wireless Networks
Forward Path Setup: Continued-IV • As the RREP travels back to the source, each node along the path • sets up a forward pointer to the node from which the RREP came • updates its timeout information for route entries to the source and destination • records the latest Dest_Seq # for the requested destination Wireless Networks
Forward Path Setup: Continued-V • A node receiving an RREP propagates the first RREP for a given source node towards that source. Wireless Networks
Forward Path Setup: Continued-VII • If a node receives further RREPs, it updates its routing information and propagates the RREP only if RREP contains either • a greater dest_sequence_# than the previous RREP • the same dest_sequence_# with a smaller hop count Wireless Networks
Forward Path Setup: Continued-VIII • This decreases the number of RREPs propagating towards the source while also ensuring the most up-to-date and quickest routing information. • The source node can begin data transmission as soon as the first RREP is received, and can later update its routing information if it learns of a better route. Wireless Networks
Route Reply in AODV Y Z S E F B C M L J A G H D K I N Represents links on path taken by RREP Wireless Networks
Forward Path Setup in AODV Y Z S E F B C M L J A G H D K I N Forward links are setup when RREP travels along the reverse path Represents a link on the forward path Wireless Networks
Entry in Table of Router F Destination Next Hope Number of Hops Destination Sequence # Active Neighbors Expiration time D J 2 N-1 E T Data Delivery in AODV Y DATA Z S E F B C M L J A G H D K I N Routing table entries used to forward data packet. Wireless Networks
Entry in Table of Router F Destination Next Hope Number of Hops D S # Expiration time D J 2 N-1 T Timeout: Forward Path Entries • A routing table entry maintaining a forward path is purged if not used for an “active_route_timeout” interval • even if the route may actually still be valid Wireless Networks
Link Failure Reporting • A neighbor is considered active for a routing table “entry” of a destination, if it originates or relays at least one packet for that destination within the most recent active timeout period, “active_route_timeout”. • A route entry is considered active if it is in use by any active neighbors • When the next hop link in a routing table entry breaks, all activeneighbors are informed • Each time a route entry is used, the timeout for the entry is reset to the current time plus“active_route_timeout”. • Link failures are propagated by means of Route Error, RERR, messages, which also update destination sequence numbers Wireless Networks
Route Error • When node F is unable to forward packet P (from node S to node D) on link (F,J), it generates a RERR message • Node F increments the destination sequence number (N-1 ) for D cached at node F • The incremented sequence number, N, is included in the RERR • When node S receives the RERR, it initiates a new route discovery for D using destination sequence number at least as large as N • When node D receives the route request with destination sequence numberN, node D will set its sequence number to N, unless it is already larger than N Wireless Networks
Entry in Table of Router F Destination Next Hope Number of Hops Destination Sequence # Active Neighbors Expiration time D J 2 N-1 E T Routing Table Entry • Expiration time for a route table entry • Each time a route entry is used to transmit data from a source toward a destination, the timeout for the entry is reset to the current time plus active_route_timeout (a parameter of AODV) Wireless Networks
Link Failure Detection • Hello messages: Neighboring nodes periodically exchange hello messages • Absence of hello message is used as an indication of link failure • Alternatively, failure to receive several MAC-level acknowledgement may be used as an indication of link failure Wireless Networks
Why Sequence Numbers in AODV • To avoid using old/broken routes • To determine which route is newer • To prevent formation of loops • Assume that A does not know about failure of link C-D because RERR sent by C is lost • Now C performs a route discovery for D. Node A receives the RREQ (say, via path C-E-A) • Node A will reply since A knows a route to D via node B • Results in a loop (C-E-A-B-C ) A B C D E Wireless Networks
Why Sequence Numbers in AODV • Loop C-E-A-B-C • When A receives the RREQ, It will not forward the RREP indicating the route A-B-C because this route has a smaller sequence # (i.e. N-1) than what was in the RREQ sent by C (i.e. N) • Hence loop will not be formed A B C D E Wireless Networks
Optimization: Expanding Ring Search • Route Requests are initially sent with small Time-to-Live (TTL) field, to limit their propagation • DSR also includes a similar optimization • If no Route Reply is received, then larger TTL tried Wireless Networks
AODV Path Maintenance I • If the source node moves during an active session, it can reinitiate the route discovery procedure to establish a new route to the destination. • When either the destination or some intermediate node moves, a special RREP is sent to the affected source nodes. • Link failures detected using: • Periodic hello messages • Link-layer acknowledgments • If attempts to forward a packet to the next hop fail Wireless Networks
AODV Path Maintenance II • Once next hop becomes unreachable, the node upstream of the break propagates to all active upstream neighbors an unsolicited RREP with • a dest_sequence_# one greater than previously known dest_sequence_# • hop count of ∞ • Those nodes subsequently relay that message to their active neighbors • Process continues until all active source nodes are notified • Process terminates because AODV maintains only loop-free routes and there are only a finite number of nodes in the ad-hoc network Wireless Networks
AODV Path Maintenance III • Upon receiving notification of a broken link, source node can restart route discovery if still requires a route to destination • Check whether route has been used recently • Inspect upper-level protocol control blocks to see whether connections remain open using the indicated destination Wireless Networks
AODV Path Maintenance IV • If a source node (or any other node along previous route) decides to rebuild route to destination • Sends RREQ with a dest_sequence_# one greater than previously known dest_sequence_# • Ensures • A new route • No nodes reply if they still regard previous route as valid Wireless Networks
Summary: AODV • Routes need not be included in packet headers • Nodes maintain routing tables containing entries only for routes that are in active use • At most one next-hop per destination maintained at each node • DSR may maintain several routes for a single destination • Unused routes expire even if topology does not change • Routing Table Entry: {Destination , Next Hop, No of Hops, D.S. #, Active neighbors, Expiration time} Wireless Networks