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

Retransmit server initial upon second Initial #3080

Merged
merged 21 commits into from Mar 13, 2020
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
17 changes: 9 additions & 8 deletions draft-ietf-quic-recovery.md
Expand Up @@ -521,14 +521,15 @@ removed from bytes in flight when the Initial and Handshake keys are discarded.

### Speeding Up Handshake Completion

When a server receives an Initial packet containing duplicate data in a CRYPTO frame, it can assume the client
did not receive all of the server's CRYPTO data sent in Initial packets, or the client's estimated RTT is too
small. When a client receives Handshake or 1-RTT packets prior to obtaining
Handshake keys it may assume some or all of the server's Initial packets were
lost.

To speed up handshake completion under these conditions, an endpoint MAY send a packet containing
unacknowledged CRYPTO data, subject to path validation limits, earlier than the PTO period.
When a server receives an Initial packet containing duplicate CRYPTO data,
it can assume the client did not receive all of the server's Initially
encrypted CRYPTO data, or the client's estimated RTT is too small. When a
client receives Handshake or 1-RTT packets prior to obtaining Handshake keys,
it may assume some or all of the server's Initial packets were lost.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the consequence of the client assuming server initials were lost? What would it do in this case to speed up the handshake?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The client sending a packet can trigger this mechanism if the server implements it and it ensures the server is not blocked by the amplification factor. I could add more detail in the second paragraph if it's helpful?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wait, do you mean "receives and successfully decrypts Handshake or 1-RTT", or I just get something that is marked as such?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you can decrypt them, then clearly the Initial packets you're waiting for weren't lost.


To speed up handshake completion under these conditions, an endpoint MAY send
a packet containing unacknowledged CRYPTO data earlier than the PTO expiry,
subject to address validation limits. (see Section 8.1 of {{QUIC-TRANSPORT}})
ianswett marked this conversation as resolved.
Show resolved Hide resolved

Peers can also use coalesced packets to ensure that each datagram elicits at least
one acknowledgement. For example, clients can coalesce an Initial packet
Expand Down