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.

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

| Aspect | AODV | DSR |
|---|---|---|
| Routing style | Hop-by-hop, table-driven at each node | Source routing, full path chosen at the sender |
| Where the route is stored | Routing table at every node on the path | Route cache, mainly at the source |
| What a data packet carries | Destination address only | Complete hop-by-hop route record |
| Per-packet overhead as hops grow | Stays constant, just the destination | Grows with every extra hop in the header |
| State required at intermediate nodes | One table entry per active destination | None; the packet already carries the path |
| Loop freedom mechanism | Destination sequence numbers | A node cannot repeat inside one route record |
| Route freshness mechanism | Destination sequence numbers, higher wins | Cache timeouts plus RERR-triggered removal |
| Routes cached per destination | Typically one active route | Often several, cached aggressively |
| Route maintenance messages | RERR, propagated via precursor lists | RERR, sent straight back to the source |
| Periodic messages | Optional HELLO messages | None required |
| Behaviour after a link break | Usually starts a fresh route discovery | Tries a cached alternative first |
| Scalability with network size | Scales better; overhead ignores path length | Header cost limits it on long paths |
| Effect of high mobility | Sequence numbers keep routes valid despite churn | Stale cache entries become more likely |
| Typical best fit | Larger networks, higher mobility | Smaller networks, low mobility |
Worked Example: One Route Discovery, Both Ways

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 copy | Path taken | Route record on arrival at D |
|---|---|---|
| Via C | S → C → D | [S, C] |
| Via A, B | S → 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.
| Node | Reverse route entry |
|---|---|
| A | destination S, next hop S |
| B | destination S, next hop A |
| C | destination 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
Frequently Asked Questions
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:
- Proactive vs Reactive Routing Protocols
- Cellular Network vs Ad Hoc Network
- Distance Vector vs Link State Routing
- Mesh vs Star Topology
- CS Fundamentals hub