传输层中的 TCP 和 UDP
第 3 层或网络层使用 IP(互联网协议),这是一种无连接协议,独立处理每个数据包,导致传输可靠性不足。当数据从一个主机传输到另一个主机时,即使属于同一会话,每个数据包也可能走不同的路径。这意味着数据包可能不会按正确的顺序到达。因此,IP 的可靠性依赖于更高级别的协议。
传输控制协议 (TCP)
TCP 是一种允许数据从一台计算机发送到另一台计算机的协议。TCP 是一种第 4 层协议,提供数据包确认,并且由于它会重新发送丢失的数据包,因此也是可靠的。它优于 UDP。但是,由于这些特性,它也存在一个缺点。
用户数据报协议 (UDP)
用户数据报协议也是一种第 4 层协议,但与传输控制协议不同,它不会确认已发送的数据包。因此,它不可靠,并且依赖于更高级别的协议来发挥作用。但是,与 TCP 相比,它更简单、更具可扩展性,并且开销更低。它用于流式传输视频和音频。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
TCP 与 UDP
以下是区分 TCP 和 UDP 的主要因素:
会话多路复用
单个主机可以使用单个 IP 地址与多个服务器交互。当使用 TCP 时,服务器和接收方必须首先建立连接,然后在传输完成后必须终止连接。TCP 还在传输过程中确保传输的可靠性。
另一方面,UDP 不会确认数据包已接收。因此,它不可靠。
分段
快速以太网的最大传输单元 (MTU) 为 1500 字节,而 TCP 的理论限制为 65495 字节。由于 UDP 不允许这样做,因此数据分段必须依赖于更高级别的协议。
流量控制
如果发送方比接收方处理数据的速度更快,则接收方将丢弃数据并请求重放,从而浪费时间和资源。TCP 通过使用滑动窗口提供端到端流量控制。滑动窗口从接收方端发送确认,指示任何给定时间可以接收多少数据。
UDP 不支持流量控制,必须依赖于更高级别的协议来实现。
面向连接
TCP 是面向连接的,这意味着它为传输建立连接,然后在传输完成后关闭该连接。另一方面,UDP 是无连接的,就像 IP(互联网协议)一样。
TCP 在收到数据包时提供确认,从而确保其可靠性。如果数据包丢失,它会请求重新传输。为此,UDP 依赖于更高级别的协议。