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.

  • 2
    TCP uses IP as its underlying protocol, which is just as unreliable as UDP, yet, you seem to have no trouble accepting TCP's reliability. Think about why that is. Commented Sep 25, 2022 at 14:34

1 Answer 1


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.