Routing Protocols for Ad Hoc Wireless Networks
Routing in MANET: difference Host mobility Ad hoc nodes have both functions. Both end nodes and routers are mobile Nemo Rate of link failure/repair may be high when nodes move fast New performance criteria may be used route stability in despite of mobility energy consumption
Characteristics of an Ideal Routing Protocol for MANET Fully distributed: scalable, fault-tolerant Adaptive to frequent topology changes cause by the mobility of nodes Route computation and maintenance must involve a min # of nodes Localized Global state maintenance involves a huge state propagation control overhead Loop-free, free from stale routes Converge to optimal routes quickly Optimally use scarce resources Changes in remote parts of the network must not cause updates in the topology information Provide QoS
Classification of Routing Protocols Ad Hoc routing protocols Table-driven (Proactive) DSDV CGSR Demand-driven (Reactive) AODV DSR LMR ABR TORA SSR Hybrid ZRP TBRPF OLSR
Routing Protocols Proactive routing protocols Establish routes in advance Determine routes independent of traffic pattern Traditional link-state and distance-vector routing protocols are proactive Table driven Routing protocol DSDV, WRP, CGSR, OLSR Reactive routing protocols Establish routes only if needed Less routing overhead, but higher latency in establishing the path Source-initiated on-demand AODV, DSR, TORA, ABR, SSA Hybrid routing protocols Proactive within a restricted geographic area, reactive if a packet must traverse several of these areas CEDAR, ZRP
Proactive vs. Reactive Routing Protocols Latency of route discovery Proactive protocols: Little or no delay for route determination since routes are maintained at all times Reactive protocols: Significant delay in route determination Employ flooding (global search) Control traffic may be bursty Overhead of route discovery/maintenance Proactive protocols: Consume bandwidth to keep routes up-to-date Maintain routes which may never be used Reactive protocols: Lower overhead since routes are determined on demand Which approach achieves a better trade-off depends on the traffic and mobility patterns Low traffic with high mobility : Reactive High traffic with low mobility : Proactive
Review on Routing Algorithms
Distance Vector Routing Exchange RT to neighbor nodes Each nodes has only partial information about network Disadvantages Bad news propagates slowly Routing loop Used in RIP(Routing Information Protocol) Bellman-Ford Equation (dynamic programming) Define dx(y) := cost of least-cost path from x to y Then dx(y) = min {c(x,v) + dv(y) } where min is taken over all neighbors of x
Routing Loops Example 1 Example 2 Loop-Breaking Heuristics F detects that link to G has failed F sets distance to G to infinity and sends update t o A A sets distance to G to infinity since it uses F to reach G A receives periodic update from C with 2-hop path to G A sets distance to G to 3 and sends update to F F decides it can reach G in 4 hops via A Example 2 link from A to E fails A advertises distance of infinity to E B and C advertise a distance of 2 to E B decides it can reach E in 3 hops; advertises this to A A decides it can read E in 4 hops; advertises this to C C decides that it can reach E in 5 hops… Loop-Breaking Heuristics Set infinity to 16 Split horizon Split horizon with poison reverse
Full-topology Routing: Link State Exchange link state(neighbor’s information) to all nodes Then each node knows full-topology. Recompute all optimal routes using Dijkstra’s SPF Superior to distance vector routing
LSP Flooding Link State Packet (LSP) Reliable flooding id of the node that created the LSP cost of link to each directly connected neighbor sequence number (SEQNO) time-to-live (TTL) for this packet Reliable flooding store most recent LSP from each node forward LSP to all nodes but one that sent it generate new LSP periodically increment SEQNO start SEQNO at 0 when reboot decrement TTL of each stored LSP discard when TTL=0 A B c D F E G
Route Calculation Dijkstra’s shortest path algorithm Let N denotes set of nodes in the graph l (i, j) denotes non-negative cost (weight) for edge (i, j) s denotes this node M denotes the set of nodes incorporated so far C(n) denotes cost of the path from s to node n M = {s} for each n in N - {s} C(n) = l(s, n) while (N != M) M = M union {w} such that C(w) is the minimum for all w in (N - M) for each n in (N - M) C(n) = MIN(C(n), C (w) + l(w, n ))
Proactive Routing Protocols
Proactive Protocols Nodes maintain global state information Consistent routing information are stored in tabular form at all the nodes Changes in network topology are propagated to all the nodes and the corresponding state information are updated Shortest-path route computation DV routing: Bellman-Ford algorithm LS routing: Dijikstra algorithm Problems High routing load, which is unnecessary when routing diversity is low
DSDV: Destination-Sequenced Distance-Vector [7-6] Uses a concept called “destination sequence no.” Determines freshness of route. Helps in ordering routing events and hence preventing loops. Each route is tagged with a sequence number; routes with greater sequence numbers are preferred: newer one Distance vector augmented with destination sequence number. <next hop, #hops, dest. seq. no.> for each dest. Each node periodically forwards the routing table to its neighbors Each node increments and appends its sequence number when sending its local routing table This sequence number will be attached to route entries created for this node When a node decides that a route is broken, it increments the sequence number of the route and advertises it with infinite metric Node mobility : routing data update period
DSDV: destination sequence number Let S(X) and S(Y): denote the destination sequence number for node Z as stored at node X, and as sent by node Y with its routing table to node X, respectively Node X takes the following steps: If S(X) > S(Y), then X ignores the routing information received from Y If S(X) = S(Y), and cost of going through Y is smaller than the route known to X, then X sets Y as the next hop to Z If S(X) < S(Y), then X sets Y as the next hop to Z, and S(X) is updated to equal S(Y) Avoid Count to infinity problem
OLSR: Optimized Link State Routing [7-21] Uses the concept of multipoint relays (MPR). Multipoint relays of node X are its neighbors such that each two-hop neighbor of X is a one-hop neighbor of at least one multipoint relay of X. Similar concept in literature – dominating set. Broadcast beacon(HELLO message) every HELLO interval Determine the link state (symmetric, asymmetric, or MPR) HELLO message contains list of known one-hop neighbors Only MPRs participate in routing. Flooding the network with HELLO messages incurs too much overhead Only MPRs generate link state updates. Only MPRs relay link state updates. Builds neighbor table that includes all its 1-hop and 2-hop neighbors Selects its multipoint relay (MPR) nodes among its one hop neighbors such that it can reach all the nodes that are 2 hops away. Experimental RFC 3626, October 2003
OLSR yhkim@dcn.ssu.ac.kr
The Wireless Routing Protocol (WRP) [7-7] Each node maintains 4 tables Distance table, Routing table, Link-cost table Message retransmission list table Link changes are propagated using update messages sent between neighboring nodes Hello messages are periodically exchanged between neighbors to ensure connectivity Avoids count-to-infinity problem by forcing each node to check predecessor information checks for consistency of all its neighbors every time it detects a change in link of any of its neighbors
CGSR: Cluster-head Gateway Switch Routing Protocol [7-8] Use hierarchical network topology A cluster-head is elected dynamically by employing a least cluster change algorithm Different cluster-heads could operate on different spread codes on a CSMA system Token-based scheduling within a cluster
TBRPF: Topology Broadcast Based on Reverse Path Forwarding Experimental RFC 3684. February, 2004 link-state routing protocol Periodic and differential updates Each node computes a source tree to all reachable nodes Neighbor discovery module TND send differential HELLO messages that reports only the changes of neighbors. routing module operates based on partial topology information Reverse-Path Forwarding Used to broadcast link-state updates in the reverse direction along the spanning tree formed by the minimum-hop paths Only the links that will result in changes to the source tree are included in the updates
Reactive Routing Protocols
Reactive (On-Demand) Routing Protocols Attempts to reduce routing load by discovering and maintaining routes that are actually used. Significant reduction in routing load relative to proactive routing when route diversity is low. (i.e. in large MANET) Source build routes on-demand by “flooding” Maintain only active routes Typically, less control overhead, better scaling properties DSR, AODV, LMR, TORA, ABR, DYMO Problems: Route discovery latency. Generally no rerouting as long as routes work. Thus, may use suboptimal routes.
DSR: Dynamic Source Routing [7-10] A sender knows the complete hop-by-hop route to the destination Uses source routing. Caches multiple routes in local cache. Problems Significantly great amount of routing information Path accumulation in packets Do not have mechanism to expire stale routes in the caches: no sequence number source broadcasts a packet containing address of source and destination (1,4) source 1 4 The destination sends a reply packet to source. destination 8 (1,3) 3 7 (1,2) (1,4,7) The node discards the packets having been seen 2 (1,3,5) (1,3,5,6) 6 5 The route looks up its route caches to look for a route to destination If not find, appends its address into the packet
DSR: Route Discovery - RREQ <A,D> <A,B> <A,C> B <A,C,E> <A,D,F> <A> E G <A,C,E,G> source A C H destination D F yhkim@dcn.ssu.ac.kr
DSR: Route Discovery - RREP B E G <A,C,E,G> source A C H destination Cache of A Dst. Path H A,C,E,G A,D,F <A,D,F> D F yhkim@dcn.ssu.ac.kr
AODV: Ad Hoc On-Demand Distance Vector Routing [7-11] RFC 3561 AODV attempts to improve on DSR by maintaining routing tables at the nodes, so that data packets do not have to contain routes Uses conventional routing table (distance vector). Uses a sequence number similar to DSDV. Has been augmented to maintain multiple paths [35] Hello Message Maintaining Local Connectivity Pre-cursor List Some complicate work The neighbors in turn broadcast the packet till it reaches the destination The source broadcasts a route packet RREQ Source Destination RREP Reply packet follows the reverse path of route request packet recorded in broadcast packet The node discards the packets having been seen
AODV Route Discovery RREQ B Dst. Nxt. A S A Dst. Nxt. S C B Dst. Nxt. yhkim@dcn.ssu.ac.kr
AODV Route Discovery RREQ B Dst. Nxt. A S A Dst. Nxt. A Dst. Nxt. S C yhkim@dcn.ssu.ac.kr
AODV Route Discovery RREP B Dst. Nxt. A S S A Dst. Nxt. A Dst. Nxt. S yhkim@dcn.ssu.ac.kr
AODV Route Discovery Gratuitous feature Ex). If RREQ with G-flag, bi-directional path B Dst. Nxt. A S S A Dst. Nxt. A RREP Dst. Nxt. S C B D C D Dst. Nxt. C S Dst. Nxt. A D S yhkim@dcn.ssu.ac.kr
AODV Route Discovery DATA B Dst. Nxt. A S S A Dst. Nxt. A D Dst. Nxt. yhkim@dcn.ssu.ac.kr
AODV Route Maintenance Link between C and D breaks down C can perform local repair for the route to D Node C invalidates route to D in route table Node C creates Route Error (RERR) message Unicasts RERR to upstream neighbors in precursor list Node A receives RERR Checks whether C is its next hop on route to D Deletes route to D Forwards RERR to S 5. Node S receives RERR Checks whether A is its next hop on route to D Deletes route to D Rediscovers route if still needed B RERR S A RERR C D The RERR message is sent whenever a link break causes one or more destinations to become unreachable from some of the node’s neighbors. ----------------------------------------------------------------------------------- - N flag . No delete flag . set when a node has performed a local repair of a link, and upstream nodes should not delete the route. - Destcount . the number of unreachable destinations included in the RERR message. . Must be at least 1. - Unreachable Destination IP Address . The IP address of the destination that has became unreachable due to a link break. - Unreachable Destination Sequence Number . The sequence number in the route table entry for the destination listed in the previous Unreachable Destination IP Address field.
DSR vs AODV DSR uses source routing DSR uses route cache DSR route cache entries do not have lifetimes DSR nodes respond to each RREQ duplicate AODV uses next hop entry AODV uses route table AODV route table entries do have lifetimes AODV nodes only respond to first RREQ, unless one arrives along a better path