On Fri, Apr 12, 2013 at 11:07 AM, Andrew <andrew@vagabondballroom.com> 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.

--
Marc