Git Product home page Git Product logo

Comments (5)

marten-seemann avatar marten-seemann commented on June 28, 2024 1

Interesting debugging! This does indeed sound like a Quiche issue. Can you post the link to the issue here?

from quic-go.

John-Athan avatar John-Athan commented on June 28, 2024

Correction: 0-RTT works with recent versions of caddy (v2.7.4) and quic-go (>v0.37.5). Sorry for the confusion.
However, while after each successful connection establishment, a NEW_TOKEN frame containing an address validation token is sent, that token is not used inside the initial packet of a subsequent connection, even when 0-RTT packets are sent alongside.

from quic-go.

marten-seemann avatar marten-seemann commented on June 28, 2024

Sounds like a Chromium bug, right? Iā€™m not sure how Chromium handles tokens, might be worth capturing a packet trace when it connects to google.com or YouTube.

from quic-go.

John-Athan avatar John-Athan commented on June 28, 2024

I thought so too, but was not sure. After a bit of debugging, the issue is clear.

Chromium (or Quiche, more precisely) throws away tokens if they arrive before it gets a crypto frame containing a NewSessionTicket. It works as follows:

I am not quite sure if this behavior is intentional or not. It seems weird though.

quic-go currently always sends the token first:

s.queueControlFrame(&wire.NewTokenFrame{Token: token})

If the NewSessionTicket is sent before the NEW_TOKEN frame, Quiche uses the token without issues.

AFAIK, a client should be able to use tokens independent of the TLS session ticket, therefore I will open an issue in the Quiche project.

from quic-go.

marten-seemann avatar marten-seemann commented on June 28, 2024

Thanks for opening the issue in Google Quiche! Is there anything left to do on the quic-go side, or should we close this issue?

from quic-go.

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.