The short answer

AODV vs DSR comes down to where the route actually lives. DSR (Dynamic Source Routing) writes the complete hop-by-hop path into a route record inside every packet header. So an intermediate node just forwards along that fixed path and stores nothing about it. AODV (Ad hoc On-Demand Distance Vector) instead builds a routing-table entry at each node, one next hop per destination. A data packet then carries only the destination address, and every node looks up its own next hop. Because the route never travels with the packet, AODV needs destination sequence numbers to prove a route is still fresh. DSR instead leans on its route cache and on RERR (route error) messages once a link breaks. Even so, neither protocol wins in every case. DSR tends to suit small, low-mobility networks, while AODV scales better as the network and its mobility grow.

Picture a rescue team relaying messages across hilly terrain, with no cell tower anywhere nearby. That scene describes a mobile ad hoc network, or MANET, a group of mobile nodes that forms its own network on the fly. Indeed, every node in a MANET can move, join, or drop out at any moment. So routing between any two nodes has to adapt right along with it.

Some routing protocols keep a route to every destination ready in advance. Our guide to proactive vs reactive routing protocols covers that split in full. AODV and DSR both take the reactive path instead. Neither one bothers computing a route until traffic actually needs it.

This guide covers each protocol’s route discovery and route maintenance in full. It then runs one small topology through both algorithms, side by side. So you can see exactly where the routes and the overhead diverge. A comparison table and exam-style questions follow, tuned for GATE-level revision.

Five-node network diagram with S on the left and D on the right, connected by an upper path through A and B and a lower path through C
One small topology, two possible paths from S to D: this is the network both algorithms search.

Why Ad Hoc Networks Need On-Demand Routing

Unlike a fixed network, a MANET has no router, no switch, and no fixed backbone. Every node doubles as both host and router, forwarding traffic for its neighbours. Links appear and vanish as nodes drift in and out of radio range. That constant reshuffling gives ad hoc networks a loose, mesh-like topology. It never settles into a fixed star built around one hub.

A proactive protocol keeps a route to every destination ready at all times. It rebuilds its tables whenever the topology shifts, which in a MANET happens often. So a proactive table can go stale before it even gets used. Meanwhile, the update traffic burns bandwidth along the way.

Instead, AODV and DSR skip that upkeep entirely. Each one starts a route discovery only when a node actually has data to send. Once a route is found, it stays in use until a link breaks or it expires. That on-demand habit is exactly why both protocols count as reactive, not proactive.

The DSR Protocol

DSR stands for Dynamic Source Routing. As a result, every data packet it sends carries the complete hop-by-hop path inside its own header. So no intermediate node needs to know anything about the destination beyond forwarding the packet along that listed path.

Route Discovery. The source broadcasts an RREQ (route request) that starts out with an empty route record. Each forwarding node appends its own address to that record before passing the packet on. When the RREQ reaches the destination, or a node already holding a cached route, it turns around. An RREP (route reply) then carries the full accumulated route back to the source.

A DSR RREQ carries three fields as it travels, laid out like this:

  • source: the node that started the search
  • destination: the node being searched for
  • route record: addresses appended so far, empty at the start

The RREP that eventually returns simply carries that finished route record back, unchanged.

Route Cache. DSR nodes cache routes aggressively, often several routes to the same destination at once. A node can also learn a route just by overhearing a packet meant for someone else. That cache is why DSR can often recover from a broken link without a fresh search. An alternative just needs to already be sitting in memory.

Route Maintenance. When a node detects a broken link, it sends an RERR back toward the source. The source then drops that route and checks its cache for a working alternative. Only when no cached route survives does it start a brand-new route discovery.

Advantages of DSR.

  • Intermediate nodes hold no routing-table state at all, since the route travels inside the packet.
  • Aggressive caching, plus overhearing, often avoids a fresh discovery once a link breaks.
  • Multiple cached routes give the source an instant fallback to try.

Disadvantages of DSR.

  • Every packet header grows with the number of hops, so overhead rises on longer routes.
  • Stale cache entries can linger after the topology changes, pointing at routes that no longer exist.
  • Heavy caching adds memory pressure on nodes tracking many active destinations.

The AODV Protocol

AODV stands for Ad hoc On-Demand Distance Vector. Instead of a path inside the packet, each node keeps a routing-table entry. Specifically, that entry names only the next hop toward a destination. A data packet then carries just the destination address, and every node looks up its own next hop.

Route Discovery. The source floods an RREQ toward the destination. As it spreads, every node it passes through sets up a reverse route pointing back toward the source. The destination, or a node with a route fresh enough to answer, then unicasts an RREP. That reply travels back along the same reverse path. Forward-route entries get installed at each node along the way.

AODV computes its routes in a distance-vector style. Unlike a link-state protocol, though, it works only on demand, never by flooding full topology maps. Its defining feature is the destination sequence number attached to every route. A higher sequence number always means a fresher route. That single number keeps AODV loop-free. It also lets a node reject a stale route in favour of a newer one. AODV inherits the idea directly from DSDV (Destination-Sequenced Distance-Vector routing).

Route Maintenance. A node that loses a link sends an RERR upstream. It uses a precursor list, so it knows exactly which neighbours relied on that route. Some deployments also send periodic HELLO messages. So a node can spot a dead neighbour before a data packet ever fails against it. Eventually, a route left unused for too long simply expires, under an active route timeout.

A single AODV routing-table entry looks like this:

  • destination: the node this entry is for
  • next hop: the neighbour to forward toward, not the full path
  • sequence number: how fresh this route is currently known to be

Advantages of AODV.

  • Data packets stay small, since only the destination address travels with them.
  • Destination sequence numbers guarantee loop freedom without extra bookkeeping.
  • Per-packet overhead never grows with the number of hops on a route.

Disadvantages of AODV.

  • Every intermediate node must hold routing-table state for each active destination.
  • A broken route usually forces a fresh discovery, rather than falling back on a cache.
  • Optional HELLO messages add periodic overhead even when nothing is being sent.

AODV vs DSR: Comparison Table

Infographic comparing AODV and DSR on routing hop-by-hop versus source routing, packet carries destination only versus full path, freshness by sequence numbers versus route cache, and best fit larger versus smaller networks
AODV vs DSR at a glance: routing style, packet contents, freshness mechanism, and best fit.
AspectAODVDSR
Routing styleHop-by-hop, table-driven at each nodeSource routing, full path chosen at the sender
Where the route is storedRouting table at every node on the pathRoute cache, mainly at the source
What a data packet carriesDestination address onlyComplete hop-by-hop route record
Per-packet overhead as hops growStays constant, just the destinationGrows with every extra hop in the header
State required at intermediate nodesOne table entry per active destinationNone; the packet already carries the path
Loop freedom mechanismDestination sequence numbersA node cannot repeat inside one route record
Route freshness mechanismDestination sequence numbers, higher winsCache timeouts plus RERR-triggered removal
Routes cached per destinationTypically one active routeOften several, cached aggressively
Route maintenance messagesRERR, propagated via precursor listsRERR, sent straight back to the source
Periodic messagesOptional HELLO messagesNone required
Behaviour after a link breakUsually starts a fresh route discoveryTries a cached alternative first
Scalability with network sizeScales better; overhead ignores path lengthHeader cost limits it on long paths
Effect of high mobilitySequence numbers keep routes valid despite churnStale cache entries become more likely
Typical best fitLarger networks, higher mobilitySmaller networks, low mobility

Worked Example: One Route Discovery, Both Ways

Same five-node topology shown twice, DSR on the left carrying the full route S C D in the packet, AODV on the right showing next-hop labels at S and C
Same route found, two different endings: DSR writes the whole path in the packet, AODV leaves one next-hop entry per node.

Take a five-node network with exactly these links: S-A, A-B, B-D, S-C, C-D. Two paths connect S to D: S-A-B-D across three hops, and S-C-D across two hops. Watch the same request travel through both protocols below.

DSR route discovery. S broadcasts an RREQ carrying an empty route record. One copy travels through C, and the other through A and B. Each forwarding node appends its own address before passing the packet on.

RREQ copyPath takenRoute record on arrival at D
Via CS → C → D[S, C]
Via A, BS → A → B → D[S, A, B]

Then D replies with an RREP carrying the full route back to S. So S caches S-C-D as its primary route. It can also keep S-A-B-D on hand as a cached alternative.

A data packet from S to D now carries the complete path in its header, for example [S, C, D]. Every node along the way just reads that list and forwards accordingly.

Suppose the link between C and D breaks. S already holds S-A-B-D in its cache. So it switches to that alternative right away, without starting a new discovery.

AODV route discovery. S broadcasts the same kind of RREQ. As it spreads outward, A, B, and C each install a reverse route pointing back toward S.

NodeReverse route entry
Adestination S, next hop S
Bdestination S, next hop A
Cdestination S, next hop S

D accepts the RREQ copy that arrived through C, the two-hop path. It unicasts an RREP back along that same reverse path. As the RREP travels, forward routes get installed hop by hop. Specifically, S stores next hop C, and C stores next hop D.

A data packet from S to D now carries only the destination address, D. S checks its table and forwards to C; C checks its own table and forwards to D.

Suppose that same C-D link breaks. C sends an RERR back toward S. S has no cached alternative waiting, so it normally starts a fresh route discovery.

Same topology, same request, two very different endings. DSR finishes with the whole route written inside the packet. By comparison, AODV finishes with one next-hop entry sitting at each node along the way. The next section counts what that difference actually costs.

Where the Overhead Actually Goes

Go back to the worked example above. DSR’s data packet header held [S, C, D], three addresses for a two-hop path. Stretch that same route to five or six hops, and the header grows right along with it.

In contrast, AODV never pays that per-packet price. Its data packet carried only D, regardless of how many hops separated S from D. The cost instead sits at each node, in a routing-table entry that has to be created, refreshed, and eventually expired.

That trade mirrors a familiar one from transport protocols. A connection-oriented style fixes a path once and reuses it, much like DSR’s cached route. A hop-by-hop style rebuilds state along the way as needed, closer to AODV’s table entries.

So the real question is not which protocol carries less overhead outright. It is whether that overhead sits inside the packet, growing with every hop. Or it sits inside the node instead, growing with every destination tracked.

When to Use Which

DSR tends to do better in smaller networks with low mobility. Its aggressive caching pays off once topology stays stable long enough for a cached route to actually get reused.

Meanwhile, AODV scales better as the network grows, and as mobility increases. Its per-packet overhead never grows with path length, so long routes stay cheap to use. Frequent link breaks also hurt it less, since every node already holds its own next-hop state.

Neither protocol wins outright across every scenario. The right pick depends on network size, node speed, and how often the topology actually changes.

Interview Questions

DSR uses source routing, so the sender decides the whole path in advance and writes it into the header. AODV uses hop-by-hop routing instead, and each node stores only the next hop for a destination. So an AODV packet just needs the destination address, and every node along the way makes its own forwarding decision.

They let a node tell a fresh route from a stale one. Every route carries a sequence number, and a higher number always wins. That single rule prevents routing loops and stops an old, broken route from being reused. AODV inherits this idea directly from DSDV.

DSR nodes cache more than one route to the same destination whenever possible. When an RERR reports a break, the source first checks its cache for an alternative. Only when no cached route survives does it fall back to a fresh discovery. That caching is exactly why DSR can skip the search so often.

AODV typically keeps just one active route per destination, with no built-in alternative waiting. Once that route’s link breaks, the node sends an RERR. The source is then left with nothing to fall back on. DSR’s aggressive caching means a second route is often already sitting in memory, ready to use.

Frequently Asked Questions

No. AODV is reactive, exactly like DSR. It builds a route only when a node actually needs one. AODV never keeps tables for every destination ready in advance.

No. AODV computes routes in a distance-vector style, done on demand rather than by flooding full topology information. It only ever learns the next hop toward a destination, never the complete map of the network.

Yes. DSR uses RERR messages just like AODV does. When a node detects a broken link, it sends an RERR back to the source. The source then falls back on a cached route, or starts a fresh discovery instead.

AODV does, not DSR. Destination sequence numbers are AODV’s defining mechanism for proving route freshness and preventing loops. DSR instead relies on its route cache and RERR messages to manage stale routes.

Neither wins in every situation. DSR tends to perform better in smaller, low-mobility networks, thanks to its aggressive caching. AODV scales better as the network grows and mobility increases, since its per-packet overhead stays flat regardless of path length.

No. Because the complete route travels inside every packet, an intermediate node just reads that route and forwards accordingly. It needs no persistent routing-table state, unlike an AODV node, which must maintain a next-hop entry for every active destination.

Wrapping Up

AODV and DSR both solve the same problem inside a MANET: finding a route only when one is actually needed. DSR answers with source routing, a full path folded into every packet. AODV answers with hop-by-hop tables, one next-hop entry per node, kept fresh with destination sequence numbers.

Remember the exam essentials. Both protocols are reactive, never proactive. Destination sequence numbers belong to AODV, inherited from DSDV, not to DSR. Still, DSR always keeps a route-maintenance mechanism through RERR messages. Neither protocol is a universal winner; the right choice depends on network size and mobility.

Related reading on DiffStudy:


Whatsapp-color Created with Sketch.

By Arun Kumar

Full Stack Developer with a BE in Computer Science, working with React, Next.js, Node.js, MongoDB, and AI/ML tools. Founder of DiffStudy — built to help CS students ace GATE and university exams, and keep developers up to date across AI, cloud, system design, web development, and every field of computer science. Every article is written from real hands-on experience, not just theory.

Leave a Reply

Your email address will not be published. Required fields are marked *


You cannot copy content of this page