> 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 details. (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. John _______________________________________________ Freedombox-discuss mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/freedombox-discuss
