Lists Home |
Date Index |
On Tue, 22 Jan 2002, Paul Prescod wrote:
> Don't understand. Received wisdom is the opposite:
> "Use UDP in applications where reliability is not critical"
> "TCP ensures reliable transmission across networks, delivering data in
> sequence without errors, loss, or duplication."
Ok, networking 101.
TCP provides an emulation of a serial line, basically.
UDP provides the raw network.
UDP applications add their own packet-based retransmission code, or use an
existing library like ONC RPC to do this for them.
However, by doing this without doing it the way TCP does - which emulates
a serial line as well - they do it more efficiently.
As I said before, TCP will ensure that data arrives in order, which is
often undesirable, and it will hide packet boundaries, which is often
It's annoying that there aren't many implementations of RDP or NetBLT
around (see the RFCs), since they provide a nice middle ground between TCP
and UDP, but when the things TCP does unacceptably screw up your system,
you have to start with UDP and add retransmission (the most common
requirement) to get it to work.
The Internet would be horribly, horribly, slow to use if DNS worked over
TCP rather than UDP... DNS uses TCP only for zone transfers, which are not
time critical :-)
Alaric B. Snell
http://www.alaric-snell.com/ http://RFC.net/ http://www.warhead.org.uk/
Any sufficiently advanced technology can be emulated in software