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

CFIN only recoverable with timeout #1242

Closed
siyengar opened this issue Mar 19, 2018 · 4 comments
Closed

CFIN only recoverable with timeout #1242

siyengar opened this issue Mar 19, 2018 · 4 comments
Labels
-tls -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

@siyengar
Copy link

If we're sending CFIN and 1-RTT data in the same flight, and only the CFIN is lost, the client can only use the handshake timeout to recover the FIN and not any threshold based recovery.

We don't allow the server to use the 1-RTT keys until it receives the CFIN. This makes it so that even if the server has received 1-RTT data it cannot ack it which would have triggered threshold loss recovery. So the client has to rely on the handshake timeout to send the data.

Are we fine with saying that the client should have a way more aggressive loss timeout for handshake packets than the server should?

@marten-seemann
Copy link
Contributor

This is a specific property of the TLS 1.3 handshake. I'd be more comfortable to keep our loss recovery independent of the specifics of the crypto handshake.
Don't we have the same problem if the last packet of the server flight containing the certificate is lost?

@siyengar
Copy link
Author

I don't think the problem exists with the server specifically because CFIN is dependent on the SFIN, so the client would not send any data without receiving the SFIN. If the SFIN is lost then the client can't even send ACKs. I think finished messages are tails and should be treated as such

@martinthomson
Copy link
Member

This is another form of the problem in #1190, or related to an extent that it might not be worth having another issue. See that issue for an idea...

@martinthomson martinthomson added design An issue that affects the design of the protocol; resolution requires consensus. -transport -tls labels Mar 20, 2018
@siyengar
Copy link
Author

siyengar commented Mar 20, 2018

Ya i filed this as a new issue because when I spoke to @marten-seemann and @janaiyengar about this issue, they were also as surprised by this as I was and it has different design implications to the transport regarding packet number spaces of handshake and 1-rtt data

@mnot mnot added the has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. label Mar 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-tls -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
None yet
Development

No branches or pull requests

5 participants