Issues: Routing in Ad-hoc Networks
Mobility Bandwidth constraint Error-prone and shared channel Location-dependent contention Other resource constraints
TDDD36: Routing
Issues: Routing in Ad-hoc Networks Mobility Bandwidth constraint - - PowerPoint PPT Presentation
Issues: Routing in Ad-hoc Networks Mobility Bandwidth constraint Error-prone and shared channel Location-dependent contention Other resource constraints TDDD36: Routing Issues: Multicas routing ... Robustness Efficiency
TDDD36: Routing
TDDD36: Routing
some attempts to develop adaptive protocols
TDDD36: Routing
TDDD36: Routing
Route information mechanism
Proactive (table-driven) Reactive (demand-driven) Hybrid
Temporal information
Past vs. Future information
Routing toplogy
Flat vs. hierarchical
Specific reources
Geography or Power
TDDD36: Routing
Proactive (or table-drive) protocols:
Determine routes independent of traffic pattern Traditional link-state and distance-vector routing protocols
Reactive (or demand-drive) protocols
Route is only determined when actually needed Protocol operates on demand
Hybrid Protocols:
Combine these behaviors (e.g., table in limited zone, and demand
drive otherwise)
TDDD36: Routing
Response time, bandwidth Energy Mobile ad hoc networks Sensor networks Proactive protocols Reactive protocols
Destination-Sequenced Distance-Vector (DSDV) Optimized Link- State Routing (OLSR) Ad Hoc On-Demand Distance-Vector (AODV) Dynamic Source Routing (DSR) Geography- based routing Cluster-based (or hierarchical) routing GPSR TDDD36: Routing
Latency of route discovery
Proactive protocols may have lower latency
Reactive protocols may have higher latency
Overhead of route discovery/maintenance
Proactive protocols can (but not necessarily) result in
higher overhead due to continuous route updating
Reactive protocols may have lower overhead
Which approach achieves a better trade-off
TDDD36: Routing
TDDD36: Routing
TDDD36: Routing
In a reactive protocol, how to forward a packet to
Initially, no information about next hop is available at all One (only?) possible recourse: Send packet to all
neighbors – flood the network
Hope: At some point, packet will reach destination and an
answer is sent pack – use this answer for backward learning the route from destination to source Practically: Dynamic Source Routing (DSR)
Use separate route request/route reply packets to
discover route
established
Store routing information in the discovery packets
TDDD36: Routing
Route discovery
to destination D
Route maintenance
D, if it can no longer use its route (because a link along that route no longer works)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q (S)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q (S,A) (S,E)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q (S,E,G) (S,B,C)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q (S,E,G,J) (S,A,F,H)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q (S,A,F,H,K)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q (S,A,F,H,K,P)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q RREP(S,E,G,J,D)
TDDD36: Routing
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q DATA(S,E,G,J,D)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q DATA(S,E,G,J,D)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q
RERR(G-J)
When receiving the Route Error message (RERR), S removes the broken link from its cache. It then tries another route stored in its cache; if none, it initializes a new route discovery
TDDD36: Routing
TDDD36: Routing
B A S E F H J D C G I K Z Y M N L RREP [S,E,F,J,D] Represents RREP control message
TDDD36: Routing
Route Reply can be sent by reversing the route in
To ensure this, RREQ should be forwarded only if it
received on a link that is known to be bi-directional If unidirectional (asymmetric) links are allowed,
Unless 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. If IEEE 802.11 MAC is used to send data, then
TDDD36: Routing
hence the name source routing
TDDD36: Routing
B A S E F H J D C G I K Z Y M N L DATA [S,E,F,J,D] Packet header size grows with route length
TDDD36: Routing
TDDD36: Routing
Intermediate nodes may send route replies in case
they already know a route
Problem: stale route caches
Promiscuous operation of radio devices – nodes can
learn about topology by listening to control messages
Random delays for generating route replies
Many nodes might know an answer – reply storms NOT necessary for medium access – MAC should take care
Salvaging/local repair
When an error is detected, usually sender times out and
constructs entire route anew
Instead: try to locally change the source-designated route
Cache management mechanisms
To remove stale cache entries quickly Fixed or adaptive lifetime, cache removal messages, … TDDD36: Routing
Principle: each node caches a new route it learns
Examples
When node S finds route (S, E, G, J, D) to D, it
In the same way, node E learns the route to D Same phenomenon when transmitting route
Moreover, routes can be overheard by nodes in the
However, route caching has its downside: stale
TDDD36: Routing
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, node K learns route [K,G,C,S] to node S
When node F forwards Route Reply RREP [S,E,F,J,D],
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
TDDD36: Routing
can speed up route discovery can reduce propagation of route requests
TDDD36: Routing
B A S E F H J D C G I K [P,Q,R] Represents cached route at a node (DSR maintains the cached routes in a tree format) M N L
[S,E,F,J,D] [E,F,J,D] [C,S] [G,C,S] [F,J,D],[F,E,S] [J,F,E,S]
Z
TDDD36: Routing
B A S E F H J D C G I K Z M N L
[S,E,F,J,D] [E,F,J,D] [C,S] [G,C,S] [F,J,D],[F,E,S] [J,F,E,S] RREQ
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
[K,G,C,S] RREP
TDDD36: Routing
B A S E F H J D C G I K Z Y M N L
[S,E,F,J,D] [E,F,J,D] [C,S] [G,C,S] [F,J,D],[F,E,S] [J,F,E,S] RREQ
Assume that there is no link between D and Z. Route Reply (RREP) from node K limits flooding of RREQ. In general, the reduction may be less dramatic.
[K,G,C,S] RREP
TDDD36: Routing
B A S E F H J D C G I K Z Y M N L RERR [J-D] 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
TDDD36: Routing
TDDD36: Routing
Route requests tend to flood the network and
Because of source routing, the packet header size
Risk of many collisions between route requests by
Similar problem for the RREP (Route Reply storm
TDDD36: Routing
Each node maintains a routing table listing all available
next hop, the number of hops to reach to the destination, and a sequence number, which is originated by the destination node.
1.
Based on Bellman-Ford Next Hop Routing.
2.
Each Node Maintains Tables for :
A.
Next Hop on Path
B.
Distance (in hops) to destination.
C.
Sequence Number ( keep current route)
3.
Nodes Exchange Updates With Neighbours
Count-to-infinity problem
they carry connectivity data which are wrong at
The destination issues increasing sequence
Other nodes can discard old/duplicate updates
Wait some setting time
TDDD36: Routing
TDDD36: Routing
TDDD36: Routing
As it is based on source routing, DSR includes
Large packet headers in DSR risk of poor
AODV uses a route discovery mechanism similar to
AODV ages the routes and maintains a hop count AODV assumes that all links are bi-directional
TDDD36: Routing
Route Requests (RREQ) are forwarded in a manner
When a node re-broadcasts a Route Request, it
AODV assumes symmetric (bi-directional) links
When the intended destination receives a Route
Route Reply travels along the reverse path set-up
TDDD36: Routing
Very popular routing protocol Essentially same basic idea as DSR for
Nodes maintain routing tables instead of source
Sequence numbers added to handle stale caches Nodes remember from where a packet came
TDDD36: Routing
DSR includes source routes in packet headers Resulting large headers can sometimes degrade
particularly when data contents of a packet are small
AODV attempts to improve on DSR by maintaining
AODV retains the desirable feature of DSR that
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q Note: if one of the intermediate nodes (e.g., A knows a route to D, it responds immediately to : Route Request (RREQ)
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q : represents a link on the reverse path
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q
TDDD36: Routing
E G M H R F A B C I D S K N L P J Q
TDDD36: Routing
M D K L P J E G H R F A B C I S N Q
TDDD36: Routing
M D K L P J E G H R F A B C I S N Q
TDDD36: Routing
M D K L P J E G H R F A B C I S N Q : Link over which the RREP is transmitted : Forward path
TDDD36: Routing
TDDD36: Routing
M D K L P J E G H R F A B C I S N Q Data The route is not included in the packet header
TDDD36: Routing
TDDD36: Routing
M D K L P J E G H R F A B C I S N Q Data
TDDD36: Routing
M D K L P J E G H R F A B C I S N Q
RERR(G-J) When receiving the Route Error message (RERR), S removes the broken link from its cache. It then initializes a new route discovery.
TDDD36: Routing
TDDD36: Routing
If the destination responds to RREP, it places its
If an intermediate node responds, it places its
Purpose of sequence numbers:
Avoid using stale information about routes Avoid loops (no source routing!)
TDDD36: Routing
S D A B DSN(D) = 5 : Forward path S D A B DSN(D) = 5
DSN(D) = 8 1. 2. S D A B DSN(D) = 5
DSN(D) = 8 3. RREQ S D A B DSN(D) = 5
DSN(D) = 8 RREP 4.
TDDD36: Routing
A B S D C : Forward pat
RERR sent by S is lost
the new local value will be greater than the one stored by A.
TDDD36: Routing
TDDD36: Routing
Location Aided Routing LAR [Ko98Mobicom] Query localization [Castaneda99Mobicom]
The Broadcast Storm Problem [Ni99Mobicom]
TDDD36: Routing
reduces the scope of route request flood reduces overhead of route discovery
Nodes need to know their physical locations Does not take into account possible existence
TDDD36: Routing
Location of the destination node is assumed known Each node knows location of its neighbors Each node forwards a packet to its neighbor closest to
the destination
Route taken from S to D shown below
S A B D C F E
H G
TDDD36: Routing
The algorithm terminates when same edge traversed
twice consecutively
Algorithm fails to route from S to E
Node G is the neighbor of C who is closest from
destination E, but C does not have a route to E
S A B D C F E
H G
TDDD36: Routing
TDDD36: Routing
resource negotiation reservation reconfiguration
search for routes with resources that satisfy
find paths that consume minimum resources
TDDD36: Routing
TDDD36: Routing
TDDD36: Routing
i = 1 h
i = 1 h
TDDD36: Routing
Maximum delay Minimum available bandwidth List of sources requesting delay guarantees List of sources requesting bandwidth
TDDD36: Routing
TDDD36: Routing
TDDD36: Routing