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
Replace handshake with crypto #1859
Changes from 1 commit
4d37bf0
602b196
d2ffb44
859b2fe
b8208a0
4867882
2ddd001
7a2e233
68cfbaa
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -303,9 +303,10 @@ Retransmission Timeout mechanisms. | |
|
||
Data in CRYPTO frames is critical to QUIC transport and crypto negotiation, so a | ||
more aggressive timeout is used to retransmit it. Below, the term "crypto | ||
packet" is used to refer to packets containing CRYPTO frames. | ||
packet" is used to refer to packets containing CRYPTO frames before the | ||
handshake is complete. | ||
|
||
The initial crypto timeout SHOULD be set to twice the initial RTT. | ||
The initial crypto handshake timeout SHOULD be set to twice the initial RTT. | ||
|
||
At the beginning, there are no prior RTT samples within a connection. Resumed | ||
connections over the same network SHOULD use the previous connection's final | ||
|
@@ -318,8 +319,8 @@ When CRYPTO frames are sent, the sender SHOULD set a timer for the crypto | |
timeout period. Upon timeout, the sender MUST retransmit all unacknowledged | ||
CRYPTO data by calling RetransmitAllUnackedCryptoData(). On each consecutive | ||
expiration of the crypto timer without receiving an acknowledgement for a new | ||
packet, the sender SHOULD double the crypto timeout and set a timer for this | ||
period. | ||
packet, the sender SHOULD double the crypto handshake timeout and set a timer | ||
for this period. | ||
|
||
When CRYPTO frames are outstanding, the TLP and RTO timers are not active unless | ||
the CRYPTO frames were sent at 1-RTT encryption. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Now that you have a definition for "crypto packets" above which excludes 1-RTT, you could probably simplify this by saying that "When crypto packets are outstanding, the TLS and RTO timers are not active." There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. TLS->TLP (referring to Mike's comment) |
||
|
@@ -766,7 +767,7 @@ below shows how the single timer is set. | |
#### Crypto Handshake Timer | ||
|
||
When a connection has unacknowledged handshake data, the handshake timer is | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "handshake data" -> "crypto handshake data" |
||
set and when it expires, all unacknowledgedd CRYPTO data is retransmitted. | ||
set and when it expires, all unacknowledged CRYPTO data is retransmitted. | ||
|
||
When stateless rejects are in use, the connection is considered immediately | ||
closed once a reject is sent, so no timer is set to retransmit the reject. | ||
|
@@ -814,8 +815,8 @@ Pseudocode for SetLossDetectionTimer follows: | |
timeout = timeout * (2 ^ crypto_count) | ||
loss_detection_timer.set( | ||
time_of_last_sent_crypto_packet + timeout) | ||
return; | ||
else if (loss_time != 0): | ||
return | ||
if (loss_time != 0): | ||
// Early retransmit timer or time loss detection. | ||
timeout = loss_time - | ||
time_of_last_sent_retransmittable_packet | ||
|
@@ -846,7 +847,7 @@ Pseudocode for OnLossDetectionTimeout follows: | |
~~~ | ||
OnLossDetectionTimeout(): | ||
if (crypto packets are outstanding): | ||
// Crypto timeout. | ||
// Crypto handshake timeout. | ||
RetransmitAllUnackedCryptoData() | ||
crypto_count++ | ||
else if (loss_time != 0): | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
initial crypto retransmission timeout