Routing in Mobile Ad-Hoc Networks


Published on

A detailed presentation about Routing in Mobile Ad-Hoc Networks

Published in: Technology, Business
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Routing in Mobile Ad-Hoc Networks

  1. 1. Routing in Mobile Ad-hoc Networks
  2. 2. By. P. Victer Paul Dear, We planned to share our eBooks and project/seminar contents for free to all needed friends like u.. To get to know about more free computerscience ebooks and technology advancements in computer science. Please visit.... Please to keep provide many eBooks and technology news for FREE. Encourage us by Clicking on the advertisement in these Blog.
  3. 3. Contents: <ul><li>Ad-hoc Networks </li></ul><ul><li>Problems with Routing </li></ul><ul><li>Destination Sequenced Distance Vector (DSDV) </li></ul><ul><li>Wireless Routing Protocol(WRP) </li></ul><ul><li>(Clusterhead Gateway Switch Routing (CGSR) </li></ul><ul><li>Ad Hoc On demand Distance Vector Routing(AODV) </li></ul><ul><li>Dynamic Source Routing (DSR) </li></ul><ul><li>Zone Routing Protocol(ZRP) </li></ul><ul><li>Source Tree Adaptive Routing(STAR) </li></ul>
  4. 4. Ad-hoc Networks <ul><li>Two types of wireless network: </li></ul><ul><ul><li>Infrastructured </li></ul></ul><ul><ul><ul><li>the mobile node can move while communicating </li></ul></ul></ul><ul><ul><ul><li>the base stations are fixed </li></ul></ul></ul><ul><ul><ul><li>as the node goes out of the range of a base station, it gets into the range of another base station </li></ul></ul></ul><ul><ul><li>Infrastructureless or ad-hoc </li></ul></ul><ul><ul><ul><li>the mobile node can move while communicating </li></ul></ul></ul><ul><ul><ul><li>there are no fixed base stations </li></ul></ul></ul><ul><ul><ul><li>all the nodes in the network need to act as routers </li></ul></ul></ul><ul><ul><li>In Latin “ad-hoc” literally means “for this purpose only”. Then an ad-hoc network can be regarded as “spontaneous network” </li></ul></ul>
  5. 5. <ul><li>Infrastructured network </li></ul>Ad-hoc Networks Radio tower Radio tower Infrastructure (Wired line) Desktop computer PDA Pen computer Laptop computer Laptop computer
  6. 6. <ul><li>Infrastructurless (ad-hoc) network or MANET (Mobile Ad-hoc NETwork) </li></ul>Ad-hoc Networks PDA Pen computer Laptop computer Laptop computer PDA
  7. 7. <ul><ul><li>Single hop – nodes are in their reach area and can communicate directly </li></ul></ul><ul><ul><li>Multi hop – some nodes are far and cannot communicate directly. The traffic has to be forwarded by other intermediate nodes. </li></ul></ul>Classification of Ad-hoc Networks
  8. 8. <ul><li>Characteristics of an ad-hoc network </li></ul><ul><ul><li>Collection of mobile nodes forming a temporary network </li></ul></ul><ul><ul><li>Network topology changes frequently and unpredictably </li></ul></ul><ul><ul><li>No centralized administration or standard support services </li></ul></ul><ul><ul><li>Each host is an independent router </li></ul></ul><ul><ul><li>Hosts use wireless RF transceivers as network interface </li></ul></ul><ul><ul><li>Number of nodes 10 to 100 or at most 1000 </li></ul></ul>Ad-hoc Networks
  9. 9. <ul><li>Why we need ad-hoc networks? </li></ul><ul><ul><li>Setting up of fixed access points and backbone infrastructure is not always viable </li></ul></ul><ul><ul><ul><li>Infrastructure may not be present in a disaster area or war zone </li></ul></ul></ul><ul><ul><ul><li>Infrastructure may not be practical for short-range radios; Bluetooth (range ~ 10m) </li></ul></ul></ul><ul><ul><li>Do not need backbone infrastructure support </li></ul></ul><ul><ul><ul><li>Are easy to deploy </li></ul></ul></ul><ul><ul><ul><li>Useful when infrastructure is absent, destroyed or impractical </li></ul></ul></ul>Ad-hoc Networks
  10. 10. Ad-hoc Networks <ul><li>Example applications of ad hoc networks: </li></ul><ul><ul><li>emergency search-and-rescue operations, </li></ul></ul><ul><ul><li>meetings or conventions in which persons wish to quickly share information, </li></ul></ul><ul><ul><li>data acquisition operations in inhospitable terrain, </li></ul></ul><ul><ul><li>local area networks in the future . </li></ul></ul>
  11. 11. Ad-hoc Networks Mobile Ad Hoc Networking is a multi-layer problem ! - Routing - Addressing - Location Management - Power Control - Multiuser Detection - Channel Access - TCP - Quality of Service - Security - Service Discovery - Location-dependent Application Physical/Link Layer Network Layer Transport Layer Application Layer
  12. 12. <ul><li>Is it possible to use standard routing protocols? </li></ul><ul><ul><li>Distance-vector protocols </li></ul></ul><ul><ul><ul><li>Slow convergence due to “Count to Infinity” Problem </li></ul></ul></ul><ul><ul><ul><li>Creates loops during node failure, network partition or congestion </li></ul></ul></ul><ul><ul><li>Link state protocols </li></ul></ul><ul><ul><ul><li>Use flooding technique and create excessive traffic and control overhead </li></ul></ul></ul><ul><ul><ul><li>Require a lot of processor power and therefore high power consumption </li></ul></ul></ul>Problems with Routing
  13. 13. Problems with Routing <ul><li>Limitations of the Wireless Network </li></ul><ul><ul><li>packet loss due to transmission errors </li></ul></ul><ul><ul><li>variable capacity links </li></ul></ul><ul><ul><li>frequent disconnections/partitions </li></ul></ul><ul><ul><li>limited communication bandwidth </li></ul></ul><ul><ul><li>Broadcast nature of the communications </li></ul></ul><ul><li>Limitations Imposed by Mobility </li></ul><ul><ul><li>dynamically changing topologies/routes </li></ul></ul><ul><ul><li>lack of mobility awareness by system/applications </li></ul></ul><ul><li>Limitations of the Mobile Computer </li></ul><ul><ul><li>short battery lifetime </li></ul></ul><ul><ul><li>limited capacities </li></ul></ul>
  14. 14. <ul><li>Proactive (table driven) </li></ul><ul><ul><ul><li>Require each node to maintain one or more tables to store routing information </li></ul></ul></ul><ul><ul><ul><li>Each node responds to changes in network topology by propagating updates throughout the network in order to maintain a consistent network view </li></ul></ul></ul><ul><ul><ul><li>DSDV, WRP,CSGR,STAR </li></ul></ul></ul><ul><li>Reactive protocols (source initiated) </li></ul><ul><ul><ul><li>Creates routes only when desired by the source node </li></ul></ul></ul>Classification of the Routing Protocols
  15. 15. <ul><ul><ul><li>Once a route has been established, it is maintained by a route maintenance procedure until either the destination becomes inaccessible along every path from the source or until the route is no longer desired </li></ul></ul></ul><ul><ul><ul><li>DSR, AODV (Ad-hoc On-demand Distance Vector) </li></ul></ul></ul><ul><ul><ul><li>Hybrid Protocol </li></ul></ul></ul><ul><ul><ul><ul><li>ZRP </li></ul></ul></ul></ul>
  16. 16. <ul><li>Various simulation studies have shown that reactive protocols perform better in mobile ad hoc networks than proactive ones. </li></ul><ul><ul><li>However, no single protocol works well in all environments. </li></ul></ul><ul><ul><li>Which approach achieves a better trade-off depends on the traffic and mobility patterns. </li></ul></ul>Classification of the Routing Protocols Proactive Approach Reactive Approach Route Latency <ul><li>Lower </li></ul><ul><li>A route is kept at all times </li></ul><ul><li>Higher </li></ul><ul><li>A route is never kept when not used </li></ul>Routing Overhead <ul><li>Higher </li></ul><ul><li>A frequent dissemination of topology information is required </li></ul><ul><li>Lower </li></ul><ul><li>Fewer control packets in general </li></ul>
  17. 17. <ul><li>Other classification </li></ul><ul><ul><li>Pro active protocols </li></ul></ul><ul><ul><ul><li>DSDV, STAR, WRP, ... </li></ul></ul></ul><ul><ul><li>Reactive protocols </li></ul></ul><ul><ul><ul><li>AODV, DSR, TORA, ... </li></ul></ul></ul><ul><ul><li>Hierarchical/Clustering protocols </li></ul></ul><ul><ul><ul><li>CGSR, ZRP, CBR, FSR, LANMAR, ... </li></ul></ul></ul><ul><ul><li>Position aware protocols </li></ul></ul><ul><ul><ul><li>GPSR, LAR, GRA, ABR, ... </li></ul></ul></ul>Classification of the Routing Protocols
  18. 18. <ul><li>Leading protocols chosen by MANET </li></ul><ul><ul><li>DSR: Dynamic Source Routing </li></ul></ul><ul><ul><li>AODV: Ad-hoc On-demand Distance Vector Routing </li></ul></ul><ul><li>Both are “ on demand ” protocols: route information discovered only as needed </li></ul>
  19. 19. DSDV <ul><li>DSDV (Destination Sequenced Distance Vector) </li></ul><ul><ul><li>Each node sends and responds to routing control message the same way </li></ul></ul><ul><ul><li>No hierarchical structure </li></ul></ul><ul><ul><li>Avoids the resource costs involved in maintaining high-level structure </li></ul></ul><ul><ul><li>Scalability may become an issue in larger networks </li></ul></ul>
  20. 20. <ul><li>Basic Routing Protocol </li></ul><ul><ul><li>known also as Distributed Bellman-Ford Every node maintains a routing table </li></ul></ul><ul><ul><li>all available destinations </li></ul></ul><ul><ul><li>the next node to reach to destination </li></ul></ul><ul><ul><li>the number of hops to reach the destination </li></ul></ul><ul><li>Periodically send table to all neighbors to maintain topology </li></ul><ul><li>Bi-directional links are required! </li></ul>DSDV
  21. 21. Traditional Distance vector tables C 1 2 B A DSDV Dest. Next Metric … A A 1 B B 0 C C 2 Dest. Next Metric … A A 0 B B 1 C B 3 Dest. Next Metric … A B 3 B B 2 C C 0
  22. 22. (A, 1) (B, 0) (C, 1) (A, 1) (B, 0) (C, 1) Distance Vector Updates C 1 1 B A B broadcasts the new routing information to his neighbors Routing table is updated DSDV Dest. Next Metric … A A 1 B B 0 C C 1 Dest. Next Metric … A A 0 B B 1 C B 3 2 Dest. Next Metric … A B 3 2 B B 1 C C 0
  23. 23. (D, 0) (A, 2) (B, 1) (C, 0) (D, 1) (A, 1) (B, 0) (C, 1) (D, 2) Distance Vector – New Node joins the network C 1 1 B A D 1 broadcasts to update tables of C, B, A with new entry for D DSDV Dest. Next Metric … A B 2 B B 1 C C 0 D D 1 Dest. Next Metric … A A 1 B B 0 C C 1 D C 2 Dest. Next Metric … A A 0 B B 1 C B 2 D B 3
  24. 24. Distance Vector – Broken link C 1 1 B A D 1 DSDV Dest.c Next Metric … … … … D C 2 Dest. Next Metric … … … … D B 3 Dest. Next Metric … … … … D B 1 Dest. Next Metric … … … … D D 
  25. 25. (D, 2) (D, 2) Distance Vector - Loops C 1 1 B A D 1 DSDV Dest. Next Metric … … … … D B 3 Dest. Next Metric … … … … D C 2 Dest. Next Metric … … … … D B 3
  26. 26. (D,2) (D,4) (D,3) (D,5) (D,2) (D,4) Distance vector - Count to Infinity C 1 1 B A D 1 DSDV Dest. Next Metric … … … … D B 3, 5, … Dest. Next Metric … … … … D B 3, 5, … Dest.c Next Metric … … … … D C 2, 4, 6…
  27. 27. <ul><li>Traditional Distance Vector are not suited for ad-hoc networks! </li></ul><ul><ul><li>Loops </li></ul></ul><ul><ul><ul><li>Bandwidth reduction in network </li></ul></ul></ul><ul><ul><ul><li>Unnecessary work for loop nodes </li></ul></ul></ul><ul><ul><li>Count to Infinity </li></ul></ul><ul><ul><ul><li>Very slow adaptation to topology changes. </li></ul></ul></ul><ul><li>Solution -> Introduce destination sequence numbers </li></ul>DSDV
  28. 28. <ul><li>DSDV keeps the simplicity of traditional Distance Vector Protocols </li></ul><ul><li>DSDV need to guarantee loop freeness </li></ul><ul><ul><li>New Table Entry for Destination Sequence Number </li></ul></ul><ul><li>DSDV need to allow fast reaction to topology changes </li></ul><ul><ul><li>Make immediate route advertisement on significant changes in routing table </li></ul></ul><ul><ul><li>but wait with advertising of unstable routes (damping fluctuations) </li></ul></ul>DSDV
  29. 29. <ul><li>Features introduced in DSDV </li></ul><ul><ul><li>Sequence number originated from destination. Ensures loop freeness. </li></ul></ul><ul><ul><li>Install Time when entry was made (used to delete stale entries from table. </li></ul></ul><ul><ul><li>S table Data Pointer to a table holding information on how stable a route is. Used to damp fluctuations in network. </li></ul></ul>DSDV Destination Next Metric Seq. Nr Install Time Stable Data A A 0 A-550 001000 Ptr_A B B 1 B-102 001200 Ptr_B C B 3 C-588 001200 Ptr_C D B 4 D-312 001200 Ptr_D
  30. 30. <ul><li>Advertise to each neighbor own routing information </li></ul><ul><ul><li>Destination Address </li></ul></ul><ul><ul><li>Metric = Number of Hops to Destination </li></ul></ul><ul><ul><li>Destination Sequence Number </li></ul></ul><ul><ul><li>Other info (e.g. hardware addresses) </li></ul></ul><ul><li>Rules to set sequence number information </li></ul><ul><ul><li>On each advertisement increase own destination sequence number (use only even numbers) </li></ul></ul><ul><ul><li>If a node is no more reachable (timeout) increase sequence number of this node by 1 (odd sequence number) and set metric =  . </li></ul></ul>DSDV – Route Advertisement
  31. 31. <ul><li>Update information is compared to own routing table </li></ul><ul><ul><li>1. Select route with higher destination sequence number (This ensure to use always newest information from destination) </li></ul></ul><ul><ul><li>2. Select the route with better metric when sequence numbers are equal. </li></ul></ul>DSDV – Route Selection
  32. 32. DSDV Tables C B A DSDV Dest. Next Metric Seq A A 1 A-550 B B 0 B-100 C C 2 C-588 Dest. Next Metric Seq A A 0 A-550 B B 1 B-100 C B 2 C-588 Dest. Next Metric Seq. A B 1 A-550 B B 2 B-100 C C 0 C-588
  33. 33. (A, 1, A-550) (B, 0, B-102) (C, 1, C-588) (A, 1, A-550) (B, 0, B-102) (C, 1, C-588) DSDV Route Advertisement C B A B increases Seq.Nr from 100 -> 102 B broadcasts routing information to Neighbors A, C including destination sequence numbers DSDV Dest. Next Metric Seq A A 0 A-550 B B 1 B-102 C B 2 C-588 Dest. Next Metric Seq A A 1 A-550 B B 0 B-102 C C 1 C-588 Dest. Next Metric Seq. A B 2 A-550 B B 1 B-102 C C 0 C-588
  34. 34. <ul><li>DSDV Respond to topology changes </li></ul><ul><ul><li>Immediate advertisements </li></ul></ul><ul><ul><ul><li>Information on new routes, broken Links, metric change is immediately propagated to neighbors. </li></ul></ul></ul><ul><ul><li>Full/Incremental Update: </li></ul></ul><ul><ul><ul><li>Full Update: Send all routing information from own table. </li></ul></ul></ul><ul><ul><ul><li>Incremental Update: Send only entries that has changed. (Make it fit into one single packet) </li></ul></ul></ul>DSDV
  35. 35. (D, 0, D-000) When new node joins the network C B A D 1. D broadcast for first time Send Sequence number D-000. 2. Insert entry for D with sequence number D-000. Then immediately broadcast own table. DSDV Dest. Next Metric Seq. A A 0 A-550 B B 1 B-102 C B 2 C-590 Dest. Next Metric Seq. A A 1 A-550 B B 0 B-102 C C 1 C-590 Dest. Next Metric Seq. A B 2 A-550 B B 1 B-102 C C 0 C-590 D D 1 D-000
  36. 36. (A, 2, A-550) (B, 1, B-102) (C, 0, C-592) (D, 1, D-000) (A, 2, A-550) (B, 1, B-102) (C, 0, C-592) (D, 1, D-000) ( New node (cont.) C B A D ……… ……… 3. C increases its sequence number to C-592 then broadcasts its new table. 4. B gets this new information and updates its table……. DSDV Dest. Next Metric Seq. A A 1 A-550 B B 0 B-102 C C 1 C-592 D C 2 D-000 Dest. Next Metric Seq. A A 0 A-550 B B 1 B-102 C B 2 C-590 Dest. Next Metric Seq. A B 2 A-550 B B 1 B-102 C C 0 C-592 D D 1 D-000
  37. 37. (D, 2, D-100) (D, 2, D-100) No loops, no count to infinity C B A D 1 1. Node C detects broken Link: -> Increase Seq. Nr. by 1 (only case where not the destination sets the sequence number -> odd number) 2. B does its broadcast -> no affect on C (C knows that B has stale information because C has higher seq. number for destination D) -> no loop -> no count to infinity DSDV Dest.c Next Metric Seq. … … … D C 2 D-100 Dest. Next Metric Seq. … … … D B 3 D-100 Dest. Next Metric Seq. … … … D D  D-101
  38. 38. (D,  , D-101) (D,  , D-101) Immediate Advertisement C B A D 3. Immediate propagation B to A: (update information has higher Seq. Nr. -> replace table entry) 2. Immediate propagation C to B: (update information has higher Seq. Nr. -> replace table entry) DSDV Dest.c Next Metric Seq. … … … D C 3 D-100 Dest. Next Metric Seq. … … … D B 4 D-100 Dest. Next Metric Seq. … … … D B 1 D-100 Dest. Next Metric Seq. … … … D D 1 D-100 D D  D-101 1. Node C detects broken link: -> Increase Seq. Nr. by 1 (only case where not the destination sets the sequence number -> odd number) Dest.c Next Metric Seq. … … … ... D C 2 D-100 D C  D-101 Dest. Next Metric Seq. … … … ... D B 3 D-100 D B  D-101
  39. 39. <ul><li>Advantages </li></ul><ul><ul><li>Simple (almost like Distance Vector) </li></ul></ul><ul><ul><li>Loop free through destination seq. numbers </li></ul></ul><ul><ul><li>No latency caused by route discovery </li></ul></ul><ul><li>Disadvantages </li></ul><ul><ul><li>No sleeping nodes </li></ul></ul><ul><ul><li>Bi-directional links required </li></ul></ul><ul><ul><li>Overhead: most routing information never used </li></ul></ul><ul><ul><li>Scalability is a major problem </li></ul></ul>DSDV
  40. 40. CGSR <ul><li>CSGR (Clusterhead Gateway Switch Routing) </li></ul><ul><ul><li>Similar to DSDV </li></ul></ul><ul><ul><li>Based on concept of clusters and cluster heads </li></ul></ul><ul><ul><li>Routing is done via the cluster heads and gateways </li></ul></ul>
  41. 41. CGSR <ul><li>Problems with CGSR </li></ul><ul><ul><li>More time is spend in selection of cluster heads and gateways </li></ul></ul><ul><ul><li>Has a hierarchy. </li></ul></ul><ul><ul><li>Distributed cluster selection algorithm is used to select cluster head </li></ul></ul>
  42. 42. <ul><li>Cluster head is bottleneck. </li></ul><ul><li>Least cluster change(LCC) algorithm- cluster heads only change when two cluster heads come into contact. </li></ul><ul><li>Each node maintains </li></ul><ul><li>cluster member table-stores destination cluster head for each node, regularly braodcasted using DSDV protocol </li></ul><ul><li>Routing Table- next hop </li></ul><ul><li>Updates are required for both tables </li></ul>
  43. 43. Wireless Routing Protocol (WRP) <ul><li>A path-finding algorithm </li></ul><ul><li>Utilizes information regarding the length and the predecessor-to-dest in the shortest path to each destination </li></ul><ul><li>Eliminates the “Count to Infinity” Problem and converges faster </li></ul><ul><li>An Update message is sent after processing updates from neighbors or a change in link to a neighbor is detected </li></ul><ul><li>Each route update from neighbor k causes route entries of other neighbors that use k to be re-computed </li></ul>
  44. 44. The Algorithm <ul><li>Each node i maintains a Distance table ( i D jk ), Routing table (Destination Identifier, Distance i D j , Predecessor P j , the successor S j and a marker tag), link cost table ( Cost , Update Period ) , message retransmission list ( Seq. No., Counter, Acknowledgement flag, Update List ) </li></ul><ul><li>Listen for updates/ACKs which include i in the response list. Acknowledge each update </li></ul><ul><li>Process the Distance table entries. Compute D jb = D kb + k D j . Update predecessor as reported by k </li></ul><ul><li>Update own Distance and predecessor information </li></ul>
  45. 45. <ul><li>Choose neighbor p such that the path from p to j does not include i and i D jp <= i D jx and i D yp <= i D yx </li></ul><ul><li>Broadcast new update message. Delete stale entries from MRL for new updates. Decrement counter for all entries in list. </li></ul><ul><li>Retransmit MRL entry when counter hits zero, setting response list of update message to those neighbors who have not yet acknowledged </li></ul><ul><li>Lack of NULL updates for given HelloInterval indicate change in link to a neighbor. </li></ul>
  46. 46. <ul><li>Each node implementing WRP keeps a table of routes and distances and link costs. It also maintains a 'message retransmission list' (MRL). </li></ul><ul><li>Routing table entries contain distance to a destination node, the previous and next nodes along the route, and is tagged to identify the route's state: whether it is a simple path, loop or invalid route. (Storing the previous and successive nodes assists in detecting loops and avoiding the counting-to-infinity problem - a shortcoming of Distance Vector Routing.) </li></ul><ul><li>The link cost table maintains the cost of the link to its nearest neighbors (nodes within direct transmission range), and the number of timeouts since successfully receiving a message from the neighbor. </li></ul><ul><li>Nodes periodically exchange routing tables with their neighbors via update messages, or whenever the link state table changes. The MRL maintains a list of which neighbors are yet to acknowledged an update message, so they can be retransmitted if necessary. Where no change in the routing table, a node is required to transmit a 'hello' message to affirm its connectivity. </li></ul><ul><li>When an update message is received, a node updates its distance table and reassesses the best route paths. It also carries out a consistency check with its neighbors, to help eliminate loops and speed up convergence. </li></ul>
  47. 47. <ul><li>WRP has the same advantage as that of DSDV. In addition, it has faster convergence and involves fewer table updates. But the complexity of maintenance of multiple tables demands a larger memory and greater processing power from nodes in the ad hoc wireless network. At high mobility, the control overhead involved in updating table entries is almost the same as that of DSDV and hence is not suitable for highly dynamic and also for a very large ad hoc wireless network. </li></ul>
  48. 48. WRP Example
  49. 49. DSR <ul><li>DSR (Dynamic Source Routing) </li></ul><ul><ul><li>Similar to the source routing in traditional networks </li></ul></ul><ul><ul><li>A node maintains route cache containing the routes it knows </li></ul></ul><ul><ul><li>Includes route discovery on request and route maintenance when needed </li></ul></ul>
  50. 50. DSR <ul><li>Route discovery </li></ul><ul><ul><li>The source sends a broadcast packet which contains source address, destination address, request id and path. </li></ul></ul><ul><ul><li>If the host receiving this packet, saw this packet before, discards it. </li></ul></ul><ul><ul><li>Otherwise, it looks up its route caches to look for a route to destination. If a route is not found, it appends its address into the packet and rebroadcasts it. </li></ul></ul><ul><ul><li>If the route is found, it sends a reply packet to the source node. </li></ul></ul><ul><ul><li>The route will be eventually found when the request packet reaches the destination </li></ul></ul>
  51. 51. DSR <ul><li>RREQ (Route request) </li></ul>Source 4 3 6 5 1 2 RREQ(1,5,{1,2,4}) Route cache (3,5) > {3,6,5} ... Route cache ... Route cache ... RREQ(1,5,{1}) RREQ(1,5,{1,2}) RREQ(1,5,{1,2}) Route cache ... Route cache ... (source, destination, path) Destination
  52. 52. DSR <ul><li>How to send a reply packet? </li></ul><ul><ul><li>If the destination has a route to the source in its cache, use it </li></ul></ul><ul><ul><li>Else if symmetric links are supported, use the reverse of the route record </li></ul></ul><ul><ul><li>Else, if symmetric links are not supported, the destination initiate route discovery to source </li></ul></ul>
  53. 53. DSR <ul><li>RREP (Route reply) </li></ul><ul><li>Source, destination, source route) </li></ul>4 3 6 5 1 2 Route cache (3,1) > {3,2,1} (3,2) > {3,2} (3,5) > {3,6,5} ... Route cache ... Route cache (5,1) > {5,4,2,1} (5,2) > {5,4,2} (5,4) > {5,4} ... Route cache (2,1) > {2,1} (2,4) > {2,4} ... Route cache (1,5) > {1,2,4,5}, {1,2,3,6,5} ... RREP(5,1,{1,2, 4 ,5}) RREP(5,1,{1, 2 ,4,5}) RREP(5,1,{ 1 ,2,4,5}) RREP(3,1,{1, 2 ,3,6,5}) Source Destination
  54. 54. DSR <ul><li>Route maintenance </li></ul><ul><ul><li>Whenever a node transmits a data packet, a route reply or a route error, it must verify that the next hop correctly receives the packet. </li></ul></ul><ul><ul><li>If not, the node must send a route error to the node responsible for generating this route header. </li></ul></ul><ul><ul><li>The source restarts the route discovery </li></ul></ul>
  55. 55. DSR <ul><li>Advantages </li></ul><ul><ul><li>Do not exchange routing update periodically, so overhead transmission is greatly reduced </li></ul></ul><ul><ul><li>Can refer to cache for the new route when link fails. </li></ul></ul><ul><li>Disadvantages </li></ul><ul><ul><li>Scalability problem: High route discovery latency for large network. </li></ul></ul><ul><ul><li>High mobility problem: although the packet dropped may not be substantial, the overhead traffic will increase a lot. </li></ul></ul>
  56. 56. AODV <ul><li>Pure on-demand routing protocol </li></ul><ul><ul><li>A node does not perform route discovery or maintenance until it needs a route to another node or it offers its services as an intermediate node </li></ul></ul><ul><ul><li>Nodes that are not on active paths do not maintain routing information and do not participate in routing table exchanges </li></ul></ul><ul><li>Uses a broadcast route discovery mechanism </li></ul><ul><li>Uses hop-by-hop routing </li></ul><ul><ul><li>Routes are based on dynamic table entries maintained at intermediate nodes </li></ul></ul><ul><ul><li>Similar to Dynamic Source Routing (DSR), but DSR uses source routing </li></ul></ul>
  57. 57. AODV concepts <ul><li>Local HELLO messages are used to determine local connectivity </li></ul><ul><ul><li>Can reduce response time to routing requests </li></ul></ul><ul><ul><li>Can trigger updates when necessary </li></ul></ul><ul><li>Sequence numbers are assigned to routes and routing table entries </li></ul><ul><ul><li>Used to supersede stale cached routing entries </li></ul></ul><ul><li>Every node maintains two counters </li></ul><ul><ul><li>Node sequence number </li></ul></ul><ul><ul><li>Broadcast ID </li></ul></ul>
  58. 58. AODV Route Request <ul><li>Initiated when a node wants to communicate with another node, but does not have a route to that node </li></ul><ul><li>Source node broadcasts a route request (RREQ) packet to its neighbors </li></ul>broadcast_id dest_addr type flags hopcnt resvd dest_sequence_# source_addr source_sequence_#
  59. 59. AODV Route Request <ul><li>Sequence numbers </li></ul><ul><ul><li>Source sequence indicates “freshness” of reverse route to the source </li></ul></ul><ul><ul><li>Destination sequence number indicates freshness of route to the destination </li></ul></ul><ul><li>Every neighbor receives the RREQ and either … </li></ul><ul><ul><li>Returns a route reply (RREP) packet, or </li></ul></ul><ul><ul><li>Forwards the RREQ to its neighbors </li></ul></ul><ul><li>(source_addr, broadcast_id) uniquely identifies the RREQ </li></ul><ul><ul><li>broadcast_id is incremented for every RREQ packet sent </li></ul></ul><ul><ul><li>Receivers can identify and discard duplicate RREQ packets </li></ul></ul>
  60. 60. AODV Route Request <ul><li>If a node cannot respond to the RREQ </li></ul><ul><ul><li>The node increments the hop count </li></ul></ul><ul><ul><li>The node saves information to implement a reverse path set up (AODV assumes symmetrical links) </li></ul></ul><ul><ul><ul><li>Neighbor that sent this RREQ packet </li></ul></ul></ul><ul><ul><ul><li>Destination IP address </li></ul></ul></ul><ul><ul><ul><li>Source IP address </li></ul></ul></ul><ul><ul><ul><li>Broadcast ID </li></ul></ul></ul><ul><ul><ul><li>Source node’s sequence number </li></ul></ul></ul><ul><ul><ul><li>Expiration time for reverse path entry (to enable garbage collection) </li></ul></ul></ul>
  61. 61. AODV Example (1) 1 3 5 2 6 7 4 Node 1 needs to send a data packet to Node 7 Assume Node 6 knows a current route to Node 7 Assume that no other route information exists in the network (related to Node 7)
  62. 62. <ul><li>Node 1 sends a RREQ packet to its neighbors </li></ul><ul><ul><li>source_addr = 1 </li></ul></ul><ul><ul><li>dest_addr = 7 </li></ul></ul><ul><ul><li>broadcast_id = broadcast_id + 1 </li></ul></ul><ul><ul><li>source_sequence_# = source_sequence_# + 1 </li></ul></ul><ul><ul><li>dest_sequence_# = last dest_sequence_# for Node 7 </li></ul></ul>1 4 3 5 2 6 7
  63. 63. <ul><li>Nodes 2 and 4 verify that this is a new RREQ and that the source_sequence_# is not stale with respect to the reverse route to Node 1 </li></ul><ul><li>Nodes 2 and 4 forward the RREQ </li></ul><ul><ul><li>Update source_sequence_# for Node 1 </li></ul></ul><ul><ul><li>Increment hop_cnt in the RREQ packet </li></ul></ul>1 4 3 5 2 6 7
  64. 64. <ul><li>RREQ reaches Node 6, which knows a route to 7 </li></ul><ul><ul><li>Node 6 must verify that the destination sequence number is less than or equal to the destination sequence number it has recorded for Node 7 </li></ul></ul><ul><li>Nodes 3 and 5 will forward the RREQ packet, but the receivers recognize the packets as duplicates </li></ul>1 4 3 5 2 6 7
  65. 65. AODV Route Reply <ul><li>If a node receives an RREQ packet and it has a current route to the target destination, then it unicasts a route reply packet (RREP) to the neighbor that sent the RREQ packet </li></ul>dest_addr type flags hopcnt rsvd dest_sequence_# source_addr lifetime prsz
  66. 66. <ul><li>Intermediate nodes propagate the first RREP for the source towards the source using cached reverse route entries </li></ul><ul><li>Other RREP packets are discarded unless… </li></ul><ul><ul><li>dest_sequence_# number is higher than the previous, or </li></ul></ul><ul><ul><li>destination_sequence_# is the same, but hop_cnt is smaller (i.e., there’s a better path) </li></ul></ul><ul><li>RREP eventually makes it to the source, which can use the neighbor sending the RREP as its next hop for sending to the destination </li></ul><ul><li>Cached reverse routes will timeout in nodes not seeing a RREP packet </li></ul>
  67. 67. <ul><li>Node 6 knows a route to Node 7 and sends an RREP to Node 4 </li></ul><ul><ul><li>source_addr = 1 </li></ul></ul><ul><ul><li>dest_addr = 7 </li></ul></ul><ul><ul><li>dest_sequence_# = maximum(own sequence number, dest_sequence_# in RREQ) </li></ul></ul><ul><ul><li>hop_cnt = 1 </li></ul></ul>1 4 3 5 2 6 7
  68. 68. <ul><li>Node 4 verifies that this is a new route reply (the case here) or one that has a lower hop count and, if so, propagates the RREP packet to Node 1 </li></ul><ul><ul><li>Increments hop_cnt in the RREP packet </li></ul></ul>1 4 3 5 2 6 7
  69. 69. <ul><li>Node 1 now has a route to Node 7 in three hops and can use it immediately to send data packets </li></ul><ul><li>Note that the first data packet that prompted path discovery has been delayed until the first RREP was returned </li></ul>1 3 5 2 6 7 4 AODV Route Maintenance Dest Next Hops 7 4 3
  70. 70. AODV Route Maintenance <ul><li>Route changes can be detected by… </li></ul><ul><ul><li>Failure of periodic HELLO packets </li></ul></ul><ul><ul><li>Failure or disconnect indication from the link level </li></ul></ul><ul><ul><li>Failure of transmission of a packet to the next hop (can detect by listening for the retransmission if it is not the final destination) </li></ul></ul><ul><li>The upstream (toward the source) node detecting a failure propagates an route error (RERR) packet with a new destination sequence number and a hop count of infinity (unreachable) </li></ul><ul><li>The source (or another node on the path) can rebuild a path by sending a RREQ packet </li></ul>
  71. 71. <ul><li>Assume that Node 7 moves and link 6-7 breaks </li></ul><ul><li>Node 6 issues an RERR packet indicating the broken path </li></ul><ul><li>The RERR propagates back to Node 1 </li></ul><ul><li>Node 1 can discover a new route </li></ul>1 4 3 5 2 6 7 7
  72. 72. Zone Routing Protocol <ul><li>A Hybrid Routing Protocol </li></ul><ul><li>A Zone is defined for each node </li></ul><ul><li>Proactive maintenance of topology within a zone (IARP) Distance Vector or Link State </li></ul><ul><li>Reactive query/reply mechanism between zones (IERP) </li></ul><ul><li>Uses ‘Bordercast’ instead of neighbor broadcast </li></ul><ul><li>Neighbor Discovery/Maintenance (NMD) and Border Resolution Protocol (BRP) used for query control, route accumulation etc. </li></ul>
  73. 73. ZRP Example
  74. 74. Node S is Source X destination
  75. 77. Zone Routing Protocol cont. <ul><li>Routing Zone and IntrAzone Routing Protocol </li></ul><ul><ul><li>Zone Radius may be based on hop count </li></ul></ul><ul><ul><li>Identity and distance of each Node within the Zone is proactively maintained </li></ul></ul><ul><li>The Interzone Routing Protocol </li></ul><ul><ul><li>Check if destination is within the routing zone </li></ul></ul><ul><ul><li>Bordercast a route query to all peripheral nodes </li></ul></ul><ul><ul><li>Peripheral nodes execute the same algorithm </li></ul></ul>
  76. 78. Zone Routing Protocol cont. <ul><li>Route Accumulation : </li></ul><ul><ul><li>Provide reverse path from discovery node to source node </li></ul></ul><ul><ul><li>May employ global caching to reduce query packet length </li></ul></ul><ul><li>Query Detection/Control : </li></ul><ul><ul><li>Intermediate nodes update a Detected Queries Table [Query Source, ID] </li></ul></ul><ul><li>Route Maintenance may be reactive or proactive </li></ul>
  77. 79. STAR <ul><li>The approach used in the STAR protocol is inbetween these two approaches. </li></ul><ul><li>The idea is to maintain a source tree at each node which connects the node to all the destinations through loop-free tree branches. </li></ul><ul><li>The aim is not to emphasize the determination of shortest paths, rather find paths which are reasonable with respect to some metric. </li></ul><ul><li>This is called the Least Overhead Routing Approach (LORA). </li></ul>
  78. 80. <ul><li>DSDV uses the Optimum Routing Approach (ORA) which requires frequent exchange of routing table updates. </li></ul><ul><li>In the LORA approach, route optimality is sacrificed in favour of lower number of overhead messages. </li></ul><ul><li>In the STAR protocol, the LORA approach is used and the exchange of source trees among the nodes is infrequent. Also, a source tree is much lighter compared to a routing table. </li></ul>
  79. 81. <ul><li>In STAR , the topology of a network is modelled as a directed graph G=(V,E), where V is the set of nodes and E is the set of edges connecting the nodes. </li></ul><ul><li>A link level protocol is assumed that keeps track of neighbourhood information through exchange of hello messages. </li></ul>
  80. 82. <ul><li>Each router maintains a source tree that is a tree connecting the router to all destinations that are known to the router. </li></ul><ul><li>A router knows its adjacent links, i.e., the next-hop neighbours in its source tree. </li></ul><ul><li>A router also knows the source trees reported by its neighbours. </li></ul><ul><li>The collection of a router´s own source tree and the source trees reported by its neighbours forms a partial topology graph for the router </li></ul>
  81. 83. Maintaining source trees <ul><li>A router computes its source tree by running Dijkstra´s shortest path algorithm on its partial topology graph. </li></ul><ul><li>A router updates its source tree whenever there are significant changes in the partial topology graph when a neighbour moves away ( link failure) , or a neighbour communicates a new source tree. </li></ul><ul><li>The updates are done according to the order the communications are received. </li></ul>
  82. 84. What Needs to be Communicated <ul><li>Link deletions need not be communicated as the deletion of a link to reach a given destination is implicit with the addition of a new link to reach the same destination. </li></ul><ul><li>The only case a router needs to explicitly inform its neighbours about link deletion is when a deletion causes the router to lose paths to one or more destinations. </li></ul><ul><li>The basic update unit used to communicate changes to source trees is the link state update (LSU). </li></ul>
  83. 85. Sequence Numbers <ul><li>When a router receives an LSU, it can determine whether the LSU contains more recent link-state information by comparing the sequence number of the new LSU with the sequence number of the link stored locally. </li></ul><ul><li>Each router erases a link from its partial topology graph if the link is not adjacent to the router and is not present in the source trees reported by any of its neighbours. </li></ul>
  84. 86. Exchanging Update Messages <ul><li>We only discuss how STAR protocol can be implemented for supporting the Least Overhead Routing Approach (LORA). It is possible to implement STAR to support Optimal Routing Approach (ORA). </li></ul><ul><li>The LORA approach is more important since it reduces overheads considerably. </li></ul><ul><li>The ORA approach can be supported simply by exchanging source trees whenever a router detects a change in its source tree. </li></ul>
  85. 87. When to Exchange Update Messages <ul><li>A router running STAR protocol to support LORA reports updates to its source tree in the event of : </li></ul><ul><ul><li>Unreachable destinations </li></ul></ul><ul><ul><li>New destinations </li></ul></ul><ul><ul><li>The possiblity of permanent routing loops </li></ul></ul><ul><ul><li>Cost of paths exceeding a given threshold </li></ul></ul>
  86. 88. New Destination <ul><li>Router i sends a source-tree update to its neighbours when it finds a new destination or any of its neighbours reports a new destination. </li></ul><ul><li>A router can learn about a new neighbour through link level support and this triggers a source-tree update. </li></ul><ul><li>This update message is also necessary when a node joins the network for the first time. </li></ul>
  87. 89. <ul><li>STAR performs ORA table driven based routing to construct source trees </li></ul><ul><li>LORA table driven routing can be used to selectively perform updates. </li></ul>