Ask Slashdot: VPN Setup To Improve Latency Over Multiple Connections?
blogologue writes I've been playing Battlefield for some time now, and having a good ping there is important for a good gaming experience. Now I'm in the situation where I have mobile internet access from two telecom companies, and neither of those connections are stable enough to play games on, the odd ping in hundreds of milliseconds throws everything off. How can I setup a Windows client (my PC) and a Linux server (in a datacenter, connected to the internet) so that the same TCP and UDP traffic goes over both links, and the fastest packet on either link 'wins' and the other is discarded?
(Have your own question for the teeming masses? Ask away — be sure to include appropriate detail and context — via the Slashdot submission form.)
What makes you think the servers can deal with multiple copies of data sanely?
I do not fail; I succeed at finding out what does not work.
How can I...
Simple. Just write a custom driver on both the Windows and Linux boxes to handle both ends as described (you'll want the traffic duplicated both ways, I'd imagine, since you're not just dealing with one-way communication here).
I doubt there's anything off the shelf that will handle what you want. Sounds like a fun project... but don't undertake this unless you think the project will be as fun to work on as actually playing your game. And be prepared to drop a hundred hours into it (depending on your coding abilities and familiarity with the associated APIs).
Any sufficiently simple magic can be passed off as mere advanced technology.
If you want a hands-off fix, buy a D-LINK DGL-5500, or a ZyXEL NBG6716. They will help keeping your latency low, via Qualcomm's "StreamBoost". Don't use the WiFi for gaming.
For a more Slashdot'ish answer, buy a router that supports OpenWRT and roll your own solution with fq_codel and htb. StreamBoost uses that, and some hand picked traffic shaping rules that Qualcomm will send if you use known games. Most of the profit comes from the fq_codel though.
The answer is: no, this can not be done with current protocols.
In theory with new protocols that your game doesn't support, sure. But only the end-to-end machines understand latency and jitter (your problem is jitter) so a middlebox won't help you.
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
http://www.multipath-tcp.org/
of course, this requires the other end to support it, which it probably doesn't.
I've also considered selling "multipath vpn" service... the idea being that people with two DSL providers (and one dsl and one cable) provider would setup their gateway (or use a linux box that I sell them and manage) to send all packets out VPNs on both connections, to my own vpn endpoint in a datacenter. The idea being that then my server on the other end of that connection would take the first packet and send it on to it's destination. Assuming that my datacenter has a good connection, you would suffer less packet loss, and less latency.
My solution here would solve the problem if the problem is latency/loss on your last mile connection. It would not help at all if the problem was further along the connection, while multipath-tcp would