簡體   English   中英

HTTP/3 如何處理丟包?

[英]How does HTTP/3 handle packet loss?

HTTP/2 和 HTTP/3 之間的主要區別之一是從 TCP 切換到 UDP。

據我了解,TCP 通過驗證沒有數據包丟失來驗證數據完整性。 再次請求任何丟失的數據包以確保正確接收所有數據。

對於 UDP,沒有這樣的驗證。 如果數據包丟失,那就這樣吧。

話雖如此,如果我在 HTTP/3 上發出請求並且數據包丟失,是否有一種機制可以確保我獲取所有數據,或者我的響應是否存在丟失數據包的風險?

如果數據包丟失,那就這樣吧。

不,對於 UDP,它不是“就這樣” ,但它取決於 UDP 之上的協議來關心數據包丟失、重復和重新排序或不關心。 例如,對於 RTP(VoIP 等中的實時音頻),有一些數據包丟失是可以的,因為無論如何對於后來到達的數據包都沒有用(音頻必須是低延遲的)。 並且在 RTP 中使用協議固有的序列號處理重新排序和復制。

對於 HTTP/3,數據丟失是不可接受的。 HTTP/3 建立在 QUIC 之上,QUIC 建立在 UDP 之上。 數據包丟失在 QUIC 中處理(請參閱QUIC 丟失檢測和擁塞控制)。 因此 HTTP/3 基本上建立在可靠傳輸 (QUIC) 之上,就像 HTTP/1 和 HTTP/2 建立在可靠傳輸層 (TCP) 之上一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM