Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define what should happen if packets arrive outside Missing Packet Threshold #304

Open
michael-eriksson opened this issue Sep 26, 2024 · 5 comments
Labels

Comments

@michael-eriksson
Copy link

The document does not specify what should happen if a packet arrives more out of order than Missing Packet Threshold. An immediate ack is the most reasonable action, but it should probably be explicitly specified.

See also the quicdev Slack message: https://quicdev.slack.com/archives/CTDAH4H71/p1725959171986379

@michael-eriksson michael-eriksson changed the title Define what should happens if packets arrive outside Missing Packet Threshold Define what should happen if packets arrive outside Missing Packet Threshold Sep 26, 2024
@mirjak
Copy link
Contributor

mirjak commented Jan 27, 2025

Not sure I understand this comment. the draft says:

An endpoint that receives an ACK_FREQUENCY frame with a non-zero Reordering Threshold value SHOULD send an immediate ACK when the gap between the smallest Unreported Missing packet and the Largest Unacked is greater than or equal to the Reordering Threshold value.

This say "larger or equal" which should include this case, no?

@ianswett
Copy link
Collaborator

ianswett commented Feb 6, 2025

Unfortunately, I can't see the slack history anymore, but I agree with @mirjak that the current text seems to cover this. We could say it elsewhere if it's helpful, but I'm not sure where?

@michael-eriksson
Copy link
Author

No, the text quoted from the draft above does not cover the case that I'm after.

Let's use Table 1 of draft-10 as an example. What should happen if packet 2 is received after packet 5 has been received (but before packet 8 is received)? An ack for packet 5 has already been sent, to indicate that packet 2 is missing. Packet 2 then arrives so late that it's outside the Reordering Threshold.

@mirjak
Copy link
Contributor

mirjak commented Feb 10, 2025

This is covered in RFC9000 (and not changed):

In order to assist loss detection at the sender, an endpoint SHOULD generate and send an ACK frame without delay when it receives an ack-eliciting packet either:

* when the received packet has a packet number less than another ack-eliciting packet that has been received, or

@mirjak
Copy link
Contributor

mirjak commented Feb 10, 2025

Okay, looking at the draft, this is actually not very clear. My understanding was always that we keep the behavior as specified in RFC9000 when the PN is less than an already received one and we only change the behavior in case of gaps. If so, we should maybe clarify this. @ian can you confirm?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants