天天看点

学习笔记 | TCP和UDP的区别和各自适用的场景

TCP和UDP的区别和各自适用的场景

学习笔记 | TCP和UDP的区别和各自适用的场景

01 TCP和UDP区别

1. 连接

  • TCP是面向连接的传输层协议,即传输数据之前必须先建立好连接。
  • UDP无连接。

2. 服务对象

  • TCP是点对点的两点间服务,即一条TCP连接只能有两个端点;
  • UDP支持一对一,一对多,多对一,多对多的交互通信。UDP它在IP之上仅提供两个附加服务:多路复用和对数据的错误检查。

3. 可靠性

  • TCP是可靠交付:无差错,不丢失,不重复,按序到达。当使用TCP向另一端发送数据时,它要求对端返回一个确认。如果没有收到确认,TCP自动重传数据并等待更长时间。在数次重传失败后,TCP才放弃。
  • UDP是尽最大努力交付,不保证可靠交付。不提供确认、序列号、超时重传等机制。

4. 拥塞控制,流量控制

  • TCP有拥塞控制和流量控制保证数据传输的安全性。TCP比较慢。
  • UDP没有拥塞控制,网络拥塞不会影响源主机的发送效率。UDP比较快。

5. 报文长度

  • TCP是动态报文长度,即TCP报文长度是根据接收方的窗口大小和当前网络拥塞情况决定的。以字节流的方式进行传输。
  • UDP面向报文,不合并,不拆分,保留上面传下来报文的边界。

6. 首部开销

  • TCP首部开销大,首部20个字节。
  • UDP首部开销小,8字节。(

    源端口

    目的端口

    数据长度

    校验和

学习笔记 | TCP和UDP的区别和各自适用的场景

02 TCP和UDP适用场景

  • 从特点上我们已经知道,TCP 是可靠的但传输速度慢,UDP 是不可靠的但传输速度快。因此在选用具体协议通信时,应该根据通信数据的要求而决定。
  • 若通信数据完整性让位于通信实时性,则应该选用 UDP 协议(如小文件传送、

    视频传输

    实时通信

    等);反之,则使用TCP 协议(如

    大文件传输

    重要状态的更新

    等)。
  • UDP具有对系统资源要求较少、具有较好的实时性、网络开销小的优点。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用UDP。