0% found this document useful (0 votes)
219 views28 pages

AODV vs DSR: Ad Hoc Routing Protocols

The document discusses two ad hoc routing protocols: Dynamic Source Routing (DSR) and Ad-hoc On-demand Distance Vector Routing (AODV). Both are on-demand protocols that discover routes only when needed. DSR uses source routing, including the full path in packet headers. AODV uses hop-by-hop routing with nodes determining the next hop based on routing tables. Performance tests show that DSR has lower overhead while AODV scales better to larger networks with higher mobility and traffic loads.

Uploaded by

shub001
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
219 views28 pages

AODV vs DSR: Ad Hoc Routing Protocols

The document discusses two ad hoc routing protocols: Dynamic Source Routing (DSR) and Ad-hoc On-demand Distance Vector Routing (AODV). Both are on-demand protocols that discover routes only when needed. DSR uses source routing, including the full path in packet headers. AODV uses hop-by-hop routing with nodes determining the next hop based on routing tables. Performance tests show that DSR has lower overhead while AODV scales better to larger networks with higher mobility and traffic loads.

Uploaded by

shub001
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Ad Hoc Routing:

The AODV and DSR Protocols

Jonathan Sevy
Geometric and Intelligent Computing Lab
Drexel University
[Link]
Routing Overview
• Network with nodes, edges
• Goal: Devise scheme for
transferring message from
one node to another
msg

– Which path?
– Who decides – source or
intermediate nodes?
Which path?
• Generally try to optimize something:
– Shortest path (fewest hops)
– Shortest time (lowest latency)
– Shortest weighted path (utilize available
bandwidth)
– Etc…
Who determines route?
Two general approaches:
• Source (“path”) routing
– Source specifies entire route: places complete
path to destination in message header: A – D –
F–G
– Intermediate nodes just forward to specified
next hop: D would look at path in header,
forward to F
– Like airline travel – get complete set of tickets
to final destination before departing…
• Destination (“hop-by-hop”) routing
– Source specifies only destination in message
header: G
– Intermediate nodes look at destination in
header, consult internal tables to determine
appropriate next hop
– Like postal service – specify only the final
destination on an envelope, and intermediate
post offices select where to forward next…
Comparison
• Source routing • Destination routing
– Moderate source – No source storage
storage (entire route – High intermediate node
for each desired dest.) storage (table w/
– No intermediate node routing instructions for
storage all possible dests.)
– Higher routing – Lower routing
overhead (entire path overhead (just dest in
in message header, header, only routers
route discovery need deal w/ route
messages) discovery)
Ad Hoc Routing
• Every node participates in routing: no
distinction between “routers” and “end
nodes”
• No external network setup: “self-
configuring”
• Especially useful when network topology is
dynamic (frequent network changes – links
break, nodes come and go)
Common application
• Mobile wireless hosts
– Only subset within range at given time
– Want to communicate with any other node
Ad Hoc Routing Protocols
• Standardization effort led by IETF Mobile
Ad-hoc Networks (MANET) task group
– [Link]
.html
– 9 routing protocols in draft stage, 4 drafts
dealing with broadcast / multicast / flow issues
• Other protocols being researched
– utilize geographic / GPS info, ant-based
techniques, etc.
Leading MANET Contenders
• DSR: Dynamic Source Routing
– Source routing protocol
• AODV: Ad-hoc On-demand Distance Vector
Routing
– “Hop-by-hop” protocol

• Both are “on demand” protocols: route


information discovered only as needed
Dynamic Source Routing
• Draft RFC at
[Link]
-[Link]
• Source routing: entire path to destination
supplied by source in packet header
– Utilizes extension header following standard IP
header to carry protocol information (route to
destination, etc.)
DSR Protocol Activities
• Route discovery
– Undertaken when source needs a route to a
destination
• Route maintenance
– Used when link breaks, rendering specified
path unusable
• Routing (easy!)
Route Discovery
• Route Request:
– Source broadcasts Route Request message for
specified destination
– Intermediate node:
• Adds itself to path in message
• Forwards (broadcasts) message toward destination
• Route Reply
– Destination unicasts Route Reply message to
source
• will contain complete path built by intermediate nodes
Details, details…
• Intermediate nodes cache overheard routes
– “Eavesdrop” on routes contained in headers
– Reduces need for route discovery
• Intermediate node may return Route Reply to source
if it already has a path stored
– Encourages “expanding ring” search for route

• Destination may need to discover route to source to deliver Route Reply


– piggyback Route Reply onto new Route Request to prevent “infinite loop”
• Route Request duplicate rejection:
– Source includes identification number in Route Request
– Partial path inspected for “loop”
Route Maintenance
• Used when link breakage occurs
– Link breakage may be detected using link-layer ACKs,
“passive ACKs”, DSR ACK request
– Route Error message sent to source of message being
forwarded when break detected
– Intermediate nodes “eavesdrop”, adjust cached routes
– Source deletes route; tries another if one cached, or issues
new Route Request
• Piggybacks Route Error on new Route Request to clear
intermediate nodes’ route caches, prevent return of invalid route
Issues
• Scalability
– Discovery messages broadcast throughout
network
• Broadcast / Multicast
– Use Route Request packets with data included
• Duplicate rejection mechanisms prevent “storms”
– Multicast treated as broadcast; no multicast-tree
operation defined
• Scalability issues
– [Link]
[Link]
Ad-hoc On-demand Distance
Vector Routing
• Draft RFC at
[Link]
-[Link]
• “Hop-by-hop” protocol: intermediate nodes
use lookup table to determine next hop
based on destination
• Utilizes only standard IP header
AODV Protocol Activities
• Route discovery
– Undertaken whenever a node needs a “next
hop” to forward a packet to a destination
• Route maintenance
– Used when link breaks, rendering next hop
unusable
• Routing (easy!)
Route Discovery
• Route Request:
– Source broadcasts Route Request (RREQ)
message for specified destination
– Intermediate node:
• Forwards (broadcasts) message toward destination
• Creates next-hop entry for reverse path to source, to
use when sending reply (assumes bidirectional link…)
• Route Reply
– Destination unicasts Route Reply (RREP)
message to source
• RREP contains sequence number, hop-count field
(initialized to 0)
• Will be sent along “reverse” path hops created by
intermediate nodes which forwarded RREQ
– Intermediate node:
• Create next-hop entry for destination as RREP is
received, forward along “reverse path” hop
• Increment hop-count field in RREP and forward
– Source:
• If multiple replies, uses one with lowest hop count
Details again…
• Each node maintains nondecreasing sequence number
– Sent in RREQ, RREP messages; incremented with each
new message
– Used to “timestamp” routing table entries for “freshness”
comparison
• Intermediate node may return RREP if it has routing
table entry for destination which is “fresher” than
source’s (or equal with lower hop count)

• Routing table entries assigned “lifetime”, deleted on expiration


• Unique ID included in RREQ for duplicate rejection
Route Maintenance
• Used when link breakage occurs
– Link breakage detected by link-layer ACK, “passive
ACK”, AODV “Hello” messages
• Detecting node may attempt “local repair”
– Send RREQ for destination from intermediate node
• Route Error (RERR) message generated
– Contains list of unreachable destinations
– Sent to “precursors”: neighbors who recently sent
packet which was forwarded over broken link
• Propagated recursively
Issues
• Scalability
– No inherent “subnetting” provision in routing
tables – one entry per destination
• Directionality
– Assumes there is at least one bidirectional path
between any two nodes
Issues (cont.)
• Multicast
– True multicast-tree generation and maintenance
– Detailed in supplementary (expired…) draft:
[Link]
[Link]
• Broadcast
– Suggested use of IP Ident field for duplicate detection
– [Link]
[Link]
Protocol Performance Tests
• “A Performance Comparison of Multi-Hop Wireless Ad
Hoc Network Rotuing Protocols”, D. Johnson et al.,
MobiCom ’98 Proceedings.
– By the creators of DSR

• “Performance Comparison of Two On-Demand Routing


Protocols for Ad Hoc Networks”, C. Perkins et al., IEEE
Personal Communications, February 2001.
– By the creators of AODV

• Both used ns-2 simulator, simulated 802.11 link layer


Johnson et al
• Compared DSR, AODV, DSDV, TORA
– Varied number of sources, node mobility, traffic load
• 50 nodes total, 64-byte data packets
– Looked at packet delivery ratio, routing overhead
• Conclusions:
– DSR, AODV similar on packet delivery ratio
– DSR much lower routing traffic overhead (excluding
DSR’s routing header extension in each data packet)
– TORA, DSDV performed very poorly in certain
situations (low packet delivery ratio)
Perkins et al
• Compared DSR and AODV
– Varied number of sources, node mobility, traffic load
• 50 and 100 nodes, 512-byte data packets
– Looked at packet delivery ratio, packet delay, routing
overhead, total network throughput
• Conclusions:
– DSR outperforms with fewer nodes, lower traffic load, less
node mobility
– AODV outperforms when have more nodes, higher traffic
load, greater node mobility
• DSR always lower routing overhead (excluding routing header)
• DSR poor delivery ratio when many nodes, many sources, high
mobility
Linux Implementations
• DSR
– Sourceforge “PicoNet” project (bad name choice… ),
Alex Song:
[Link]
• AODV
– NIST “Kernel AODV” implementation, Luke
Klein-Berndt:
[Link]

You might also like