How does QUIC provide delivery guarantee

protocol-theorytransport-protocol

I'm struggling to grasp how QUIC implements handshakes in contrast with 3 handshakes in TCP. I came across with this picture on Wikipedia. As QUIC uses UDP, I don't understand how the protocol ensures that a packet was delivered and a client doesn't need to resend it.

Best Answer

QUIC just uses unreliable UDP as underlying transport vehicle, in the same way that TCP uses unreliable IP transport. Using a new IP protocol number would have caused massive problems due to the ubiquity of NA(P)T, so UDP is used as a workaround.

Roughly, QUIC tracks data using sequence numbers within each connection ID in a very similar way to TCP: sent data is resent when it is not acknowledged in the expected time window. There are many differences in the details though, see https://datatracker.ietf.org/doc/html/rfc9000#section-13.

Related Topic