The Elusive Next Hop

The "proper" Internet routing protocols are based on a concept of a "next hop" address. When a packet arrives at a router, it takes the destination address and based on the routing table determines the address of "the next hop" the packet should be sent to. And forwards it to this next hop router. This works reasonably well when the routes are not changing frequently. And when the next hop is available most of the time.

What seems weird, some wireless architects try to apply this concept to low power wireless networks, where the routes do change frequently (wireless nodes have freedom to roam around) and availability of the next hop is not given. Wireless networks change topology not only due to the nodes physically moving, but also due to the noise floor of the channels fluctuating continuously. A node within 60dB (path loss) range is usually available (but this is just a couple of meters), but a node 90dB away may be falling down to be 110dB away just because a person moves in front of it (humans are made of water that attenuates radio transmissions heavily) or a phone nearby picks up a call and starts interfering on an adjacent band.

The bottom line is the reliability of a "next hop" link in low power wireless is elusive. Applying a routing protocol that assumes always-on availability of the next hop link is a bad design decision. It is almost like applying the concept of steering a car by turning front wheels to an airplane. Turning the wheels while airborne won't work. Wireless is different than wired.

Low power wireless is also way more effective when no acknowledgement messages are sent back. Imagine a switch that turns on 100 lamps in a conference room ceiling. It sends a single message out. But if it was to request an acknowledgement from each lamp, it would be getting 100 messages back. All at the same time, likely colliding with each other. But if you work without acknowledgements, how do you know you made it to the next hop?

Applying wired / Internet routing algorithms to low power wireless is a bad design decision. A system like that works nicely on paper or when you simulate a very low packet loss. In real life a typical packet loss is around 20% and this is way too much to assume the next hop is there.

In wireless (and especially low power wireless) we need to design new architectures. At each step we need to consider wireless is different than wired: no switching, no isolation, packet collisions, disappearing nodes, roaming, interference.

To me this is like learning to fly. I love this and at Silvair we have mastered this to some extent already. What surprises me, many around us still think they can keep on applying the common wired wisdom to the wireless world. It just won't work. The physics are different.

Comments