goTenna Team
goTenna Team
Oct 10, 2016

goTenna Mesh is the next evolutionary step in consumer-ready, people-powered, decentralized connectivity. We’ve built on what we started with the original goTenna, empowering users to create ad-hoc networks with no reliance on existing infrastructure. Now, we’re literally pushing those innovations further with goTenna Mesh by enabling relay, or meshing, between users to increase overall effective range.

The process by which mesh networks function is conceptually easy to understand — users or nodes connect directly to each other and act as relay points, rather than connecting to a centralized hub.

Image: The Atlantic
Image: The Atlantic

The above graphic, originally published in The Atlantic, illustrates the difference between a network based around a central hub (left) versus an interconnected mesh network (right). If the middle node on the left collapses, so goes the entire network. (Fun fact: The failure of central connectivity during Hurricane Sandy in 2012 was one of the founding Eureka moments for goTenna.) With the mesh network, however, you see that each node is connected, therefore offering more reliable overall support, even if one node drops off.

But how exactly do transmissions reach the end-user? How do these relay points interact with each other, and how do they adapt to changes in the network infrastructure?

Wired defines a mesh network as “an ad hoc network infrastructure that can be set up by anyone…without passing through any central authority or centralized organization.” This means that existing network infrastructure (e.g. a cell tower or satellite) does not need to be in place for nodes to interact — complete peer-to-peer communication.

screen-shot-2016-10-10-at-4-07-25-pm
In this graphic, goTenna Mesh users Ming and Nico are not in range of each other. However, Ming’s message reaches Nico by relaying through two other nearby users’ devices.

Mesh networks have protocols in place that automatically reconfigure based on the environment and presence of relay nodes. These networks become more robust as more people join because more nodes equals more paths by which a transmission can go from sender to recipient. This is true of networks created with goTenna Mesh — more devices concentrated in a given area results in more routes by which a message can travel to the end recipient. Losing one route simply means the protocols will reconfigure to find another, and the transmission will always take the optimal route. The optimal route is generally the route with the fewest transmissions, which keeps power consumption to a minimum.

In the case of goTenna Mesh, the process starts with initial discovery. A user sends a message out in all directions with the intention of finding the intended recipient (or IR). If the IR is not in range, a burst broadcast goes to all other devices in range, essentially asking if anyone local knows the whereabouts of the IR.

Once a relaying goTenna Mesh confirms that it can reach the IR, the path to the IR will be defined and remembered, so messages between the original sender and the IR will follow the same path (again, the optimal path with the fewest number of hops). The networking protocols built into goTenna Mesh — which we’ve named Aspen Grove — will also actively avoid interference and obstructions by finding an alternate path if the established route is compromised.

In the above super-simplified illustration, the sender is unable to transmit directly to the IR, so the message is relayed across goTenna Mesh users to circumvent the obstruction and reach the intended recipient.

Having any number of anonymous relaying goTenna Mesh devices begs a logical question: What about privacy? If a message is going through multiple users, what stops a relaying user from capturing that transmission?

hopsnhills
goTenna Mesh enables users to increase overall effective range by relaying transmissions via mesh networks.

With goTenna Mesh, it’s a matter of end-to-end encryption. When a data packet is sent through a goTenna Mesh, it is sent to a specific destination, i.e. the IR(s). The IR holds the key to decrypting the transmission, but relaying devices (and users) do not. Instead, goTenna Mesh devices acting as relay nodes can only identify certain information contained in the packet. This information is equivalent to a shipping label on a sealed package — the relaying units can see which goTenna Mesh the package is from and which goTenna Mesh device is the IR, but cannot see the contents because the relaying units do not hold the key. In the end, the IR receives the transmission and decrypts the entirety of the data packet.

If you’d like to learn more about goTenna Mesh and how it works from a hardware an RF perspective, we recommend checking out the latest episode of Adafruit’s Ask An Engineer, which features goTenna’s hardware engineers, Raphael Abrams and Jin Chen, discussing the development and functionality of goTenna Mesh.

Want to learn more about goTenna Mesh? Head over to our Kickstarter page for more information. Questions? Shoot us a note at support@gotenna.com!