Author Topic: Socks Proxy / Http Tunneling / Connection via TCP instead of UDP  (Read 711 times)

Meketh

  • Traveller
  • *
  • Posts: 42
    • View Profile
Hello all, hello developers,
I know that I am bringing up an old topic which has been posted numerous times in a new thread, nevertheless I did not find any "developer"/perspective answers to this topic.

I know that PS uses UDP packets for memory client - server communication.
In my (rather limited) networking experience UDP, is much less forgiving of lost packets than TCP, but is suited for real-time data, like your characters (x,y,z) position, velocity and acceleration, and pending actions (attack, chat, and so on ). Most 3rd person online shooters use UDP as far as I know, but  a lot of MMORPG use TCP (like WoW e.g.)
Currently HTTP tunneling software/services (liek HTTP tunnel) and proxy services (like SocksCap, ProxyCap, FreeProxy and so on) do not support UDP via TCP, as far as I know.

There have been numerous requests/problems with entering the game from behind a router/private/institutional firewall so far related to UDP traffic.

1) Is there any chance of fixing this, like translating the game from UDP to TCP support in the future?
2) Is there any other fix for connecting from behind a firewall I did not think about?
3) The Update server seems to be running via TCP (as tunneling to it works), is this correct?

With this thread I would like to create a summarization of this problem, so that, in the unlikely case  ;D , somebody uses the forum search he will find this topic answered  qualified. Any input would be appreciated!

Meketh aka Dante (in game)
Dante
"The Blitzer“s Guild"

Bereror

  • Hydlaa Notable
  • *
  • Posts: 773
    • View Profile
    • Planeshift API
Re: Socks Proxy / Http Tunneling / Connection via TCP instead of UDP
« Reply #1 on: August 17, 2006, 02:30:53 pm »
1. When the PS networking protocol was designed, both options were considered. It was decided to use UDP and there are no plans to change it in the future.

2. All the firewalls should support opening specific UDP ports. Some may require opening them in "bidirectional" mode because the connection is initiated by the client and the server answers back using the same connection opened by the client.

3. Updater uses the standard HTTP protocol using the port number 80. Also HTTP proxy servers are supported.
PlaneShift Sources
PlaneShift API
"Words never spoken
Are the strongest resounding"

Xordan

  • Crystal Space Developer
  • Forum Addict
  • *
  • Posts: 3845
  • For God and the Empire
    • View Profile
Re: Socks Proxy / Http Tunneling / Connection via TCP instead of UDP
« Reply #2 on: August 17, 2006, 03:21:18 pm »
Actually, a lot of shooters use TCP and MMO's UDP, simply because it doesn't really matter if you lose packets in a MMO, but lose them in a shooter and you're dead before you know what's happening (press fire 10 times and only 4 of them reach the server.. ouch) :)

LigH

  • Forum Legend
  • *
  • Posts: 7096
    • View Profile
Re: Socks Proxy / Http Tunneling / Connection via TCP instead of UDP
« Reply #3 on: August 17, 2006, 10:46:14 pm »
OK, because it is a place to add this from my experience:

Assume a satellite broadband connection. The upstream is handled via an ISDN upload-only, flatrate inclusive low bandwidth connection. The connecting PC runs a TCP proxy which analyses the outgoing packets and remembers their attributes...

The ISP now receives the upstream, manages it, and sends the returning packets via a digital satellite channel across the whole continent; the DVB-S receiver filters those packets which are expected to return on the sent requests, and makes the proxy application generate a TCP downstream.

The proxy also handles a few different protocols, not only HTTP/FTP/SOCKS, but also e.g. POP3/SMTP/NNTP. But you have to map specific ports in the proxy to specific servers and ports outside. Only HTTP connections are accepted without a specific mapping (and FTP clients only work if they support HTTP proxies). The proxy is said to support SOCKS too, but I don't know how this protocol works at all - yet.

Unexpected connections from outside are not supported by the proxy (so it is quite safe from attacks), UDP packets are appearantly ignored as well. The used proxy application simply does not support them, it seems to me. If you think I am wrong, I would be more than happy to hear good news; but with the required time to package satellite data streams, I would have to expect PINGs of several (2..5) seconds.

Gag Harmond
Knight and Ambassador
The Royal House of Purrty