Subject: [quicwg/base-drafts] Guidelines for Retransmitting Lost Data (#2103)

From: martinduke <[email-masked]>
Date: Thu, 06 Dec 2018 11:56:03 -0800

The recovery draft is oddly silent on when to send data that has actually been marked as lost. I'm not sure if this is constructive ambiguity or just an oversight.

Consider the following case with 1 stream, which is an entirely typical burst error scenario.
1. Segments A through J are sent in packets 1-10. There is no other data.
2. TLP timeout, send A in pkt 11.
3. TLP timeout, send pkt 12. **Do I send segment A or B** -- A is inflight twice so B is more likely to be new to the receiver, though if A is truly lost we won't make progress.
4. RTO timeout, send pkts 13 and 14. Similar to (3), **do we send C & D, or A & B**?
5. Receive ack of 14. Packets 1-12 are declared lost. Whatever was in pkt 13 is therefore the only outstanding data, and only the contents of pkt 14 are deleted from the queue. **Should I include the payload of pkt 13 in the outgoing queue,** or wait for pkt 13 to be declared lost?

Put another way, in the recovery draft we often prioritize segments that have no copies in-flight. Does that extend to prioritizing segments that are in-flight once over those that are out there twice? Does declaring a packet lost mean we should simply retx its segments if unacked, or do we consider that there are still outstanding copies?

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

---

From: janaiyengar <[email-masked]>
Date: Thu, 06 Dec 2018 18:01:59 -0800

Said differently, the draft says _when_ a sender can send, but not _what_.

There are rules of thumb we used to have, but I would argue now that this doesn't require strong recommendations besides that the sender decide based on local priorities. That said, I think it'd be good to have a paragraph that discusses this point more explicitly and the tradeoffs, so I'll leave this issue open.  It is not an oversight that we don't say _what_ should be transmitted, but there should be text clarifying 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/2103#issuecomment-445096844

---

From: ianswett <[email-masked]>
Date: Thu, 06 Dec 2018 18:33:40 -0800

In the "Loss Detection" section, we reference the transport draft:

"If a packet is lost, the QUIC transport needs to recover from that loss, such as by retransmitting the data, sending an updated frame, or abandoning the frame. For more information, see Section 13.2 of {{QUIC-TRANSPORT}}."

We could certainly add some non-normative text about the considerations, particularly in regards to things like TLP, where sending the same payload in two consecutive TLPs seems a bit unwise, unless that's all that's outstanding.

-- 
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/2103#issuecomment-445102258