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

Inconsistency in recovery-31 w.r.t. resetting PTO backoff factor. #4200

Closed
ptrd opened this issue Oct 13, 2020 · 1 comment · Fixed by #4220
Closed

Inconsistency in recovery-31 w.r.t. resetting PTO backoff factor. #4200

ptrd opened this issue Oct 13, 2020 · 1 comment · Fixed by #4220
Assignees
Labels
-recovery editorial An issue that does not affect the design of the protocol; does not require consensus. ietf-lc An issue that was raised during IETF Last Call.

Comments

@ptrd
Copy link

ptrd commented Oct 13, 2020

There is an inconsistency in https://tools.ietf.org/html/draft-ietf-quic-recovery-31 w.r.t. resetting PTO backoff factor. Section 6.2.1:

the PTO backoff is not reset at a client that is not yet certain that the server has finished validating the client's address. That is, a client does not reset the PTO backoff factor on receiving acknowledgements until the handshake is confirmed;...

This suggests that for a client to be certain that the server has finished validating the client's address, the handshake should have been confirmed.

However, the pseudo code uses PeerCompletedAddressValidation to determine whether to reset pto-count and PeerCompletedAddressValidation also checks for Handshake ACK received. That is not what the text in 6.2.1 says, as, according to https://tools.ietf.org/html/draft-ietf-quic-tls-31#section-4.1.2, the handshake is confirmed when HANDSHAKE_DONE is received or when a 1-RTT ack is received. That is a subtle difference.

As kazu noted in the discussion on Slack, Sec 8.1 of QUIC says: "Once the server has successfully processed a Handshake packet from the client, it can consider the client address to have been validated.", so, the client can consider that the server validated the client address when either ACK in Handshake or HANDSHAKE_DONE in 1-RTT is received. (See Figure 5 of TLS.) Hence, the pseudocode seems to be correct and that means the text in 6.2.1 should be corrected.

@martinthomson martinthomson added -recovery editorial An issue that does not affect the design of the protocol; does not require consensus. labels Oct 13, 2020
@ianswett ianswett self-assigned this Oct 13, 2020
@larseggert larseggert added this to Triage in Late Stage Processing via automation Oct 14, 2020
@larseggert larseggert added the ietf-lc An issue that was raised during IETF Last Call. label Oct 14, 2020
@larseggert larseggert moved this from Triage to Editorial Issues in Late Stage Processing Oct 14, 2020
ianswett added a commit that referenced this issue Oct 15, 2020
@ianswett
Copy link
Contributor

Thanks for filing this, I think the new text is simpler anyway.

Late Stage Processing automation moved this from Editorial Issues to Issue Handled Oct 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-recovery editorial An issue that does not affect the design of the protocol; does not require consensus. ietf-lc An issue that was raised during IETF Last Call.
Projects
Late Stage Processing
  
Issue Handled
Development

Successfully merging a pull request may close this issue.

4 participants