TCP 和 UDP 均是有效传输协议。 根据应用程序要求,可以使用其中一个传输协议或两者同时使用。 应用程序开发人员必须根据应用程序的需求,选择适合的传输层协议类型。

对于某些应用程序,数据段必须按照指定的顺序到达才能得到成功处理。 对于其他应用程序,必须完全接收所有数据才会有用。 在这两种情况下,使用 TCP 作为传输协议。 例如,数据库、Web 浏览器和电子邮件客户端等应用程序,要求发送的所有数据都必须以原始形式到达目的地。 任何数据的丢失都可能导致通信失败,要么不能完成通信,要么通信的信息不可读。 因此,这些应用程序设计使用 TCP。 同时也会考虑这些程序所需的额外网络开销。

在其他情况下,应用程序可以容忍在网络传输过程中丢失部分数据,但是不接受传输中出现延迟。 由于需要的网络开销较少,UDP 是这些应用程序的更好选择。 UDP 是音频流、视频流和 IP 语音 (VoIP) 之类应用程序的首选。 确认机制会降低传送速度,而且在这些情况下没有必要重新传送。

例如,如果视频数据流中的一段或者两段数据未到达目的地,就会造成数据流的短暂中断。 这可能表现为图像失真,用户也许不会察觉。 另一方面,如果视频流目的设备必须获得完整的数据,则等待重新传输所导致的延迟将使图像质量严重下降。 在这种情况下,最好利用接收到的数据段呈现最佳视频,并放弃可靠性。

Internet 电台是使用 UDP 的另一个应用程序实例。 如果有些报文在网络传输过程中丢失,不会重新传输。 丢失少量数据包时,听众会听到轻微的声音中断。 但如果使用 TCP,就会重新发送丢失的数据包,这需要暂停传输来接收这些数据包,那么中断就会更加明显。