On 8/18/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> I have several options - what's the issue w/ using TCP?

TCP over TCP has some problems, the least/biggest of which is the
timeout factor.

If there is a communication problem, TCP has a "back off and resend"
rule. This starts with "I didn't get an acknowledgment. I might be
sending data too fast, or data might have gotten lost. I'll pause for
two seconds, and then send the data again".

The problem? If the low level TCP stream does this, then any higher
level stream with data in transit will also see a delay, and a need to
re-transmit.

I may be doing a horrible job of explaining the problem. A simple
terminal session may have no problem -- a single packet of data will
eventually get an acknowledgment back.

But if there is a stream with more and more data behind it, then you
wind up with an ever increasing resending that never gets caught up.
Eventually all the TCP channels break.

TCP was designed with certain assumptions in mind. It does not work as
a general purpose transport -- that was never it's goal.

IP over IP works.
UDP over UDP works if your UDP protocol supports it.
TCP over TCP fails. The timeout rules cannot stack properly.

Reply via email to