If you think about it, isn't the Internet just a giant mesh network? If we deviate slightly from the standard definition that requires that all nodes to assist in data distribution, the answer is a resounding yes.
However, traditional network technologies and the vendor-provided hardware required to run them is often far too expensive to deploy without deep pockets. Open source software aims to solve these problems and enable network connectivity to marginalized groups all around the world.
You can't truly understand a mesh networking project without first understanding the technology behind it. There are many more protocols than can be covered here, so I chose to discuss the two that are prevalent in many large mesh networks.
Development of the "Better Approach to Mobile Ad Hoc Networking" (B.A.T.M.A.N.) routing protocol began focused solely on Layer 3 routing, but in 2007 shifted to Layer 2 with the batman-adv kernel module. Like most mesh protocols, B.A.T.M.A.N. automates the creation and distribution of a routing table and automatically adds and removes nodes as they join or leave the network. For more information see the Open Mesh B.A.T.M.A.N. wiki.
OSLR is another commonly used protocol when building mesh networks. OSLR utilizes two message types: Hello and Topology Control. A "Hello" message is sent to the immediate neighbors and the second-degree neighbors as a discovery step prior to sending a packet. Topology control messages are used to update the routing table and propagate the table to the network through multipoint relays.
This information was a bit technical, but in short, both of the mentioned routing protocols establish Layer 2/3 connectivity and manage a distributed routing table. Before you think about building one yourself, take a look at some major projects that have successfully leveraged this technology.
In 2002, a group of wireless enthusiasts met to discuss building their own WAN (wide area network). As the years progressed the project gained traction and has scaled to around 1,000 nodes, using VPN (virtual private network) tunnels to span multiple countries. Freifunk leverages OSLR and B.A.T.M.A.N for Layer 2/3 routing. The project has been a success mainly due to the community's contributions and commitment to the project's vision. It currently maintains the B.A.T.M.A.N routing protocol and tool suite. Freifunk leverages common commodity hardware, and the group provides custom OpenWRT builds to ease the difficulty of creating your own access point.
Village Telco aims to create a hardware and software combination for building a local telecommunications company. With a focus primarily on business, Village Telco includes standard expected features like Layer 2/3 routing, but it also incorporates billing and customer management systems into a server component. Like Freifunk, Village Telco provides custom OpenWRT Kamikaze builds and uses the B.A.T.M.A.N protocol. Targeted primarily at an African audience, it has seen success in South Africa, East Timor, Nigeria, Columbia, and Brazil.
Hyperboria is an end-to-end encrypted mesh network that uses IPv6. The focus of Hyperboria is to create a large-scale neutral network with a security as a first priority. The technology uses CJDNS (no relation to DNS) for Layer 3 routing and employs a novel public key cryptosystem to establish connections and encrypt traffic. Austin, Texas currently boasts the largest segment of Hyperboria with a network size of around 500 nodes. Unlike most traditional networks, and similar to Bitcoin, it uses a public key as an address that data can be sent to.
With these projects in mind, wouldn't it be cool to have a local mesh network in your area? One of the easiest ways to get started is by using a Raspberry Pi. More on that soon, stay tuned.
William will be giving the talk at SCALE15x this year: Getting off the grid, and onto the mesh!