[Freedombox-discuss] [HacDC:Byzantium] Re: Serval Mesh Extenders

John Gilmore gnu at toad.com
Tue Jul 16 18:17:54 UTC 2013

> if you expect every single device to be a mesh node in the same
> collision domain within range of each other of course it won't work :P

It is not obvious that "of course it won't work".  A sensible mesh
protocol would avoid congesting its medium, having most nodes avoid
forwarding packets for each other in order to increase the amount of
end-user traffic it could carry.  So the real issue is that people
have to manually configure "mesh nodes" versus "end user nodes",
because if every node is a mesh node, the mesh protocol doesn't work.
This operational requirement of current mesh protocols violates the
principle of least surprise and the zero configuration principle.

Consider how modern Ethernet works.  Naive end users can plug together
a whole mess of nodes, without caring which ones plug into which other
ones, as long as there is at least one path from each node to each
other node.  All the nodes can be identical except that each has a
preconfigured 6-byte address set by the maker.  All the nodes can be
made by different manufacturers as well, and it all still works.  Any
node can toss a packet onto one of its Ethernet wires, identified by a
destination 6-byte address, the node's source 6-byte address, and a
protocol type, and the network will, without configuration, get that
packet to the destination node (or nodes, if the destination is
multicast or broadcast).  This works for 2-node networks with a single
wire, and works for thousand-node networks with many wires, including
redundant connections and loops.  Any node that has multiple ports
will consider forwarding traffic for nodes that only have one port.
These multiport nodes run a "spanning tree algorithm" together, which
will pick a working subset of multiport nodes and disable forwarding
on the rest, to avoid traffic loops that congest the network.  When
the network configuration changes, the algorithm adapts within a few
seconds.  Networks can have thousands of nodes without running into
scale issues.  See https://en.wikipedia.org/wiki/Ethernet for more

(By the way, all this is independent of the Internet protocols.  The
IP protocol runs one level "up" from the Ethernet protocol; IP
datagrams are carried in Ethernet packets.  If Ethernet could not
deliver those packets, IP would have no way to communicate (on devices
that only have Ethernet ports).  TCP/IP depends on the lower level Ethernet
protocol to provide relatively reliable connectivity among Ethernet
nodes that run IP.)

The promise of mesh networks was to offer the same level of end-user
utility and convenience as Ethernet, with radio links rather than
wires.  So far that promise has been unfulfilled.


More information about the Freedombox-discuss mailing list