[vworld-tech] Some resources for MMOG server development

Ben Garney bgarney at purdue.edu
Sun Jan 18 23:11:11 PST 2004


My two bits:

TCP is great for streamed transfers of data where you don't care too 
much about latency issues. Most file transfer falls under this. Telnet 
sessions. Transactions - as TCP is reliable. TCP will scale to pretty 
much any connection, large or small, though of course, it's not going to 
be optimally efficient if you're in an odd case. (Too much overhead to 
be really effective on 300 baud... and it can be a bit conservative if 
you're running on a multigigabit link... maybe. These are minor nits.) 
In the world of internet, TCP is the standard solution to getting data 
from point A to B.

UDP is great if you need fine grained control over how data is actually 
sent over the wire. TCP can stall for seconds if it encounters a hitch 
or a dropped packet - if you're playing an FPS, this is unacceptable, 
even if you'll get all the data in a burst once the missing piece 
arrives. In UDP, all the transport layer does for you is maybe move the 
packet from point A to point B. It's your job to figure out how to break 
packets up (TCP will break the stream up as needed), how fast to send 
them to avoid saturating the connection, and so forth. This is worth the 
effort if you're doing a low latency application that is sending 
discrete bits of data that don't necessarily need to be ordered.

I can give more examples/support to my points if you like, or cover 
other areas. :)

Ben Garney

Brian Hook wrote:

>>stuff is glossed over; the advice is good (e.g. "Just don't bother
>>using TCP, TCP + UDP hybrid, etc - use someone else's like ENet"),
>>but with almost no explanation of why.
>And one more thing -- if someone wants to summarize what they feel are 
>the non-controversial cogent points of TCP vs. UDP, I'll gladly take 
>that information and add it to the article.
>Right now the biggest factor is that TCP stalls all traffic if 
>anything comes out of order.  It also does not support multichannel 
>communication, so a single lost packet can back up a bunch of 
>unrelated stuff.  There are other issues with how it handles backoff 
>and congestion control, but I don't think those are as important as 
>the reliability mechanism causing problems.
>vworld-tech mailing list
>vworld-tech at cubik.org

More information about the vworld-tech mailing list