MST

星途 面试题库

面试题:网络编程中HTTP/3协议与QUIC协议的主要区别

请阐述在网络编程场景下,HTTP/3协议与QUIC协议在连接建立、传输可靠性以及拥塞控制方面的主要区别是什么?
24.9万 热度难度
后端开发网络编程

知识考点

AI 面试

面试题答案

一键面试

连接建立

  • HTTP/3:基于QUIC协议,利用QUIC的多路复用和0-RTT(0-Round Trip Time)特性。客户端首次连接时仍需1-RTT建立连接,但后续连接(如同一客户端短时间内再次连接同一服务器)可实现0-RTT,直接发送数据,减少延迟。
  • QUIC:使用UDP作为传输层协议,通过在UDP之上建立连接,在首次连接时,可利用TLS 1.3快速握手机制实现1-RTT建立安全连接,后续连接通过缓存密钥实现0-RTT。

传输可靠性

  • HTTP/3:继承QUIC协议的可靠性机制。QUIC通过序列号和确认机制来保证数据有序交付,每个数据包都有唯一序列号,接收方根据序列号重组数据。若数据包丢失,发送方根据确认信息重传。
  • QUIC:采用与TCP类似但优化的可靠性传输机制。除序列号和确认机制外,QUIC针对UDP不可靠传输特性,通过改进的重传机制,能更快速检测和重传丢失数据包,同时对数据包进行分块处理,增强可靠性。

拥塞控制

  • HTTP/3:采用与QUIC相同的拥塞控制算法。QUIC拥塞控制借鉴TCP多种拥塞控制算法,如Cubic等,并在此基础上优化。根据网络拥塞情况动态调整发送速率,避免网络拥塞。
  • QUIC:拥塞控制更灵活。支持多种拥塞控制算法切换,能根据网络环境实时调整。同时,QUIC基于UDP的特性,可更细粒度地监测网络拥塞状态,如利用ACK反馈信息更快感知拥塞,及时调整发送速率,减少拥塞发生。