📜  传输层中的 TCP 和 UDP

📅  最后修改于: 2021-09-28 10:01:04             🧑  作者: Mango

第 3 层或网络层使用 IP 或互联网协议,这些协议是一种无连接协议,单独和单独处理每个数据包,导致传输过程中缺乏可靠性。例如,当数据从一台主机发送到另一台主机时,每个数据包即使属于同一会话,也可能采用不同的路径。这意味着数据包可能会/可能不会以正确的顺序到达。因此,IP 依赖于更高层的协议来提供可靠性。

TCP(传输控制协议):
TCP 是第 4 层协议,它提供对接收数据包的确认,并且在重新发送丢失的数据包时也是可靠的。它比 UDP 好,但由于这些特性,它有额外的开销。它被 HTTP 和 FTP 等应用程序协议使用。

UDP(用户数据报协议):
UDP 也是第 4 层协议,但与 TCP 不同的是,它不提供对已发送数据包的确认。因此,它不可靠并且同样依赖于更高层的协议。但另一方面,与 TCP 相比,它简单、可扩展并且开销更小。它用于视频和语音流。

TCP 与 UDP –

  1. 会话复用:
    具有单个 IP 地址的单个主机能够与多个服务器通信。在使用 TCP 时,首先必须在服务器和接收器之间建立连接,并在传输完成时关闭连接。 TCP 还在传输过程中保持可靠性。

    另一方面,UDP 不发送接收数据包的确认。因此,不提供可靠性。

  2. 分割:
    发送的信息首先被分成更小的块进行传输。

    Fastethernet 的最大传输单元或 MTU 为 1500 字节,而 TCP 的理论值为 65495 字节。因此,数据在被发送到较低层之前必须被分成更小的块。 MSS 或最大段大小应设置得足够小以避免碎片化。 TCP 支持 MSS 和 Path MTU 发现,发送方和接收方可以自动确定最大传输能力。

    UDP 不支持这个;因此它依赖于数据分段的高层协议。

  3. 流量控制:
    如果发送方发送数据的速度比接收方可以处理的速度快,那么接收方将丢弃数据,然后请求重传,从而导致时间和资源的浪费。 TCP 提供使用滑动窗口实现的端到端流量控制。滑动窗口从接收器端发送关于接收器一次可以接收的数据的确认。

    UDP 不实现流量控制,并依赖于更高层的协议。

  4. 面向连接:
    TCP 是面向连接的,即它为传输创建一个连接,一旦传输通过该连接就终止。

    另一方面,UDP 就像 IP(互联网协议)一样是无连接的。

  5. 可靠性:
    TCP 在收到数据包时发送确认。如果数据包丢失,它会请求重传。

    UDP 依赖于更高层的协议。