Destination Sequenced DistanceVector routing algorithm for Ad Hoc Networks (DSDV) n n n Distance Vector vs. Link-State n distnace vector vs. link-state counting to infinity problem DSDV u tables u updates u responding to topology changes u dealing with fluctuations - settling time n n link-state u each node maintains a view of network topology with costs (number of hops, connectivity, etc.) to each link u each node periodically broadcasts the costs of its links to keep the views of all nodes consistent distance vector (distributed bellman-ford) u each node i maintains a list of destinations, associated costs to get there and next hop node u each node periodically broadcasts the costs of the links and the costs to destinations evaluation u distance vector is more efficient, easier to implement, requires less storage space, yet it may not converge fast 1 2 Counting-to-Infinity problem n n n n DSDV tables If the link goes down, a distance vector algorithm is prone to formation of routing loops. The problem is particularly severe if part of the network becomes separated. In this case the nodes have to count until “infinity”. u slow convergence u value for infinity has to be selected as small as possible – limits the scalability of algorithm CtI usually creates loops of 2 nodes which mutually “deceive” each other ways to mitigate CtI in wired networks: u split horizon – don’t propagate the info back to the node from which info is learned u poisoned reverse – propagate the info back with metric set to ∝ does not work in wireless networks u use sequence numbers n n n each routing table lists all destinations and number of hops to each each route is tagged with a sequence number install and stable_data are explained later MH4’s original routing table 3 Advertisements n n n n 4 Responding to topology changes each node periodically advertises routes to other hosts the destination of the route adds 2 to the sequence number, others propagate (hence even SNs if no topology change) route selection u with largest SN u if equal SNs – with smaller metric two types of broadcasts u full dump – whole routing table is transmitted, possibly in several messages F if significant change is detected: topology update – significant change, SN increase - not F while network is not busy u incremental F as needed 5 n n n when link is broken – node assigns ∝, increments sequence number for destination (to an odd number – only case where non-destination changes SN) and broadcasts such change is considered significant change immediately propagated by other nodes since no node but destination generates new SNs and the node always accepts greater SNs routing loops are avoided 6 Damping Fluctuations Example operation n original table at MH4 n updated table 7 Settling time n n n to prevent selection of suboptimal paths due to early arrival updates, a node maintains the delay of “shortest” update arrival from the “earliest”. this delay is called settling time the node calculates a weighted average of the settling time (where newer data is given preference) for example: ASTn = n where ASTn-1 – average settling time before update, ST – settling time n AST – average settling time after update n a node may wait double the average settling time before advertising a suboptimal entry stale entry – missed a specified number of updates, stale entries are removed from routing table 9 ∝ is propagated immediately n n n n n 2ST + ASTn − 1 3 for various reasons the “shortest” route update may arrive later than “longer” u route to MH9 is 11 hops through MH2 and 10 through MH6, yet the update with SN=200 from MH2 arrives 10 secs earlier than from MH6 host always uses newest path for routing but may delay to advertise it, hence a separate advertising table u stable data in routing table points to previously held value 8