TARP (the Tiny Ad-hoc Routing Protocol) is our proprietary routing solution. The platform has been designed with the premise of self-scalable, ad-hoc oriented collaboration of small and generally unreliable nodes. By assuming that the nodes are unreliable our solution is more resilient than typical wireless sensor network protocols. TARP is based on an ad-hoc mesh network that:
Before we describe TARP in depth, take a look at a traditional ad-hoc routing scheme (e.g., AODV in ZigBee®), which operates like this:
The network combines broadcasting (HELLO messages, route discovery or recovery) with point-to-point transmissions (the actual forwarding). It operates in several different MODES (neighborhood identification, route discovery, forwarding, failure detection, route recovery). The implied assumption is that forwarding is something special and quite different from the other modes. In our opinion, there is no rationale for this assumption! It appears to us an atavistic desire to see wires where they do not exist. This is not ad-hoc routing! This is routing along virtual wires laid in an ad-hoc and potentially dynamic environment.

Any packet forwarded to a specific next-hop node (along the red arrows) is in fact overheard by all one-hop-neighbors of the forwarding node (transparent arrows). The best path is an illusion. There is no such thing in the network any more than there are direct links between adjacent pairs of nodes on the alleged path. Isn’t “wireless” another word for “link-less?” This is the right way:

In the traditional approach, the dilemma of a forwarding node is this “To which neighbor should I direct the packet?” With TARP, the forwarding node has no dilemma at all – it simply sends the packet out. Note that the net outcome is the same in both cases: the packet has been broadcast to all nodes in the neighborhood.
But now a receiving node faces a dilemma: “Should I become a forwarding node for the received packet?” Thus, TARP changes the paradigm of forwarding: the basic question is not “where?” but “whether?” With a bit of insight, this change brings about the following features:
TARP solves the dilemma of a receiving node by applying a chain of rules to the received packet. Each rule bases its decision on some information cached by the node while listening to the packets. When a rule succeeds, the packet is dropped (the node concludes that it shouldn’t forward the packet). Otherwise, the next rule takes over. If all the rules have failed, the packet is rebroadcast. Here is how it all looks:

The rules are implemented in such a manner that they fail if not enough information is available in the cache to make an authoritative decision. This way a node with less memory will tend to drop fewer packets, which may result in more redundant (suboptimal) routing. But no packets will be lost (dropped incorrectly) because of the lack of storage. Thus, TARP automatically trades the quality of routes for device footprint.
The quintessence of TARP is the so-called SPD rule (for Suboptimal Path Discard), which acts to shrink the population of forwarding nodes to a controllable-width stripe along the shortest paths between source and destination. The width of this stripe may be controlled by the application for the desired degree of redundancy.
All commercial ad-hoc ideas are based on point-to-point forwarding which:
TARP, in contrast:
Zigbee
TARP is a component of a holistic platform; its premises are: