跳至主要內容

2、TCP和UDP

KindBrave大约 1 分钟

1.TCP和UDP的区别

TCP传输控制协议和UDP用户数据报协议(User Datagram Protocol)都是传输层协议,它们的区别如下:

  • 面向连接:TCP是面向连接的,UDP不是
  • 可靠:TCP是可靠的,UDP是不可靠的
  • 格式:TCP是面向字节流的,UDP是面向报文的
  • 状态:TCP是有状态的,会记录数据包是否已经发送、已经接收,UDP不会记录状态
  • 速度:TCP需要进行确认、重传等,比较慢,UDP很快
  • 首部长度:TCP首部长(20B-60B),UDP首部短(8B)

2.什么时候选TCP/UDP

  • 需要可靠连接的时候,一般会选择TCP
  • 需要高效率传输时候,可靠不那么重要,一般会选择UDP,比如在线音频视频等等,丢失一个包可能影响也不大

3.HTTP基于TCP还是UDP

HTTP/3.0之前是TCP的,HTTP/3.0之后是UDP的了

主要是为了解决队头阻塞问题。所谓队头阻塞,就是HTTP/2.0中多个HTTP请求是共享一个TCP连接的,当某个请求阻塞时,后面的都会阻塞。

HTTP/3.0采用多个连接,所以缓解了队头阻塞问题。

4.使用TCP/UDP的协议有哪些

使用TCP连接的:

  • HTTP/3.0之前
  • HTTPS
  • FTP
  • SSH 专为远程登录提供的安全协议
  • IMAP/POP3 邮件接收
  • SMTP 简单邮件发送
  • Telnet 远程登录

使用UDP的:

  • DNS DNS是TCP和UDP都使用了,53端口
  • HTTP/3.0
  • DHCP 动态主机配置协议,动态配置IP地址用的