 the temporally ordered routing algorithm (tora) is an algorithm for routing data across wireless mesh networks or mobile ad hoc networks. it was developed by vincent park and scott corson at the university of maryland and the naval research laboratory. park has patented his work, and it was licensed by nova engineering, who are marketing a wireless router product based on park's algorithm. ==operation== the tora attempts to achieve a high degree of scalability using a "flat", non-hierarchical routing algorithm. in its operation the algorithm attempts to suppress, to the greatest extent possible, the generation of far-reaching control message propagation. in order to achieve this, the tora does not use a shortest path solution, an approach which is unusual for routing algorithms of this type. tora builds and maintains a directed acyclic graph (dag) rooted at a destination. no two nodes may have the same height. information may flow from nodes with higher heights to nodes with lower heights. information can therefore be thought of as a fluid that may only flow downhill. by maintaining a set of totally ordered heights at all times, tora achieves loop-free multipath routing, as information cannot 'flow uphill' and so cross back on itself. the key design concepts of tora is localization of control messages to a very small set of nodes near the occurrence of a topological change. to accomplish this, nodes need to maintain the routing information about adjacent (one hop) nodes. the protocol performs three basic functions: * route creation * route maintenance * route erasure during the route creation and maintenance phases, nodes use a height metric to establish a directed acyclic graph (dag) rooted at destination. thereafter links are assigned based on the relative height metric of neighboring nodes. during the times of mobility the dag is broken and the route maintenance unit comes into picture to reestablish a dag routed at the destination. timing is an important factor for tora because the height metric is dependent on the logical time of the link failure. tora's route erasure phase is essentially involving flooding a broadcast clear packet (clr) throughout the network to erase invalid routes ===route creation=== a node which requires a link to a destination because it has no downstream neighbours for it sends a qry (query) packet and sets its (formerly unset) route-required flag. a qry packet contains the destination id of the node a route is sought to. the reply to a query is called an update upd packet. it contains the height quintuple of the neighbour node answering to a query and the destination field which tells for which destination the update was meant for. a node receiving a qry packet does one of the following: 
Ad_hoc_routing_protocols Routing_algorithms Wireless_networking