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

Keeping losing ACK for Handshake packet leads 0 cwnd #2779

Closed
tatsuhiro-t opened this issue Jun 10, 2019 · 5 comments
Closed

Keeping losing ACK for Handshake packet leads 0 cwnd #2779

tatsuhiro-t opened this issue Jun 10, 2019 · 5 comments

Comments

@tatsuhiro-t
Copy link
Contributor

Upon timeout, the sender MUST retransmit all unacknowledged CRYPTO data if possible. The sender MUST NOT declare in-flight crypto packets as lost when the crypto timer expires.

So timer expiration does not remove in-flight unacknowleged CRYPTO data from bytes_in_flight. This means if ACK continues to be lost for Handshake packet, endpoint has no cwnd left to send any packet. loss time based detection does not kick in because no ACK is received.

@mikkelfj
Copy link
Contributor

If the handshake cannot make progress here, perhaps it is better to give up?

@tatsuhiro-t
Copy link
Contributor Author

It could, but why not reclaim data credit by making CRYPTO data lost?

@marten-seemann
Copy link
Contributor

I think the CRYPTO retransmissions are intended to be analogous to PTOs. For PTOs, we only declare any packet lost when we receive an acknowledgement.
If that's indeed the intention here, we would also need to treat CRYPTO retransmissions as probe packets, which are not blocked by the congestion controller.

@ianswett
Copy link
Contributor

Marten is correct. It's on my TODO list to try to merge these mechanisms(redo of #2655), but it takes very careful thought and that PR quickly became conflict-heavy.

@ianswett
Copy link
Contributor

As discussed on #2984, this is fixed in the editor's copy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants