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

Immediate close without state #3297

Closed
martinthomson opened this issue Dec 11, 2019 · 0 comments · Fixed by #3292
Closed

Immediate close without state #3297

martinthomson opened this issue Dec 11, 2019 · 0 comments · Fixed by #3292
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.

Comments

@martinthomson
Copy link
Member

In some cases, we allow CONNECTION_CLOSE (or immediate close) to be used when there is no state for the associated "connection". Most notably, this happens when a server receives a bogus Initial from a client (see #3269 for the prime example).

Immediate close works fine for those cases, except that it mandates the creation of state: the timer that runs for the closing period and maybe a packet. That doesn't make sense, because what you want prior to establishing ANY state is to just send the signal without creating any state.

So, we should allow an exception for immediate close where there is no connection state. This requires a little finesse as it touches on DoS concerns. An (unauthenticated) Initial packet might is handled statelessly with the resulting CONNECTION_CLOSE causing the client to kill state. If the server wanted to keep that state, that might be bad. For that, there is no perfect answer, because it trades off feedback about errors against a very narrow form of denial of service that we agreed we wouldn't take special steps to protect against. So we should just explain the trade-off and let the servers decide what to do.

#3292 fixes this one.

@mnot mnot added this to Triage in Late Stage Processing Dec 12, 2019
@martinthomson martinthomson added the proposal-ready An issue which has a proposal that is believed to be ready for a consensus call. label Jan 14, 2020
@mnot mnot added the design An issue that affects the design of the protocol; resolution requires consensus. label Jan 17, 2020
@mnot mnot moved this from Triage to Consensus Emerging in Late Stage Processing Jan 17, 2020
@mnot mnot removed the proposal-ready An issue which has a proposal that is believed to be ready for a consensus call. label Jan 24, 2020
@mnot mnot moved this from Consensus Emerging to Consensus Call issued in Late Stage Processing Jan 24, 2020
@mnot mnot added the has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. label Feb 5, 2020
@project-bot project-bot bot moved this from Consensus Call issued to Consensus Declared in Late Stage Processing Feb 5, 2020
Late Stage Processing automation moved this from Consensus Declared to Text Incorporated Feb 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.
Projects
Late Stage Processing
  
Issue Handled
Development

Successfully merging a pull request may close this issue.

2 participants