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

In some situations the ACK frames will be for CID with sequence number 1 #306

Open
gloinul opened this issue Mar 16, 2024 · 3 comments
Open

Comments

@gloinul
Copy link

gloinul commented Mar 16, 2024

Section 5.1
"If the multipath extension has been successfully negotiated, ACK frames in 1-RTT packets acknowledge packets sent with the Connection ID having sequence number 0."

I want to note the following in RFC 9000 from section 5.1.1:
"If the preferred_address transport parameter is sent, the sequence number of the supplied connection ID is 1."

To my understanding there is this case discussed in Section 4:
"They can also start using multiple paths, unless both server preferred addresses and a disable_active_migration transport parameter were provided by the server, in which case a client is forbidden to establish new paths until "after a client has acted on a preferred_address transport parameter" (Section 18.2. of [QUIC-TRANSPORT])."

Isn't it necessary to use normal ACK frames while performing this migration. Thus, normal ACKS may also be used for sequence number 1? Or should one use MP_ACKS for this sequnce number space?

So text should be updated to include this exception or clarify usage of MP_ACK in this case. .

@mirjak mirjak added the design label Mar 18, 2024
@huitema
Copy link
Contributor

huitema commented Mar 19, 2024

I think the multipath draft needs to explicitly update that section of RFC 9000.

The sender preferred path is carried as a transport parameter, and is only activated after the client has received the server's transport parameters. At that point, the client knows whether multipath has been negotiated or not. When multipath is negotiated, the following should apply:

  1. The CID provided in the preferred address transport parameter is considered to have path-ID=1. We can debate whether the CID sequence number shall be zero or 1, it does not matter much, and sequence number 1 would help maintain some compatibility with RFC 9000

  2. If the client creates a new path using the server provided parameters, that new path SHOULD have path-ID=1.

  3. For the new path, we use MP_ACK, etc.

@huitema
Copy link
Contributor

huitema commented Mar 19, 2024

But we should only do that work after we have decided whether to use unique path ID or not. This is an area where the CID solution is in fact simpler.

@mirjak
Copy link
Collaborator

mirjak commented May 14, 2024

Current the draft says:

Also, the Path Identifier for the connection ID specified in the "preferred address" transport parameter is 0. Use of the "preferred address" is considered as a migration event that does not change the path ID.

I think that is fine actually. Do we need to say more? Can we close this issue?

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

No branches or pull requests

3 participants