2

I've been trying to setup a proxy tunnel for gaming for the past month and have encountered (To me) a very strange issue.

Currently I'm using a socksifier to redirect/edit the connect() command on a game's socket to get it to route through our Socks5 proxy servers in order to generate the lowest latency path between client > game server. However this method results in high latency spikes when multiple game packets get sent all in a short period of time. Unfortunately, the game sends/uses TCP and I've decided to do the same with our proxy.

When we use SSH (plink/putty with the nodelay parameter forced/set) to create a socks proxy on 127.0.0.1 (using Dynamic Portforwarding) and we use socksifier to redirect traffic to local host, the latency spike issue disappears and it runs very much more smoothly. It's almost as if there's a bottleneck or congestion issue somewhere, but not only are the servers the same, so is the congestion and queueing discipline settings (tried fq + bbr, noqueue and pfifo). I had originally thought that using SSH would result in worse performance due to encryption overhead.

Can anyone explain this issue I'm running into? It's driving me nuts and I've tried every server application out there. I've set TCP_NODELAY already (on the sockets) and have tried messing around with TCP_QUICKACK and TCP_LOWLATENCY.

Some extra information: We've tried using a range of paid and free Proxifiers as well, such as Proxifier and ProxyCap. The strange thing is, using Proxifier (and any other free alternative) still reproduces this issue, but using ProxyCap does not. I emailed ProxyCap and they responded by telling me they set TCP_NODELAY on the sockets of the servers you connect to (and possibly on the windows socket I'd assume).. but I've already done that. The game is Windows based and the proxy servers are being hosted on Linux VPS's (tried every "common/mainstream" distro to same results)

EDIT: I tested different SO_SNDBUF and SO_RCVBUF values on either end. The overall latency changes with lower/higher values, but the spiking issue still remains. Also tried SO_DONTROUTE on the client end to no success.

EDIT2: Looks like it probably has something to do with packets hanging between the game socket and the outbound network. Plink + PCap both use loopback to create a proxy server to then route the traffic through to the outbound network, but our method does not. Even without editing anything on the game (purely the game and nothing else), this issue persists. Narrowing it down!!!

Thank you everyone and I appreciate any thoughts given to help identify the culprit.

VirtualSmile
  • 61
  • 1
  • 4
  • 1
    Could it be that she traffic is being prioritised by a provider? – davidgo Apr 27 '18 at 19:21
  • I don't think that's the case.. as this is happening with 7 different VPS providers. Even then, if it was a prioritisation issue, ProxyCap wouldn't perform better / without the latency spiking issue since it's still routing packets through the socks proxy. – VirtualSmile Apr 27 '18 at 19:45

0 Answers0