在介绍 TCP/IP 协议时,提到传输层的两个重要协议,分别是 UDP 和 TCP。其中,UDP 时 User Datagram Protocol 的简称,称为用户数据报协议;TCP 是 Transmission Control Protocol 的简称,称为传输控制协议。

    UDP 是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在就会发出数据;同样,在接收端在收到数据时,也不会向发送端反馈是否受到数据。UDP 协议由于消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输,例如视频会议使用 UDP 协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接受结果产生太大影响。但在使用 UDP 协议传送数据时,由于 UDP 的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用 UDP 协议。UDP 的交换过程如下图所示:
    image.png

    TCP 协议是面向连接的通信协议,即在传输数据前先在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在 TCP 连接中必须要明确客户端与服务器端,由客户端向服务器端发送连接请求,每次来连接的创建都需要经过“3 次握手”。第 1 次握手,客户端向服务器发出连接请求,等待服务器确认;第 2 次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求;第 3 次握手,客户端再次向服务区端发送确认信息,确认连接。TCP 连接的整个交互过程如下如所示:
    image.png
    由于 TCP 协议的面向连接特性,它可以保证传输数据的安全性,因此 TCP 协议是一个被广泛采用的协议。例如在下载文件时,如果数据接收不完整,将会导致文件数据丢失而不能被打开,因此,下载文件时必须采用 TCP 协议。