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
