target = "https://www.rfc-editor.org/rfc/rfc9000#section-13.2.5" # 13.2.5. Measuring and Reporting Host Delay # # An endpoint measures the delays intentionally introduced between the # time the packet with the largest packet number is received and the # time an acknowledgment is sent. The endpoint encodes this # acknowledgment delay in the ACK Delay field of an ACK frame; see # Section 19.3. This allows the receiver of the ACK frame to adjust # for any intentional delays, which is important for getting a better # estimate of the path RTT when acknowledgments are delayed. # # A packet might be held in the OS kernel or elsewhere on the host # before being processed. An endpoint MUST NOT include delays that it # does not control when populating the ACK Delay field in an ACK frame. # However, endpoints SHOULD include buffering delays caused by # unavailability of decryption keys, since these delays can be large # and are likely to be non-repeating. # # When the measured acknowledgment delay is larger than its # max_ack_delay, an endpoint SHOULD report the measured delay. This # information is especially useful during the handshake when delays # might be large; see Section 13.2.1. [[spec]] level = "MUST" quote = ''' An endpoint MUST NOT include delays that it does not control when populating the ACK Delay field in an ACK frame. ''' [[spec]] level = "SHOULD" quote = ''' However, endpoints SHOULD include buffering delays caused by unavailability of decryption keys, since these delays can be large and are likely to be non-repeating. ''' [[spec]] level = "SHOULD" quote = ''' When the measured acknowledgment delay is larger than its max_ack_delay, an endpoint SHOULD report the measured delay. '''