Why isn't mesh networking more popular?
justindunham.net
justindunham.net
There are some other issues with meshed networks (latency, battery usage when you're just a client node, etc.), but especially for those of the kind described/dreamed about here (which are also known as MANETS -- mobile ad-hoc networks), the routing issue is a huge one.
Finally, I should note the above isn't just academic; several companies have tried to build products based on these kinds of networks -- military contractors being one of note -- and have pretty much come up short.
So until the really fundamental issues are worked out, which is in the realm of academic research, not implementation, we probably aren't going to see anything like this.
So is something like Multipeer Connectivity Framework in existence mostly because it is a much weaker version of true mesh networking? (Or not mesh networking at all?)
Do you think weaker versions of mesh networking that don't solve the underlying problems could also be valuable?
So the starting point for an engineer is what types of mesh networks work that don't need to globally broadcast topology updates in real time.
It always amazes me how quick people are to accept someone else's incorrect approach to a problem or to dismiss a new paradigm because others havent had success. Meanwhile they spend enormous amounts of energy tweaking the parameters of an outdated paradigm to try to make it work a little longer.
The main thing holding back new superior approaches to a problem solution is always the people who tried and failed and then kept saying it was unworkable thus preventing others from trying.
I'm not saying this to discourage others from trying. But they should definitely be teams of network protocol experts, rather than a generalist team trying to put a product together as we were. We used 802.11s, and being the largest deployment of a protocol you weren't planning on having to fix yourself isn't an enviable position.
Was there a blog post or anywhere you guys catalogued these problems, your approaches, and what could be learned? I'm looking to take on a similar challenge as a generalist and would love to learn from your attempts :)
For example, here he proposes a hack on top of 802.11s to switch between reactive and adaptive mesh topologies based on measuring the network density -- if you're a small group of kids in a village you want a reactive network, which comes with higher bandwidth saturation costs, but if all the kids come into the same classroom at once you need to quickly switch to adaptive to avoid using up all the spectrum with routing detection:
http://wiki.laptop.org/go/MAD_Heuristics
http://wiki.laptop.org/go/MAD_Architecture
The 802.11s spec is pretty useless for high density areas without such a hack, it seems. I suppose the takeaway message is that your use of mesh networking needs to be extremely tailored to your specific use case, quite possibly including writing custom routing software.
John Gilmore also wrote a summary of the OLPC mesh experience here: http://lists.alioth.debian.org/pipermail/freedombox-discuss/...
This is a problem for the idea that mesh nets should be used to create resilient decentralized networks. Unless the meshnet is safe against attacks, any government or other organization that wanted to take a meshnet down might actually find it easier than taking down a multi-path tree-shaped or centralized infrastructure.
In other words, even setting aside maintenance overhead, simple relay overhead is also going to bring the network to its knees.
I think this isn't really an accurate statement. The examples given in the article (Uber, airbnb, bitcoin) could reasonably be called "decentralized" (though, one could argue that in a case like airbnb, the fact that you go through a company means it isn't actually decentralized), but on the whole, I'd say the trend, for the bulk of the population, is actually towards more centralization. Think Facebook, Google, Twitter, etc. More people are storing their data in fewer places, so I think the trend is the opposite of what the author states. In that sense, it's not at all surprising that mesh networking is not popular.
So, the need for a reliable, direct connection trumps the need for mesh networking.
If you solve the problem of having a reliable, direct connection somewhere, it's more effective to extend that solution rather than also covering the problem of mesh networking.
"The Wireless Battle of the Mesh is an event that aims at bringing together people from across the world to test the performance of different routing protocols for ad-hoc networks, like Babel, B.A.T.M.A.N., BMX, OLSR, 802.11s and Static Routing."
I think we'll see some rapid advancements as Van Jacobson's NDN[0] and Miller's telehash[1] reach maturity.
[1] https://github.com/telehash/telehash.org/blob/master/backgro...
Do you think the percentage of technical people will increase over time? In the same way that almost no one was literate 1000 years ago which is now reversed.
The main problem with these networks is not the declining user interest per se, it's rather that they are by their own nature, a) very hard to engineer, and b) almost impossible to monetise. The engineering effort required to make a decentralised network reach resilience (and visible uptime) of the most basic Rails web app on Heroku is orders of magnitude away from just hosting it.
For A, Decentralisation is a cruel mistress; every assumption you will make about computers connecting to your network will slowly fall apart as you move deeper into the architecture, engineering and design of your services—that makes it a fascinating challenge as much as a hard one fortunately. On the more unfortunate side, you eventually end up with cases that require you to entirely reëngineer your stack to provide for them; and not providing them access is philosophically against the democratic access decentralisation offers. For starters, anything higher than C/C++ is probably a non–starter, a lesson I learned the hard way. My own work is built in Python and getting it to perform adequately well on even most medium–grade computers has been a challenge. Distributed network means distributed loads, and there is a significant amount of computers who aren't able to pull their own weight on the Internet, especially in the developing world.
It also means that you'll be bogged down with a lot of platform support issues, small bugs etc.
For B, there are two issues. The first issue is that in a decentralised network it's almost impossible to target a specific person or entity to pay if you're not willing to create an exception for yourself (i.e. all computers able to call your servers, and consequently in absence of your servers the network goes down) but if you're willing to do that, you can just make it into a traditional system in the first place, and you just made it both subject to your whims, and as fragile as any other centralised service. That's a no-go.
Beyond this, the moral imperative is that you shouldn't be charging for a service that doesn't cost you money to maintain. For additional services, sure, but you still need to figure out how to attach an additional service without which the core network continues to function.
In general, it's a massive engineering task that isn't lucrative, and the effort required to maintain and keep functional increases exponentially as the network scales. For me, I'm stuck at packaging the new version for the last few months because PyInstaller doesn't like the way I split Aether into two applications—and you end up with these corner cases nobody on the entire Internet has ever encountered before. There's no Stack Overflow for that. It's fun, but it's also tiring.
[0] http://www.theverge.com/2013/11/27/5150758/aether-aims-to-be...
I'm not suggesting profiting off of users, but rather covering the bandwidth costs incurred by each user in the network. In theory, the costs approach zero over time (once density is reached in each distribution of nodes), but surely some monetary transfer is ok.
Then it just becomes a question of incentivizing users by consistently driving down costs (in theory) to promote density of nodes.
This is also the reason Aether will most probably never have a mobile version. Not until they finally make nuclear fusion work, and compact it enough to make batteries with it!
Shame, for I would love to see it happen.