GithubHelp home page GithubHelp logo

Comments (4)

kazuho avatar kazuho commented on August 15, 2024

If a server does not provide a preferred address, but provides NEW_CONNECTION_ID frames with sequence numbers 2, 3, and 4, the client treats this as a connection error of CONNECTION_ID_LIMIT_ERROR. I believe that this is incorrect as the preferred address connection doesn't count toward the limit when it is not provided.

Sounds like we disagree about the interpretation of the spec.

Quoting from RFC 9000 section 5.1.1:

The sequence number of the initial connection ID is 0. If the preferred_address transport parameter is sent, the sequence number of the supplied connection ID is 1.

Additional connection IDs are communicated to the peer using NEW_CONNECTION_ID frames (Section 19.15). The sequence number on each newly issued connection ID MUST increase by 1.

My interpretation of this text is that, unless the server sends preferred_address TP, sequence number of the the first NEW_CONNECTION_ID frame to be sent by the server is 1.

It seems to me that the current text was adopted as part of quicwg/base-drafts#1821, following the discussion at 18-09 Interim. I "think" we adopted quicwg/base-drafts#1484 (comment), but I could well be wrong.

from quicly.

janaiyengar avatar janaiyengar commented on August 15, 2024

@martinthomson -- my interpretation of the text is the same as @kazuho's. I believe that the text is actually unambiguous on this point, that seq num 1 is only consumed by the SPA if an SPA is sent, and 1 is available otherwise for NEW_CONNECTION_ID frames.

from quicly.

martinthomson avatar martinthomson commented on August 15, 2024

OK, that interpretation is easy enough to adopt (I hope), so I'll do that in my implementation.

@kazuho, @janaiyengar, do you think that the text in RFC 9000 is sufficiently clear? I don't think that it is. Should we raise this on the list? An erratum might be necessary.

from quicly.

kazuho avatar kazuho commented on August 15, 2024

I would say that it is more natural to interpret the text that way. There's no point in having that if clause if CID1 was going to be absent when preferred_address TP is omitted.

At the same time, I think it would make sense to consult the list.

from quicly.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.