Presentation is loading. Please wait.

Presentation is loading. Please wait.

Temporally-Ordered Routing Algorithm (TORA)

Similar presentations


Presentation on theme: "Temporally-Ordered Routing Algorithm (TORA)"— Presentation transcript:

1 Temporally-Ordered Routing Algorithm (TORA)
Daniel Hasler, Patrick Stüdi Presented by: Edward Heinz, Van Searcy Adhoc Networking Seminar, ETH Zürich

2 Adhoc Networking Seminar, ETH Zürich
Table of Contents Introduction TORA Specification Route Creation Route Maintenance Route Erasure Summary Adhoc Networking Seminar, ETH Zürich

3 Adhoc Networking Seminar, ETH Zürich
1. Introduction 1.1 Desirable Attributes of a Routing Algorithm executes distributedly provides loop-free routes provides multiple routes establishes routes quickly minimizes communication overhead selects optimal path Adhoc Networking Seminar, ETH Zürich

4 Adhoc Networking Seminar, ETH Zürich
1. Introduction 1.2 System Assumptions & Notations network modeled as a graph: G = (N, L) N is a finite set of nodes L is the set of communication links each node i has a unique identifier each node i has a set of neighbours N[i] € N defined as nodes k such that (i, k) € L Adhoc Networking Seminar, ETH Zürich

5 Adhoc Networking Seminar, ETH Zürich
1. Introduction Note: a logically seperate version of the algorithm is run for each „destination“ to which routing is required. the following slides focus on a single version of the algorithm running for a given destination Adhoc Networking Seminar, ETH Zürich

6 Adhoc Networking Seminar, ETH Zürich
1. Introduction 1.3 General Reversal Algorithms Definitions: each node i has a height H such that the nodes may be totally ordered node k is considered downstream of node i if H[i] > H[k]. link (i, k) is directed from i to k node k is considered upstream of node i if H[i] < H[k]. link (i, k) is directed from k to i link to node k is considered undirected if H[k] = NULL Adhoc Networking Seminar, ETH Zürich

7 Adhoc Networking Seminar, ETH Zürich
1. Introduction 1.3 General Reversal Algorithms (2) node i is a local minimum when it has no outgoing links, i.e when H[i] < H[k] for all k € N[i] How it works: packets from source to destination are always routed downstream if no downstream link available: node i raises ist height H[i] so it is a local maximum by setting H[i] = max{H[i]|k € N[i]} + 1 Adhoc Networking Seminar, ETH Zürich

8 Adhoc Networking Seminar, ETH Zürich
1. Introduction 1.3 General Reversal Algorithms (3) node i then broadcasts this value to its neighbours which causes all links (i, k) for all k € N[i] to reverse the reversal class of algorithms has been shown to provide loop-free destination oriented DAG‘s in a finite number iterations. Adhoc Networking Seminar, ETH Zürich

9 Adhoc Networking Seminar, ETH Zürich
1. Introduction 1.3 General Reversal Algorithms (4) Destination Adhoc Networking Seminar, ETH Zürich

10 Adhoc Networking Seminar, ETH Zürich
1. Introduction 1.3 General Reversal Algorithms (5) Adhoc Networking Seminar, ETH Zürich

11 Adhoc Networking Seminar, ETH Zürich
2 TORA Specification 2.1 Tora Attributes On demand source initiated routing Nodes only maintain information about adjacent nodes (distributed) Provides multiple routes Creates loop-free routes Handles partitions by erasing routes Adhoc Networking Seminar, ETH Zürich

12 Adhoc Networking Seminar, ETH Zürich
2 TORA Specification 2.2 Algorithm Overview Route Creation: establish sequence of directed links from source to destination. this is done by forming destination oriented directed acyclic graph (DAG) Route Maintenance: Reaction to topology changes in order to reestablish routes Route Erasure: When a partition is detected in the network, all invalid routes must be removed from the network. This is done by making directed routes undirected (erasing routes). Adhoc Networking Seminar, ETH Zürich

13 Adhoc Networking Seminar, ETH Zürich
2 TORA Specification 2.2 Node Height in TORA In TORA the height assigned to every node i is represented by a quintuple: H[i] = (, oid, r, , i) The first three fields represent the reference level. : a time tag indicating the “time” of link failure. oid: originator-id – unique id of the node that defined the new reference level. r: reflection bit – used to divide each reference level into 2 sub-levels Adhoc Networking Seminar, ETH Zürich

14 Adhoc Networking Seminar, ETH Zürich
2 TORA Specification 2.2 Node Height in TORA (2) : integer used to order nodes with respect to unique reference level i: unique identifier of the node height of each node (except for the destination) is initially set to NULL: H[i] = ( -, -, -, -, i) height of destination node d is initially set to ZERO: H[d] = (0, 0, 0, 0, d) each node maintains a height array containing the heights of neighbours: H[i][k] Adhoc Networking Seminar, ETH Zürich

15 2 TORA Specification 2.3 Packet formats:
Query (QRY) packet: used in route creation 8 16 31 Version Type Reserved Destination IP Address Adhoc Networking Seminar, ETH Zürich

16 2 TORA Specification 2.3 Packet formats (2)
Update (UPD): route creation/route maintenance 8 16 31 Version Type Reserved Destination IP Address H. H.oid H.r H. H.id Adhoc Networking Seminar, ETH Zürich

17 2. TORA Specification 2.3 Packet formats (3)
Clear (CLR): route erasing 8 16 31 Version Type Reserved Destination IP Address H. H.oid H.id Adhoc Networking Seminar, ETH Zürich

18 Adhoc Networking Seminar, ETH Zürich
3 Route Creation 3.1 Concept packets used in route creation: QRY, UPD each node i maintains: route-required flag RT_REQ, initially unset time the last UPD packet was broadcast the time at which each link (i, k) € L for k € N[i] came up When a node i with no directed links and an un-set RT_REQ requires a route, it broadcasts a QRY packet and sets RT_REQ Adhoc Networking Seminar, ETH Zürich

19 Adhoc Networking Seminar, ETH Zürich
3 Route Creation 3.2 Receipt of QRY packet When a node i receives a QRY packet, it has four options: no downstream links and RT_REQ unset: rebroadcast QRY packet and set RT_REQ no downstream links and RT_REQ set: discard QRY packet at least one downstream link and H[i] = NULL: H[i] = min{H[k]|k € N[i]} + {0, 0, 0, 1, 0}, broadcast UPD packet Adhoc Networking Seminar, ETH Zürich

20 Adhoc Networking Seminar, ETH Zürich
2 Route Creation 3.2 Receipt of QRY packet (2) at least one downstream link and H[i] non-NULL and if the (time the link over which the QRY packet was received became active < time the last UPD broadcasted): discard QRY packet otherwise broadcast UPD packet Adhoc Networking Seminar, ETH Zürich

21 Adhoc Networking Seminar, ETH Zürich
3 Route Creation 3.3 Receipt of UPD packet when node i receives an UPD packet from neighbour k, it updates H[i][k] to reflect height of node k if RT_REQ is set (implying that H[i] = NULL) then set H[i] = min{H[k]|k € N[i]} + {0, 0, 0, 1, 0) Adhoc Networking Seminar, ETH Zürich

22 Adhoc Networking Seminar, ETH Zürich
3 Route Creation 3.4 Example node C requires route to F and broadcasts QRY packet (-,-,-,-,A) (-,-,-,-,D) (-,-,-,-,E) (-,-,-,-,C) (-,-,-,-,G) (-,-,-,-,H) (-,-,-,-,B) QRY (0,0,0,0,F) : RT_REQ set Adhoc Networking Seminar, ETH Zürich

23 Adhoc Networking Seminar, ETH Zürich
3 Route Creation 3.4 Example (2) node A and G propagate QRY packet (-,-,-,-,A) (-,-,-,-,D) (-,-,-,-,E) (-,-,-,-,C) (-,-,-,-,G) (-,-,-,-,H) (-,-,-,-,B) QRY (0,0,0,0,F) QRY : RT_REQ set Adhoc Networking Seminar, ETH Zürich

24 Adhoc Networking Seminar, ETH Zürich
2 Route Creation 3.4 Example (3) Node B and D propagate QRY packet. node H generates a UPD packet (because it already has downstream link) and broadcasts it. (-,-,-,-,A) (-,-,-,-,D) (-,-,-,-,E) (-,-,-,-,C) (-,-,-,-,G) (-,-,-,-,B) QRY QRY (0,0,0,0,F) UPD (0,0,0,1,H) : RT_REQ set Adhoc Networking Seminar, ETH Zürich

25 Adhoc Networking Seminar, ETH Zürich
3 Route Creation 3.4 Example (4) nodes B and G propagate UPD packet. node E generates UPD packet and broadcasts it (-,-,-,-,A) (-,-,-,-,D) (-,-,-,-,C) (0,0,0,1,E) UPD UPD (0,0,0,2,B) (0,0,0,0,F) UPD (0,0,0,2,G) (0,0,0,1,H) : RT_REQ set Adhoc Networking Seminar, ETH Zürich

26 Adhoc Networking Seminar, ETH Zürich
3 Route Creation 3.4 Example (5) node A, C and D propagate UPD packet (0,0,0,2,D) (0,0,0,3,A) UPD UPD (0,0,0,1,E) (0,0,0,3,C) (0,0,0,2,B) UPD (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

27 Adhoc Networking Seminar, ETH Zürich
3 Route Creation 3.4 Example (6) route creation has completed (0,0,0,2,D) (0,0,0,3,A) (0,0,0,1,E) (0,0,0,3,C) (0,0,0,2,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

28 Adhoc Networking Seminar, ETH Zürich
Neighbor Tables Adhoc Networking Seminar, ETH Zürich

29 Adhoc Networking Seminar, ETH Zürich
Neighbor Tables (2) Adhoc Networking Seminar, ETH Zürich

30 Adhoc Networking Seminar, ETH Zürich
3 Route Maintenance 4.1 Concept Node i has no downstream links (H[i] < H[k], k € N[i]). this causes one of four possible reactions which modifies H[i]: Generate: no downstream links due to a link failure: (, oid, r) = (t, i, 0), where t is the time of the failure (, i) = (0, i) node i defines a new reference level. if i has no upstream neighbors, it sets H[i] = NULL Adhoc Networking Seminar, ETH Zürich

31 Adhoc Networking Seminar, ETH Zürich
3 Route Maintenance 4.1 Concept (2) Propagate: no downstream links and reference level ([k], oid[k], r[k]) are not equal to all neighbors: (, oid, r) = max{([k], oid[k], r[k])|k € N[i]} select maximum reference level from neighbors. (, i) = (min{[k]|k € N[i] with ([k], oid[k], r[k]) = max{([k], oid[k], r[k]) }} – 1, i) chooses a reference level lower than all neighbors of that reference level. Adhoc Networking Seminar, ETH Zürich

32 Adhoc Networking Seminar, ETH Zürich
3 Route Maintenance 4.1 Concept (3) Reflect: no downstream links, reference level ([k], oid[k], r[k]) is equal to neighbors and reflection bit = 0 : (, oid, r) = ([k], oid[k], 1) (, i) = (0, i) node i reflects back the reference level by setting the r bit Adhoc Networking Seminar, ETH Zürich

33 Adhoc Networking Seminar, ETH Zürich
3 Route Maintenance 4.1 Concept (4) Detect: no downstream links, reference level ([k], oid[k], r[k]) is equal to neighbors, reflection bit = 1, and oid[k] = i : (, oid, r) = (-, -, -) (, i) = (-, i) node has detected a partition and begins route erasure Adhoc Networking Seminar, ETH Zürich

34 Adhoc Networking Seminar, ETH Zürich
4 Route Maintenance 4.2 Decision Tree Adhoc Networking Seminar, ETH Zürich

35 Adhoc Networking Seminar, ETH Zürich
4 Route Maintenance 4.3 Example link (D, E) fails (0,0,0,2,D) (0,0,0,3,A) (0,0,0,1,E) (0,0,0,3,C) (0,0,0,2,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

36 Adhoc Networking Seminar, ETH Zürich
4 Route Maintenance 4.3 Example (2) no route maintenance is necessary because all nodes have at least one outgoing link (0,0,0,2,D) (0,0,0,3,A) (0,0,0,1,E) (0,0,0,3,C) (0,0,0,2,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

37 Adhoc Networking Seminar, ETH Zürich
4 Route Maintenance 4.3 Example (3) link (B, H) fails (0,0,0,2,D) (0,0,0,3,A) (0,0,0,1,E) (0,0,0,3,C) (0,0,0,2,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

38 Adhoc Networking Seminar, ETH Zürich
4 Route Maintenance 4.3 Example (4) node B defines a new reference level and broadcasts a UPD packet (case 1) (0,0,0,2,D) (0,0,0,3,A) (0,0,0,1,E) (0,0,0,3,C) UPD (1,B,0,0,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

39 Adhoc Networking Seminar, ETH Zürich
4 Route Maintenance 4.3 Example (5) node D propagates reference level defined by B (case 2) (1,B,0,-1,D) (0,0,0,3,A) UPD (0,0,0,1,E) (0,0,0,3,C) (1,B,0,0,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

40 Adhoc Networking Seminar, ETH Zürich
4 Route Maintenance Example (6) node A propagates reference level defined by B. route maintenance completed (case 2) (1,B,0,-1,D) (1,B,0,-2,A) UPD (0,0,0,1,E) (0,0,0,3,C) (1,B,0,0,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

41 Adhoc Networking Seminar, ETH Zürich
4 Route Erasure 5.1 Concept Erasing routing is performed when network partition is detected (case 4 of route maintenance) Partition is detected when a higher sub-level (reflection bit) is propagated back to the originating node from all of its neighbors When network partition is detected, “clear packet” (CLR) is flooding throughout the network to erase invalid routes. Adhoc Networking Seminar, ETH Zürich

42 Adhoc Networking Seminar, ETH Zürich
5 Route Erasure 5.2 Example link (A, C) fails (1,B,0,-1,D) (1,B,0,-2,A) (0,0,0,1,E) (0,0,0,3,C) (1,B,0,0,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

43 Adhoc Networking Seminar, ETH Zürich
5 Route Erasure 5.2 Example (2) node A defines a new reference level and broadcasts a UPD packet (case 1 route maintenance) (1,B,0,-1,D) (2,A,0,0,A) UPD (0,0,0,1,E) (0,0,0,3,C) (1,B,0,0,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

44 Adhoc Networking Seminar, ETH Zürich
5 Route Erasure 5.2 Example (3) node D propagates reference level defined by A (case 2 route maintenance) (2,A,0,-1,D) (2,A,0,0,A) UPD (0,0,0,1,E) (0,0,0,3,C) (1,B,0,0,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

45 Adhoc Networking Seminar, ETH Zürich
5 Route Erasure 5.2 Example (4) node B reflects back a higher sub-level by setting the r bit (case 3 route maintenance) (2,A,0,-1,D) (2,A,0,0,A) (0,0,0,1,E) (0,0,0,3,C) UPD (2,A,1,0,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

46 Adhoc Networking Seminar, ETH Zürich
5 Route Erasure 5.2 Example (5) node D propagates reference level defined by B (case 2 route maintenance) (2,A,1,-1,D) (2,A,0,0,A) UPD (0,0,0,1,E) (0,0,0,3,C) (2,A,1,0,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

47 Adhoc Networking Seminar, ETH Zürich
5 Route Erasure 5.2 Example (6) node A detects partition, sets its height to NULL and broadcasts CLR packet (case 4 route maintenance) (2,A,1,-1,D) (-,-,-,-,A) CLR (0,0,0,1,E) (0,0,0,3,C) (2,A,1,0,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

48 Adhoc Networking Seminar, ETH Zürich
5 Route Erasure 5.2 Example (7) D and B set their heights to NULL and broadcast a CLR packet. route erasure completed (-,-,-,-,D) (-,-,-,-,A) CLR (0,0,0,1,E) (0,0,0,3,C) CLR (-,-,-,-,B) (0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H) Adhoc Networking Seminar, ETH Zürich

49 Adhoc Networking Seminar, ETH Zürich
Performance of TORA TORA has the highest overhead when compared to DSR, AODV, DSDV. This is the case because TORA’s overhead is the sum of a constant mobility independent overhead and a variable mobility-dependent overhead. The constant overhead is the result of the neighbor discovery mechanism which requires each node to transmit some kind of “Hello” message every second. So, for 900-second simulation with 50 nodes this would result in a minimum overhead of 45,000 packets. Adhoc Networking Seminar, ETH Zürich

50 Adhoc Networking Seminar, ETH Zürich
Performance of TORA (2) The variable part of the overhead consists of the routing packets TORA uses to create and maintain routes. TORA packet delivery ratio drops to 40% at high mobility rate when the number of sources is 30. In this case, each node has to maintain information for 30 different destinations which continuously change. So, as a result nodes are not able to keep up, the greater the number of control messages created causes more and more collisons and the algorithm cannot converge. Adhoc Networking Seminar, ETH Zürich

51 Adhoc Networking Seminar, ETH Zürich
TORA Performance (2) Adhoc Networking Seminar, ETH Zürich

52 Adhoc Networking Seminar, ETH Zürich
TORA Performance Adhoc Networking Seminar, ETH Zürich

53 Adhoc Networking Seminar, ETH Zürich
Notes Loop-free routes guaranteed by unique heights and only downstream data propagation. Infinite link reversal prevented by reflection bit. Partition is detected when a higher reference level with reflection bit set is propagated back to the originating node from all of its neighbors. TORA selects next-hop neighbor randomly using uniform distribution. TORA LN selects lowest downstream neighbor determined by lowest height. Adhoc Networking Seminar, ETH Zürich

54 Adhoc Networking Seminar, ETH Zürich
6 Conclusion a loop-free multipath routing protocol minimizes communication overhead rapidly adapts to topological changes detects network partitions and erase all invalid routes within a finite time it does not select optimal path Adhoc Networking Seminar, ETH Zürich


Download ppt "Temporally-Ordered Routing Algorithm (TORA)"

Similar presentations


Ads by Google