As per RFC 9000

1) Every packet SHOULD be acknowledged at least once, and ack-eliciting
packets MUST be acknowledged at least once within the maximum delay an
endpoint communicated using the max_ack_delay transport parameter
2) An endpoint MUST acknowledge all ack-eliciting Initial and Handshake
packets immediately and all ack-eliciting 0-RTT and 1-RTT packets within
its advertised max_ack_delay
3) A receiver SHOULD send an ACK frame after receiving at least two
ack-eliciting packets.

When the SERVER sends a CRYPTO frame containing SERVER HELLO, it can
continue sending HANDSHAKE packets.
There are some client implementations which do not send ACK in INITIAL
packet space for SERVER HELLO crypto frame. I have seen it in Firefox,
picoquic, msquic. The Handshake is still successful and 1RTT packets can be
seen in the packet capture.

What should be the correct behaviour ?

1. If Client does not ACK the SERVER HELLO, should the packet be
retransmitted even after HANDSHAKE is completed ?
2. Should the client immediately ACK the SERVER HELLO, since no more
packets may be exchanged in INITIAL packet space. This will be
contradicting the point 3 above from RFC.

Regards,
Kaushal
Regards,
Kaushal

Reply via email to