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 Control overhead Quality of service Efficient group management Scalability Security TDDD36: Routing Unicast Routing Protocols Many protocols have been proposed Some have been invented specifically for MANET Others are adapted from previously proposed protocols for wired networks No single protocol works well in all environments some attempts to develop adaptive protocols TDDD36: Routing The ideal protocol (p303) Distributed Localized (and scalable) Adaptive 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 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 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) 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 Routing protocols for wireless ad hoc networks Sensor networks Mobile ad hoc networks Response time, bandwidth Proactive protocols Optimized LinkDestination-Sequenced State Routing Distance-Vector (DSDV) (OLSR) Energy Reactive protocols Dynamic Ad Hoc On-Demand Source Distance-Vector Routing (AODV) (DSR) Geography- Cluster-based based routing (or hierarchical) routing GPSR TDDD36: Routing 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 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 • Routes are determined only if needed Which approach achieves a better trade-off depends on the traffic and mobility patterns TDDD36: Routing Ad hoc networks: terminology 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! TDDD36: Routing Dynamic Source Routing (DSR) [Johnson96] 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 Reactive protocols – 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 Dynamic source routing (DSR) 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 DSR: Route discovery (1) Q F A E S B G R C K H D J P M I L N TDDD36: Routing DSR: Route discovery (2) Q F A S (S) E B G R C K H D J P M I L N TDDD36: Routing DSR: Route discovery (3) (S,A) Q A E S B F (S,E) G R C K H D J P M I L N TDDD36: Routing DSR: Route discovery (4) Q F A E S B K H G R (S,E,G) D J P M I L C (S,B,C) N TDDD36: Routing DSR: Route discovery (5) Q F A H E S B G R C (S,A,F,H) J K (S,E,G,J) D P M I L N TDDD36: Routing DSR: Route discovery (6) Q F A E S B G R C K H (S,A,F,H,K) D J P M I L N TDDD36: Routing DSR: Route discovery (7) Q F A E S B G R C K H D J P (S,A,F,H,K,P) M I L N TDDD36: Routing DSR: Route discovery (8) Q F A E S B G R C K H P D RREP(S,E,G,J,D) J M I L N TDDD36: Routing DSR: Route Discovery (9) 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 TDDD36: Routing DSR: Data delivery Q F A DATA(S,E,G,J,D) E S B G R C K H D J P M I L N TDDD36: Routing DSR: Route maintenance (1) Q F A DATA(S,E,G,J,D) E S B G R C K H X D J P M I L N TDDD36: Routing DSR: Route maintenance (2) Q F A E S B RERR(G-J) G R C K H X D J P M I L N 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 Routing discovery TDDD36: Route Discovery in DSR Destination D on receiving the first RREQ, 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 TDDD36: Routing Route Reply in DSR Y Z S E RREP [S,E,F,J,D] F B C M J A L G H K I D N Represents RREP control message TDDD36: Routing 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 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. If IEEE 802.11 MAC is used to send data, then links have to be bi-directional (since Ack is used) TDDD36: Routing 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 TDDD36: Routing Data Delivery in DSR Y DATA [S,E,F,J,D] S Z E F B C M J A L G H K I D N Packet header size grows with route length TDDD36: Routing When to Perform a Route Discovery When node S wants to send data to node D, but does not know a valid route node D TDDD36: Routing DSR modifications, extensions 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 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, … TDDD36: Routing DSR: Optimization of route discovery: route caching Principle: each node caches a new route it learns by any means Examples 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 TDDD36: Routing 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, 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 Use of Route Caching When node S learns that a route 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 can speed up route discovery can reduce propagation of route requests TDDD36: Routing Use of Route Caching [S,E,F,J,D] [E,F,J,D] S [F,J,D],[F,E,S] E F B [J,F,E,S] C J [C,S] A M L G H [G,C,S] D K I N Z [P,Q,R] Represents cached route at a node (DSR maintains the cached routes in a tree format) TDDD36: Routing Use of Route Caching: Can Speed up Route Discovery [S,E,F,J,D] [E,F,J,D] S [F,J,D],[F,E,S] E F B C [G,C,S] [C,S] A [J,F,E,S] M J L G H 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 Use of Route Caching: Can Reduce Propagation of Route Requests [S,E,F,J,D] Y [E,F,J,D] S [F,J,D],[F,E,S] E F B C [G,C,S] [C,S] A [J,F,E,S] M J L G H I [K,G,C,S] K D RREP N RREQ 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. TDDD36: Routing Route Error (RERR) Y RERR [J-D] S Z E F B C M J A L G H K I D 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 DSR: Strengths Routes are set up and maintained only 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 TDDD36: Routing DSR: Weaknesses Route requests tend to flood the network and 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 Destination Sequenced Distance Vector Algorithm (DSDV) DSDV is based on idea of classical BellmanFord Routing Algorithm Each node maintains a routing table listing all available destinations. The attributes of each destination are the next hop, the number of hops to reach to the destination, and a sequence number, which is originated by the destination node. Both periodic and triggered routing updates to maintain table Destination Sequenced Distance Vector Algorithm (DSDV) 1. 2. Based on Bellman-Ford Next Hop Routing. 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 • Full Routing Updates Incremental Updates Problems of Distance Vector Pro-active routing based on Distance Vector Topology changes are slowly propagated Count-to-infinity problem Moving nodes create confusion: they carry connectivity data which are wrong at new place Table exchange eats bandwidth DSDV How DSDV addresses the problems? Tagging of distance information: The destination issues increasing sequence number Other nodes can discard old/duplicate updates Changes are not immediately propagated Wait some setting time Incremental updates instead of full table exchange GPSR Separate slides … TDDD36: Routing More stuff … 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 Reactive protocols – AODV Ad hoc On Demand Distance Vector routing (AODV) 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 TDDD36: Routing Ad Hoc On-Demand Distance Vector Routing (AODV) [Perkins99Wmcsa] DSR includes source routes in packet headers Resulting large headers can sometimes degrade 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 AODV : Route discovery (1) Q F A E S B G R C K H D J P M I L N TDDD36: Routing AODV : Route discovery (2) Q F A E S B G R C : Route Request (RREQ) K H D J P M I L N Note: if one of the intermediate nodes (e.g., knows a route to D, it responds immediately t TDDD36: Routing AODV : Route discovery (3) Q F A E S B G R C K H D J P M I L N : represents a link on the reverse path TDDD36: Routing AODV : Route discovery (4) Q F A E S B G R C K H D J P M I L N TDDD36: Routing AODV : Route discovery (5) Q F A E S B G R C K H D J P M I L N TDDD36: Routing AODV : Route discovery (6) Q F A E S B G R C K H D J P M I L N TDDD36: Routing AODV : Route discovery (7) Q F A E S B G R C K H D J P M I L N TDDD36: Routing AODV : Route reply and setup of the forward path Q F A E S B G R C K H D J P M I L N : Link over which the RREP is transmitted : Forward path TDDD36: Routing Route reply in AODV 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 AODV : Data delivery Q F A S Data E B G R C K H D J P M I L N The route is not included in the packet header TDDD36: Routing AODV packets ROUTE REQUEST ROUTE REPLY TDDD36: Routing AODV : Route maintenance (1) Q F A S Data E B G R C K H X D J P M I L N TDDD36: Routing AODV : Route maintenance (2) Q F A RERR(G-J) E G S B R C K H X D J P M I L 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: Route maintenance TDDD36: Routing AODV: Destination sequence numbers 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!) TDDD36: Routing 1. AODV : Avoiding the usage of … Dtables S stale routing … S A A 2. DSN(D) = 5 DSN(D) = 5 B B DSN(D) = 8 : Forward path 3. S A RREQ B D … D 4. S DSN(D) = 5 A RREP B DSN(D) = 8 D … DSN(D) = 5 DSN(D) = 8 TDDD36: Routing AODV : Avoiding loops A B S X D C : Forward pat • Assume there is a route between A and D; link S-D breaks; assume A is not aware of this, e.g 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 • Principle: when S discovers that link S-D is broken, it increments its local value of DSN(D). In the new local value will be greater than the one stored by A. TDDD36: Routing AODV (unicast) : Conclusion Nodes maintain routing information only for routes that are in active use 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 How to reduce the scope of the route request flood ? Location Aided Routing LAR [Ko98Mobicom] Query localization [Castaneda99Mobicom] How to reduce redundant broadcasts ? The Broadcast Storm Problem [Ni99Mobicom] TDDD36: Routing Location Aided Routing (LAR) Advantages 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 Geographic Distance Routing (GEDIR) [Lin98] 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 H A S D B E F C G obstruction TDDD36: Routing Geographic Distance Routing (GEDIR) [Stojmenovic99] 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 H A S D B E F C G obstruction TDDD36: Routing Routing with Guaranteed Delivery [Bose99Dialm] Improves on GEDIR [Lin98] 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] TDDD36: Routing QoS: Network layer solutions MAC protocols: bandwidth reservation, real-time support only for link 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 Si = 1 (Li(m)), Li Additive metrics: Am = P Concave metrics: Cm = min(Li(m)), Li P Multiplicative metrics: Mm = h P i = 1(Li(m)), Li P Two examples follow: ticket-based and QoSenabled AODV TDDD36: Routing A distributed ticket-based QoS routing protocol for MANETs Chen and Nahrstedt (1999) 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 QoS-enabled AODV QoS extensions in routing table: Maximum delay Minimum available bandwidth List of sources requesting delay guarantees List of sources requesting bandwidth guarantess TDDD36: Routing QoS frameworks for MANETs Service model Routing protocol Resource reservation signaling Admission control Packet scheduling TDDD36: Routing QoS framework: Flexible QoS Model for Mobile ad-hoc networks (FQMM) TDDD36: Routing