Slashdot Mirror


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.)

174 comments

  1. What makes you think by msobkow · · Score: 2, Interesting

    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.
    1. Re:What makes you think by Anonymous Coward · · Score: 1

      Doesn't TCP require it come back on the path too?

    2. Re:What makes you think by Anonymous Coward · · Score: 0

      TCP traffic is designed to support this sort of thing. Good luck with other protocols, though.

      dom

    3. Re:What makes you think by StuffMaster · · 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.

    4. Re:What makes you think by fahrbot-bot · · Score: 1

      ... 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.

      --
      It must have been something you assimilated. . . .
    5. Re:What makes you think by timeOday · · Score: 1

      If that "Linux server in a datacenter" is a VPS, you can get one for like $7/mo.

    6. Re:What makes you think by fahrbot-bot · · Score: 1

      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.

      --
      It must have been something you assimilated. . . .
    7. Re:What makes you think by Ungrounded+Lightning · · Score: 4, 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.

      --
      Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
    8. Re:What makes you think by Comen · · Score: 2

      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 not right for you.
      Pay for a good internet connection for gaming, I hear kids all day on server complain about their parents got on the internet and are watching Netflix and their ping went to shit, well the parents pay for the connection, so maybe you need to move a lawn once a month and just buy your own.
      I know it is possible to have 2 cable modem in one house, and each will not effect the others bandwidth etc..

    9. Re:What makes you think by karnal · · Score: 1

      How much does one make when one moves a lawn? Must be a pretty penny!

      --
      Karnal
    10. Re:What makes you think by sribe · · Score: 1

      What makes you think the servers can deal with multiple copies of data sanely?

      What makes you think TCP cannot deal with duplicate packets???

    11. Re:What makes you think by Anonymous Coward · · Score: 0

      No, each will not effect the other's bandwidth, and it will not *affect* it either.
      Duh.

    12. Re:What makes you think by Anonymous Coward · · Score: 0

      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.

      Or he's just renting a root box from some provider.

    13. Re:What makes you think by NEDHead · · Score: 1

      well, I recently installed about 10,000 square feet of sod and it cost me about $3500 just for the sod, so...

    14. Re:What makes you think by msobkow · · Score: 4, 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.

      --
      I do not fail; I succeed at finding out what does not work.
    15. Re:What makes you think by msobkow · · Score: 2

      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 how it wouldn't be easier to just get a landline connection. You certainly couldn't rely on "normal" multipath software solutions to do this -- they're designed to switch back and forth between a primary and a failover route, not transmit over both routes at the same time.

      You'd also have to become very familiar with the internal driver coding for both Windows and Linux. Certainly not a project for a "new to programming" person who wouldn't think up the simple solution of keeping a queue/cache of requests to check for duplicates in the first place.

      --
      I do not fail; I succeed at finding out what does not work.
    16. Re:What makes you think by agizis · · Score: 1

      The servers can't handle getting the data from different IP addresses.. That's why you need a VPN-style server in the middle to put the packets back together in a sane way. This is what we do with Speedify: http://speedify.com/blog/speed...

    17. Re: What makes you think by Anonymous Coward · · Score: 0

      Yes, this is exactally what channel bonding isp services are for, except i havn't seen latency improvemnts listed in the data, only bandwidth... Speedify is $20 on top of ur two+ other isps, not sure of their competitors.

    18. Re:What makes you think by rev0lt · · Score: 1

      Not really, no. Theoretically, they are possible (assuming same source IP and predictable sequence numbers after handshake). In practice, it doesn't really work that way - because in the end, you may be sending the ack packet from the wrong interface, and mess the state table there :)

    19. Re:What makes you think by Anonymous Coward · · Score: 0

      >I know it is possible to have 2 cable modem in one house, and each will not effect the others bandwidth etc..

      So long as you can get the cable company to agree with you on this. I've rented rooms in a number of places and if the address already has cable, the company WILL NOT allow additional accounts and WILL NOT allow additional modems on the existing account (1 residential account, 1 IP, 0 exceptions).

      I've rented from old people who insist that the modem should be turned off when not in use to save electricity. They'd shut it off when they went to bed at 7:30 forgetting I was there, still using it. It sucks having to share a modem.

    20. Re: What makes you think by msobkow · · Score: 1

      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.

      --
      I do not fail; I succeed at finding out what does not work.
    21. Re: What makes you think by unrtst · · Score: 1

      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 could chime in?

      Whether it's practical and worthwhile or not is a different matter. If one is already paying for 2 data connections + the server/service, it'd be cheaper (in most cases) to just get one good connection, and it'd certainly be less complex.

    22. Re:What makes you think by Lennie · · Score: 1

      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 be useful. Their is existing code and a IETF draft for babel(d): https://tools.ietf.org/html/dr...

      That could work.

      --
      New things are always on the horizon
    23. Re:What makes you think by Anonymous Coward · · Score: 0

      I think they meant 'Doesn't TCP require it come back on the same interface too?'

    24. Re:What makes you think by Anonymous Coward · · Score: 0

      Game servers won't have to know this. He is setting up his PC and a box in that datacenter. So he can have any kind of custom-experimental connection between his PC and the datacenter box. To the game server, it will look like the datacenter box is playing the game.

      So he can send packets over both channels, and have his special box forward the faster one. (Rewriting the address so the game server never know that there is two connections doing the work.) Or just NAT both of them and let the game server drop the duplicate.

      Or, when both connections are good, send every other packet through one connection or the other, for that double-bandwith experience. And as he has a box in the datacenter, he can do all these tricks in both directions. Certainly doable with linux, I have no idea about windows - but all is possible for he who has a compiler . . .

    25. Re:What makes you think by strikethree · · Score: 1

      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".

      --
      "Someone needs to talk to the tree of liberty about its ghoulish drinking problem." by ohnocitizen
  2. no by Anonymous Coward · · Score: 3, Insightful

    A VPN or any kind of encapsulated network traffic will only add to the latency.

    1. Re:no by Predius · · Score: 1

      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.

    2. Re:no by Bengie · · Score: 2

      The quality of the route matters, also, packet loss. If he has something that essentially duplicates the VPN traffic to the same VPN server, then the VPN server just ignores the second packet, packet-loss would be less likely to happen, and it also helps getting the minimum latency of the two high jitter connections.

      Many people have such crappy ISPs or connection signal strength that a round-about route is still better.

    3. Re:no by Anonymous Coward · · Score: 0

      Wrong. A VPN with an output in the same server farm as the game servers is actually bypassing other hops. You're essentially creating a one hop connection, thus reducing latency with a VPN.

      You're very, very sure of yourself for someone who has demonstrably little understanding of TCP/IP routing.

    4. Re:no by Anonymous Coward · · Score: 0

      I see you've once used traceroute over a VPN connection. Remeber the definition: VPN = *Virtual* Private Network. VPN connections don't "bypass other hops" unless you're using quantum tunelling. The encrypted VPN packets are following pretty much the same path as they would if they weren't encrypted, you're just seeing one hop in traceroute because that's what the abstracted virtual nework is presenting.

    5. Re:no by Anonymous Coward · · Score: 0

      Oh lovely. I see yet another clueless MCSE has chimed in.

      The grownups are talking, please leave the room.

  3. What makes you think by psmears · · Score: 2

    Well, for one thing the servers have to cope with that, because internet service in general doesn't guarantee that packets don't get duplicated. But in what OP is suggesting, the servers won't see duplicate packets - the idea is that every packet gets sent out of both internet connections to one, private, hosted VPN server - and that server runs a service that forwards whichever copy of the packet arrives first to the "real" destination (and discards the losing packet) - so the game server will only get one copy of each packet in the stream.

  4. local LAN beats remote server by Anonymous Coward · · 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.

  5. Multipath Networking by DaphneDiane · · Score: 1, Informative

    You should look into multipath networking, IEEE 802.1aq etc. There actually is a company called multipath neworks that sells a hardware solution, but you should be able to find software solutions as well.

    1. Re:Multipath Networking by lw54 · · Score: 1

      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.

    2. Re:Multipath Networking by Anonymous Coward · · 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.

    3. Re:Multipath Networking by Anonymous Coward · · Score: 0

      Ugh! So much stupidity in the replies to this question. The answer is Speedify.

  6. no by psmears · · Score: 4, Insightful

    That's true, but it seems that the real problem the OP is trying to solve is huge variance in the latency (i.e. jitter) - that is, the idea is to trade a very small amount of extra latency for the latency being much more consistent (without the massive spikes currently being seen). I'm not sure how well it would work in practice (e.g. if some of the spikes are due to local RF interference, it's possible they will affect both connections at the same time), but there's potential at least for a much smoother gaming experience.

  7. Your linux server won't help you. by detritus. · · Score: 2

    Your latency and unreliability comes from your mobile links. Get better providers or find a different lower-latency game to play.

    1. Re:Your linux server won't help you. by Razed+By+TV · · Score: 1

      Poster is entirely aware that his unreliability comes from his mobile links. That is why he is asking the question. Better, affordable, providers probably don't exist in his area, and this is the game that he has decided he wants to play.

      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 area and have no affordable lower bandwidth plans available to me), or Comcast, which I would rather avoid based on all of the horror stories. Unless Google shows up to offer these guys some competition, the idea of a better provider is largely a myth.

      The cellular networks are usually adequate. Latency and bandwidth are generally good when demand isn't peaked. When there is a lot of demand (friday nights, for instance), you just have to hope for the best, as latency will be very unpredictable. However, even when the connection seems good during non-peak hours, mobile networks seem to be plagued by random latency spikes. You can be playing a game with less than 200ms ping and all of a sudden you're looking at 1000ms+ ping times.
      If you could use both mobile networks at once, the chances of them both crapping out at the same time is going to be less than it is for one or the other.

  8. Bandwidth != latency by Anonymous Coward · · Score: 1

    Bandwidth != latency unless you are going to send crafted packets to exploit the game

  9. check out MPTCP by Anonymous Coward · · Score: 0

    http://www.multipath-tcp.org/ - not many servers on the Internet support it (so your client will fallback to normal TCP), but it will use all of your connections and favor the ones that work better if the remote side supports the option. To get all of your traffic through it, you could run a proxy on MPTCP-enabled Linux boxes on your home network and in the datacenter. Unfortunately this won't work for UDP, unless you encapsulate the UDP inside TCP (which won't do the latency any favors).

  10. Way more work than you would want by shrikel · · Score: 4, 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).

    --
    Any sufficiently simple magic can be passed off as mere advanced technology.
    1. Re:Way more work than you would want by agizis · · Score: 4, Interesting

      In fact, this does exist off the shelf already, it's called Speedify, and it's a VPN that uses all of your connections together: http://speedify.com/

    2. Re:Way more work than you would want by complete+loony · · Score: 1

      Maybe, but that web page seems to equate "speed" with throughput, it doesn't mention latency at all.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    3. Re: Way more work than you would want by Anonymous Coward · · Score: 1

      I know you are happy about your product and you want people to buy it, but it's been stated 3 times that speedify will not do what the OP ask. he wants better latency, bandwidth isn't the issue ;) your starting to look like APK spamming host files v3.4.5.8347.2

  11. Bufferbloat fix by Anonymous Coward · · 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.

    1. Re:Bufferbloat fix by Anonymous Coward · · Score: 0

      Sucks to be you if you're using D-Link. The latency problem the poster is having isn't in his local network, it's in the telco's network upstream.

  12. Neat idea, but not worth the effort by hvdh · · 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 server would need to be told on a different way what the game/other server's IP is.
    But on VPN level, I think this can be done. Start with an open source VPN software and when you're good, maybe 3-6 months of software development will do.

  13. Off the point by blogologue · · Score: 2

    A couple of milliseconds extra for all traffic doesn't matter. The point is to avoid those short spikes in network latency that get me kicked from online servers..

  14. Does nobody understand the question? by Anonymous Coward · · 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.

    1. Re:Does nobody understand the question? by agizis · · Score: 0, Redundant

      Hey, sorry for the hard sell, but this is exactly what Speedify does. It's a VPN that uses multiple connections. It also detects, and retransmits lost packets long before TCP notices. Latest beta has been tested on Amtrak trains combining their Wi-Fi with Verizon 4G. Please check it out: http://speedify.com/blog/speed...

    2. Re:Does nobody understand the question? by gargalatas · · Score: 0

      So you think that by adding another hop (with the linux server) to the final destination (the gaming server) and using all the good mambo jumbo open source solutions and alot of developement of course, you could save some extra milliseconds from the original one-less-hop setup? I bet that you can't. Also please read the question again and relize that a man is asking this just to play a game and not to send a spaceship to mars. Probably you need to go there and help him because I don't see he is capeable of doing something by himself. Are you going?

    3. Re:Does nobody understand the question? by Anonymous Coward · · Score: 0

      I was writing a detailed response with some example numbers but then accidentally pressed the back button next to my arrow key, and Slashdot didn't warn me if I wanted to keep my half-written message. Anyway:

      So you think that by adding another hop ...... you could save some extra milliseconds from the original one-less-hop setup? I bet that you can't.

      Average latency will be much higher, yes - you are right there. But the standard deviation is going to be significantly lower. E.g. say 1 out of 50 packets on both links gets a high latency (or trashed). That's 0.02 probability. Standard deviation of latency is high. But the odds both links get this simultaneously is 0.02 * 0.02 = 0.0004 or 1 out of 2500 packets. Now, standard deviation of latency is low if he can use both links.

      In practice, in an FPS gaming application, a random period of high latency will kill you, even if you were having sub-30 ms latencies the rest of the time. It would be extremely valuable to eliminate those glitches, even if it's at the cost of a couple tens of ms penalty on average.

      (Try playing Team Fortress 2 with 30 ms latencies, with a 500 ms glitch/drop-out every 30 seconds in a heated battle. Then try playing it with 60 ms latencies and no dropouts... you'll see what I mean. Personally, I'd take the 60 ms / no glitches link any day!)

    4. Re:Does nobody understand the question? by Anonymous Coward · · Score: 0

      Hey, sorry for the hard sell, but this is exactly what Speedify does. It's a VPN that uses multiple connections. It also detects, and retransmits lost packets long before TCP notices.....

      Interesting; this must provide must of the infrastructure the OP needs. But it's not clear that this service would meet his needs. I suppose it's worth trying though. But I doubt it will work well though, compared to the solution the OP proposes.

      All the marketing material seems to indicate is that Speedify is used to increase your overall bandwidth by bonding multiple channels. This is heavily emphasized in multiple places. This implies that Speedify is NOT normally sending/duplicating every single packet over multiple channels simultaneously. If they were doing so, it would be impossible to get any of the advertised bandwidth gains.

      Most gaming protocols aren't really bandwidth-constrained. Consider that an FPS reasonably operated on dial-up connections until recently. For example, many Team Fortress 2 players report playing on low-bandwidth connections of only a couple hundred kbps without issue. It's not the bandwidth that matters - it's the latency.

      So: Speedify is solving a problem that isn't affecting his game, while mostly ignoring the problem that did affect him. What you need in gaming is not something to increase overall bandwidth, but to provide redundancy for *every single packet*, something which Speedify cannot be doing if they are increasing bandwidth.

      To use a storage analogy, Speedify is like RAID-0 for packets while the OP wants RAID-1 for packets. He needs something very wasteful from a bandwidth perspective, but as mentioned above - bandwidth wasn't the issue in the first place.

      It's telling that nowhere do they advertise this service as being suitable for gaming. They could easily do so to fix the OP's problem, however - probably most of the code needed for the OP's solution is in place. The only thing I do see advertised, is "robust fail-over support" if you unplug a connection. There's nothing advertised about whether this will negatively impact any packets in flight. That means it will probably cause a glitch.

    5. Re:Does nobody understand the question? by hvdh · · 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 different routes. (Not sure how to do that,
      maybe one can change the default gateway in-between.)
      On the receiver side, you need to identify that both connections belong to the same tunnel. As your sender sends the same bytestream
      over both links, you can receive on both connections and track the stream position (number of bytes received) of both. With that you can
      easily identify which late/duplicate data to drop and what to forward as a combined stream to the output vNIC.

      As this is a VPN, on IP level, the game seems to directly talk to the game server on a single link.

      Mind that you need to send everything over both links, therefore your combined bandwith is the minimum of both individual ones.
      Mind also that with this simple scheme, that when one stream was delayed by a latency spike, it has to keep up to the other one
      (send all outstanding data) before it again can mitigate latency spikes on the other link. If this turns out to be a problem, one could
      add some signalling from receiver to sender like "on connection B, you don't need to send bytes X ot Y anymore, I have already received it
      via connection A".

      Note: You never mentioned it, but you need the same handling on the link back (game server to you).

    6. Re:Does nobody understand the question? by gargalatas · · Score: 0

      Thanks but we are talking about 150+ ms latency with an STDev of 200ms. Please look down my 4G connection which is far more better that the HSDPA. Do you believe that you can beat that 10 seconds period of ~300ms average with the other 3g connection? Pinging google.com [62.75.10.45] with 32 bytes of data: 64ms 69ms TTL=58 67ms TTL=58 57ms TTL=58 261ms TTL=58 87ms TTL=58 67ms TTL=58 443ms TTL=58 151ms TTL=58 72ms TTL=58 257ms TTL=58 182ms TTL=58 318ms TTL=58 513ms TTL=58 202ms TTL=58 67ms TTL=58 121ms TTL=58 67ms TTL=58 182ms TTL=58 81ms TTL=58 132ms TTL=58 67ms TTL=58 Ping statistics for 62.75.10.45: Packets: Sent = 22, Received = 22, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 57ms, Maximum = 513ms, Average = 160ms Sorry I had to strip the "Reply from 62.75.10.45: bytes=32 time=" because of the postercomment compresion filter. Get over it. Even wit the most expensive solutions of CISCOs it can't be done.

  15. Latency varies when protocols switch by npetrov · · Score: 2

    You may be able to check if your latency varies due to mobile protocol switches to lower power due to less activity.

    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.

    1. Re:Latency varies when protocols switch by npetrov · · Score: 1

      In my specific case, I found that payload of 600 bytes works the best. So if latency is important (i.e. I am typing a lot over RDP) I just run "ping www.google.com -t -l 600"

  16. "No." by Spazmania · · Score: 2, 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.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  17. Re: What makes you think Lennart Poettering by llindeen · · Score: 1

    You mad bro?

  18. Packet Filter + gif tunnel ? by Anonymous Coward · · Score: 0

    i've heard of similar being done with OpenBSD's PF i can't find the link i believe it was for some obscure wireless related problem someone was having

  19. mptcp (multipath tcp) is one solution by LukeCrawford · · Score: 4, Interesting

    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

    1. Re:mptcp (multipath tcp) is one solution by agizis · · Score: 2

      A MPTCP VPN would not work in the real world. When you tunnel TCP through it, you end out having to send ACKs for the ACKs. The end result is that the effects of even a tiny bit of packet loss is a performance meltdown: http://sites.inka.de/~W1011/de... To build Speedify, we needed to implement a new multipath protocol over UDP. But that let us do clever stuff with NACKing and retransmitting lost packets before TCP ever noticed, and we were actually able to reduce the effect of loss: http://speedify.com/blog/speed...

  20. Connectify.me by drfred79 · · Score: 0

    Disclaimer: I don't work for them or get paid. But I bought connectify.me. They are a Windows client app that manages multiple connections and bridges them. It should hypothetically smooth your connection and reduce latency. For the VPN you'd need to find out the location of the server you're connecting to and have your end point be preferably in the same city.

    1. Re:Connectify.me by agizis · · Score: 1

      Hey, thanks for the mention. This Alex from Connectify. We've launched a new VPN service called Speedify that combines multiple network connections. It's very smart about jitter and retransmitting lost packets. I think it's exactly what the OP is looking for: http://speedify.com/blog/speed...

  21. Insightful jokes by gringer · · 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.

    --
    Ask me about repetitive DNA
    1. Re:Insightful jokes by Mateorabi · · Score: 2
      I'd tell you a joke about TCP but I'd have to keep repeating it until you got it.

      I'd tell you a joke about UDP but you might not get it.

      --
      "You saved 1968." - Ms. Valerie Pringle to the crew of Apollo 8

    2. Re:Insightful jokes by Anonymous Coward · · Score: 0

      I'd tell you a joke about TCP but I'd have to keep repeating it until you got it., or I gave up trying, because I do do that eventually. (Yes, I said do do.)

  22. Bonding by Anonymous Coward · · Score: 0

    This is somewhat straight forward to do if both ends have linux. What you need is two separate vpn instances, and then bond the interfaces provided by those on both client and server. Tell the bonding driver to use a broadcast policy. Setup your client to route all traffic through the bonded interface. That should get you very close to where you want to be.

  23. To clear up confusion... by ERJ · · Score: 2

    So, just to clarify I believe what the poster wants to do is this:

    |||| 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.

    1. Re: To clear up confusion... by Anonymous Coward · · Score: 0

      http://www.netmodule.com/products/automation/iec62439-prp.html

      Parallel Redundancy Protocol (PRP) can do this by communicating via two completely independent networks.

      The redundancy is only required between the users and the his server (assuming server has great internet). Speed to the game is what ever the internet speed is between his server and the game server plus which ever mobile network is faster for every packet

    2. Re: To clear up confusion... by Lennie · · Score: 1

      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.

      --
      New things are always on the horizon
  24. Seems like a joke to me.. by gargalatas · · Score: 0

    That's not doable! End of story. I am wondering how a crap story like this became the first story! Slashdot please give mercy!

    1. Re:Seems like a joke to me.. by amorsen · · Score: 1

      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.

      --
      Finally! A year of moderation! Ready for 2019?
    2. Re: Seems like a joke to me.. by Anonymous Coward · · Score: 0

      I'm surprised that someone who had no insight or knowledge of networking would find this story interesting enough to read or reply to. It's absolutely possible.

    3. Re:Seems like a joke to me.. by caseih · · Score: 3, 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.

    4. Re:Seems like a joke to me.. by caseih · · Score: 1

      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...

    5. Re:Seems like a joke to me.. by gargalatas · · Score: 0

      Please read the requirements again all of you. You cannot drop latency by just joining- bonding- agregating or whatever you name it plus adding a middle host to your connection. This is not called networking either programming either computer science. It's called MAGIC and it's not doable. User never complained about loss and as far as I am concerned gaming does not require heavy bandwidth. Everything that everyone describes can cope with the packet loss (failover) or with the bandwidth bonding. So here we have an interesting academic/scientific chat about networks but I dont find a solution that me -as an engineer- would suggest. You?

    6. Re:Seems like a joke to me.. by Anonymous Coward · · Score: 0

      Read the requirements again yourself. His problem is jitter, not latency.

    7. Re:Seems like a joke to me.. by Anonymous Coward · · Score: 0

      You miss the entire point of everything...

      Two crappy, independent, connections. The ping for both is inconsistent, and the ping for both is *not correlated*.

      Or if you want to look at it in extreme case, two connections with random and uncorrelated latency. For any packet, one connection will pass the packet to the middle man faster. If you duplicate the packet over both interfaces, the middle man will always receive one before the other, or in the rare case, at the same time. The one that gets there first is forwarded on. If they get there at the same time (lol), one is discarded. You reduce your latency *compared to using an individual connection* since you're always *achieving* the minimum latency of the two connections.

      Since you have the reading comprehension of a newt, here's a table

      conn 1, conn2, min

      70, 80, 70

      100, 205, 100

      80, 60, 60

      250, 90, 90

      200, 100, 90

      85, 110, 85

      If you used either individual connection, you end up with the latency in the conn1 or conn2 column. If you use the min between the two, you get what's in the min column. Op is complaining that one interface will get a huge spike.

      FFS...you're a moron.

    8. Re:Seems like a joke to me.. by Anonymous Coward · · Score: 0

      Forgot to mention, that even with the added middleman latency, you may add a few ms, but you drastically smooth the total latency....which is his goal.

    9. Re:Seems like a joke to me.. by gargalatas · · Score: 0

      Ofcourse I am a moron! Thank you. And you? You explained very well the theory which is obvious to anyone from the first post. Now give us a full analysis of the 3G network jitter hypothesis, the protocol and the devices you may use to achieve that. And of course the COST. Please give us a small analysis of the costs having in mind that probably this man has no idea how to achieve that and even worse: He has no networking experience! Please explain the above to us please. "FFS" We are talking about online multiplayer gaming and Cellular networks! Get a grip you smart guy and think that even the man who asked the question did a big mistake. You cannot play FPS with (even an average) 150+ lantecy and Cellular networks wont give less no matter what you are going to think.

    10. Re:Seems like a joke to me.. by gargalatas · · Score: 0

      Please read this post above with real numbers of a 4G connection and let me know how you are going to beat that jitter. http://ask.slashdot.org/commen...

  25. anhvaiht@gmail.com by anhvaiht · · Score: 0

    anhvaiht

  26. Peplink "Unbreakable VPN" by Anonymous Coward · · Score: 0

    Check out Peplink's line of products. Their "Unbreakable VPN" is supposed to do exactly what you're suggesting, though you'd have to purchase a device for either side of the tunnel.

    1. Re:Peplink "Unbreakable VPN" by pradeepsekar · · Score: 1

      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 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.

  27. Re:Isn't possible by Anonymous Coward · · Score: 0

    Channel bonding might be a solution, but:
    -it has to support non hardware (e.g. tun) devices
    -has to support "master/master" or broadcast modes
    -have some kind of shared support on linux and windows.

    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Using_Channel_Bonding.html

  28. I have no problem at all imagining that. by Ungrounded+Lightning · · Score: 4, 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.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
    1. Re:I have no problem at all imagining that. by Anonymous Coward · · Score: 0

      What I think will be the problem isn't so much that adding this hop will add latency (it will be maybe not much), but the fact that you are going to move a most likely UDP protocol game to a TCP then UDP link. The reason why most games are UDP is they don't want the server or the game to deal with the TCP overhead, they have some means of dealing with lost packets.

      What I see happening is you will still drop packets at some point, it may be rare but it will happen. When it does happen the datacenter computer will hold all of it's future packets in a queue until dropped packet 207 gets retransmitted. So it may be rare, but when it does you might have half a second or more worth of data being sent and screwing up your game just a much.

  29. Possible with control over both ends by Anonymous Coward · · Score: 0

    There's a company (Talari.com) that produces such a technology. It's like RAID1 for packets.

    1. Re:Possible with control over both ends by ndrw · · 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.

  30. Does nobody understand the question? by cognoscentus · · Score: 1

    Bingo. I had a very similar problem on my train journey tonight, but related to packet loss instead of latency. Both the WiFi on the train and my 3G cut out at various points, often diverging in coverage as the journey progressed. If such a solution, which sounds a lot like channel bonding (as mentioned by another poster) is available, it would seem to cover this scenario as well. Imagine the implications for mesh networking as well - or is this something already dealt with in MN?

  31. Seems straighforward by Anonymous Coward · · Score: 0

    Seems straightforward. Though I don't know of anything that actually implements this. What you are looking for is,

    1. software proxy layer that captures traffic and sends it over both links, essentially encapsulating it in some sort of TCP/UDP streams
    2. software on other end, fetches the streams and replays it to the connection, based on first-come, first-server basis. So packet A comes from link A, send it and discard packet A that comes from link B later. on.
    3. do the same thing in reverse, back to client.
    4. set default route via your proxy

    Now whether that is via VPN or not, it doesn't really matter. I would not even bother with VPN since the software proxy would need to encapsulate traffic in its own tunnel anyway.

    Does this software exist today? Maybe, maybe not. I have no idea. Generally multipath routing is to increase bandwidth bonding multiple links, not to decrease jitter. The former exists as standard and works out of the box on Linux. The latter, no idea.

    http://en.wikipedia.org/wiki/E...

    The simplest solution is not using wireless.

  32. Actually, it's easy. by Ungrounded+Lightning · · Score: 2

    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 forward both copies.

    Then, if the server and/or the client DON'T handle the duplication gracefully, I'd add sequence numbering to the VPN wrapping (if it isn't there already) and a mechanism at the receiving end to keep a small amount of history of what has gone out and drop the slower copy (if it arrives before the history of its other copy has timed out).

    Data structure might be a small tree or heap of ranges-of-packets-that-have-left (pruned to drop older stuff when getting too nodefull or near sequence-number-wrap-around due to good packet weather), or maybe a rotation of three hash tables - "now", "recent", and "being cleared / cleared and waiting for rotation" - with the first two in use.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
    1. Re:Actually, it's easy. by Ungrounded+Lightning · · Score: 1

      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.

      --
      Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
    2. Re:Actually, it's easy. by im_thatoneguy · · Score: 1

      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?

    3. Re:Actually, it's easy. by agizis · · Score: 1

      Ha, that's exactly what I thought when I started implementing it. But it turns out it's way harder than it appears. Differences between internet connection in latency, loss,bandwidth, jitter, and buffering all conspire to make this a very difficult, multiyear project. That said, we've done it already and put servers all over the world, so you can just sign up and use it. Speedify: http://speedify.com/blog/speed...

    4. Re:Actually, it's easy. by Bengie · · Score: 1

      Probably have to use a counter at the encapsulation layer. A 64bit counter wrapping each packet, then just keep track of the "newest" packet.

      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.

    5. Re:Actually, it's easy. by Ungrounded+Lightning · · Score: 1

      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 packets.

      --
      Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
    6. Re:Actually, it's easy. by rev0lt · · Score: 1

      You don't really need it. OpenVPN itself is UDP-based, and everyrhing else is handled by native routing.

    7. Re:Actually, it's easy. by JackDW · · Score: 2

      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, and then manually adjust the routing table on his PC to force the use of a specific route for each of those two IP addresses. The hard bit (and it's not really that hard) is making OpenVPN (on the PC) send each packet twice to two different IP addresses, which would require modifications to the source code and some familiarity with the sockets API.

      I think it would work, not just for Battlefield but for anything. And it sounds like fun.

      --
      You're an immobile computer, remember?
    8. Re:Actually, it's easy. by fa2k · · Score: 1

      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

  33. Bonding by cognoscentus · · Score: 1

    Bonding was my first thought too - not sure VPNs are necessary, though. I guess this would allow you to isolate point-to-point traffic though, rather than bonding the entire Internet.

  34. Punkbuster by Anonymous Coward · · Score: 0

    Punkbuster requires that your IP to the battlefield server be the same as the one to the punkbuster server. Otherwise you will get kicked with the reason "service communication failure".

    If you are routing your connection over two paths each having its own IP, you will run into this problem.

  35. That's not called a VPN by SampleFish · · Score: 1

    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.

    1. Re:That's not called a VPN by Anonymice · · Score: 2

      Um, you mean like some sort of Link Aggregation Control Protocol? Sounds like a good idea!

      Oh, look!

    2. Re: That's not called a VPN by Anonymous Coward · · Score: 0

      Parallel Redundancy Protocol (PRP) can do this by communicating via two completely independent networks.

      http://www.netmodule.com/products/automation/iec62439-prp.html

    3. Re: That's not called a VPN by Anonymous Coward · · Score: 0

      Hyperbole and a Half: PaRP

  36. LACP by Anonymice · · Score: 2

    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.

    1. Re:LACP by jaa101 · · Score: 1

      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.

    2. Re:LACP by Lennie · · Score: 1

      That can easily be solved, use 2 VPNs.

      --
      New things are always on the horizon
    3. Re:LACP by Lennie · · Score: 1

      I specifically meant OpenVPN, because it can encapsulate Ethernet packets.

      --
      New things are always on the horizon
    4. Re:LACP by Lennie · · Score: 1

      Anyway, as someone mentioned above LACP is like RAID-0, not RAID-1 which is what he/she needs.

      --
      New things are always on the horizon
  37. Grow up by Mister+Liberty · · Score: 1

    And stop stealing your community's bandwidth.

    1. Re:Grow up by Anonymous Coward · · Score: 0

      How is he stealing his community's bandwidth?

  38. Here's an idea by 93+Escort+Wagon · · Score: 3

    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.

    --
    #DeleteChrome
    1. Re:Here's an idea by Anonymous Coward · · Score: 0

      In many places, this isn't an option. Where I live in the US, I can get LTE on the 4 major cellular companies, or I can get dodgy service from a local wifi based WISP. No DSL and no cable are available.

      If I want a proper low latency connection, aside from moving, my only options are "business" level services like a $300+/month T1.
      I could also get business class fiber if I spend $10,000 to have the line trenched in, or if I built a 100 foot antenna mast, I could get a microwave link, but again, these would all cost several hundred dollars a month.

    2. Re:Here's an idea by Anonymous Coward · · Score: 0

      Considering the cash he's flashing, odds are it isn't available or he has a living setup which makes it impractical.

  39. Beware firewalls, load-balancers by Anonymous Coward · · Score: 0

    If your TCP traffic does not cross the same firewall, load balancer etc., then failure to follow the same path will cause trouble and frequently cause failure to operate. Such instruments often exist and they can't (generally) work if syn, syn-ack, or ack are not all visible (and Lord knows what they do when they haven't seen a channel set up.)

    1. Re:Beware firewalls, load-balancers by Anonymous Coward · · Score: 0

      What you describe is almost never a problem in practice because firewalls aren't placed in the middle of the internet - they exist at (or very near to) the end points.

  40. http://speedify.com/features/ by Chas · · Score: 4, Informative

    http://speedify.com/features/

    This kinda sounds like what you're looking for.

    --


    Chas - The one, the only.
    THANK GOD!!!
    1. Re:http://speedify.com/features/ by Anonymous Coward · · Score: 0

      Well, no wonder. Read my other comment: http://ask.slashdot.org/comments.pl?sid=5816093&cid=48121347

      Summary: Speedify is like RAID-0 for storage - combining bandwidth of all channels. You want the equivalent of RAID-1 - complete duplication of ALL packets across ALL channels. RAID-1 is very wasteful of storage, and complete duplication of all packets on all channels to improve latency would be wasteful of bandwidth, but bandwidth isn't your problem - latency is.

      You can't duplicate the same packets on all channels to improve latency and then also get the bandwidth improvements Speedify is heavily advertising. It's impossible. :)

    2. Re:http://speedify.com/features/ by agizis · · Score: 0

      This is Alex from Connectify. Sorry to hear you weren't happy. We put out a new release *yesterday*, with huge improvements on how both loss and jitter are handled. Since you have both, I think this could fix your issues. Assuming that you are who your slashdot profile says you are, I just emailed you another license. Please give us another try, we're here to support you. New software here: http://speedify.com/blog/speed... Thank you for considering Speedify.

    3. Re:http://speedify.com/features/ by Anonymous Coward · · Score: 0

      Speedify works great for me on OSX. I've wanted a product like this for 10 years.

  41. I don't think those words mean.... by Venotar · · Score: 0

    The role I've been in for the last 13 years requires me to wear a number of hats, including network engineer and network architect in medium sized environments.
    I say that to provide some context for this statement: it is not at all clear to me what you're actually asking for.

    1. Re:I don't think those words mean.... by Anonymous Coward · · Score: 0

      Are you seriously telling me after all that experience you can't interpret a user's requirement despite them not spelling it out for you?

      It seems pretty obvious to many of the posters here and to me - and I've been out of the industry for ten years.

      Please consider removing some of those hats from over your eyes.

  42. Speedify by agizis · · Score: 3, Informative

    What you have described is Connectify's Speedify, it's a VPN that combines multiple internet connections together. As of the latest release it handles both jitter and loss, please check it out: http://speedify.com/blog/speed...

  43. interesting by blogologue · · Score: 3, Informative

    That's interesting. Maybe combined with this: http://www.cs.columbia.edu/~le... - it could provide what's needed. What I need in my case is good handling of TCP and UDP, anything else isn't relevant. Maybe I should try creating some sort of virtual network card that handles TCP and UDP, and hands the rest over to a real network card?

  44. Parallel Redundancy Protocol (PRP) by Anonymous Coward · · Score: 0

    Parallel Redundancy Protocol (PRP) can do this by communicating via two completely independent networks.

    http://www.netmodule.com/products/automation/iec62439-prp.html

    The redundancy is only required between the users and the his server (assuming server has great internet). Speed to the game is what ever the internet speed is between his server and the game server plus which ever mobile network is faster for every packet

  45. http://speedify.com/features/ by blogologue · · Score: 1

    Tried it, looked sucky. ;)

  46. Free vpn by GarretSidzaka · · Score: 1

    Soft ether

  47. FFS by koan · · Score: 1

    Get a real connection, you remind of all the people on WiFi wondering why their gaming experience sucks.

    --
    "If any question why we died, Tell them because our fathers lied."
  48. It's an ISP problem likely by SirAudioMan · · 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.

    1. Re:It's an ISP problem likely by Lennie · · Score: 1

      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.

      --
      New things are always on the horizon
  49. http://speedify.com/features/ by blogologue · · Score: 1

    OK, CEO emailed me with a free trial and link to a new beta, giving it a go.

  50. Re:What makes you think Lennart Poettering by Anonymous Coward · · Score: 0

    I wan't to curb stomp Lennart Poettering

    I "wan't" to know how he managed to mess up your grammar so impressively.

  51. Electronic News Gathering by Anonymous Coward · · Score: 0

    TV stations already use this. There is a router that allows you to plug in 4 usb modem sticks from different cellphone networks. Everything is combined with a similar router at the local network end. Very useful for uploading a large video files while on the road or serving free internet access on a bus. I saw it a few years ago but I can't remember the name of the company.

  52. Set up colocated remote server as proxy? by Anonymous Coward · · Score: 0

    Can you just set up your colocated datacenter server as a proxy server? Figure out a solution on your local PC to get your data fired off on both links to the proxy in the datacenter, which then forwards the data on big pipes to the game server. For security purposes, you'd want to make sure no random IP address could use the colocated server as a proxy / forwarder.

  53. T1? by uolamer · · 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..

    --
    s/©//g
  54. Here it is... by Anonymous Coward · · Score: 0

    A company called Pepwave makes a Max on the go router using 4 usb modems,

  55. Re:Isn't possible by jaredmauch · · Score: 1

    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.

  56. It can be done but... by m.dillon · · Score: 1

    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 the best (the TCP connection isn't lost since it's a VPN'd IP). That way if you lose one link, the other will take over within a few seconds.

    The most important feature of using a VPN to a nearby colo is being able to prioritize and control the bandwidth in BOTH directions. Typically you want to reserve at least 10% for pure TCP acks in the reverse direction, and explicitly limit the bandwidth to just below the telco's capabilities to avoid backlogging packets on either your outgoing cablemodem/u-verse/etc router or on the telco's incoming router (which you have no control over without a VPN). Then use fair queueing or some other mechanism to ensure that bulk connections (such as streaming movies) do not interfere with the latency for other connections.

    In anycase, what you want to do just won't work in real life when you are talking about two different telco links. I've tried it with TCP (just dup'ing the traffic). It doesn't improve anything. The reason is that one of the two is going to have far superior latency over the other. If you are talking Comcast cable vs U-Verse, for example (which, the comcast cable will almost certainly have half the latency of the U-Verse. If you are talking about Comcast vs Verizon FIOS, then it is a toss-up. But one will win, and not just some of the time... 95% of the time. So you might as well route your game traffic over the one that wins.

    -Matt

  57. Mobile links by m.dillon · · Score: 1

    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 backoff as much as it should. An overloaded mobile link will drop out, POOF. Dead for a while.

    For VPN over mobile links, the key is to NOT run the VPN on the mobile devices themselves. Instead, run it on a computer (laptop etc) that is connected to the mobile devices. Then use a standard link aggregation protocol with a ~1 second ping and a ~10 second timeout. You will not necessarily get better latency but it should solve the dropout problem... it will glitch for a few seconds when it fails over but the tcp connections will not be lost.

    -Matt

  58. Speedify by Anonymous Coward · · Score: 0

    But but...all of these slashdot posters are saying it's not possible to use "magic" (someone said this) to process packets in any way beyond routing.

    The articles on slashdot have become questionable...but holly hell, the IQ of the posters has plummeted to youtube levels.

  59. It's simple by LightningBolt! · · Score: 1

    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... 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 will take days to work out all the kinks.
    7. Verify that your latency problems still exist.

    --
    Old people fall. Young people spring. Rich people summer and winter.
    1. Re:It's simple by Lennie · · Score: 1

      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.

      --
      New things are always on the horizon
    2. Re:It's simple by Lennie · · Score: 1

      Well, maybe if you send duplicate VPN packets 1 over each connection.

      But I don't think modern iptables has a MIRROR-target.

      --
      New things are always on the horizon
  60. Performance testing script/VPN relatively closeby by Sauce+Tin · · Score: 1

    The easiest would be a script like this: 1. Connect to one of the VPNs 2. Run a generic performance test (ping, dropped packets, jitter, t/x rates, etc), preferably against the Battlefield server (or the same neighborhood as the server) 3. Store values of the performance test 4. Repeat using the other VPN 5. Compare values, use the VPN that has the best values from the performance test I doubt that using VPNs as a "duplex" is possible, or necessary, even. Just get a VPN that's as close as possible in terms of network distance to reduce the tension your network is receiving and you (probably) won't have to deal with any of this; get one with a high quality route and it *might* improve your ping. If the VPN doesn't solve your problem, you should definitely consider a ISP switch, as painful as it may be.

  61. Can't be done by Tyr07 · · Score: 1

    It can't be done. Advertisements for IP addresses will only let the information be sent to a single IP address.

    Technically if a server supported a specific configuration it might be sort of possible, like the battlefield server you were connecting to, and I don't mean the actual server but the software, but the reality of it is what many people have said, which packet arrives first, which gets priority, packet loss could occur, all sorts of weird things.

  62. Alternate solutions by xonen · · Score: 1

    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 wifi, as your phones processor isn't that fast and may easily be stale to other tasks for a few hundred ms.

    Also, you could / should check which provider has the strongest signal at your place, may well be a 3rd provider.

    I'd seek solution in optimizing one mobile connection. My personal experiences with tethering are that in general it is actually more reliable than wifi, with less latency and less packet loss, but obviously this may vary depending on your location. However, i'd go for all 'low tech' solutions first, starting by putting you cellphone antenna at the most optimal location, like the roof of the building (...).

    --
    A glitch a day keeps the bugs away.
  63. Won't work by ghighi · · Score: 1

    Long story short: it won't work. First you would have to convince the device with the two wireless interfaces (the windows PC I suppose) to send the packet on both path. Good luck with that: your typical routing software, including the one in the windows kernel, will choose whatever route it thinks is faster and stick to it. At most you can get some sort of load balancing but it's not what you are describing. If you somewhat manage to duplicate the traffic, TCP should handle that without problems. The impact of dropping half the incoming packets on network performance remains to be seen, however. UDP on the other hand has no way of knowing the absolute sequence of a packet (it's the whole point of UDP after all) and it's left to the in game protocol to deal with duplicate data. I suspect it will fail at some point, defeating the purpose.

  64. It's a sad day for Slashdot by Anonymous Coward · · Score: 0

    Such a well regarded site now pwned by gamers and jeeks.
    What happened to the days of Cowboy Neil and the real geeky MOTD?

    My advice to gamers? Put on your big-boy pants, download a copy of WireShark, and figure out your bandwidth problems. Sheesh!

  65. LACP says hello by X0563511 · · Score: 1

    ... and reminds you that this is exactly the wrong use for port channels.

    --
    For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
  66. doable w/deep understanding of TCP by stigweard · · Score: 1

    Ignorant troll remarks notwithstanding, this idea is sensible and doable, but requires deep understanding of TCP: e.g. yes it is supposed to be robust to duplicated or misordered packets, but no it will not perform acceptably with even low incidence rates of either. Symmetric PEPs w/explicit multipath packet processing will be needed: the Windows client is not a good candidate for one end of that pair; a lightweight Linux based transparent gateway, using e.g. tun/tap and netfilter, with some coding, can do it. We have been doing similar things for disadvantaged mobile wireless platforms (e.g. aircraft in flight) for years. Beware: transport mode IPSEC, if running between the ultimate client & server, makes it much more difficult (requiring guesstimates of what is happening with opaque transport layer headers). With an IP tunnel over a Type II Hybrid ARQ/FEC transport over packet by packet concurrent multipath routing, you can accomplish the OP's goal & more, but overhead is more than 100% unless you have 3 or more paths.

  67. local LAN beats remote server by Anonymous Coward · · Score: 0, Flamebait

    I have to assume you're fairly young and don't remember when LAN parties were the only way to play multiplayer so this is some sort of false nostaliga for a time you never had. Yes, we used to have LAN parties in the 80's and early 90's because we had to. Not because it was some awesome golden age. As a middle age adult I have no desire to lug a desktop computer around in my car to drive who knows how long to play with the limited group of people who live within driving distance. Hell, once the internet became more widely available we had the opposite problem. Too many IPX games we couldn't play over the internet, hence software like Kali to tunnel them.

    The need for LAN parties was a problem that the internet has solved. They are now a niche, occasional attraction like attending a convention and we're all much better off for it. I'm not worried about a "central server going offline". History has shown me that even for games that do require central servers there will be alternatives if they disappear. Any internet enabled game can easily be played by local players if desired.

  68. Using Clouds to reduce latency by Anonymous Coward · · Score: 0

    Apparently, the research paper, Metro: Low Latency Network Paths with Routers-on-Demand by Makkes et al., show that Clouds can be used to route traffic with lower latency end-to-end and reduces latency upto 99%.

  69. These guys did it by Anonymous Coward · · Score: 0

    http://www.bigleaf.net/how_it_works

  70. Connect then duplicate by laughingskeptic · · Score: 1

    You should probably have your proxy choose just one path for the initial connection setup and then after some configurable number of packets start the flow cloning process to the secondary route. You want to make sure that the server has a chance to get whatever house keeping it does at connection setup time completed before you start relying on the magic of TCP to keep the server from going insane. If you mess with the connection too early you are likely going to mess something up in game's connection setup process. If you send the very first SYN packet twice there is a good chance the server will reset the connection. Then you are going to have to start adding TCP protocol logic to your proxy which is going to make it way more complex. You will need to peak at the TCP sequence numbers when deciding what to pass back to your client from the server.

    UDP is a simpler protocol and therefore more complicated for you to handle. You won't have a sequence number and you will need to hash the contents of every packet coming from the server and only pass packets back to your client that you haven't seen before. And of course you will need some sort of expiration on the hashes.

    Without fully implementing the TCP protocol in your proxy you can expect issues from time to time, particularly when you pause play and a reset might slip in at the TCP protocol level. But you should be able to create something that works most of the time pretty easily.

  71. Good by SplashyFish · · Score: 1

    Good question!

    --
    Great tools looks here
  72. No they (likely) don't. by hvdh · · Score: 1

    I can't see that they're optimizing latency on single placket level. Just the regular link aggregation and failover stuff.

  73. howto by TrialsFrontier · · Score: 1

    It seems to me that this is real!

    --
    Great here android apps
  74. Performance Enhancing Proxy (PEP) by k-bull · · Score: 1

    I'm no expert, but I think this would work better for what the op is trying to accomplish. I've seen it work under linux. It's called PEPsal. This will improve performance. http://sourceforge.net/project...

  75. deal with it..... by Anonymous Coward · · Score: 0

    where I have mobile internet access from two telecom companies

    simply put, what you want doesn't exist, and even if it did exist, it would require support at the other end too (the game publishers and servers), and that just ain't gonna happen regardless of how much you whine on slashdot about your crappy internet. so....

    if you're a casual gamer that can deal with the occasional spike in ping, variable transfer rates, or even temporary disruptions of service, without having a girlie hissy fit..... just live with what you get off one or the other of your cellular devices......

    if you're the kind of elitist prick of the gaming world that has to have the lowest ping always of anyone on the server, and you'll piss whine moan complain and generally act like a 4 year old at walmart having a tantrum of the ages.. replace wireless (cellular) services with a wireline service of some sort -- cable, fiber, even the slowest dsl typically available these days is better than any type of cellular for gaming that is ping-dependent.