[Tinyos-help] Routing Protocols in TinyOS 2

Philip Levis pal at cs.stanford.edu
Thu Feb 28 08:15:53 PST 2008

On Feb 28, 2008, at 1:08 AM, Tao Liu wrote:

> Dear all,
> I am a beginner in TinyOS, and I am trying to understand the routing
> algorithms used in TinyOS 2. According to the TEP 123, TinyOS 2.0 uses
> CTP as the routing protocol for multihop communications, which uses
> ETX as the route metric to estimate the quality of a link. However, my
> understanding is that TinyOS 2.0 provides two implementations of the
> CTP:
>  - tos/lib/net/ctp
>  - tos/lib/net/lqi

tos/lib/net/lqi is not an implementation of CTP (TEP 123). It's a  
collection service (TEP 119), but a completely different protocol.

> The first one uses ETX, and the second one uses LQI in the link
> estimation. Is there any way to incorporate other route metrics to the
> current CTP implementation? If there is, which component should I
> modify to apply the new metric? I believe there should be some
> components in tos/lib/net/le, but I am not sure.

CTP can be used with different link estimators: tos/lib/net/le and  
tos/lib/net/4bitle are the two in CVS, with the latter being much  

> I am also wondering what are the preferred routing protocols currently
> used in the wireless sensor networks, especially those protocols that
> are not tree-based? As far as I can tell TOS 2.x provides two (the
> ones mentioned above), and TOS 1.x offers more. There are also
> prototype protocols such as S4 (Small state and Small Stretch Routing
> Protocol) and CentRoute (CENS) available.  Are there any point to
> point protocols available that are not tree-based?

Please take a look at Om's slides from TTX5. TYMO, a slight variation  
on DYMO, should be making its way into CVS soon. Note, though, that  
one-to-one routing which is not tree based has fundamental scaling  

> Out of the existing
> sensor network deployments, which routing protocol seems to get the
> most use?  I would appreciate if you could provide pointers to the
> implementations as well (whether they are on the main TOS code
> repository or a different one).

Most deployments don't use or need one-to-one routing. Those that do  
tend to use application-specific approaches, as the general case  
requires O(n) state.


More information about the Tinyos-help mailing list