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