350 likes | 621 Views
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
E N D
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
Demand-driven(Reactive) Hybrid AODV DSR LMR ABR ZRP TORA SSR Classification of Routing Protocols Ad Hoc routing protocols Table-driven(Proactive) DSDV OLSR TBRPF CGSR
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
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 Distance Vector Routing
Routing Loops • Example 1 • 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
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 Full-topology Routing: Link State
A D G B E F c LSP Flooding • Link State Packet (LSP) • 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
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 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
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 onReverse 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 (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 The destination sends a reply packet to source. 4 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
<A,B> <A,C,E> <A> <A,C,E,G> <A,C> <A> <A> <A,D,F> <A,D> DSR: Route Discovery - RREQ B G E source C A H destination D F
DSR: Route Discovery - RREP B G E <A,C,E,G> source C A H destination <A,D,F> D F
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 B RREQ S A C D
AODV Route Discovery B RREQ S A C D
AODV Route Discovery B S A RREP C D
AODV Route Discovery • Gratuitous feature Ex). If RREQ with G-flag, bi-directional path B S A RREP C D
AODV Route Discovery B DATA S A C D
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
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