Issues: Routing in Ad-hoc Networks Issues: Multicas routing ... ❒ Mobility ❒ Robustness ❒ Bandwidth constraint ❒ Efficiency ❒ Error-prone and shared channel ❒ Control overhead ❒ Location-dependent contention ❒ Quality of service ❒ Other resource constraints ❒ Efficient group management ❒ Scalability ❒ Security TDDD36: Routing TDDD36: Routing Unicast Routing Protocols The ideal protocol (p303) ❒ Many protocols have been proposed ❒ Distributed ❒ Some have been invented specifically for ❒ Localized (and scalable) MANET ❒ Others are adapted from previously proposed protocols for wired networks ❒ No single protocol works well in all environments ❒ Adaptive ❍ some attempts to develop adaptive protocols ❒ Minimal maintenance and overhead ❒ Loop free (and free from stale routes) ❒ Balance scares resources usage against performance (and/or QoS) TDDD36: Routing Routing protocol classification TDDD36: Routing Route update mechanism ❒ Proactive (or table-drive) protocols: ❍ Determine routes independent of traffic pattern ❍ Traditional link-state and distance-vector routing protocols • Destination Sequenced Distance Vector (DSDV) • Optimized Link State Routing (OLSR) ❒ 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 ❍ ❒ Reactive (or demand-drive) protocols ❍ Route is only determined when actually needed ❍ Protocol operates on demand • Dynamic Source Routing (DSR) • Ad hoc On-demand Distance Vector (AODV) • Temporally Ordered Routing Algorithm (TORA) ❒ Hybrid Protocols: ❍ Combine these behaviors (e.g., table in limited zone, and demand drive otherwise) • Zone Routing Protocol (ZRP) • Greedy Perimeter Stateless Routing (GPSR) TDDD36: Routing TDDD36: Routing 1 Routing protocols for wireless ad hoc networks Sensor networks Mobile ad hoc networks Response time, bandwidth Energy Some general trade-offs ❒ Latency of route discovery ❍ Proactive protocols may have lower latency • Routes are maintained at all times ❍ Reactive protocols may have higher latency • Route from X to Y will be found only when X attempts to send to Y Proactive protocols Optimized LinkDestination-Sequenced State Routing Distance-Vector (DSDV) (OLSR) ❒ 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 Reactive protocols • Routes are determined only if needed Dynamic Ad Hoc On-Demand Source Distance-Vector Routing (AODV) (DSR) Geography- Cluster-based based routing (or hierarchical) routing ❒ Which approach achieves a better trade-off depends on the traffic and mobility patterns GPSR TDDD36: Routing Ad hoc networks: terminology TDDD36: Routing Dynamic Source Routing (DSR) [Johnson96] ❒ Broadcast: message sent to all neighbors within range ❒ Flooding: message sent to all nodes in the network by neighbors forwarding message to their neighbors etc. ❒ Different from wired network! ❒ 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 node appends own identifier when forwarding RREQ TDDD36: Routing TDDD36: Routing Reactive protocols – DSR Dynamic source routing (DSR) ❒ In a reactive protocol, how to forward a packet to destination? ❍ ❍ ❍ 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 • Data packets only sent once route has been established • Discovery packets smaller than data packets ❍ Store routing information in the discovery packets TDDD36: Routing ❒ Reactive routing protocol ❒ 2 phases, operating both on demand: ❍ Route discovery • Used only when source S attempts to to send a packet to destination D • Based on flooding of Route Requests (RREQ) ❍ Route maintenance • Makes S able to detect, while using a source route to D, if it can no longer use its route (because a link along that route no longer works) TDDD36: Routing 2 DSR: Route discovery (1) F Q E S K H A D J R F Q G B DSR: Route discovery (2) P S L C E G B M I (S) K H A D J R M I L C N N TDDD36: Routing DSR: Route discovery (3) (S,A) Q F E S (S,E) B DSR: Route discovery (4) F Q G D J R TDDD36: Routing K H A P E S L C G B K H A M I (S,E,G) D J R L (S,B,C) N TDDD36: Routing TDDD36: Routing DSR: Route discovery (5) (S,A,F,H) Q H A E S B R DSR: Route discovery (6) K F Q G J (S,E,G,J) D P L C E S (S,A,F,H,K) G R D J P M I L C N K H A B M I P M I C N F P N TDDD36: Routing TDDD36: Routing 3 DSR: Route discovery (7) F Q E S K H A F Q G B DSR: Route discovery (8) D J R P (S,A,F,H,K,P) L C G B M I E S K H A P D RREP(S,E,G,J,D) J R M I L C N N TDDD36: Routing TDDD36: Routing DSR: Route Discovery (9) DSR: Data delivery ❒ Route reply by reversing the route (as illustrated) works only if all the links along the route are bidirectional ❒ If unidirectional links are allowed, then RREP may need a reverse route discovery from D to S ❒ Note: IEEE 802.11 assumes that links are bidirectional F Q K H A DATA(S,E,G,J,D) E S G B R P D J M I L C N TDDD36: Routing DSR: Route maintenance (1) F Q DATA(S,E,G,J,D) E S B G R DSR: Route maintenance (2) K H A F Q X D J P E S L RERR(G-J) G R C N K H A B M I C TDDD36: Routing X D J P M I L N When receiving the Route Error message (RERR), TDDD36: Routing 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 4 Route Discovery in DSR Route Reply in DSR Y ❒ Destination D on receiving the first RREQ, Z sends a Route Reply (RREP) ❒ RREP is sent on a route obtained by reversing the route appended to received RREQ ❒ RREP includes the route from S to D on which RREQ was received by node D S E RREP [S,E,F,J,D] F B C M J A L G H K D I N Represents RREP control message TDDD36: Routing Route Reply in DSR TDDD36: Routing Dynamic Source Routing (DSR) ❒ Route Reply can be sent by reversing the route in Route Request (RREQ) only if links are guaranteed to be bi-directional ❍ 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, then RREP may need a route discovery for S from node D ❍ ❍ 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. ❒ 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 ❒ If IEEE 802.11 MAC is used to send data, then links have to be bi-directional (since Ack is used) TDDD36: Routing When to Perform a Route Discovery Data Delivery in DSR Y DATA [S,E,F,J,D] S Z ❒ When node S wants to send data to node D, E but does not know a valid route node D F B C M J A TDDD36: Routing L G H K I D N Packet header size grows with route length TDDD36: Routing TDDD36: Routing 5 DSR: Optimization of route discovery: route caching DSR modifications, extensions ❒ Intermediate nodes may send route replies in case ❒ Principle: each node caches a new route it learns they already know a route ❍ by any means Problem: stale route caches ❒ Promiscuous operation of radio devices – nodes can ❒ Examples ❒ Random delays for generating route replies ❍ Many nodes might know an answer – reply storms ❍ NOT necessary for medium access – MAC should take care of it ❒ 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, … When node S finds route (S, E, G, J, D) to D, it also learns route (S, E, G) to node G ❍ In the same way, node E learns the route to D ❍ Same phenomenon when transmitting route replies ❒ Moreover, routes can be overheard by nodes in the neighbourhood ❒ However, route caching has its downside: stale caches can severely hamper the performance of the network learn about topology by listening to control messages ❍ TDDD36: Routing TDDD36: Routing DSR Optimization: Route Caching Use of Route Caching ❒ Each node caches a new route it learns by ❒ When node S learns that a route to node D 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 is broken, it uses 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 ❍ ❒ A node may also learn a route when it overhears Data ❍ packets can speed up route discovery can reduce propagation of route requests TDDD36: Routing Use of Route Caching: Can Speed up Route Discovery Use of Route Caching [S,E,F,J,D] [S,E,F,J,D] [E,F,J,D] S [J,F,E,S] C A M J [C,S] [G,C,S] C D I [G,C,S] [C,S] A K Z [P,Q,R] Represents cached route at a node (DSR maintains the cached routes in a tree format) TDDD36: Routing [J,F,E,S] M J L G H N [F,J,D],[F,E,S] E F B L G H [E,F,J,D] S [F,J,D],[F,E,S] E F B TDDD36: Routing I [K,G,C,S] K 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 D RREP N RREQ Z TDDD36: Routing 6 Use of Route Caching: Can Reduce Propagation of Route Requests Route Error (RERR) Y [S,E,F,J,D] Y [E,F,J,D] S F B C [G,C,S] [C,S] A RERR [J-D] S [F,J,D],[F,E,S] E [J,F,E,S] M J G H I F B L C D RREP N Z 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 D I N 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 DSR: Strengths DSR: Weaknesses ❒ Routes are set up and maintained only ❒ Route requests tend to flood the network and between nodes who need to communicate ❒ Route caching can further reduce the effort of route discovery ❒ A single route discovery may provide several routes to the destination L G H RREQ M J A [K,G,C,S] K Z E generally reach all the nodes of the network ❒ Because of source routing, the packet header size grows with the route lengh ❒ Risk of many collisions between route requests by neighboring nodes Ł need for random delays before forwarding RREQ ❒ Similar problem for the RREP (Route Reply storm problem), in case links are not bidirectional Note: Location-aided routing may help reducing the number of useless control messages TDDD36: Routing TDDD36: Routing Ad Hoc On-Demand Distance Vector Routing (AODV) ❒ As it is based on source routing, DSR includes ❒ ❒ ❒ ❒ source routes in data packet headers Large packet headers in DSR Ł risk of poor performance if the number of hops is high AODV uses a route discovery mechanism similar to DSR, but it maintains routing tables at the nodes AODV ages the routes and maintains a hop count AODV assumes that all links are bi-directional TDDD36: Routing AODV ❒ Route Requests (RREQ) are forwarded in a manner similar to DSR ❒ When a node re-broadcasts a Route Request, it sets up a reverse path pointing towards the source ❍ AODV assumes symmetric (bi-directional) links ❒ When the intended destination receives a Route Request, it replies by sending a Route Reply ❒ Route Reply travels along the reverse path set-up when Route Request is forwarded TDDD36: Routing 7 Reactive protocols – AODV ❒ Ad hoc On Demand Distance Vector routing Ad Hoc On-Demand Distance Vector Routing (AODV) [Perkins99Wmcsa] (AODV) ❍ ❒ DSR includes source routes in packet headers ❍ ❒ Resulting large headers can sometimes degrade Very popular routing protocol Essentially same basic idea as DSR for discovery procedure ❍ Nodes maintain routing tables instead of source routing ❍ Sequence numbers added to handle stale caches ❍ Nodes remember from where a packet came and populate routing tables with that information performance ❍ particularly when data contents of a packet are small ❒ AODV attempts to improve on DSR by maintaining routing tables at the nodes, so that data packets do not have to contain routes ❒ AODV retains the desirable feature of DSR that routes are maintained only between nodes which need to communicate TDDD36: Routing TDDD36: Routing AODV : Route discovery (1) F Q E S K H A P D J R F Q G B AODV : Route discovery (2) L C G B M I E S L C N Note: if one of the intermediate nodes (e.g., A) TDDD36: Routing knows a route to D, it responds immediately to S : Route Request (RREQ) AODV : Route discovery (3) F B F Q G R AODV : Route discovery (4) K H E S M I TDDD36: Routing A P D J R N Q K H A D J P B M I L C G R D J P M I L C N : represents a link on the reverse path E S K H A N TDDD36: Routing TDDD36: Routing 8 AODV : Route discovery (5) F Q E S K H A P D J R F Q G B AODV : Route discovery (6) L C G B M I E S K H A R M I L C N N TDDD36: Routing TDDD36: Routing AODV : Route reply and setup of the forward path AODV : Route discovery (7) F Q E S B K H A F Q G R P D J P D J L C G B M I E S K H A D J R P M I L C N N : Link over which the RREP is transmitted TDDD36: Routing Route reply in AODV TDDD36: Routing : Forward path AODV : Data delivery ❒ In case it knows a path more recent than the one previously known to sender S, an intermediate node may also send a route reply (RREP) ❒ The freshness of a path is assessed by means of destination sequence numbers ❒ Both reverse and forward paths are purged at the expiration of appropriately chosen timeout intervals TDDD36: Routing F Q S Data E B K H A G R D J P M I L C N The route is not included in the packet header TDDD36: Routing 9 AODV packets AODV : Route maintenance (1) F Q ❒ ROUTE REQUEST S Data E B G R ❒ ROUTE REPLY K H A X P D J M I L C N TDDD36: Routing TDDD36: Routing AODV : Route maintenance (2) F Q E S B K H A RERR(G-J) G R AODV: Route maintenance X P D J M I L C N When receiving the Route Error message (RERR), S removes the broken link from its cache. TDDD36: Routing It then initializes a new route discovery. AODV: Destination sequence numbers TDDD36: Routing 1. AODV : Avoiding the usage of … Dtables stale routing … S A S A 2. DSN(D) = 5 DSN(D) = 5 B ❒ If the destination responds to RREP, it places its current sequence number in the packet ❒ If an intermediate node responds, it places its record of the destination’s sequence number in the packet ❒ Purpose of sequence numbers: ❍ Avoid using stale information about routes ❍ Avoid loops (no source routing!) B DSN(D) = 8 : Forward path 3. S A RREQ … D 4. S DSN(D) = 5 RREP B D … DSN(D) = 5 B DSN(D) = 8 TDDD36: Routing A DSN(D) = 8 D TDDD36: Routing 10 AODV : Avoiding loops A B AODV (unicast) : Conclusion X S ❒ Nodes maintain routing information only D for routes that are in active use C : Forward path • Assume there is a route between A and D; link S-D breaks; assume A is not aware of this, e.g. because RERR sent by S is lost • Assume now S wants to send to D. It performs a RREQ, which can be received by A via path S • Node A will reply since it knows a route to D via node B • This would result in a loop (S-C-A-B-S) • The presence of sequence numbers will let S discover that the routing information from A is outdated • Principle: when S discovers that link S-D is broken, it increments its local value of DSN(D). In this way, the new local value will be greater than the one stored by A. ❒ Unused routes expire even when the topology does not change ❒ Each node maintains at most one next-hop per destination ❒ Many comparisons with DSR (via simulation) have been performed Ł no clear conclusion so far TDDD36: Routing Flooding of Control Packets TDDD36: Routing Location Aided Routing (LAR) ❒ How to reduce the scope of the route request flood ? ❒ Advantages Location Aided Routing LAR [Ko98Mobicom] ❍ Query localization [Castaneda99Mobicom] ❍ ❒ How to reduce redundant broadcasts ? ❍ The Broadcast Storm Problem [Ni99Mobicom] ❍ ❍ reduces the scope of route request flood reduces overhead of route discovery ❒ Disadvantages ❍ Nodes need to know their physical locations ❍ Does not take into account possible existence of obstructions for radio transmissions TDDD36: Routing TDDD36: Routing Geographic Distance Routing (GEDIR) [Lin98] ❒ Location of the destination node is assumed known ❒ Each node knows location of its neighbors Geographic Distance Routing (GEDIR) [Stojmenovic99] ❒ The algorithm terminates when same edge traversed twice consecutively ❒ Each node forwards a packet to its neighbor closest to the destination ❒ Algorithm fails to route from S to E ❍ ❒ Route taken from S to D shown below H A Node G is the neighbor of C who is closest from destination E, but C does not have a route to E D H A S B E S F C D B E F C G obstruction G TDDD36: Routing obstruction TDDD36: Routing 11 Routing with Guaranteed Delivery [Bose99Dialm] QoS: Network layer solutions ❒ Improves on GEDIR [Lin98] ❒ MAC protocols: bandwidth reservation, real-time support only for link ❒ Guarantees delivery (using location information) provided that a path exists from source to destination ❒ Routes around obstacles if necessary ❒ GPSR: A similar idea also appears in [Karp00Mobicom] ❒ Network layer is host-to-host specific ❍ resource negotiation ❍ reservation ❍ reconfiguration ❒ QoS routing protocols ❍ search for routes with resources that satisfy QoS reqs ❍ find paths that consume minimum resources TDDD36: Routing QoS routing in ad-hoc networks TDDD36: Routing QoS-enabling routing protocols h Σi = 1 (Li(m)), Li ∈ ❒ Additive metrics: Am = P ❒ Concave metrics: Cm = min(Li(m)), Li ∈ P h ❒ Multiplicative metrics: Mm = Π i = 1(Li(m)), Li ∈ P Two examples follow: ticket-based and QoSenabled AODV TDDD36: Routing TDDD36: Routing A distributed ticket-based QoS routing protocol for MANETs QoS-enabled AODV ❒ Chen and Nahrstedt (1999) ❒ QoS extensions in routing table: Maximum delay Minimum available bandwidth ❍ List of sources requesting delay guarantees ❍ List of sources requesting bandwidth guarantess ❒ Tolerates imprecise state information ❍ during QoS route computation ❒ Probes multiple paths in parallel, limited by tickets ❒ Optimality is explored ❒ Uses primary-backup-based fault tolerance to reduce service interruption ❍ TDDD36: Routing TDDD36: Routing 12 QoS frameworks for MANETs QoS framework: Flexible QoS Model for Mobile ad-hoc networks (FQMM) ❒ Service model ❒ Routing protocol ❒ Resource reservation signaling ❒ Admission control ❒ Packet scheduling TDDD36: Routing TDDD36: Routing 13