1 / 29

Mobile Ad hoc Networks COE 549 Routing Protocols II

Mobile Ad hoc Networks COE 549 Routing Protocols II. Tarek Sheltami KFUPM CCSE COE http://faculty.kfupm.edu.sa/coe/tarek/coe549.htm. Outline. On Demand Routing Protocols DSR AODV TORA (Study it). Dynamic Source Routing.

amie
Download Presentation

Mobile Ad hoc Networks COE 549 Routing Protocols II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mobile Ad hoc Networks COE 549Routing Protocols II Tarek Sheltami KFUPM CCSE COE http://faculty.kfupm.edu.sa/coe/tarek/coe549.htm

  2. Outline • On Demand Routing Protocols • DSR • AODV • TORA (Study it)

  3. Dynamic Source Routing • All nodes participate in the protocol, and there is no malicious interference (no security issues) • Receivers detect the transmission of corrupted/destroyed packets • Nodes are mobile, but the levels of mobility are moderate. • Nodes may be promiscuous (i.e., decode packets that are not intended for them) • Both uni-directional and bi-directional links are acceptable • But the medium access layer may neutralize all uni-directional links • With CSMA/CA, uni-directional links are not used • With Aloha, they may be used

  4. DSR Mechanisms • Route Discovery: • If a node S has a packet for node D, but does not know a route to D, it initiates the Route Discovery Mechanism • Route Maintenance: • If a node S is using a route to node D, and realizes that the route is stale (for example, because of node mobility), and has no other route stored in its cache, it initiates the Route Maintenance Mechanism

  5. Route Discovery: Route Request • If a node S wants to find a route to node D, it transmits a ROUTE REQUEST packet, containing the following information: • The source ID (node S). • The destination ID (node D) . • A request ID. • A list of intermediate nodes that the ROUTE REQUEST packet has traversed (initially the list is empty). • If a node X receives a ROUTE REQUEST packet: • If X=D, X replies with a ROUTE REPLY packet. • If X ≠ D, and the request ID is new to X, X transmits the ROUTE REQUEST packet once more, appending its address to the list of intermediate nodes.

  6. Route Discovery: Route Reply • A node that receives a ROUTE REQUEST packet intended for itself will send a ROUTE REPLY packet to the source, even if it already has replied (optional)

  7. Multiple routes are returned • By construction, the protocol returns multiple routes. A good thing? • In the above network, it may produce the two routes highlighted with a dashed line. • Are other routes possible? • Could it have produces three routes? • Is it possible for two routes to share a few common nodes?

  8. Route Maintenance • The responsibility for the successful propagation of a packet is divided: Each node must acknowledge the successful reception of the packet to the node preceding it in the route. • Each node makes a fixed number of attempts to transmit a packet (number of attempts is a design variable). • If all attempts fail (because of malfunctions or node mobility), the last node to receive the packet sends a ROUTE ERROR packet to the source. (What if the route to the source is not known?) • Upon the reception of the ROUTE ERROR packet, the source purges the route from its routing cache, and initiates a new route discovery.

  9. Additions: 1-Promiscuity • The routing overhead can be significantly decreased, if nodes promiscuously use routing information intended for other nodes that they happen to overhear. • For example, in the following network, if all links are bi-directional, a single ROUTE REQUEST packet initiated by A and destined for E is enough for all nodes to gain a complete picture of the network.

  10. Promiscuity has its pitfalls • If the network has uni-directional links, nodes must be careful. • In the below figure, if the link from X to C is uni-directional (X can transmit to C but not the other way round), the routing information on the header of the data packet is useless for C. • If the link from X to C is bi-directional, but the links of the lower chain are uni-directional, what information can be inferred?

  11. Additions: 2. Replying to ROUTE REQUEST packets using cached routes • If a node X receives a ROUTE REQUEST packet intended for a destination for which X knows a route, there is no need to propagate the ROUTE REQUEST packet further. X simply replies with a ROUTE REPLY packet containing the augmented route. • For example, in the network below, if B knows the route to E, and A sends a ROUTE REQUEST packet intended for E, B immediately replies with a ROUTE REPLY packet, containing the complete route.

  12. A potential problem • In the network below, imagine that G knows the route to E, and received a ROUTE REQUEST from node A, for E. • Should it suggest the route AB  C  F  G  F  C  D  E? • Should it suggest the route A  B  C  D  E? • Or should it remain silent?

  13. Additions: 3. ROUTE REQUEST hop limits • If A tries to find a route to B, four routes will be returned. • Of these, R1 is the shortest, and hence MAYBE the best. • The creation of the rest consumes a lot of bandwidth. • Solution: Impose a maximum number of hops on all ROUTE REQUEST packets. • How should the limit be selected?

  14. Additions: 4. Suppressing Route Reply Storms • In the network below, everyone knows the route to G, except from A. • If A issues a ROUTE REQUEST packet, everyone will try to respond, and there may be collisions (depending on the MAC protocol used). • Solution: If a node knows a route of length h, it issues a ROUTE REPLY packet after time T = H × (h + r − 1) where r is a random variable, uniformly distributed in (0, 1). • Does this make sense? How do we select H?

  15. Additions: 5. Packet Salvaging • In the network below, if A is using the obsolete route R1, node B has two options: • It sends a ROUTE ERROR packet back to A, and discards the packet. • It sends a ROUTE ERROR packet back to A, but also attempts to salvage the packet, by routing it as its own, using a different route (R2) that still works. • The second option is a very useful trick, because as we move closer to a node, routing information becomes more accurate. • Should node A retransmit the packet?

  16. Additions: 6. Gratuitous Route Replies • If node A is using (the longer) route R1 to send data to C, node B will send a gratuitous ROUTE REPLY packet to A, notifying it that it can switch to (the shorter) route R2.

  17. Additions: 7. Spreading ROUTE ERROR packets • When a link fails, a ROUTE ERROR packet is sent to the source A. • The nodes along the route that failed are notified of the failure by promiscuously receiving the ROUTE ERROR packet. • To make sure that the link that failed is purged from other routing caches, the source A issues a new ROUTE REQUEST packet, piggybacking the routing error in it.

  18. Additions: 8. Caching Negative Information • Nodes might want to cache the fact that a link just went down. • This is not the same as purging all routes that use this link from the cache. • If another node suggests a route with this link, the route is probably stale and should be ignored. • Nodes might also want to cache the fact that a specific link is erratic, and hence should be avoided. • Negative information should be purged after a certain amount of time. • How do we pick the time?

  19. Additions: 9. Multicasting • Until now, each packet had a single destination (unicasting). • In some applications, packets have many destinations (multicasting), or we want everyone to receive the packet (broadcasting). • Typical example: SOS signals. • Sending the packet consecutively to all destinations is extremely bandwidth consuming. • Much better to send the packet to all destinations at once. • A rudimentary approach with DSR: Piggyback the packet in a ROUTE REQUEST packet to a fictitious destination. • What are the potential problems of this approach?

  20. Ad hoc On-demand Distance Vector (AODV) • Each routing entry contains the following pieces of information (the first three are the same with the entries of the Bellman-Ford Algorithm) : • Destination. • Next hop toward the destination. • Number of hops left to reach the destination. • Sequence number of the destination. (The sequence number reveals how fresh is the information in the routing table.) • Active neighbors for that destination. (If the route to the destination disappears, these neighbors will be notified.) • Expiration time for the route table entry. (Whenever the route is used, the expiration time is updated.)

  21. Path Discovery: RREQ Packets • If a source node S has a packet for a destination node D and does not know the next hop toward D, it initiates a path discovery, by broadcasting a route request (RREQ) packet. • The RREQ packet contains the following fields: • The address of the source node. • The address of the destination node. • The sequence number of the source. • The last known sequence number of the destination. • The hop count to the source (set to 0). • Nodes increment their sequence numbers just before transmitting a RREQ or a RREP packet.

  22. Path Discovery: RREP Packets • When a node A receives a RREQ packet: • If A does not know the route to the destination, it broadcasts another RREQ packet, after increasing the hop count by 1, and noting: • The next hop to the source, • how many hops away the source is, • the source destination number. • (this information will be used for routing the RREP packet). • Otherwise (node A knows a route to the destination), node A stores: • The next hop to the source, • how many hops away it is, • the source sequence number, • and then unicasts a Route Reply (RREP) packet back the source, letting it know how many hops away it is from its destination.

  23. Path Discovery, Example 1 • In the following network, node 3 knows how to route packets to node 5 and node 1 wants to find a route to 5.

  24. Path Discovery, Example 2 • In the following network, no node has routing information of any kind, and node 1 wants to find a route to node 5.

  25. AODV only returns one route • B only replies to the first RREQ packet. • As the RREQ packets propagate, routing information about the reverse paths is accumulated. • If this information is not used soon, it is purged by the routing cache.

  26. Path Maintenance • Node A monitors the links to all its neighbors. • If the link to a neighbor B disappears, and this neighbor B is actively used for routing, node A sends a Route Error (RERR) packet to all its neighbors that are using the link. • Each of these neighbors will propagate the RERR packet further, if needed. • The RERR packets will use a destination sequence number which is incremented by 1 from the previously known. This ensures that no routing loops are formed:

  27. Example • In the following network, after the link from node 4 to node 5 is gone, node 1 has to discover a new route.

  28. Similarities and Difference between DSR and AODV • Similarities: • Both are on-demand. • Both use a similar route discovery process. • Differences: • DSR uses source routing (and so all routes are trivially loop-free), but AODV uses only table-driven routing (and so extra care must be taken to ensure that routes are loop-free). • DSR has no timers (so some of its routes may be stale), AODV uses them extensively. • DSR discovers many routes (and so has quick backups if a route is gone), AODV only one route (and so initiates route discoveries much more often).

  29. Disadvantages • DSR is not scalable to large networks, because of the source routing requirement. Furthermore, the need to place the entire route in both route replies and data packets causes a significant overhead. • AODV is not suitable in the case of ad-hoc networks which are characterized by being highly dynamic, i.e., ones in which topological changes are frequent.

More Related