Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
❒ Summary
5-1
Dynamic Source Routing (DSR)
❒ When node S wants to send a packet to
node D, but does not know a route to D,
node S initiates a route discovery
❒ Source node S floods Route Request
(RREQ)
❒ Each RREQ, has sender’s address,
destination’s address, and a unique Request
ID determined by the sender
❒ Each node appends own identifier when
forwarding RREQ
5-2
Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
❒ Summary
5-3
Route Discovery in DSR –
Example 1
5-4
DSR – Route Discovery
B
RREQ:S
S A
C D
1. Node S needs a route to D
2. Broadcasts RREQ packet
5-5
DSR – Route Discovery
B
RREQ:S
S A
C D
1. Node S needs a route to D
2. Broadcasts RREQ packet
3. Node A receives packet, has no route to D
❒ Rebroadcasts packet after adding its address to source
route
5-6
Route Discovery – Node Actions
❒ Upon receiving a RREQ, the node takes
the following actions:
1. The node is the Target (Destination)
❍ Returns a Route Reply (RREP) message to the
sender
❍ Copies the accumulated route record from
RREQ into RREP
❍ Sender upon receiving RREP, caches the route
in its route cache for subsequent routing
5-7
Route Discovery – Node Actions
2. The node is the intermediate node
❍ The node discards this message, if
1.The message has the same ID i.e. has seen it before
OR
2. Finds its own address in the route record
❍ If Not, The node appends its own address to
the route record in the ROUTE REQUEST
message
1. Propagates the message to the next hop neighbors
5-8
DSR – Route Discovery
B
RREQ:S, A
S A
C D
1. Node S needs a route to D
2. Broadcasts RREQ packet
3. Node A receives packet, has no route to D
❒ Rebroadcasts packet after adding its address to source
route
5-9
DSR – Route Discovery
B
RREQ: S, A
S A RREQ: S, A
D
C
4. Node C receives RREQ, has no route to D
❍ Rebroadcasts packet after adding its address to source
route
5-10
DSR – Route Discovery
RREQ: S, A, C
S A
C D
4. Node C receives RREQ, has no route to D
❍ Rebroadcasts packet after adding its address to source
route
5-11
DSR – Route Discovery
RREQ: S, A, C
S A
C D
4. Node C receives RREQ, has no route to D
❍ Rebroadcasts packet after adding its address to source
route
5. Node D receives RREQ, unicasts RREP to C
❍ Puts D in RREP source route
5-12
Route Reply in DSR
❒ Route Reply can be sent by reversing the route in Route
Request (RREQ) only if links are guaranteed to be bi-
directional
❍ One way to ensure this is to check, if the received RREQ was
on a link that is known to be bi-directional, e.g.
❒ If IEEE 802.11 MAC is used to send data, then links have to
be bi-directional (since Ack is used)
❒ If unidirectional (asymmetric) links are allowed, then RREP
may need a route discovery for S from node D
❍ Route discovery not needed -> If node D already knows a route
to node S
❍ If a route discovery is initiated by D for a route to S, then the
Route Reply is piggybacked on the Route Request from D.
5-13
DSR – Route Reply
S A
C D
RREP: D
4. Node C receives RREQ, has no route to D
❍ Rebroadcasts packet after adding its address to source
route
5. Node D receives RREQ, unicasts RREP to C
❍ Puts D in RREP source route
5-14
DSR – Route Reply
RREP: D, C
S A RREP: D
C D
6. Node C receives RREP
❍ Adds its address to source route
❍ Unicasts to A
5-15
DSR – Route Reply
B
RREP: D, C, A RREP: D, C
RREP: D
S A
C D
7. Node A receives RREP
❍ Adds its address to source route
❍ Unicasts to S
5-16
DSR – Route Reply
B
RREP: D, C, A RREP: D, C
RREP: D
S A
C D
7. Node S receives RREP
❍ Uses route for data packet transmissions
5-17
Route Discovery in DSR –
Example 2
5-18
Route Discovery in DSR
Y
Z
S E
F
B
C M L
J
A G
H D
K
I N
Represents a node that has received RREQ for D from S
5-19
Route Discovery in DSR
Y
Broadcast transmission
[S] Z
S E
F
B
C M L
J
A G
H D
K
I N
Represents transmission of RREQ
[X,Y] Represents list of identifiers appended to RREQ
5-20
Route Discovery in DSR
Y
Z
S [S,E]
E
F
B
C M L
J
A [S,C] G
H D
K
I N
Node H receives packet RREQ from two neighbors:
potential for collision
5-21
Route Discovery in DSR
Y
Z
S E
F [S,E,F]
B
C M L
J
A G
H D
[S,C,G] 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
5-22
Route Discovery in DSR
Y
Z
S E
F [S,E,F,J]
B
C M L
J
A G
H D
K
I [S,C,G,K] N
Nodes J and K both broadcast RREQ to node D
Since nodes J and K are hidden from each other, their
transmissions may collide
5-23
Route Discovery in DSR
Y
Z
S E
F [S,E,F,J,M]
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 route discovery
5-24
Route Discovery – Send Buffer
❒ During Route Discovery, the sending node saves a
copy of the message in the send buffer
❒ Send buffer has a copy of every packet that
cannot be transmitted by this node due to lack of
a route
❒ Each packet is time stamped and discarded after a
specified time out period, if it cannot be
forwarded
❒ For packets waiting in the send buffer, the node
should occasionally initiate a new route discovery
5-25
Route Discovery – Send Buffer
❒ New Route Discovery rate for the same destination
node should be limited if the node is currently
unreachable
❍ Results in wastage of wireless bandwidth due to a large
number of RREQs destined for the same destination -> High
overhead
❍ To reduce the overhead, the node goes into exponential
back-off for the new route discovery of the same target
❍ Packets are buffered that are received during the back-off
5-26
Route Reply in DSR
Y
Z
S RREP [D,J,F, E,S]
E
F
B
C M L
J
A G
H D
K
I N
Represents RREP control message
5-27
Dynamic Source Routing (DSR)
❒ Node S on receiving RREP, caches the
route included in the RREP
❒ When node S sends a data packet to D, the
entire route is included in the packet
header
❍ hence the name source routing
❒ Intermediate nodes use the source route
included in a packet to determine to whom
a packet should be forwarded
5-28
Data Delivery in DSR
Y
DATA [S,E,F,J,D] Z
S
E
B F
M L
C J
A G
H D
K
I N
Packet header size grows with route length
5-29
Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
5-30
DSR Optimization: Route Caching
❒ Each node caches a new route it learns by any means
❒ When node S finds route [S,E,F,J,D] to node D, node S also
learns route [S,E,F] to node F
❒ When node K receives Route Request [S,C,G] destined for
node D, node K learns route [K,G,C,S] to node S
❒ When node F forwards Route Reply RREP [D,J,F, E,S], node
F learns route [F, J, D] to node D
❒ When node E forwards Data [S,E,F,J,D] it learns route
[E,F,J,D] to node D
❒ A node may also learn a route when it overhears Data
packets
5-31
Use of Route Caching
❒ When node S learns that a route to node D is
broken,
❍ Can use another route from its local cache, if such a
route to D exists in its cache.
❍ Otherwise, node S initiates route discovery by sending a
route request
❒ Node X on receiving a Route Request for some
node D can send a Route Reply if node X knows a
route to node D
❒ Use of route cache
❍ can speed up route discovery
❍ can reduce propagation of route requests
5-32
Use of Route Caching - Example
[S,E,F,J,D]
[E,F,J,D]
S E [F,J,D],[F,E,S]
F [J,F,E,S]
B
C M L
J
A [C,S] G
H [G,C,S] D
K
I N
Represents cached route at a node
(DSR maintains the cached routes in a tree format)
5-33
Use of Route Caching: Benefits –
(1) Speed up of Route Discovery
[S,E,F,J,D]
[E,F,J,D]
S E [F,J,D],[F,E,S]
F [J,F,E,S]
B
C [G,C,S] M L
J
A [C,S] G
H D
[K,G,C,S] K
I RREP N
RREQ
Z
When node Z sends a route request
for node C, node K sends back a route
reply [Z,K,G,C] to node Z using a locally
cached route 5-37
Use of Route Caching: Benefits -
(2) Reduction in Propagation of Route
Requests
[S,E,F,J,D] Y
[E,F,J,D]
S E [F,J,D],[F,E,S]
F [J,F,E,S]
B
C [G,C,S] M L
J
A [C,S] G
H D
[K,G,C,S] K
I RREP N
RREQ
Z
Route Reply (RREP) from node K limits flooding of RREQ.
5-35
Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
❒ Summary
5-36
Route Error (RERR) - Example
Y
RERR [J-D] Z
S E
F
B
C M L
J
A G
H D
K
I N
Consider link between J and D fails
J sends a route error to S along route J-F-E-S when its attempt to
forward the data packet S (with route SEFJD) on J-D fails
Nodes hearing RERR update their route cache to remove link J-D
5-37
Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
❒ Summary
5-38
Route Reply Storms
B G
D C
C B G
G
A B
G
E F B G
A B G
❒ Using route cache nodes can reply to RREQ, if
they have the route
❒ If lots of node reply at the same time, it can
cause route reply storm
❒ In the Figure nodes B, C, D, E, F all have A’s route
request to destination G
5-39
Route Reply Storms
B G
D C
C B G
G
A B
G
E F B G
A B G
❒ When A sends the RREQ, B, C, D, E, F can respond at the
same time using their route caches -> because they all
received the RREQ at the same time
❒ Simultaneous replies from B, C, D, E, F can cause collision at
A (route reply storm)
5-40
Route Reply Storms
B G
D C
C B G
G
A B
G
E F B G
A B G
❒ Simultaneous replies from B, C, D, E, F can also cause local
congestion at A
❒ Also each node may reply with a different route length, e.g. 1 hop
(G) , 2 hops (B-G) , and 3 (C-B-G)
❒ Solution to Reply Storm – each node should randomly delay sending
the route reply
5-41
Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
❒ Summary
5-42
Route Request - Hop Limits
❒ Each RREQ message contains a field called hop-
limit
❒ Hop limit controls the propagation of RREQ to the
number of hops i.e. how many intermediate nodes
are allowed to forward the RREQ
❒ Each receiving node decrements the hop-limit by 1
before forwarding.
❒ RREQ is not forwarded & is discarded by node
when this limit becomes zero even before
reaching the destination
5-43
Route Request - Hop Limits
❒ A RREQ with hop-limit zero will determine that
the target is the one hop neighbor
❒ It also likely that this one hop neighbor has the
source route in its cache
❒ If no RREP is received within a timeout period, a
new RREQ is sent by the sender with no hop-limit
5-44
Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
❒ Summary
5-45
Route Maintenance - Packet
Salvaging
❒ When a node discovers that it cannot
forward a data packet because the next-
hop link is broken, it generates RERR
❍ Sends RERR upstream
❍ Searches its own cache to find an alternate
route from itself to destination to forward this
packet
❍ If route is found, the node modifies the route
as per the route cache and forwards to the
next hop node
5-46
Route Maintenance - Packet Salvaging -
Example
A B C X D E
❒ In this example C is not able to forward the
packet to D and E
❍ C Generates RERR
❍ Examines its route cache for an alternate path to E
❍ If found, modifies the source route in the packet
❍ Forwards the packet
❍ Otherwise packet is dropped
5-47
Route Maintenance - Packet
Salvaging - Example
A B C X D E
❒ When a packet is salvaged – its marked as
“Salvaged”
❒ A Salvaged packet is salvaged only one time to
avoid routing loops when salvaged at multiple
locations
❒ A recommended strategy for salvaging is
❍ Breakdown the address into two parts – prefix address
(hops that are used until now) and suffix address
(address from the route cache)
❍ This strategy avoids backtracking from the current node
to an already traversed node 5-54
Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
❒ Summary
5-49
Route Maintenance - Route Shortening
“B,C,D” “B,C,D” “B,C,D”
A B C D
❒ Routes may be shortened if one of intermediate nodes
become unnecessary
❒ The vertical arrow shows the one –hop destination e.g. B, C,
D, with arrow on B means B is the destination
❒ If C overhears that A is forwarding a packet to B that is
destined to C, then
❒ C sends a “Gratuitous” message (Its RREP message) to
original sender A.
❒ The RREP informs A to route packets as A-C-D instead of A-
B-C-D
5-50
Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
❒ Summary
5-51
Route Maintenance - Spreading of
Route Error Message
❒ When a source node receives an RERR in
response to a data packet that it
forwarded
❍ It piggybacks this RERR on a new RREQ that it
forwards to its neighbors
❍ Neighbors get aware of the RERR and update
their route caches
❍ This helps in reductions in getting the stale
routes in RREP sent by the neighbors
5-52
Route Maintenance - Spreading of
Route Error Message - Example
A B C X D E
❒ Node A learns from RERR generated by C that link between
C-D is broken
❒ A removes the link from its own route cache
❒ A - initiates a new route discovery (assuming it does not
have another route to E) and piggybacks a copy of RERR
message on RREQ
❒ This ensures that every node becomes aware of this link
being broken and they update their route cache
❒ This also ensures nodes do not get replies with old routing
information
5-53
Outline
❒ Introduction
❒ Route Discovery
❒ Route Cache
❒ Route Maintenance
❍ Preventing Route Reply Storms
❍ Route Request hop limits
❍ Packet Salvaging
❍ Automatic Route Shortening
❍ Increased spreading of Route Error messages
❍ Caching negative information
❒ Summary
5-54
Route Maintenance - Caching
Negative Information
A B C X D E
❒ In certain situations, caching of negative
information can help DSR. For example,
❍ If A knows that link C-D is broken, it can keep this
information in its routing cache for a specified time
(using a timer) , e.g. by making the distance to routes
through C as infinity
❍ A will not use this path in response to any RREP it
receives for subsequent RREQs
❍ After the expiration of timer, the link can be added again
in the route cache with correct hop counts, if link is
repaired
5-55
Route Maintenance - Caching
Negative Information
A B C X D E
❒ Consider a case where link quality is varying with
respect to time i.e. its in fade for some time. For
example,
❍ Assume that link C-D is in fade, i.e. its healthy for an
interval and broken for another interval.
❍ By keeping the information that the link is broken, the
node can prevent the addition of this link in its route
cache when it becomes healthy again
❍ It can keep this information in its routing cache for a
specified times (using a timer) till the link become normal
❍ After the expiration of timer, the link can be added
again in the route cache with correct hop counts
❍ This mechanism prevents oscillations in the route cache
5-56
Dynamic Source Routing:
Advantages
❒ Routes maintained only between nodes who
need to communicate
❍ reduces overhead of route maintenance
❒ Route caching can further reduce route
discovery overhead
❒ A single route discovery may yield many
routes to the destination, due to
intermediate nodes replying from local
caches 5-64
Dynamic Source Routing: Disadvantages
❒ Packet header size grows with route length due to
source routing
❒ Flood of route requests may potentially reach all
nodes in the network
❒ Care must be taken to avoid collisions between
route requests propagated by neighboring nodes
❍ insertion of random delays before forwarding RREQ
❒ Increased contention if too many route replies
come back due to nodes replying using their local
cache
❍ Route Reply Storm problem
5-58
Dynamic Source Routing:
Disadvantages
❒ An intermediate node may send Route Reply using
a stale cached route, thus polluting other caches
❒ This problem can be eased if some mechanism to
purge (potentially) invalid cached routes is
incorporated.
5-59