Subject: [quicwg/base-drafts] Persistent congestion should be based on ack-eliciting packets, not in-flight (#4413)

From: ianswett <[email-masked]>
Date: Sun, 29 Nov 2020 15:36:04 -0800

On the mailing list Timo Völker asked some questions about persistent congestion and why it was only applicable to in-flight packets.

During the explanation, I realized that it should probably be ack-eliciting packets, not in-flight.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4413

---

From: msvoelker <[email-masked]>
Date: Mon, 30 Nov 2020 03:26:21 -0800

To have the context, I quote your explanation.

> The reason is that the packets need to elicit acknowledgements to reliably establish persistent congestion.

I think ack-eliciting makes more sense here than in-flight. At least, I understand that for the persistent congestion detection the first and the last packet need to be ack-eliciting. But why does this have to be true for packets sent between these two ack-eliciting packets?

Here is an example for the edge case.

`t=0 send packet #1 (ack-eliciting)`
`t=0..2 send packets #2-9 (non-ack-eliciting)`
`t=2 send #10 (PTO 1)`
`t=2..6 send packets #11-29 (non-ack-eliciting)`
`t=6 send #30 (PTO 2)`
`t=6..14 send packets #31-49 (non-ack-eliciting)`
`t=14 send #50 (PTO 3)`
`t=14.2 receive ack for #2-9, #11-29, #31-50`

The loss of three out of 50 packets let the sender consider this a persistent congestion.

In general, I don't see a real issue here. But, I would like to understand why it is helpful to ignore the fact that non-ack-eliciting packets, sent between two lost ack-eliciting packets, have been acknowledged.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4413#issuecomment-735727822

---

From: kjsisco <[email-masked]>
Date: Mon, 30 Nov 2020 08:58:08 -0800

This absolutely should not be in flight packets.  This may not cause a major issue as it stands but it is not technically correct.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4413#issuecomment-735910944

---

From: ianswett <[email-masked]>
Date: Mon, 30 Nov 2020 11:38:04 -0800

The text is largely correct(ack-eliciting, not in-flight) already, based on my reading.  Unfortunately, the very first description is incorrect, which is potentially confusing, so see #4414 

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4413#issuecomment-735997431