Dsr – dynamics source routing. basics Two types of routing –On-demand / reactive Information is only collected when required, I.e., when a packet needs.

Slides:



Advertisements
Similar presentations
1 A Review of Current Routing Protocols for Ad-Hoc Mobile Wireless Networks By Lei Chen.
Advertisements

Communication Networks Recitation 3 Bridges & Spanning trees.
Routing Protocols Lecture # 6 Obaid Khan.
1 Routing in Mobile Ad Hoc Networks CS 598HL, 2006.
MANETs Routing Dr. Raad S. Al-Qassas Department of Computer Science PSUT
CSE University of Washington Multipath Routing Protocols in AdHoc Networks.
Mobile Ad-Hoc Networks (MANET)
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #4 Mobile Ad-Hoc Networks AODV Routing.
Revisiting On Demand Routing On Demand Routing schemes are reactive – a route is found when needed. This precludes the periodic exchange of routing tables.
1 Routing in Mobile Ad Hoc Networks most slides taken with permission from presentation of Nitin H. Vaidya University of Illinois at Urbana-Champaign.
1 University of Freiburg Computer Networks and Telematics Prof. Christian Schindelhauer Mobile Ad Hoc Networks Routing 9th Week Christian.
Mobile and Wireless Computing Institute for Computer Science, University of Freiburg Western Australian Interactive Virtual Environments Centre (IVEC)
ITIS 6010/8010 Wireless Network Security Dr. Weichao Wang.
Mobile and Wireless Computing Institute for Computer Science, University of Freiburg Western Australian Interactive Virtual Environments Centre (IVEC)
CS541 Advanced Networking 1 Mobile Ad Hoc Networks (MANETs) Neil Tang 02/02/2009.
Mobile and Wireless Computing Institute for Computer Science, University of Freiburg Western Australian Interactive Virtual Environments Centre (IVEC)
Ad-hoc On-Demand Distance Vector Routing (AODV) Sirisha R. Medidi.
Mobile and Wireless Computing Institute for Computer Science, University of Freiburg Western Australian Interactive Virtual Environments Centre (IVEC)
Aodv. Distance vector routing Belman principle AODV - overview Similar to DSR –On demand –Route request when needed and route reply when a node knows.
Mobile and Wireless Computing Institute for Computer Science, University of Freiburg Western Australian Interactive Virtual Environments Centre (IVEC)
8/7/2015 Mobile Ad hoc Networks COE 549 Routing Protocols II Tarek Sheltami KFUPM CCSE COE 1.
Ad Hoc Wireless Routing COS 461: Computer Networks
Routing Two papers: Location-Aided Routing (LAR) in mobile ad hoc networks (2000) Ad-hoc On-Demand Distance Vector Routing (1999)
The Zone Routing Protocol (ZRP)
ENHANCING AND EVALUATION OF AD-HOC ROUTING PROTOCOLS IN VANET.
CIS 725 Wireless networks. Low bandwidth High error rates.
1 Spring Semester 2009, Dept. of Computer Science, Technion Internet Networking recitation #3 Mobile Ad-Hoc Networks AODV Routing.
Mobile Routing protocols MANET
Mobile Adhoc Network: Routing Protocol:AODV
Ad hoc On-demand Distance Vector (AODV) Routing Protocol ECE 695 Spring 2006.
Ad-hoc On-Demand Distance Vector Routing (AODV) and simulation in network simulator.
Ad-Hoc Networks. References r Elizabeth Royer and Chai-Keong Toh, " A Review of Current Routing Protocols for Ad Hoc Wireless Mobile Networks, " IEE Personal.
CMPT 471 Networking II Address Resolution IPv4 ARP RARP 1© Janice Regan, 2012.
Ad Hoc Routing: The AODV and DSR Protocols Jonathan Sevy Geometric and Intelligent Computing Lab Drexel University
Routing Protocols of On- Demand Dynamic Source Routing (DSR) Ad-Hoc On-Demand Distance Vector (AODV)
Dynamic Source Routing in ad hoc wireless networks Alexander Stojanovic IST Lisabon 1.
Ad Hoc Routing: The AODV and DSR Protocols Speaker : Wilson Lai “Performance Comparison of Two On-Demand Routing Protocols for Ad Hoc Networks”, C. Perkins.
Routing Protocols for Mobile Ad-Hoc Networks By : Neha Durwas For: Professor U.T. Nguyen COSC 6590.
Dynamic Source Routing (DSR) Sandeep Gupta M.Tech - WCC.
Fault-Tolerant Papers Broadband Network & Mobile Communication Lab Course: Computer Fault-Tolerant Speaker: 邱朝螢 Date: 2004/4/20.
1 Ad Hoc On-Demand Distance Vector Routing (AODV) Dr. R. B. Patel.
AODV: Introduction Reference: C. E. Perkins, E. M. Royer, and S. R. Das, “Ad hoc On-Demand Distance Vector (AODV) Routing,” Internet Draft, draft-ietf-manet-aodv-08.txt,
DSR: Introduction Reference: D. B. Johnson, D. A. Maltz, Y.-C. Hu, and J. G. Jetcheva, “The Dynamic Source Routing Protocol for Mobile Ad Hoc Networks,”
SRL: A Bidirectional Abstraction for Unidirectional Ad Hoc Networks. Venugopalan Ramasubramanian Ranveer Chandra Daniel Mosse.
Traditional Routing A routing protocol sets up a routing table in routers A node makes a local choice depending on global topology.
Mobile and Wireless Computing Institute for Computer Science, University of Freiburg Western Australian Interactive Virtual Environments Centre (IVEC)
Ad-hoc On Demand Distance Vector Protocol Hassan Gobjuka.
Intro DSR AODV OLSR TRBPF Comp Concl 4/12/03 Jon KolstadAndreas Lundin CS Ad-Hoc Routing in Wireless Mobile Networks DSR AODV OLSR TBRPF.
a/b/g Networks Routing Herbert Rubens Slides taken from UIUC Wireless Networking Group.
A Framework for Reliable Routing in Mobile Ad Hoc Networks Zhenqiang Ye Srikanth V. Krishnamurthy Satish K. Tripathi.
6LoWPAN Ad Hoc On-Demand Distance Vector Routing Introduction Speaker: Wang Song-Ferng Advisor: Dr. Ho-Ting Wu Date: 2014/03/31.
Ad Hoc On-Demand Distance Vector Routing (AODV) ietf
Improving Fault Tolerance in AODV Matthew J. Miller Jungmin So.
Fundamentals of Computer Networks ECE 478/578
Doc.: IEEE /0174r1 Submission Hang Liu, et al. March 2005 Slide 1 A Routing Protocol for WLAN Mesh Hang Liu, Jun Li, Saurabh Mathur {hang.liu,
Performance Comparison of Ad Hoc Network Routing Protocols Presented by Venkata Suresh Tamminiedi Computer Science Department Georgia State University.
Author:Zarei.M.;Faez.K. ;Nya.J.M.
Mobile Ad Hoc Networks: Introduction
Internet Networking recitation #4
A comparison of Ad-Hoc Routing Protocols
Routing Protocols in MANETs
Sensor Network Routing
CBRP: A Cluster-based Routing Protocol for Mobile Ad hoc Networks
任課教授:陳朝鈞 教授 學生:王志嘉、馬敏修
Mobile and Wireless Networking
by Saltanat Mashirova & Afshin Mahini
Routing.
Vinay Singh Graduate school of Software Dongseo University
A Routing Protocol for WLAN Mesh
Routing in Mobile Wireless Networks Neil Tang 11/14/2008
Presentation transcript:

Dsr – dynamics source routing

basics Two types of routing –On-demand / reactive Information is only collected when required, I.e., when a packet needs to be sent and there is no current/valid route –Proactive Routing information is stored and collected even if a route is not needed On-demand has less overhead (sometimes) but is often slower to begin data delivery Proactive may require extensive overhead DSR uses two mechanisms –Route discovery Route request Route reply –Route maintenance Route Cache – locally stored routes Packets carry the entire path (Source Routing)

DSR (Rough Sketch) S D Initially, nodes do not have any topology information and hence no routes Suppose that the application gives S’s OS a packet to send to D. S must find a route to D

DSR (Rough Sketch) RREQ S D RREQ: S is looking for a path to D, seqno=1 RREQ

DSR (Rough Sketch) RREQ S AD A: 0. Receive RREQ 1.Record that A can reach S in one hop 2.Process RREQ 1.Is S looking for A? No 2.Does A have a path to D? No 3.Forward RREQ RREQ RREQ: S is looking for a path to D, seqno=1

DSR (Rough Sketch) RREQ S AD RREQ RREQ: S is looking for a path to D, seqno=1; link: A,S The RREQ has been extended, so that the path from S to A is appended to the RREQ

DSR (Rough Sketch) RREQ S ABD B: 0. Receive RREQ 1.Record that B and A are neighbors, and that S and A are neighbors 2.Process RREQ 1.Is S looking for B? No 2.Does B have a path to D? No 3.Forward RREQ RREQ RREQ: S is looking for a path to D, seqno=1; link: A,S The RREQ has been extended, so that the path from S to A is appended to the RREQ

DSR (Rough Sketch) RREQ S ABD RREQ RREQ: S is looking for a path to D, seqno=1; links: A,S; B,A The RREQ has been extended, so that the path from S to C is appended to the RREQ

DSR (Rough Sketch) RREQ S ABCD RREQ RREQ: S is looking for a path to D, seqno=1; links: A,S; B,A; C,B D: 0. Receive RREQ 1.Record that S and A, A and B, B and C, and C and D are neighbors 2.Process RREQ 1.Is S looking for Y? Yes. Send RREP back to S

DSR (Rough Sketch) RREP S ABCD RREP RREP: Send pkt along path D, C, B, A, S. S: 0. Receive RREP 1.Record path S,A,B,C,D 2.Send data packets with destination D along path {S,A,B,C,D} This is called reverse path forwarding. Reverse path forwarding is good in that if links are bidirectional, then the path always exists Reverse path forwarding is not so good because the reverse path might not be “low quality.”

DSR (Rough Sketch) Packet Forwarding S ABCD Data Data: Send pkt along path S, A, B, C, D

DSR – Path Break S ABCD Data Data: Send pkt along path S, A, B, C, D

DSR (Rough Sketch) Path Break S ABCD RERR 1.B detects that the link with C has broken 2.B sends a RERR message to S. RERR: from B to S. The link from B to C has broken

DSR (Rough Sketch) Path Break BCD 1.S repeats the route search processes 2.RREQ: S is looking for a path to D. By the way, the link between B and C has broken S A RREQ

DSR (Rough Sketch) Topology Cache S ABCD 1.Since wireless communications are broadcasted, nodes can receive packets even if they are not the destination of the packet 2.RREQ, RREP, RERR, and Data packet all include topology information. This information can be used to determine routes

DSR (Rough Sketch) Topology Cache S AD RREQ S AD S ABD S ABCD Learns: It is a neighbor of A, B, and C, and path {S,A,B,C,D}

DSR (Rough Sketch) Topology Cache BCD S A RREQ Knows: It is a neighbor of A, B, and C, and path {S,A,B,C,D}

DSR (Rough Sketch) Topology Cache B E CD S A RREQ Knows: It is a neighbor of A, B, and C, and path {S,A,B,C,D} E: 0. Receive RREQ 1.E knows a route to D without link B C 2.Generate RREP

DSR (Rough Sketch) Topology Cache B E CD S A RREP Knows: It is a neighbor of A, B, and C, and path {S,A,B,C,D} E: 0. Receive RREQ 1.E knows a route to D without link B C 2.Generate RREP

DSR Details and Design Issues Flooding RREQ - Flooding Storms –Each RREQ has a sequence number, so nodes do not forward the same RREQ twice –In dense networks, broadcasts can collide Broadcast delay: Each node selects a random delay before broadcasting a RREQ (how long should this delay be when there are N neighbors?) –In dense networks, not all nodes need to broadcast the message. Which ones should? Efficient flooding Counter-based –During the random delay, a node records how many copies of the message it has received. –If, at the end of the delay, the number of copies received is below a threshold, then the message is broadcasted –maxC=5.*(degrees =6 & degrees =9 & degrees =12); Local topology methods –Use neighbor discovery methods to learn the local topology. Based on the local topology, nodes select which nodes should forward the message. –The MANET routing protocol OLSR uses this technique. (We’ll see it later)

DSR Details and Design Issues Topology Cache –Should the cache timeout? That is, if some link information has been in the cache for a long time without any evidence that the link is still up, should it be removed? More basic question: what to do if a RREQ yields a route that does not work? Answer: Repeat the RREQ, but perhaps without cache (so the RREQ must reach the destination Trade-off: if the cache is stale, then RREQ floods are wasted. If cache is time-out too early, then RREQ are performed unnecessarily.

DSR Details and Design Issues How to detect link breaks? –Perhaps all nodes periodically sends hello messages, and B stops getting hello messages from C –Perhaps whenever C gets a pkt from B, it sends an ACK Note, that also sends ACKs. Why not use ACKs? The network layer should be independent of the MAC/PHY, so it cannot count on ACKs While does receive ACKs, the drivers do not provide information as to which packets were ACKed What is a link? Occasional pkt losses are expected. It is very difficult to determine whether a packet loss is because communication over the link is no longer possible or that communication will soon be possible

DSR Details and Design Issues Reverse path forwarding Reverse paths usually exist, but their quality might be bad. In fact, the quality is typically bad. S D If there are enough nodes in this clump, then it is very likely that one will be able to decode the RREQ

DSR Details and Design Issues Reverse path forwarding Reverse paths usually exist, but their quality might be bad. In fact, the quality is typically bad. S D If there are enough nodes in this clump, then it is very likely that one will be able to decode the RREQ

DSR Details and Design Issues Reverse path forwarding Reverse paths usually exist, but their quality might be bad. In fact, the quality is typically bad. S D If there are enough nodes in this clump, then it is very likely that one will be able to decode the RREQ

DSR Details and Design Issues Reverse path forwarding Reverse paths usually exist, but their quality might be bad. In fact, the quality is typically bad. S D But this is a very bad route Alternatively, Each RREQ contains some link quality information But then, RREQ need to be forwarded multiple times (each time a better route is found) The random delay before forwarding the RREQ depends on the route quality, with bad routes only being forwarded after a long delay and good routes after a short delay.

DSR Details and Design Issues Packet salvaging –If a link is broken, then a RERR is sent to source, but if an alternative route is available, then the current pkt is sent over that route Path shortening –If a node learns that it can reach some other node along the path in fewer hops, then that node sends a RREP to the source. Source Path Routing –Generally, source path routing is difficult because if any link alogn the way breaks, the path is broken. –There is no good way to use information that intermediate nodes might have. –Other methods, such as AODV, can make use of information available to intermediate nodes

Route request When a packet has a destination that is not within the route cache, a route discovery is initiated. To this end: a route request (REEQ) packet is transmitted The RREQ contains: –The source, the desire destination and request ID –It also contains a list of the nodes visited so far –The RREQ is broadcasted When a node receives a RREQ, if it is the desired destination, then it replies with a route reply When a route request is received –Record that this request was received and check if it was already received, if so, then drop the request. The request id is the request id and the source address –Copy the path within the packet into the cache –Append this nodes address onto the path –Search local route cache for a route to the destination –If a route is not found in the route cache, then update path in the packet and broadcast the packet

Route request continued The RREQ include a TTL – the number of hops for the search Every time the RREQ is forwarded, the TTL is decremented If TTL =0, then the packet is dropped If a route reply does not arrive after a specified time, then a new search is initiated –The source seq number is incremented (changed) –The TO is at least doubled if the initial TTL is unchanged Why would TTL be unchanged / why would it be smaller/larger? –The rate at which a route search is initiated is limited - an application cannot ask for too many routes to a particular host (but what about a DoS route request to different addresses?)

Route Reply If the desire destination receives a route request and the dest has never seen this request before, it returns a route reply. Thus, no route selection occurs, the first packet to reach is used. In the typical case that the links are bidirectional, then the reply is sent along the reverse path. If links are not bidirectional (when can this happen), a new route search must be performed. –Of course, the found route is carried in the new route request. This way, the source has a way to inform the dest that route has been found The dest must ensure that there are no loops in the route The Salvage field is set to Max_Salvage, so the route back to the source will not be salvaged, if the route fails, the packet is dropped and a route error is generated

Filling Route Cache When ANY packet is overheard, the route within the packet is broken into links, and the links are stored in the route cache (topology cache) The details of the cache are not in the experimental RFC 4728 Each link in the packet is added to the cache (thus, the cache is a cache of links) Note, a RREQ results in a large amount of topology information being put into different caches Each entry in the cache has a time-out. –A common approach is to set the time-out –Alternatively, link lifetimes could be estimated

Link lifetime estimation Each node has a stability attribute (SA) When a packet appears that has used over node I or will pass through node I, –SA_i = SA_i + timeSinceLastUpdated * StabilityIncFactor –StabilityIncFactor (>1 default=4). When a link is found to have broken, then the stability of each end point is multiplied by StabilityDecFractor (<1 default =1/2) –SA_i = SA_i* StabilityDecFractor AIMD – whyyyy Link lifetime –When a link is put into the link cache, its lifetime is the min SA its end points, but never less than 1sec. –When a link is used for a route, its lifetime is set to max(120, current lifetime). A route is selected from the graph in the cache. The route is the shortest, but among the shortest, the one with the longest lifetime is selected

Generating route reply from cache When a RREQ arrives, if the packet has not been seen before, then the route cache is examined for a route to the destination If the route cache includes a path to the destination, then a cache route reply is generated It is checked that the route does not have any loops (easy) The cached route is included in the options part of the packet. So there are two path segments, one from source to this node and one from this node to the dest. Route replies are sent either over the reverse path or over some different path, which might require finding a path The salvage field is set to non-zero and ideally be set to Max_salvage –This will indicate that the packet is being salvaged (which is not exactly correct) and so other nodes will not take the path as valid –If salvage = max_salvage, the delivery to the source will be salvaged if a link is found to have broken.

Preventing packet reply storms Note that after the dest broadcasts a route reply, all its neighbors have a route to the source Any late arriving RREQ will cause a RREP to be generated. Causing a RREP storm Instead: when a route reply can be generated (by dest or intermediate node), a timer is set. The timer = d = H * (h r) where H is a constant that is at least twice the link propagation delay, h is the number of hops from source to the destination, and r is random between 0 and 1 During this time, the node listens for DATA packets with better routes. If no such data packet appears before the time expires, then the route reply is sent when the time expires

Detecting link failure Link layer ACKs Using passive ACKs –Does not work at the last hop –Does not work with power control –Radios must be the same and limited spatial reuse –There might be queuing delay that delays the forwarding The sender may record the typical forwarding time Network layer ACKs Neighbor detection (via hellos) for active routes. How many times to try before giving up?

Responding to link failure If a packet is not able to be sent over a link, a route error is generated. If the salvage field is zero (i.e., not a salvaged packet), then the route error is sent to the source. If the salvage field is not zero, then the route error is sent to the source address in the options –E.g., if the packet is a route reply from cache, the node with the cache hit is the source in the options part A route error may generate another route error. When receiving a route error message –Remove any links from the cache that include the failed link. –If only routes are cached, the remove all routes that contain this link (one could break the routes into route segments..) –If the dest of the route error is not this node, then forward the packet to the next node A source may begin a new route search when a route error arrives. But, of course, the limit on route searches must be maintained. Also, the new route search should contain a piggy-backed with the route error. This way nodes can keep their cache up to date and also so they do not respond with a route that is already known to be broken.

Packet salvaging (not route salvaging) If a link failure is detected a route error is generated (always) If the node generating the route error has a different path to the dest, then it may salvage the packet The new route is placed in the options part The salvage field is incremented If the packet is a route reply and the links are unidirectional (e.g., ), then packet salvaging is not allowed –The RREP should travel back to the originator of the RREQ to indicate that the path found is a good one. –However, since the path just broke, it is not a good one. Hence, such a message should not be sent –If links are unidirectional, then the RREP indicates that there is a path from the originator to the destination. This information is still valid.

Route shortening If a node overhears a packet with this node listed in the route that is still to come and this node is not the next hop, then This node should generate a gratuitous route reply to the source of the packet. The reply includes the shorter route –The source can then use this shorter route The node that generates the gratuitous route reply should consider the SNR of the link. This is crazy