On Fri, Apr 12, 2013 at 11:07 AM, Andrew <andrew(a)vagabondballroom.com>wrote;wrote:
Say you have two houses near each other that want to
share their Internet
connections with eacth other as one wireless node.
So, for example, they could both connect to Neighborhood WIFI and get a
connection that uses their combined bandwidth.
How is this possible? What's the best way to set this up so that other
houses could join in and share their bandwidth as well.
Combining bandwidth from two connections is not easy. The reason it's
difficult is that internet protocols to not contain the functionality to
deal with a connection that is coming from more than one ip address. There
are two ways to work around this problem:
1. Bundle the connections through a VPN. You use all of the internet
connections you have to connect to a single server somewhere out in the
world, then that server bundles the connections and makes a single
connection to the actual destination server. This is definitely possible,
but it's not easy to set up and it means that you're paying for bandwidth.
2. Use protocols that can deal with multiple connections to the same host.
This is sorta possible with HTTP using some trickery. You can make separate
connections and fetch different assets of a web page through different
connections, or you can use http chunking to fetch different parts of a a
big file over different connections. I believe some proxies support this
kind of stuff, but there are some caveats, such as dealing with servers
that track your login session and become confused when your IP is
constantly switching. For bittorrent and similar protocols there shouldn't
be a problem.
For a mesh, the simple solution is to let everyone use only one internet
connection at any given time. This can be based on location (use the
internet gateway that is the fewest number of hops away) or it can be based
on some more complicated metric, e.g. a combination of number of hops away
and available internet bandwidth.
The VPN solution is interesting, but it also creates a single point of
failure that we could do without (we can use more vpns, but probably not as
many as we have internet connections in the mesh). It would serve to
protect the people sharing their internet with the mesh from legal risk,
since all connections to the internet would trace back to the VPN. If one
or more ISPs becomes pissed off at us for encouraging people to share
bandwidth (usually against their terms of service) then it may make it
easier for them to detect, since anyone connecting to one of our VPNs would
be an indication of sharing.