TCP代表传输控制协议,是一种面向连接的传输层协议。它通过网络在连接的机器之间提供可靠的连接和受保护的数据传输。它首先建立安全链接,然后发送数据。
TCP 以数据块的形式将数据从一个设备发送到另一个设备。它在数据传输上完全慢,但在系统中具有更多的功能,例如流量控制、错误控制和拥塞控制。TCP 报头为 20-60 字节,因此它包含几条信息以提高可靠性。但是,开销增加了。由于其可靠性,HTTP、FTP 等协议使用 TCP 在网络上正确传输数据。
UDP 代表用户数据报协议,是一种传输层无连接协议。它提供了通过网络在连接机器之间快速传输数据。在 UDP 中没有创建、维护和终止连接的开销。
它主要用于在我们无法承受任何传输延迟的情况下传输实时数据。UDP 以连续数据流的形式将数据从一台设备发送到另一台设备。
UDP 报头的大小是固定的,即 8 个字节。它不可靠,但速度更快。由于其传输速度,DNS、DHCP、RIP 等协议使用 UDP 在网络上正确传输数据。
TCP和UDP的主要区别如下:
基本 | TCP | UDP |
---|---|---|
Full-Form | TCP代表传输控制协议。 | UDP stands for User Datagram Protocol. |
定义 | TCP 在发送数据之前在计算机之间建立连接。 | UDP sends the data directly to the destination computer without checking whether the system is ready to receive it or not. |
连接类型 | 它是一种面向连接的协议,表示应该在数据传输之前建立的连接。一旦发送方和接收方之间的通信结束,通信设备应该结束或移除连接。 | It is a Connectionless protocol representing no compulsion for creating, maintaining and removing a connection between source and destination end. It is best applicable for broadcast and multicast purposes. |
可靠的 | TCP 是一种可靠的协议,因为它可以确保数据包的传送。 | UDP is an unreliable protocol. It does not affect the guarantee for the delivery of packets. |
重传 | 管理所有数据的交付,并自动重新传输丢失的数据。 | It is not performed. An application must detect lost data and retransmit |
用法 | TCP 适用于需要高可靠性以及传输时间相对不那么重要的应用程序。 | UDP is relevant for applications that require fast, effective transmission, such as games. UDP's stateless nature is also helpful for servers that answer small queries from huge numbers of clients. |
错误检查 | TCP 通过使用校验和来执行错误检查。当信息被更正后,数据被重新传输到接收器。 | It does not implement any error checking and also does not resend the lost data packets. |
数据流 | 数据以字节流的形式学习,没有特定的指示传达给信号消息(段)边界。 | 数据包是单独发送的,只有在它们到达时才确定其完整性。数据包在接收时具有明确的边界,这意味着接收方套接字上的读取操作将产生最初发送的完整消息。 |