Speedify Bonds Multiple Internet Connections for Speed and Reliability

Originally published at: Speedify Bonds Multiple Internet Connections for Speed and Reliability - TidBITS

If you’re putting up with slow or unreliable Internet connectivity and are willing to pay for better service, the Speedify VPN promises to combine multiple Internet sources into a single connection that’s faster and more reliable.

I imagine this is on a per machine basis, and not at the router level?

Yes, it’s something that runs on your devices. The individual account supports up to five devices, and the family plan supports up to five devices for each of up to five family members.

You can actually use a computer as your router. It takes a bit of know-how, and a machine with two network interfaces.

Here’s how I’d do it:

Get a Raspberry Pi or other ultracompact linux PC (if you happen to have a Linux-capable machine laying around, that’ll work too). One requirement: you need two network interfaces. This would work: https://www.seeedstudio.com/Dual-GbE-Carrier-Board-with-4GB-RAM-32GB-eMMC-RPi-CM4-Case-p-5029.html

Assuming you want wifi, you may want to provide that separately, as the RPi’s wifi antenna will not offer great coverage. I’d use an Eero mesh or a set of Unifi APs.

Install and configure Speedify’s Linux client. How do I install Speedify on Linux (Ubuntu and Raspberry Pi OS)? - Speedify Knowledge Base

Configure iptables to route traffic between the two NICs as needed. How to make RPi a router with firewall? - Raspberry Pi Forums

No disagreement with anything here, but you should be aware that software-based packet forwarding (especially on a microcontroller-based system like a Raspberry Pi) is unlikely to be able to keep up with full line-rate of a gigabit Ethernet interface.

Purpose-built routers (whether cheap 2-port consumer devices or more expensive enterprise devices) have hardware-forwarding chips that are designed to be able to keep up with the full line rate of all the ports. Which is very important if your have gigabit (or faster) service from your ISP.

I say 2-port consumer devices, because very few consumer routers have more than that. They use 2-port router chips - one LAN port and one WAN port (and maybe a third port for a Wi-Fi access point). If you have more than one physical LAN port, there is almost always a dumb Ethernet switch used to fan-out that one port to multiple connectors.

This is in contrast with enterprise routers where each physical port corresponds to a port on the router chip(s). So each port can (for example) belong to a completely separate IP subnet with independent sets of forwarding/filtering/security tables. And you pay quite a bit for this capability.

1 Like

100% agree, David. I thought of that and probably should have mentioned it. But I think anyone interested in this is probably not someone with anything approaching a gigabit connection.

A quick google search indicates that a RPi 4 like the one I linked should be capable of routing several hundred megabits per second. One guy with an overclocked model saw 650Mbps.

If you have an internet connection fast enough to saturate that, I’d suggest that you probably don’t need Speedify. :smile:

1 Like

I will add that, if you are trying to bond multiple connections that add up to >500Mbps, you could certainly build a small PC with a more powerful processor that could get the job done. Get a 1G or 10G NIC for each connection you wish to bond, give it a decent chunk of RAM (8GB is likely enough), and give it as many cores as you can. It doesn’t need to be the latest processor – I’d suggest looking at older Threadripper CPUs as a cost-effective option.

Thanks for this link, ACE; it looks interesting. However …

I went to their website. In explaining how their product works, they give the analogy of a highway. If you have a one-lane road and it gets busy, all traffic on that road slows down. If you add more lanes, they say, the traffic can move faster. But, in fact, adding more lanes really only means that you can move more traffic. They don’t say anything about the speed limit on that road. Thinking of it another way, their system looks like connecting batteries in a parallel circuit. You increase the amperage of the current but the voltage is still the same. They say their Speed Server ‘intelligently divide[s] your internet traffic and deliver[s] the combined speed of all available internet connections.’ Combined speed? I think this is misleading. Combined bandwidth maybe. If I have a 5G base station with nominal 1000 Mbps download speed and I Speedify it with, say, two 4G mobile phones, I wonder how much – if at all – the network response would really be improved.

This makes sense.

When bonding multiple network links, you never want to split a single TCP connection across multiple links because that will result in the packets arriving at their destinations out-of-sequence (since different connections will have different speeds and latencies). TCP responds to out-of-order packet reception by assuming it was due to network congestion and slows down all data transfer.

So, the system will take steps to ensure that each TCP connection uses exactly one link, no matter how many you have. This still speeds up the network experience because typical systems use dozens (if not hundreds) of simultaneous connections. For example, if you load a web page with a lot of content, each element (HTML file, script file, image, etc.) will load using its own TCP connection.

And, of course, if you’re running multiple apps and/or have multiple users sharing the network connection, each app will have its own set of TCP connections.

In other words, each individual connection can’t go faster than before, but the overall throughput increases because (if the algorithm is implemented properly) the connections will be equally divided among all of the bonded links.

2 Likes

Yes, precisely. We long ago gave up trying to avoid the word “speed” with regard to Internet connections because the industry wouldn’t use the proper terms like “bandwidth” and “throughput.”

Speedify can’t make the connection faster, per se, but it can make the pipes bigger to increase throughput, which in turn can increase the perceived load speed of network resources that rely on multiple connections.