Marten Seemann
2b7133a6e2
implement a queue for 0-RTT packets
2020-02-15 15:44:08 +07:00
Marten Seemann
5a7f743733
qlog lost packets
2020-02-12 10:42:38 +07:00
Marten Seemann
f13ca7e791
qlog loss recovery metrics
2020-02-12 10:42:38 +07:00
Marten Seemann
85abf5fc53
save the RTT in the session ticket and use it when accepting 0-RTT
2020-02-10 17:42:10 +07:00
Marten Seemann
8cde4ab638
refactor how session tickets are sent
...
Previously, RunHandshake() would send the session tickets. Now, the
session initiates the sending of the session ticket. This simplifies the
setup a bit, and it will make it possible to include the RTT estimate in
the session ticket without accessing the RTTStats concurrently.
2020-02-10 17:42:09 +07:00
Marten Seemann
3e32a693ad
introduce a marshaling format for data saved in the session ticket
2020-02-10 18:02:45 +08:00
Marten Seemann
182a25d2b9
don't use ASN.1 for marshalling data for the session ticket
2020-02-08 21:42:11 +01:00
Marten Seemann
69ab66ba82
save the RTT along the session ticket and use it on resumed connections
2020-02-08 21:42:11 +01:00
Marten Seemann
5893e1ec28
add a workaround for the ChaCha20 bug
2020-01-31 12:19:58 +07:00
Marten Seemann
539097fc6e
return a quic.ConnectionState from Session.ConnectionState()
2020-01-30 09:21:09 +07:00
Marten Seemann
d7948d627a
drop 0-RTT keys when the server rejects 0-RTT
2020-01-30 09:12:31 +07:00
Marten Seemann
2473eb0895
queue 0-RTT packets for retransmission when 0-RTT is rejected
2020-01-30 09:11:44 +07:00
Marten Seemann
bc25840519
use 0.5-RTT data to open the control stream in the http3 server
2020-01-29 10:40:06 +07:00
Marten Seemann
e8cffacc77
Merge pull request #2321 from lucas-clemente/update-mockgen
...
update gomock to v1.4.0, simplify mock generation
2020-01-29 00:01:00 +07:00
Marten Seemann
a93e544c94
remove Session.Close()
...
Session.Close() sends a transport-level error code. Applications should
not be able to call this function, but use CloseWithError() instead.
2020-01-26 17:41:53 +07:00
Marten Seemann
4fa5cfdca9
simplify generation of mocks for internal types
2020-01-26 13:24:35 +07:00
Marten Seemann
c809166cab
update gomock, simplify script for generation mocks of private types
2020-01-26 12:53:41 +07:00
Marten Seemann
20e222b399
Merge pull request #2305 from lucas-clemente/update-retry-key
...
update Retry key and nonce to the values used in draft-25
2020-01-24 20:13:21 +07:00
Marten Seemann
5ee0c2c5cf
Merge pull request #2306 from lucas-clemente/congestion-controller-packet-size
...
change the packet size the congestion controller uses
2020-01-24 20:12:05 +07:00
Marten Seemann
3446946217
add a unit test using the test vector from the draft
2020-01-24 10:20:23 +07:00
Marten Seemann
281fb1d0b8
use actually used datagram size for congestion controller calculations
2020-01-22 15:04:03 +07:00
Marten Seemann
d4de582fad
rename defaultTCPMSS to maxDatagramSize
2020-01-22 14:54:05 +07:00
Marten Seemann
31e4691ffd
move congestion controller related constants to the congestion package
2020-01-22 14:40:14 +07:00
Marten Seemann
52f9811046
update Retry key and nonce to the values used in draft-25
2020-01-22 10:51:32 +07:00
Marten Seemann
6f347233e2
update the name of the disable_active_migration transport parameter
2020-01-21 15:05:12 +07:00
Marten Seemann
5a566f2176
Merge pull request #2226 from lucas-clemente/retry-integrity
...
implement the retry integrity tag
2020-01-17 17:19:15 +07:00
Marten Seemann
3568c41343
Merge pull request #2302 from lucas-clemente/smaller-session-tickets
...
only save transport parameters to session ticket when using 0-RTT
2020-01-17 17:01:45 +07:00
Marten Seemann
3e469db631
protect the AEAD calculating the integrity tag by a mutex
2020-01-17 14:01:12 +07:00
Marten Seemann
7b10453af8
implement the Retry integrity tag
2020-01-17 13:42:57 +07:00
Marten Seemann
9ea9c7947f
implement calculation of the retry integrity tag
2020-01-17 13:42:57 +07:00
Marten Seemann
080b61d271
only save transport parameters to session ticket when using 0-RTT
2020-01-17 10:50:27 +07:00
Marten Seemann
b1f8b8f25d
increase the maximum congestion window to 10000 packets
2020-01-14 16:34:34 +07:00
Marten Seemann
4ab4b8004a
Merge pull request #2274 from lucas-clemente/log-0-rtt-key-install
...
log when 0-RTT keys become available
2020-01-06 17:43:14 +07:00
Marten Seemann
a1840b3221
fix unmarshaling of transport parameters from session tickets
2020-01-02 15:12:32 +08:00
Marten Seemann
81831049c9
log when 0-RTT keys become available
2020-01-02 15:10:43 +08:00
Marten Seemann
052508e8c2
add a version to marshaled transport parameters in the session ticket
2020-01-01 18:04:02 +04:00
Marten Seemann
951477af92
queue 0-RTT packets for retransmission after receiving a Retry
2020-01-01 18:04:02 +04:00
Marten Seemann
22abcfe6fb
drop 0-RTT write keys when receiving the 1-RTT keys
2020-01-01 18:04:02 +04:00
Marten Seemann
40a993e31c
check that the client doesn't switch back to 0-RTT after sending 1-RTT
2020-01-01 18:04:02 +04:00
Marten Seemann
44aa12850e
restore the server's transport parameters from the session ticket
2020-01-01 18:04:02 +04:00
Marten Seemann
1f8a47af02
implement a ClientSessionCache that can save application data
2020-01-01 18:04:02 +04:00
Marten Seemann
9b0a4a8813
move unmarshaling of the transport parameters to the crypto setup
2020-01-01 18:04:01 +04:00
Marten Seemann
c5f74595ca
receive 0-RTT sealers and openers from qtls when using 0-RTT
2019-12-30 18:39:21 +04:00
Marten Seemann
a9f4195fd0
check that transport params didn't change when accepting
2019-12-30 18:39:21 +04:00
Marten Seemann
ed0f426943
implement marshalling of transport parameters for the session ticket
...
When using 0-RTT, the client will reuse the transport parameters from
the last session. The server therefore needs to make sure that the
transport parameters haven't been changed in the mean time. To do so, it
encodes the transport parameters into the session ticket.
2019-12-30 18:39:21 +04:00
Marten Seemann
0b65a0c75e
don't drop Handshake keys when receiving an ACK for a 0-RTT packet
2019-12-30 18:39:21 +04:00
Marten Seemann
d6b50cf15a
use the same packet number space for received 0-RTT and 1-RTT packets
2019-12-30 18:39:21 +04:00
Marten Seemann
b25b2f6921
use the same packet number space for sent 0-RTT and 1-RTT packets
2019-12-30 18:39:21 +04:00
Marten Seemann
b0c08b1bd0
implement rules for frame types in 0-RTT packets
2019-12-30 18:39:21 +04:00
Marten Seemann
b1fc984306
add a 0-RTT encryption level
2019-12-30 18:39:21 +04:00