Commit Graph

948 Commits

Author SHA1 Message Date
Marten Seemann
73937e8753 Merge pull request #2349 from lucas-clemente/coalesced-packets
implement sending of coalesced packets
2020-02-20 16:53:33 +07:00
Marten Seemann
ad7327845c Merge pull request #2358 from lucas-clemente/drop-0rtt-keys
drop 0-RTT read keys after 3 PTO
2020-02-20 16:47:14 +07:00
Marten Seemann
23059d5a68 Merge pull request #2280 from lucas-clemente/zero-rtt-queue
queue 0-RTT for 100ms to allow the corresponding Initial to arrive
2020-02-20 16:44:03 +07:00
Marten Seemann
5aad7cae5d send coalesced packets 2020-02-20 16:42:56 +07:00
Marten Seemann
d08c2145a4 drop 0-RTT read keys after 3 PTO 2020-02-18 17:51:05 +07:00
Marten Seemann
1692adb142 fix unit tests for the early retransmit timer 2020-02-18 12:04:27 +07:00
zverevm
4f7b0b1675 Do not ignore loss timer. 2020-02-17 12:36:42 +01:00
Marten Seemann
f034e8ba19 set the LocalAddr that is used in the tls.ClientHelloInfo.Conn 2020-02-16 14:10:30 +07:00
Marten Seemann
643f0b4c67 drop incoming packets when the server's receive queue is full 2020-02-15 16:43:00 +07:00
Marten Seemann
ba095dd3ff delete 0-RTT queues if no Initial is received within 100ms 2020-02-15 15:44:09 +07:00
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