HTTP/3 使用的底层传输协议 QUIC 是基于 UDP 的,因此需要在应用层实现可靠的数据传输。QUIC 协议使用了以下几种机制来保证数据的可靠性:
-
连接迁移:QUIC 允许在网络切换或 IP 变更时迁移连接,而不需要重新建立新的连接,从而避免了连接中断和数据丢失的问题。
-
可靠性流控制:QUIC 在每个流上都实现了可靠的流控制机制,可以根据发送方和接收方的负载情况动态调整数据发送速率,从而优化传输效率和可靠性。
-
数据重传:QUIC 中每个数据包都带有唯一标识符(Packet Number),接收方可以根据这个标识符进行数据包的确认和重传,以保证数据传输的可靠性。
-
拥塞控制:QUIC 采用了基于 TCP 的拥塞控制机制,可以根据网络拥塞程度自适应调整发送速率,以避免网络拥塞和丢包等问题。
在基于 UDP 的 HTTP/3 协议中,通过 QUIC 实现了多种机制来保证数据传输的可靠性,如连接迁移、可靠性流控制、数据重传、拥塞控制等,从而有效解决了 UDP 协议本身的可靠性问题,提高了传输效率和安全性。