540 likes | 1.21k Views
Reactive & proactive protocols. Reactive protocols Dynamic Source Routing (DSR) [Johnson96] Ad Hoc On-Demand Distance Vector Routing (AODV) [Perkins99Wmcsa] Link reversal algorithm [Gafni81] Proactive protocols Optimized Link State Routing (OLSR) [Jacquet00ietf,Jacquet99Inria]
E N D
Reactive & proactive protocols • Reactive protocols • Dynamic Source Routing (DSR) [Johnson96] • Ad Hoc On-Demand Distance Vector Routing (AODV) [Perkins99Wmcsa] • Link reversal algorithm [Gafni81] • Proactive protocols • Optimized Link State Routing (OLSR) [Jacquet00ietf,Jacquet99Inria] • Destination-Sequenced Distance-Vector (DSDV) [Perkins94Sigcomm]
Link reversal algorithm: motivation • Find alternative routes when primary route fails • Desired properties • not by flooding • distributed algorithm • loop free
Problem statement • single destination (can be relaxed) • links are bi-directional • but assume directions • routes from sources to destination: acyclic directed graph (ADG) • destination oriented ADG • every source has a route to destination • destination disoriented ADG • original graph: connected, destination oriented • problem: given a destination disoriented ADG, how to reverse link directions to get a destination oriented ADG?
Problem illustration (I) A B F C E G D
Problem illustration (II) A B F Links are bi-directional But algorithm imposes logical directions on them C E G Maintain a directed acyclic graph (DAG) for each destination, with the destination being the onlysink This DAG is fordestination node D D
Problem illustration (III) A B F C E G Link (G,D) broke D • Node G has no outgoing links • Only C has route to D
Two algorithms • Full reversal • Partial reversal • both runs in iterations, stop when all nodes (excluding sink) has at least one outgoing link (why?)
Full reversal A B F C E G Link (G,D) broke D Any node, other than the destination, that has no outgoing links reverses all its incoming links. Node G has no outgoing links
Full reversal A B F C E G Represents a link that was reversed recently D Now nodes E and F have no outgoing links
Full reversal A B F C E G Represents a link that was reversed recently D Now nodes B and G have no outgoing links
Full reversal A B F C E G Represents a link that was reversed recently D Now nodes A and F have no outgoing links
Full reversal A B F C E G Represents a link that was reversed recently D Now all nodes (other than destination D) have an outgoing link
Full reversal A B F C E G D DAG has been restored with only the destination as a sink
Full reversal discussion • Will it ever stop? • Is it loop free? • Is it flooding? • If the graph is connected, then full reversal terminates after a finite # of iterations. • Directed graph at each iteration is a acyclic. • The direction of any link between two nodes that have a direct path to the destination in the initial ADG will never be reversed.
Partial reversal • A node reverses incoming links from only those neighbors who have not reversed links “previously” • If all neighbors have reversed links, then the node reverses all its incoming links
Partial reversal A B F C E G Link (G,D) broke D Node G has no outgoing links
Partial reversal A B F C E G Represents a link that was reversed recently Represents a node that has reversed links D Now nodes E and F have no outgoing links
Partial reversal A B F C E G Represents a link that was reversed recently D Nodes E and F do not reverse links from node G Now node B has no outgoing links
Partial reversal A B F C E G Represents a link that was reversed recently D Now node A has no outgoing links
Partial reversal A B F C E G Represents a link that was reversed recently D Now all nodes (except destination D) have outgoing links
Partial reversal A B F C E G D DAG has been restored with only the destination as a sink
Partial reversal discussion • Will it ever stop? • Is it loop free? • Is it flooding? • If the graph is connected, then partial reversal terminates after a finite # of iterations. • Directed graph at each iteration is a acyclic. • The direction of any link between two nodes that have a direct path to the destination in the initial ADG will never be reversed.
Full reversal: another description • Routing as water flow • Each node has a “height” • node i has height αi • “water” flows from i to j if αi >αj • Reverse direction: reselect height • Destination-disoriented ADG • node w/o outgoing link: its height is local minimum • Full reversal • Node w/o outgoing link reselect height to become a local maximum • Broadcast new height
Partial reversal: another description • Through numbering scheme (“heights”) • More complicated • See paper • Proof of properties of full & partial reversal: see paper
Link reversal algorithm advantages • Not flooding • attempt to limit updates to routing tables at nodes in the vicinity of a broken link • Partial reversal tends to be better than full reversal • Each node may potentially have multiple routes to a destination
Link reversal algorithm disadvantages • Need a mechanism to detect link failure • hello messages may be used • but hello messages can add to contention • Broadcast of link reversal messages • If network is partitioned, link reversals continue indefinitely
Link reversal in a partitioned network A B F C E G D This DAG is fordestination node D
Full reversal in a partitioned network A B F C E G D A and G do not have outgoing links
Full reversal in a partitioned network A B F C E G D E and F do not have outgoing links
Full reversal in a partitioned network A B F C E G D B and G do not have outgoing links
Full reversal in a partitioned network A B F C E G D E and F do not have outgoing links
Full reversal in a partitioned network A B F In the partition disconnected from destination D, link reversals continue, until the partitions merge Similar scenario can occur with partial reversal method too One solution: Temporally-Ordered Routing Algorithm (TORA) C E G D
Reactive & proactive protocols • Reactive protocols • Dynamic Source Routing (DSR) [Johnson96] • Ad Hoc On-Demand Distance Vector Routing (AODV) [Perkins99Wmcsa] • Link reversal algorithm [Gafni81] • Proactive protocols • Optimized Link State Routing (OLSR) [Jacquet00ietf,Jacquet99Inria] • Destination-Sequenced Distance-Vector (DSDV) [Perkins94Sigcomm]
Classical link state routing • Each node periodically floods status of its links • Each node re-broadcasts link state information received from its neighbor • Each node keeps track of link state information received from other nodes • Each node uses above information to determine next hop to each destination
Optimized Link State Routing (OLSR) • Reduce link state information flooding • A broadcast from node X is only forwarded by its multipoint relays (MPRs) • MPR of node X are its neighbors s.t. each two-hop neighbor of X is a one-hop neighbor of at least one MPR of X • Each node transmits its neighbor list in periodic beacons, s.t. all nodes can know their 2-hop neighbors, in order to choose the MPRs
Optimized Link State Routing (OLSR) • Nodes C and E are multipoint relays of node A F B J A E H C K G D Node that has broadcast state information from A
Optimized Link State Routing (OLSR) • Nodes C and E forward information received from A F B J A E H C K G D Node that has broadcast state information from A
Optimized Link State Routing (OLSR) • Nodes E and K are multipoint relays for node H • Node K forwards information received from H • E has already forwarded the same information once F B J A E H C K G D Node that has broadcast state information from A
Destination-Sequenced Distance-Vector (DSDV) • Each node maintains a routing table • next hop towards each destination • a cost metric for the path to each destination • a destination sequence number that is created by the destination itself • Sequence numbers used to avoid formation of loops • 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
Destination-Sequenced Distance-Vector (DSDV) • Assume that X receives routing information from Y about a route to Z • S(X): destination sequence # for node Z as stored at node X • S(Y): destination sequence # sent by Y with its routing table to node X Z X Y
Destination-Sequenced Distance-Vector (DSDV) • 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) Z X Y
Other schemes • Asymmetric responsibilities • giving special responsibilities to a subset of nodes (even if all nodes are physically identical) • Hybrid protocols • Proactive & reactive routing • Geographic routing • Utilizing geographic information • Many more…