Ask Slashdot: VPN Setup To Improve Latency Over Multiple Connections? 174
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 (Score:2, Interesting)
What makes you think the servers can deal with multiple copies of data sanely?
Re: (Score:1)
Doesn't TCP require it come back on the path too?
Re:What makes you think (Score:5, Informative)
Doesn't TCP require it come back on the path too?
Absolutely not. Nor does it expect that to usually happen. The routes in opposite directions are often different. (For starters, they're based on the local knowledge of the routers at opposite ends of the path, which are typically familiar with their neighborhood and may have no clue about what things are like near the other end.)
The routes of diffetrent packets in the same direction are often different, too (like for load-balancing by throwing alternate packets down two slower links to get an effectively faster link). Every packet is potentially routed differently (though routing protocols like label switchingmay often set up connection-like shortcuts that make consecitve packets take the same path - to speed things up).
What matters is just that they get to the same ENDPOINT. Some may be silently lost. Some may be duplicated. Some may arrive out of order (like when a route changes and later packets get there faster).
It's been like this since IP, UDP, and TCP were invented. It was a core principle of their invention.
= = = =
Having said that:
Deviation (other than packet drops) from simple first-in-first-out packet flow tend to be rare. So not all servers and/or clients handle them well. (TCP will sort out missing and misordered packets on the receiving end - sometimes at substantial cost in buffering and latency. UDP will not - for simplicity, speed, and for when occasional lost packets are less of a problem than high latency and occasional long delays. So if the server and/or client can't handle transmission problems well, performance may suffer or functionality simply fail.)
Many networking company customers of high-speed router makers make the additional requirement that a stream of packets coming in one particluar interface from one particular source and going out another particular interface to a particular destination are not reordered. That's a pain when the router's guts are a sea of little processors each handling packets individually, so additional special purpose hardware may be added to track packet order and insure things don't get reordered between input and output queues.
Re: (Score:3)
It does not require the same path through the internet, but you wont be able to use one ISP's connection from packets coming back from the source of other connections IP address. you have to use one connection or the other, you could change your connections and restart you game, but the game will not let you change IP's during gameplay.
This whole idea had lots of issues anyway, if both connections suck, you should just get a good connections, if you want to play games, a wireless internet solution is just n
Re: (Score:2)
How much does one make when one moves a lawn? Must be a pretty penny!
Re: (Score:2)
well, I recently installed about 10,000 square feet of sod and it cost me about $3500 just for the sod, so...
What makes you think (Score:3)
Re: (Score:2)
... But in what OP is suggesting, the servers won't see duplicate packets ...
Actually, since OP asked how to "setup a Windows client (my PC) and a Linux server (in a datacenter, connected to the internet)" it suggests he wants to know how to get fired for using his company's resources to play Battlefield while at work. But, perhaps I'm just reading too far into this. OP may have his own personal datacenter.
Re: (Score:2)
Re: (Score:2)
If that "Linux server in a datacenter" is a VPS, you can get one for like $7/mo.
Sure, but I find it hard to imagine that it would (at least routinely) be faster than using his current wireless setup to route his traffic from his desktop ... through his cable modem ... through his ISP ... through a remote datacenter (somewhere) ... to the Battlefield servers. Plus, of course, the $7.
I have no problem at all imagining that. (Score:5, Informative)
I find it hard to imagine that it would (at least routinely) be faster than using his current wireless setup to route his traffic from his desktop ... through his cable modem ... through his ISP ... through a remote datacenter (somewhere) ... to the Battlefield servers
I have no problem at all believing that. The OP says he is using two MOBILE access devices from two (wireless) carriers and is (if I read him right) experiencing substantial intermittent (but separate) delay and/or drop events in both of them. If he throws each packet down both of them and the first one to arrive at the data center gets to the game server, the packets that are lost or delayed on BOTH paths will be very much rarer and his gaming experience will be substantially improved.
Yes, he'll get a little extra latency on the fast packets - which is most of them. But server farms generally have fat and blazingly fast backbone connections, so it shouldn't be a lot added. A small price to pay to make almost ALL packets arrive reasonably quickly and almost NONE experience big delays or loss.
Re: (Score:2)
First of all, I doubt you'll find anything that already works on Windows.
So it would have to be something like Linux on both sides. So you'll need a Linux machine as a gateway if you want to use Windows.
Now that said, there are 2 things I've seen which are available for Linux:
- multipath-TCP could do this, but TCP is usually pretty bad as a tunneling protocol if you want good latency.
- a better way might be a routing protocol with a weight for the latency (=round-trip time) and with very fast convergence to
Re: (Score:1)
He asked how to set up a server too, so I assume he knows the two streams have to be received and handled (by dropping the slower packet in each pair) before transmitting to the game server.
"No." (Score:3, Interesting)
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.
Re: (Score:2)
What makes you think the servers can deal with multiple copies of data sanely?
What makes you think TCP cannot deal with duplicate packets???
Re:What makes you think (Score:5, Informative)
TCP can deal with duplicate packets from the same endpoints. Sending duplicate packets over two entirely seperate routes would require that the server be able to deal with demultiplexing the requests. I seriously, seriously doubt that any game servers are set up to do that. As far as the game server would be concerned, it's two seperate clients for the same account connected.
Re: (Score:2)
Nope. If I am understanding the situation correctly, there is only one connection from his server at the datacenter to the Battlefield server. The "duplicate" streams are handled before they ever leave his own datacenter server. I see no reason why this could not be accomplished since he controls both endpoints... but AFAIK, he would need to write his own networking stack. It seems that what he wants is a bit outside of the protocol specs and can not be handled "automatically".
Re: (Score:3)
Hmm. I just caught the part about the Linux server at the data center doing the demultiplexing.
I suppose, at least in theory, you could go on the assumption that both channels are always sending the same data, and have them forward the request appropriately, cache the message block, and do a comparison on all message blocks incoming over both channels before forwarding one to eliminate the duplicates.
You'd then have to do the same thing on the Windows "client" box at home.
Quite frankly, I can't see
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Channel bonding sends pieces of the request in parallel over the different channels. It does not send the same request over multiple channels. Channel bonding's goal is to increase total bandwidth, not to reduce latency.
Re: (Score:2)
Channel bonding sends pieces of the request in parallel over the different channels. It does not send the same request over multiple channels. Channel bonding's goal is to increase total bandwidth, not to reduce latency.
Yes, but most of the important pieces are in place already. I strongly suspect that someone with intimate knowledge of the channel bonding internals (kernel devs, speedify, F5/cisco/etc, other similar services) could add support for sending over both channels with an added flag/option in the config. It may be difficult to piggyback on the existing code, or it could be fairly trivial, but it certainly seems like the right place to add that support. Maybe one of the folks listed here [github.com] could chime in?
Whether it
Re: What makes you think Lennart Poettering (Score:1)
no (Score:3, Insightful)
A VPN or any kind of encapsulated network traffic will only add to the latency.
no (Score:5, Insightful)
Off the point (Score:2)
Re: (Score:3)
Many people have such crappy ISPs or connection signal strength that a round-about route is still better.
Re: (Score:2)
Um, no.... You still have to go over all the same hops with your encapsulated packet to get to the VPN endpoint, THEN the hop to the game server in the farm. Just because the trace looks different in the tunnel doesn't mean you've magically bypassed the internet. Sans VPN you'd be skipping encapsulation and that VPN endpoint to game server hop.
local LAN beats remote server (Score:4, Insightful)
This is why local LAN play with your buddies beats some unknown remote server. Plus, then you can keep playing after the central server is taken offline.
What's that? Your favorite game doesn't support LAN play? Well, better support the ones that do, and not support the ones that don't, if you want this option to remain viable into the future.
Multipath Networking (Score:2, Informative)
You should look into multipath networking, IEEE 802.1aq etc. There actually is a company called multipath neworks [slashdot.org] that sells a hardware solution, but you should be able to find software solutions as well.
Re: (Score:2)
Yes, Multipath. Unfortunately the premise of the question is nearly akin to asking for the world. The current TCP implementation just isn't capable of performing the task being asking of it.
Re: (Score:1)
Of course that's completely untrue. There are many products out there that deal with this very problem. Almost all products targeted towards WAN optimization perform this exact task. Riverbed, Bluecoat, Cisco WAAS, they all do it, there are many many more products out there too, I believe even F5 has gear for it now and Sonicwall is starting to include it in their latest generation firewalls. This specific problem is common with many larger VOIP implementations where jitter can be problematic.
Your linux server won't help you. (Score:2)
Your latency and unreliability comes from your mobile links. Get better providers or find a different lower-latency game to play.
Re: (Score:2)
Chances are that his situation is similar to mine: around $20 a month towards Freedompop (WiMax) for one mobile connection, and tethering through my phone (4G) for another connection.
My other options are $55/month for Verzion FIOS (they no longer offer DSL in my a
Bandwidth != latency (Score:1)
Bandwidth != latency unless you are going to send crafted packets to exploit the game
Way more work than you would want (Score:5, Interesting)
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).
Re:Way more work than you would want (Score:5, Interesting)
Re: (Score:2)
Bufferbloat fix (Score:1, Interesting)
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.
Neat idea, but not worth the effort (Score:1)
When you're connected via two providers, you have two different public IP adresses.
You want to send each data packet over both links to some server on the internet, which would relay the first incoming copy of each packet to the game server (or another host). Likewise, the game server sends its data to the intermediate server which would need to send each packet to both your public IPs.
On IP level, this is nearly impossible to do, because target and source IPs would need to be rewritten and the intermediate
Does nobody understand the question? (Score:5, Informative)
Sounds like an interesting problem; I check the comments to see what solutions to the specific problem laid out might exist. Instead, the comments show varying levels of misunderstanding the question and/or the proposed solution.
The proposed solution is simple:
1. Client duplicates packets over two mobile links to an intermediate, user-controlled server.
2. This server sorts things out and discards the losing packet, and forwards the winner on to the real gaming server.
Both client/intermediate server are under the control of the user, with two possible links. The communication protocol between these two nodes can be user-defined to anything. The question was how to configure this.
"How will the server deal with duplicate copies?" Duh, the gaming server won't. That's what the intermediate server is for. Did you read the OP?
"A VPN will add to the latency." Yes, but that wasn't the problem. The problem is random jitter on one of the links.
"Local LAN play is better!" Well yes, but that's not remotely related to the problem. Maybe he doesn't have anybody local to play with regularly?
"Use this exotic hardware solution." Why, if the problem can be solved for free with software?
"Your latency comes from your mobile links." Duh, but he already measured the main problem to be random jitter. Why not comment on the proposed solution?
The only concern I read that is accurate was that an RF disturbance could interrupt both links.
Does nobody understand the question? (Score:1)
Re: (Score:1)
I do understand. Most people say it's not possible with current protocols, and they're right. But on VPN layer, it can be done.
On your PC, the VPN service appears as a network device (vNIC). Somewhere in the VPN software, there's one point where all
network packets sent over the vNIC are serialized into into bytestream to be encrypted (but you don't need that here) and sent
over a TCP connection to the VPN server.
At this point, you have to extend the VPN software to connect to the same server twice, using dif
Latency varies when protocols switch (Score:2)
As a first test, try:
ping www.google -t -l 1000
vs
ping www.google -t
If the 1000 byte ping has more consistent times than the standard pings - that's the issue and you may be able to find a minimum payload size which makes the connection more consistent without switching.
Re: (Score:1)
mptcp (multipath tcp) is one solution (Score:4, Interesting)
http://www.multipath-tcp.org/ [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
interesting (Score:3, Informative)
Re: (Score:3)
Insightful jokes (Score:5, Funny)
Hi, I'd like to hear a TCP joke
Hello, would you like to hear a TCP joke?
Yes, I'd like to hear a TCP joke
Okay, I'll tell you a TCP joke
Okay, I'm ready to hear a TCP joke
Okay, I'm about to send a TCP joke, that'll last for 10 seconds. It has two characters, it does not have a setting, it'll end with a punchline.
Okay, I'll get your TCP joke, that'll last for 10 seconds. It has two characters, it does not have a setting, it'll end with a punchline.
I'm sorry, your connection has timed out
On the other hand, I could successfully tell you an entire UDP joke, but you might not get it.
Re: (Score:2)
I'd tell you a joke about UDP but you might not get it.
To clear up confusion... (Score:3)
|||| Gaming Client PC ||||
|||| Local Windows Box ||||
|||| Internet 1 |||| Internet 2 ||||
|||| Hosted Linux Server ||||
|||| Gaming Server ||||
Local Windows Box acts as a router and duplicates all inbound traffic sending it out box Internet 1 and Internet 2. Hosted Linux Box receives traffic, picks whatever packet arrives first and forwards it and throws away the slower duplicate when it comes it.
It is an interesting idea. As far as I am aware routing protocols only do best route and fail over but I am not aware of any that always sends both routes.
Re: (Score:2)
Yeah, I forgot about that one.
I believe the Linux kernel has built-in support for High-availability Seamless Redundancy (HSR).
If he/she sets up a Linux gateway to his/her Windows-machine he could test it.
That's not called a VPN (Score:2)
You're not asking for a VPN. You're asking for a new routing protocol.
Once you have written a new routing protocol just submit it to the IEEE. Then you have to convince the large router manufacturers to use your standard.
You might want to get a job at CISCO. You would have better luck there.
Re: (Score:3)
Um, you mean like some sort of Link Aggregation Control Protocol? Sounds like a good idea!
Oh, look! [wikipedia.org]
LACP (Score:3)
Load balancing & bonding over multiple NICs. Isn't this what LACP was made for?
No idea if there's anything available for Windows, but chuck a Linux VM on it to act as a virtual router & presto!
How well it works would depend on the LACP stack's ability to handle the issues presented by wireless modems. It works great in a server environment.
Re: (Score:2)
LACP is a layer 2 solution, i.e., it works at the ethernet level. The requirement here is for a layer 3 solution that works on the Internet. My guess is that there's nothing off the shelf so he'll have to start coding.
Re: (Score:2)
That can easily be solved, use 2 VPNs.
Re: (Score:2)
I specifically meant OpenVPN, because it can encapsulate Ethernet packets.
Re: (Score:2)
Anyway, as someone mentioned above LACP is like RAID-0, not RAID-1 which is what he/she needs.
Grow up (Score:2)
And stop stealing your community's bandwidth.
Here's an idea (Score:4)
Take the money you were going to spend on hosting a Linux server in a datacenter and instead use it to buy a decent internet connection, rather than relying on two mobile data plans.
Or give up one of the mobile data plans, and use that savings to buy a decent internet connection.
http://speedify.com/features/ (Score:5, Informative)
http://speedify.com/features/ [speedify.com]
This kinda sounds like what you're looking for.
http://speedify.com/features/ (Score:1)
Re: (Score:1)
http://speedify.com/features/ (Score:1)
I don't think those words mean.... (Score:1)
I say that to provide some context for this statement: it is not at all clear to me what you're actually asking for.
Speedify (Score:4, Informative)
Free vpn (Score:1)
Soft ether
FFS (Score:1)
Get a real connection, you remind of all the people on WiFi wondering why their gaming experience sucks.
It's an ISP problem likely (Score:3, Informative)
I have run into the same issue with my cable ISP. I run a voip setup using voip.ms as my provider and have my ATA connect to their servers. I have been plagued with random audio dropouts, talk-off and the occasional robot voice problem. After much research, troubleshooting I determined that the issue with jitter my ISP. Most pings to a know good server like Google DNS (8.8.8.8) averages say 40 ms but occasionally (say every 30 pings) the time jumps up to 800 ms. This happens regardless of the server I ping and also occurs when I ping my ISP's gateway address. This tells me that the problem is internal to my ISP and not an external routing problem.
The reason why is what is called Node Congestion. Most North American cable ISP's use DOCSIS with hybrid-fiber nodes located through the geographic area. Nodes may start off with 100 active users on it meaning all 100 users are sharing that piece of the pipe. As time progresses, traffic changes, people ditch their cable tv for Netflix. All of this has a huge impact on congestion and bingo as a result ping times suffer. The average person will never notice but with any time sensitive service like voip and some gaming, you will notice it.
There is not much you can do other than a) complain to your ISP (good luck) or b) find another that's not just a reseller of your existing cable's infrastructure. I'm not sure if DSL suffers the same issue as the shared cable plant.
Re: (Score:2)
The person that asked the question mentioned 2 mobile providers.
Of course his connection is going to suck, it's wireless.
The question is:
Can you use 2 mobile connections to get the best of the 2.
The first thing to try would be if he/she started 2 pings, would they both go bad at the same time. If so he/she doesn't have to try any of the tricks mentioned.
T1? (Score:1)
I don't have an answer to accomplish what you are talking about however....
You can typically get a T1 line installed anywhere.. The prices vary, last one I had was $400 a month but that was about 30 miles from the closest city 10 miles down a paved country road and another mile or so down a dirt road and almost 200 miles from the closest city with an internet backbone. You might find out you can get a T1 or something along those lines for less than I was at that time.. I split my connection with my neighbor
It can be done but... (Score:2)
I run a dual VPN link over two telcos (Comcast and U-Verse in my case), between my home and a colo. I don't try to repeat the traffic on both links, however, because they have different bandwidth capabilities and it just doesn't work well if the line becomes saturated. Instead I use PF and FAIRQ in both directions to remove packet backlogs at border routers in both directions, and to ensure that priority traffic gets priority. Either an aggregation-with-failover or a straight failover configuration works
Mobile links (Score:2)
For mobile internet connections... for dual mobile internet connections. I haven't done that but I have used VPNs over mobile hotspots extensively. There is just no way to get low latency even over multiple mobile links. The main problem is that the bandwidth capabilities of the links are fluctuating all of the time, and if you try to dup the packets you will end up overloading one or the other link randomly as time progresses because the TCP protocol will get acks from the other link and thus not backof
It's simple (Score:2)
1. Set up OpenVPN on the datacenter Linux server to act as your Battlefield endpoint (single IP + port).
2. Set up 2 VPN connections, one from each phone, to that box.
3. Set up a Linux box to act as a router at home. Use bluetooth or whatever to connect it to your mobile connections.
4. Follow the directions here http://www.lartc.org/autoloadb... [lartc.org] on how to set up iptables rules as needed on both Linux boxes.
5. Modify the iptables rules as needed to your specific requirements.
6. Keep on modifying iptables. It
Re: (Score:2)
If you only use it for loadbalancing with static iptables/ip rule/ip routes, it won't help in any way.
It would need some kind of dynamic component.
Re: (Score:2)
Well, maybe if you send duplicate VPN packets 1 over each connection.
But I don't think modern iptables has a MIRROR-target.
Performance testing script/VPN relatively closeby (Score:1)
Re: (Score:2)
Alternate solutions (Score:2)
Instead of thinking complex solutions, you could also think of simpler solutions. Why don't you focus on improving your mobile connection.
Like: make extension cord to tether your phone, and place the phone near or even outside the window.
Or, buy a 'real' (seperate) G2/3/4 modem with a big (and seperate) antenna for $150.
Or. See if you have local interference. Or, see if another type or brand of phone has a better connection.
And of course you already stripped all apps from your tethering phone and disabled w
Won't work (Score:1)
LACP says hello (Score:2)
... and reminds you that this is exactly the wrong use for port channels.
doable w/deep understanding of TCP (Score:1)
Actually, it's easy. (Score:3)
This isn't possible, nor should it be.
Actually, it's almost trivial.
I don't know if there's something already available and free, so here's how I'd build it.
It'd startt with OpenVPN. (Mosly because it's the only hackable VPN I'm familiar with that's currently supported.)
I'd first take advantage of the fact that servers and clients are SUPPOSED to be able to handle duplicated and reordered packets and do it the simple way: Just hack it to throw each packet down both pipes, and at the receiving end just for
Re: (Score:2)
Data structure might be...
Of course, with only two links, you only have to track the packets that have come in on one link but not yet on the other. That makes it even easler.
Similarly, but not quite as simply, with more than two links, with situations where you throw things down some but not all of them, etc.
Re: (Score:2)
While I think your idea is pretty brilliant, I'm pretty sure that Battlefield is a UDP not TCP protocol so does UDP have the 'intelligence' to discard duplicate packets?
Re: (Score:2)
if ((CurrentCounter - LastCounter) > 0) LastPacket = Current; foward_packet();
The big issue is what happens when you have two different speed connections. If one is faster than the other, bandwidth wise, the one connection could get massive buffer-bloat and loss, pretty much removing most of your benefit.
Re: (Score:2)
I'm pretty sure that Battlefield is a UDP not TCP protocol so does UDP have the 'intelligence' to discard duplicate packets?
No it doesn't. UDP is just minimalist port-number-multiplexed, checksummed, access to the underlying IP protocol. It delivers the packets as they arrive, with no sorting out at all. (The underlying IP layer handles fragmentation and reassembly, but that's about it.)
That is why the SERVER and CLIENT that USE UDP have to, themselves, handle the dropping, reordering, and duplication of
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Seems like good option, but does it actually do what the OP is asking for: send duplicate data to two interfaces? Just like multipathnetworks.com mentioned above, this seems focussed on bandwidth, not latency, though it does mention jitter. The requirements of OP are also quite a bit simpler that what Speedify seems to do, many things could be hard-coded. Anyway, seems interesting
Re: (Score:3)
Do you know, you're the first person in this topic to actually answer the question? Most others missed the VPN part.
OpenVPN already knows how to discard duplicates and retransmit lost packets. It's a lovely way to build a semi-reliable network on top of an unreliable one, and very hackable.
The questioner only needs to modify OpenVPN (on his PC) to send its UDP packets via two different routes. He should configure his VPS to have two public IP addresses, with OpenVPN (server-side) bound to both of them, an
Re: (Score:2)
This isn't possible, nor should it be.
Actually, I know of some people who have built their own network appliances to perform this task. It's feasible and can work but requires encapsulate and decapsulation on each end. You can MSS clamp for TCP and timestamp/reassemble the UDP frames. Not impossible, but certainly requires effort. The people I know who did this was for redundancy between DSL + Business DOCSIS services so they would get the fastest performance of each direction from their links with redundancy should one fail.
Bonding (Score:1)
Re: (Score:2)
Of course it is doable. It is probably even fairly easy with tun/tap. However, it requires programming; I doubt there are any pre-built solutions for doing this.
Re:Seems like a joke to me.. (Score:4, Insightful)
Seems like reading and comprehending the question is not doable for most of the folks in the comments of this story today. If you go back and read what the original poster asked, I think you'll realize that it's completely doable, with some (perhaps significant) effort. Certainly there aren't any out -of-box solutions that I know of. Basically a combination of mTCP and VPN is what he's looking for. The multipath connection is not between him and the gaming server. He wants it between him and a VPS running linux. The gaming server part is the final goal, but nothing to do with his problem or question. He certainly could invent his own tunneling protocol using, say UDP. As an example, if we consider the tcp/ip protocol, each packet has a unique sequence number. So if we take a TCP/IP packet, wrap it in a UDP packet and send one to the server through each interface, the server could unpack the UDP packet, note the sequence number, and if it already saw it recently, discard it. Otherwise, make a note of it and drop it onto the internet. On the return trip, acknowledgements would have to be handled on the client side. IE if one ack comes, we can safely ignore any others for the same sequence number. If no acks come from either pathway, then it's a standard timeout. This is TCP/IP only. I'm sure UDP could be encapsulated in a similar way, ICMP also probably.
As I type this, I wonder if this could be done by hacking OpenVPN. OpenVPN already has udp encapsulation of UDP, ICMP, and TCP/IP. It would just be a matter of hacking in some support to send the same packet out multiple interfaces at once, and then logic to track and discard duplicates. Not sure how long either hand would have to track things for, or how much would have to be tracked.
Re: (Score:2)
Here's a real product that seems to almost do what the original poster is wanting, but not quite. But the it's a similar solution to what I described, but instead of discarding packets to allow the fasted packet to win, it aggregates bandwidth. Different problem, but similar solution.
http://www.pcpro.co.uk/news/br... [pcpro.co.uk]
Re: (Score:2)
Re: (Score:2)
Peplink works like magic - failing over very gracefully. The same can be achieved on Linux through network interface bonding, or on pfSense through Link Aggregation. You would need an intermediate server on the internet that supports the same. VPS servers are cheap and suitable for this purpose.
However, all this will not help reduce latency - which is what the original question is about.
For that, we need the solution proposed else where on this thread:
1. Client duplicates packets over two mobile links to an
Re: (Score:1)
I have used Talari, it rocks. Multiple Internet path aggregation between Talari appliances and instant failover when links have problems. I haven't really seen anyone else do this, but I've heard that Fatpipe and possibly Riverbed are playing in this space now.