[Twisted-Python] Unreliable UDP

Mike Wyatt mwyatt at wi.rr.com
Thu Oct 19 22:22:56 EDT 2006

I've been doing more research since my last message, and I found some 
pretty interesting results.

Check out the posts from Simagery, hplus0603, and Ranger_One in this 

A good summary of that thread is this quote from Simagery: "...all of 
that above knowledge [UDP's superior flexibility] is based on the "state 
of the art" networking code circa 2000. Today, with wide availability of 
broadband, faster CPUs, higher quality NICs and better TCP/IP 
implementations, it all may be moot.".  I think that may have convinced 
me to stick with TCP.

Here's another great thread:  
http://www.gamedev.net/community/forums/topic.asp?topic_id=262742.  I 
didn't read the whole thing, but it includes more discussion of UDP vs. 
TCP.  There is even someone who questions the accuracy of the X-Wing vs. 
TIE Fighter article.

> Check out Q3 and Q4 in the GameDev.net "Multiplayer & Network 
> Programming" Forum FAQ:  
> http://www.gamedev.net/community/forums/showfaq.asp?forum_id=15
> The problem with TCP is summed up nicely in Q4:  /"...to make this 
> guarantee, TCP must suspend all packet delivery to the receiving end, 
> if one packet is lost, until that packet can be detected as lost and 
> re-sent."/  You can also check out this classic multiplayer design 
> article:  http://www.gamasutra.com/features/19990903/lincroft_05.htm.  
> The author is *very* against TCP.  Apparently the X-Wing vs. TIE 
> Fighter developers were seeing pings of up to 50 seconds using TCP.
> On the other hand, Q3 of GameDev's forum FAQ recommends TCP for 
> real-time strategy games, or UDP in "extreme" cases.  This makes me 
> more comfortable with using TCP, at least for early development, since 
> testing on my LAN shouldn't have any problems with dropped packets.
> The collective experience of the game development community seems to 
> /lean /towards UDP for most game development.  I'm not against using 
> TCP, but if I can find a solution that makes UDP equally easy, I'd 
> like to use that.
>> Really, truly, honestly, this doesn't make sense. You want *both*
>> reliability *and* guaranteed delivery order: that is precisely what
>> TCP does. Why do you want to use anything else? If you don't want to
>> reinvent the wheel, use TCP.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20061019/e4792def/attachment.htm 

More information about the Twisted-Python mailing list