First Switch, Then Route

At Silvair we've been working on wireless mesh networks for almost five years now. Started with proprietary radios, going through the pains of 6LoWPAN in the extremely slow and constrained sub-gigahertz band, until the relief of speedy Bluetooth LE.

Routing is an inherent element of a mesh network. But the concept of routing, being quite useful itself, can be very misleading in wireless reality. Routing looks beautiful on paper. A message sent by A to Z travels via routing relays, occupying only a few links between intermediate nodes. It all works almost like in the Internet.

Except it does not.

Internet is built of routers. Routers have ports. Ports have dedicated links (copper or fiber or point-to-point wireless) to ports on other routers. Simplifying the picture a bit we may assume routing is deciding which link (outgoing port) the message should go next. And it is sent down that link.

Which is not possible in low power wireless.

Because there is only one antenna. And if it transmits, it transmits. Even if logically it sends a unicast message, addressed to a single recipient, everybody in the radio range can hear it. And nobody should transmit at the same time, because the messages will collide.

A single antenna on a single frequency cannot switch ports, like Internet routers do.

This is why low power wireless routing should not be considered a remedy significantly improving the throughput of a network. May be when combined with a concept of locality: my basement switch talking to my basement lights should not interfere with my attic switch talking to my attic lights at the same time. But there are other, equally effective, yet much simpler techniques that help with locality. Like simply limiting the TTL: the basement switch should never send messages with TTL that would allow them to travel around the world.

Also a typical smart building application relies mostly on multicast (group) messages. And they are nasty to route, so the routers either block them or flood all outgoing ports anyway.

This is why low power wireless routing should be taken with a grain of salt. It is a useful concept, but most of the time, IRL, not as straightforward as it may look on paper.

Comments