06-13-2009, 09:06 PM
|
Script-fu
|
|
Join Date: Jan 2002
Location: United Kingdom
Posts: 3,914
|
|
Technical explanation:
TCP (Transmission Control Protocol) works on connection state. A TCP connection needs to be negotiated before it will transfer data, but the plus side is that if a packet gets damaged or goes missing, it gets retransmitted. TCP transfer takes place only between the player and the gserver, but is a lot more resilient to slow or unreliable connections like dial-up or 3G.
UDP (User Datagram Protocol) is connectionless, so you don't need to establish a connection before you can send data. But you don't have any guarantees that a UDP packet will get there, because if it gets corrupted, it won't be retransmitted. They are much smaller packets because they have less overhead, so they are faster to transmit. The Graal client uses UDP to transmit packets between players.
Firewalls require properly forwarded ports for UDP packets to work, whereas TCP is generally a lot more home router-proof because the connection negotiation makes a window through your firewall and that same window is used for the rest of the session. If your router is not properly configured then UDP packets can get lost and since it's not designed to detect errors, it will never retransmit the packets. A lot of people on unstable connections choose to disable UDP because that way if their connection corrupts some packets, they will be retransmitted properly by TCP. It is a bit slower to do this, though.
Simple explanation:
If UDP works well for you, then use it, because it's faster and lighter on connection resources/bandwidth. If UDP doesn't work (you don't see other players moving, you get a dialog explaining UDP is broken) then disable it because TCP will guarantee your connection, although at the cost of speed. If you disable UDP then the gserver makes sure to send player movement and changes through TCP instead. |
__________________
|
|
|