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

activeReadBeforeSend #1

Open
mwelzl opened this issue Aug 4, 2023 · 1 comment · May be fixed by #13
Open

activeReadBeforeSend #1

mwelzl opened this issue Aug 4, 2023 · 1 comment · May be fixed by #13
Assignees

Comments

@mwelzl
Copy link
Collaborator

mwelzl commented Aug 4, 2023

The SCTP mapping excludes using a new stream of an already existing SCTP association on Initiate when activeReadBeforeSend is used. This is about the (unusual) pattern where the client opens and then reads without first sending anything. In SCTP, the server can't learn about the creation of a new stream unless the client sends data on it, so such stream mapping wouldn't work.

Is this different in QUIC? If yes, we must say how (because the general approach is to just send data). If not, we must also exclude using a new stream of an already existing connection when activeReadBeforeSend is used ("Preferred or Required").

@mwelzl mwelzl self-assigned this Aug 5, 2023
@mwelzl
Copy link
Collaborator Author

mwelzl commented Aug 7, 2023

RFC 9000 is a little bit ambiguous here: in Section 2, it just says: "Streams can be created by sending data", and there are no real indications in the text of "just creating without sending" being a part of the design. On the contrary, it is not a part of Section 2.4. So, to me, it's questionable if a QUIC API will offer "create a stream but don't send anything".

Then again, technically, it would be possible, since Section 19.8 says "When a Stream Data field has a length of 0, the offset in the STREAM frame is the offset of the next byte that would be sent." There are also rules on what to do when an unexpected STREAM frame arrives, but an error should only occur when it this happens on a "locally initiated stream"... so it seems that beginning a stream by sending a STREAM frame with no data is indeed quite okay.

@mwelzl mwelzl linked a pull request Aug 7, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant