Subject: [quicwg/base-drafts] ACK-only "frames" (#763)

From: Mike Bishop <[email-masked]>
Date: Wed, 06 Sep 2017 18:02:19 +0000 (UTC)

4.4 references "Ack only frames" -- I suspect this should be ACK-only *packets*, or perhaps more generally, packets which don't contain anything retransmittable.

I'm also a little confused as to why this is, but that could just be my lack of familiarity with the congestion control space.

-- 
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/763

---

From: Martin Thomson <[email-masked]>
Date: Wed, 06 Sep 2017 14:42:12 -0700

There is more work needed here, but the point is that most congestion controllers depend heavily on feedback and if ACKs are held back by congestion control, the whole system can come crashing down.  For that reason, we need a carve-out.  If you are congestion-limited, then you can send a packet as long as it ONLY contains ACK frames.  (No word about PADDING here or its effect, that's another issue that needs clarification.)

BTW, ACKs should be identified as "retransmittable" (in the sense that the data they contain needs to be sent again somehow).  That whole retransmittable concept needs a serious rework.

-- 
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/763#issuecomment-327620437

---

From: ianswett <[email-masked]>
Date: Fri, 15 Sep 2017 12:57:52 -0700

Martin is correct about ack only packets not being congestion controlled, because otherwise the whole system can get permanently stuck.

ACKs are really not retransmittable, since there is never a case one should send the exact same ack twice.

-- 
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/763#issuecomment-329886259

---

From: Martin Thomson <[email-masked]>
Date: Mon, 25 Sep 2017 04:48:17 +0000 (UTC)

I'm going to keep harping on about this one:  you don't retransmit packets, you don't retransmit frames, you retransmit data.  The acknowledgements need to be retransmitted, for which you need to use ACK frames and packets.

-- 
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/763#issuecomment-331776284

---

From: ianswett <[email-masked]>
Date: Mon, 25 Sep 2017 07:08:06 -0700

To clarify, by the word acknowledgement, you mean "The information that a packet has been received."?  If so, then yes, but I don't think that's what most people think of when you say that, even though it is reasonable.

There are three possible definitions for acknowledgement:
 1) A packet only containing and ack(This is most analogous to TCP, so I suspect is a common one)
 2) An ack frame
 3) Information that a packet has been received.

If we want to use acknowledgement to mean the third, we should be really clear about it.

-- 
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/763#issuecomment-331892547

---

From: Martin Thomson <[email-masked]>
Date: Mon, 25 Sep 2017 14:37:41 -0700

Yes, I think that the most abstract (3) is the right answer here.  We can explicitly talk about ACK frames, or packets containing only ACK frames (and PADDING) as necessary.

-- 
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/763#issuecomment-332021177

---

From: mirjak <[email-masked]>
Date: Mon, 25 Sep 2017 21:45:13 +0000 (UTC)

But, as Ian said, you should probably also not use the word 'retransmit' here. If you detect that an ack frame was lost, you should make sure that (in a reasonable amount of time) a new ack frame is send that contains at least the information that the lost ack frame was carrying and maybe even have newer information as well. In some cases you may have already send another ack frame that also contains this information in the mean time and you potentially do have to do anything.

-- 
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/763#issuecomment-332022965

---

From: ianswett <[email-masked]>
Date: Tue, 26 Sep 2017 14:12:19 +0000 (UTC)

Yes, 'retransmit' has some pretty strong associations from TCP, so we should probably avoid using it whenever possible.  Resend might be an alternate option?

-- 
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/763#issuecomment-332211223