HTTP/3如何处理数据包丢失?

HTTP/3如何处理数据包丢失?,http,tcp,udp,http2,http3,Http,Tcp,Udp,Http2,Http3,HTTP/2和HTTP/3之间的关键区别之一是从TCP切换到UDP 据我所知,TCP通过验证没有数据包丢失来验证数据完整性。将再次请求丢失的任何数据包,以确保正确接收所有数据 对于UDP,没有这样的验证。如果数据包丢失了,就这样吧 也就是说,如果我在HTTP/3上发出一个请求,并且一个数据包丢失了,是否有一种机制来确保我获取所有数据,或者是否存在我的响应丢失数据包的风险 如果数据包丢失了,就这样吧 不,对于UDP,它不是“随它去吧”,但它取决于UDP之上的协议是否关心数据包丢失、复制和重新排序。

HTTP/2和HTTP/3之间的关键区别之一是从TCP切换到UDP

据我所知,TCP通过验证没有数据包丢失来验证数据完整性。将再次请求丢失的任何数据包,以确保正确接收所有数据

对于UDP,没有这样的验证。如果数据包丢失了,就这样吧

也就是说,如果我在HTTP/3上发出一个请求,并且一个数据包丢失了,是否有一种机制来确保我获取所有数据,或者是否存在我的响应丢失数据包的风险

如果数据包丢失了,就这样吧

不,对于UDP,它不是“随它去吧”,但它取决于UDP之上的协议是否关心数据包丢失、复制和重新排序。例如,对于RTP(VoIP中的实时音频等),数据包丢失是可以的,因为以后到达的数据包无论如何都没有用处(音频必须是低延迟的)。在RTP中使用协议固有的序列号处理重新排序和复制

对于HTTP/3,数据丢失是不可接受的。HTTP/3构建在QUIC之上,QUIC构建在UDP之上。数据包丢失在QUIC中处理(请参阅)。因此,HTTP/3基本上构建在可靠传输(QUIC)之上,就像HTTP/1和HTTP/2构建在可靠传输层(TCP)之上一样