8.16 Summary
Converting our echo client/server to use UDP
instead of TCP was simple. But lots of features provided by TCP are
missing: detecting lost packets and retransmitting, verifying
responses as being from the correct peer, and the like. We will
return to this topic in Section 22.5 and
see what it takes to add some reliability to a UDP application.
UDP sockets can generate asynchronous errors,
that is, errors that are reported some time after a packet is sent.
TCP sockets always report these errors to the application, but with
UDP, the socket must be connected to receive these errors.
UDP has no flow control, and this is easy to
demonstrate. Normally, this is not a problem, because many UDP
applications are built using a request-reply model, and not for
transferring bulk data.
There are still more points to consider when
writing UDP applications, but we will save these until Chapter 22, after
covering the interface functions, broadcasting, and
multicasting.
|