面试冲刺:33---TCP、UDP的区别是什么?什么时候使用TCP?什么时候使用UDP?

一、TCP、UDP的区别是什么?

TCP

面试冲刺:33---TCP、UDP的区别是什么?什么时候使用TCP?什么时候使用UDP?

  • TCP头部结构如下:

面试冲刺:33---TCP、UDP的区别是什么?什么时候使用TCP?什么时候使用UDP?

  • TCP是一种面向连接的、可靠的字节流服务
  • TCP提供了如下的特性:
    • 校验和:TCP维持了一个强制的校验和,该校验和涉及它的头部、任何相关应用程序数据和IP 头部的所有字段
    • 数据的排序与重复丢弃:TCP通过给其中每个字节关联一个***对所发送的数据进行排序(sequencing)
    • 超时重传:当TCP发送一组报文段时,它通常设置一个重传计时器,等待对方的确认接收
    • 流量控制:TCP提供流量控制。TCP总是告知对端在任何时刻它一次能够从接收多少字节的数据,这称为通告窗口
    • 拥塞控制

UDP

面试冲刺:33---TCP、UDP的区别是什么?什么时候使用TCP?什么时候使用UDP?

  • UDP头部结构如下:

面试冲刺:33---TCP、UDP的区别是什么?什么时候使用TCP?什么时候使用UDP?

  • TCP是一种面向连接的、可靠的字节流服务
  • TCP提供了如下的特性:
    • 不提供确认、***、RTT估算等内容
    • 不提供超时重传、流量控制、拥塞控制

二、什么时候使用TCP?

  • 使用TCP的场景有:
    • 万维网(HTTP等)
    • 文件传输(FTP等)
    • 电子邮件(SMTP等)
    • 远程终端接入等(TELNET等)
  • 原因如下:
    • 对于文件传输、远程终端这些应用来说,是不允许数据丢失的,因为TCP提供了超时与重传等可靠机制,因此采用TCP

三、什么时候使用UDP?

  • 使用UDP的场景有:
    • 包量比较少的通信(DNS、SNMP等)
    • 音视频通话(即时通信等)
    • 广播通信(广播、多播)
  • 原因如下:
    • 因为UDP是不可靠传输,所以当包量比较少的时候使用UDP是比较适合的,因为这样可以避免丢失大量的重要数据
    • 对于音视频通话来说,因为UDP是非连接的,所以占用资源比较少,并且对于音视频来说,丢掉一些数据包也是可以接受的