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

new paragraph on use cases in intro #518

Merged
merged 4 commits into from
Mar 28, 2025
Merged

new paragraph on use cases in intro #518

merged 4 commits into from
Mar 28, 2025

Conversation

mirjak
Copy link
Collaborator

@mirjak mirjak commented Mar 24, 2025

fixes #512

Copy link

@gorryfair gorryfair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks better to me, thanks.

This proposal does not cover address discovery and management. Addresses
and the actual decision to setup or tear down paths are assumed
to be handled by the application. But this document does not prevent future extensions from
defining mechanisms to address the remaining scenarios.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps avoid using address here since it means something different to the earlier address discovery mention

Copy link

@martinduke martinduke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this text.

Comment on lines +130 to +133
Simultaneous path usage generally, however, needs more consideration
than specified in this document to avoid negative performance
impacts, e.g. when stream data is distributed over multiple paths with
different delays.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Simultaneous path usage generally, however, needs more consideration
than specified in this document to avoid negative performance
impacts, e.g. when stream data is distributed over multiple paths with
different delays.
Simultaneous transmission on multiple paths is not supported by the extensions defined
in this document. It requires substantially more machinery than defined here
to avoid negative performance impacts, e.g., when data is to be transmitted
over multiple paths with different characteristics.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@larseggert this sentence is simple not true. Of course you can send simultaneous which the protocol specified in this doc and we say that multiple times also in the abstract. Also we want people to experiment with that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought we agreed that this doc should call out that it is not a complete multipath solution at PS level. "Can experiment" to me sounds again like this should be Experimental?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is covered already in the previous paragraph where it does say that this extension does not "define
how multiple, simultaneously open paths are used to send packets" (and always did). However, there is nothing in this spec that stops people from using multiple paths, so your sentence is simply incorrect. Also we want to enable that; I thought we just agreed to add a warning.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gorryfair @martinduke any further comments from you side (as you approved the PR already as is)?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that's good suggestion and I've proposed text to that effect in #520

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wrote a small note on the subject of multipath and congestion control. I do not think that RFC 9473 applies to scheduling algorithms. Scheduling algorithms define which packets goes on what path, and there are very many algorithms that could be tried, such as:

  • associate QUIC streams to specific paths, so as to minimize the amount of reordering between packets received on the same path (some folks do that with picoquic)
  • or, spread packets of a long stream on multiple paths, based on whichever path has congestion control credits available at time of scheduling (picoquic does that by default)
  • or, send a stream twice, with one copy on each path, to get the best delivery delay,
  • or, use some kind of FEC, send a stream on one path and redundant FEC packets on the other, to get the best delays without being too piggish.

All of those have been experimented. All depends on following whatever limits are imposed by per path congestion control.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This raises an interesting question about the maturity of the method. To me the list above suggests experimental use. I see aligns with the suggestion to revisit the document status: If the desire is to publish as EXP, then I still think that RFC 9473, is relevant to specifying future standards-track methods.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As spelled out clearly in the intro now, this spec does not cover packet scheduling. The parts that are covered by the spec, which are the frames and machinery for path management, are mature and well tested. And that was the discussion we already had before we adopted the document, that we only cover the parts that can be well tested and enable opening and closing of paths but do not cover paths usage (as well as address management) and explicitly leave this open for future work.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PRs are not the appropriate place for these discussions so I've locked it down.

Please open separate issue(s) if there are other points to follow up with.

Thanks Lucas!

Co-authored-by: Lucas Pardue <[email protected]>
Copy link
Contributor

@qdeconinck qdeconinck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor nits but for the rest, good to ship.

Thanks Quentin and Lucas!

Co-authored-by: Quentin De Coninck <[email protected]>
@quicwg quicwg locked and limited conversation to collaborators Mar 27, 2025
@mirjak
Copy link
Collaborator Author

mirjak commented Mar 28, 2025

I'm merging this PR as several people have approved it. As indicated by the chair, for further comments please open new issues and we can work on another PR if needed.

@mirjak mirjak merged commit c06816a into main Mar 28, 2025
3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Text about use cases in Intro
7 participants