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

describe how a client is supposed to handle multiple tokens #2801

Closed
marten-seemann opened this issue Jun 18, 2019 · 4 comments · Fixed by #2962
Closed

describe how a client is supposed to handle multiple tokens #2801

marten-seemann opened this issue Jun 18, 2019 · 4 comments · Fixed by #2962
Labels
-transport editorial An issue that does not affect the design of the protocol; does not require consensus.

Comments

@marten-seemann
Copy link
Contributor

The spec doesn't define what is a client is supposed to do when it receives multiple NEW_TOKEN frames.

There seem to be multiple reasonable ways to handle this situation:

  1. A client could always use the oldest token first. This would allow the client to establish multiple connections at the same time.
  2. A client could replace any old tokens when receiving a new token. This has the advantage that the most recently issued token will (presumably) have the longest life time. Furthermore, if the server encodes connection statistics (RTT, cwnd, etc.) into the ticket, using the newest ticket would provide it with the most recent data.

From the Slack discussion, a better way might be a combination of these two:
When establishing a new connection, use the most recently obtained token first. When establishing another connection to the same server (before receiving a new NEW_TOKEN), use an older token. Client might then want to remember n tokens per endpoint, if they expect to establish n new connections simultaneously (or a few more than n, depending on the network conditions, to account for failed connection establishments).

@ianswett
Copy link
Contributor

Your suggestion SGTM.

@martinthomson
Copy link
Member

This is fine, and it merely reflects reality: older tokens are less likely to be useful. But there is no harm in attempting to use any token, provided that it hasn't been used before.

@marten-seemann
Copy link
Contributor Author

Do we need text about that? @martinthomson, do you want me to prepare a PR?

@mnot mnot added this to Triage in Late Stage Processing Jun 24, 2019
@martinthomson martinthomson added the editorial An issue that does not affect the design of the protocol; does not require consensus. label Jun 26, 2019
@martinthomson
Copy link
Member

I think that an editorial PR would be great. This is advice that doesn't change interoperability.

@martinthomson martinthomson moved this from Triage to Editorial Issues in Late Stage Processing Jun 26, 2019
martinthomson added a commit that referenced this issue Aug 9, 2019
This addresses some questions about use of multiple tokens, as well as
cleaning up the text adjacent in minor ways.

Closes #2801.
martinthomson added a commit that referenced this issue Aug 16, 2019
This addresses some questions about use of multiple tokens, as well as
cleaning up the text adjacent in minor ways.

Closes #2801.
Late Stage Processing automation moved this from Editorial Issues to Text Incorporated Sep 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport editorial An issue that does not affect the design of the protocol; does not require consensus.
Projects
Late Stage Processing
  
Issue Handled
Development

Successfully merging a pull request may close this issue.

3 participants