Wireless First Design

Reading various projects and proposals it still strikes me how wireless architects apply wired design paradigms. That of course leads to sub-par performance. One could say it is like attaching wings to locomotives and hoping they would fly. Wireless, and especially low power wireless, is different. Wireless is inherently lossy. There are a number of reasons to that.

In wireless there is interference. The wireless medium is shared, and unlike wired (that is isolated), wireless messages transmitted concurrently on the same frequency collide. And there are many ways to deal with this: implement a multiple access scheme (TDMA, CDMA, CSMA to name the most common) or accepting the fact there will be collisions and designing for that.

Multiple access schemes are expensive in many ways, including power (you need clocks or complex heavy math or run a receiver before transmitting). A system that does not implement any multiple access may be equally, or even more effective. But the design must assume there is message loss due to interference.

Wireless is half-duplex, unless you receive on one frequency and transmit on another. But again simple low power radios in peer-to-peer networks (including mesh) don't do that, as the receivers would not know which channel to tune to (and they can only tune to one at a time). So when a relay node transmits, it is deaf and cannot receive anything.

Wireless propagation changes very quickly. That is especially the case in 2.4GHz spectrum, where water is the enemy. And humans - as we know - are just ugly bags of mostly water. And what is worse - they move around, going in the way of wireless signals, blocking them effectively.

This all means a wireless design must assume some fundamental statistics. Must assume packet loss. And that is not a negligible number. Depending on a situation that may be as high as 10-20%. And if there is a 20% chance a message is lost between a transmitter and a receiver, then over 10 repeated hops the combined loss is 90% (80% to the power of 10). That means 9 out of 10 attempts to deliver a message over 10 hops will be unsuccessful.

There are ways to overcome that problem of course. But to do that, the designers must first admit the fact there there is message loss. Which often they forget about. Drawing in PowerPoint lines, which represent message paths, may be misleading. Diagrams look nice and it is easy to forget about real RF physics looking at them.

The key technique to combat the loss is redundancy. This means two things:
  1. Transmitting the same message multiple times. If the loss is 20% on a single message, then on two attempts it drops to 20% * 20%, which is 4%. And on three attempts the loss is just 0.8%.
  2. Having multiple receivers in range. The beauty of wireless is that it is inherently a broadcast system. If a node A sends a message to a node B, a node C that is in the range, may overhear the message. Having two receivers in range means their chances of losing the message are independent, so the same redundancy math applies: if one receiver has 20% message loss probability, two combined receivers take that number down to 4%.  
Of course both techniques may be used together. Two transmission attempts to two receivers in range (still having 20% message loss) improves the system up to 99.84% reliability (combined 0.16% loss) and with three transmissions and two receivers the reliability is 99.9936 (combined loss drops down to 0.0064%).

Both techniques are fundamental to operation of Bluetooth mesh and this why it excels in reliability even in difficult conditions. This is what I refer to as designing for wireless first. Things are different in the air and moving the established wired paradigms to wireless will not make them fly. If this was the case, airplanes would look like diesel locomotives with wings...

Comments