Skip to content

UDP 和 TCP 的区别

cxuan edited this page Jun 25, 2020 · 1 revision

TCP 和 UDP 都位于计算机网络模型中的运输层,它们负责传输应用层产生的数据。下面我们就来聊一聊 TCP 和 UDP 分别的特征和他们的区别

UDP 是什么

UDP 的全称是 User Datagram Protocol,用户数据报协议。它不需要所谓的握手操作,从而加快了通信速度,允许网络上的其他主机在接收方同意通信之前进行数据传输。

数据报是与分组交换网络关联的传输单元。

UDP 的特点主要有

  • UDP 能够支持容忍数据包丢失的带宽密集型应用程序
  • UDP 具有低延迟的特点
  • UDP 能够发送大量的数据包
  • UDP 能够允许 DNS 查找,DNS 是建立在 UDP 之上的应用层协议。

TCP 是什么

TCP 的全称是Transmission Control Protocol ,传输控制协议。它能够帮助你确定计算机连接到 Internet 以及它们之间的数据传输。通过三次握手来建立 TCP 连接,三次握手就是用来启动和确认 TCP 连接的过程。一旦连接建立后,就可以发送数据了,当数据传输完成后,会通过关闭虚拟电路来断开连接。

TCP 的主要特点有

  • TCP 能够确保连接的建立和数据包的发送
  • TCP 支持错误重传机制
  • TCP 支持拥塞控制,能够在网络拥堵的情况下延迟发送
  • TCP 能够提供错误校验和,甄别有害的数据包。

TCP 和 UDP 的不同

下面为你罗列了一些 TCP 和 UDP 的不同点,方便理解,方便记忆。

TCP UDP
TCP 是面向连接的协议 UDP 是无连接的协议
TCP 在发送数据前先需要建立连接,然后再发送数据 UDP 无需建立连接就可以直接发送大量数据
TCP 会按照特定顺序重新排列数据包 UDP 数据包没有固定顺序,所有数据包都相互独立
TCP 传输的速度比较慢 UDP 的传输会更快
TCP 的头部字节有 20 字节 UDP 的头部字节只需要 8 个字节
TCP 是重量级的,在发送任何用户数据之前,TCP需要三次握手建立连接。 UDP 是轻量级的。没有跟踪连接,消息排序等。
TCP 会进行错误校验,并能够进行错误恢复 UDP 也会错误检查,但会丢弃错误的数据包。
TCP 有发送确认 UDP 没有发送确认
TCP 会使用握手协议,例如 SYN,SYN-ACK,ACK 无握手协议
TCP 是可靠的,因为它可以确保将数据传送到路由器。 在 UDP 中不能保证将数据传送到目标。
Clone this wiki locally