有序交付

QUIC 保證串流的有序交付,但不能保證各個串流之間的有序交付。 這代表每個串流將發送數據並保持數據順序( 串流中的數據將有序抵達 ),但是每個串流之間可能以不同的順序到達目的地!

舉個例子: 串流 A 和串流 B 從伺服器端傳輸到客戶端。串流 A 先出發,然後是串流 B。在 QUIC 中,遺失的封包僅影響該遺失的封包所屬的串流。所以當串流 A 遺失了封包但串流 B 沒有的情況下,串流 B 會持續傳輸並且完成,而串流 A 的遺失封包將重新傳輸。這種狀況不會發生在 HTTP/2。

此處通過一個連接在兩個 QUIC 端點之間發送了一個黃色和一個藍色的串流進行說明。 它們是獨立的,並且可能以不同的順序到達,但是每個串流中的封包都按順序可靠地傳遞給應用程序。

Last updated