TCP – Single Connection Over Multiple Internet Connections Explained

internettcpudp

Hi not sure where to ask this thought this would be the best place, i was just wondering if it was at all possible to have a single connection get the benefit of multiple internet connections.

For example lets say my standard upload for 1 internet connection is only 100kb/s but i have a second line that is also 100kb/s up, and i would like to combine them to get a total upload of 200kb/s.

Obviously i know this wouldn't normally be possible, like how would the server know both connections were for the same data, unless of course it was specifically designed like that.

But hear me out what if i had some kind of modified router that was able to balance the single connection over both the internet connections, then sending these connections to a server somewhere which could combine these separate connections back into the original one, then sending it on it is was, the server would essentially be acting as a proxy/vpn i guess.

But does anything like this exist? Surely there must be something. I tried doing some googling but didnt come up with much, i understand it is possible to balance multiple connections over multiple internet connections, but how about what i describe, just one connection, in my mind it makes sense lol

Best Answer

The problem with separate providers is that you have different external IP's.

To balance a single connection over the two links your options are.

  1. Dual tunnels to external server, as you suggested, then you do per load-balancing over the two tunnels, and at the external server you are hidden(Nated or web proxy) behind a new public IP.
    • This will work, but you could generate additional re-transmissions as packet delivery might not always be in order
    • Quite complex as you will need two tunnels, with routing and per packet loadbalancing.
  2. Use a protocol built for this SCTP
    • Will need both endpoints to support it.
  3. Wait for new protocols e.g. NDN-cisco forwarding is designed to enable multi-path routing.
  • In the Future.
  1. Use a web downloader that breaks a single file download into a lot of smaller download pieces. As each piece is a separate connections they could loadbalance over different links/providers.
  • Will work with big downloads from websites.
  1. Use torrent downloader, or syncing software e.g. sync 2.0
    • Also needs support on both ends.