[Twisted-Python] Unreliable UDP
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:
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:
> 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...
More information about the Twisted-Python