Sending ACKs is only required after receiving an ACK-eliciting packet, but an endpoint that mostly sends data might go arbitrarily long without that happening. In those cases, for the benefit of the receiver we should occasionally include ACK frames when sending ACK-eliciting data.
Spec:
When sending a packet for any reason, an endpoint SHOULD attempt to include an ACK frame if one has not been sent recently. Doing so helps with timely loss detection at the peer.
Sending ACKs is only required after receiving an ACK-eliciting packet, but an endpoint that mostly sends data might go arbitrarily long without that happening. In those cases, for the benefit of the receiver we should occasionally include ACK frames when sending ACK-eliciting data.
Spec:
See also https://github.com/quinn-rs/quinn/issues/1756.