Commit Graph

1055 Commits

Author SHA1 Message Date
Marten Seemann
d137e7672d implement a GetPTOTimeAndSpace() as outlined in the draft 2020-06-01 11:18:57 +07:00
Marten Seemann
96acf36cbd rename sentPacketHandler.getEarliestLossTimeAndSpace to getLossTimeAndSpace 2020-06-01 11:18:57 +07:00
Marten Seemann
feb3e9a713 rename lastSentAckElicitingPacketTime to lastAckElicitingPacketTime 2020-06-01 11:18:57 +07:00
Marten Seemann
9177500096 bundle ACK frames when packing a packet 2020-06-01 09:56:06 +07:00
Marten Seemann
77b1021a54 make it possible to generate an ACK frame, even if no ACK is queued yet 2020-06-01 09:31:11 +07:00
Marten Seemann
bee5ef624f determine if a received packet is new (and not a duplicate / delayed packet) 2020-06-01 09:31:11 +07:00
Marten Seemann
ce40a7e28b Merge pull request #2567 from lucas-clemente/authenticate-connection-ids
authenticate connection IDs
2020-05-31 14:01:58 +07:00
Marten Seemann
64ef72fd68 don't switch to PTO mode after early retransmit 2020-05-31 10:47:13 +07:00
Marten Seemann
ee8a0aeb1b improve unit tests for early retransmit 2020-05-31 10:43:04 +07:00
Marten Seemann
cdb22513f3 save the source conn ID used on the Retry packet in the Retry token 2020-05-29 19:50:14 +07:00
Marten Seemann
4451f3bf5c marshal and unmarshal the retry_source_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
72d7592fb2 marshal and unmarshal the initial_source_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
b391cce35c always send the original_destination_connection_id TP as a server 2020-05-29 19:50:14 +07:00
Marten Seemann
7e62a2fecc rename original_connection_id to original_destination_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
99dac1581a fix broken unit test in ackhandler 2020-05-29 17:20:47 +07:00
Marten Seemann
8d00ec135e Merge pull request #2569 from lucas-clemente/drop-duplicate-packets
drop duplicate packets
2020-05-29 16:39:46 +07:00
Marten Seemann
60a918a108 limit available window to 3x of received bytes before address validation 2020-05-27 09:40:50 +07:00
Marten Seemann
440ff107a3 drop duplicate packets
Duplicate detection uses the same data structure that is used to track
received packets to generate ACK frames. That means that after an old
ACK range has been pruned, a severly delayed packet might be incorrectly
detected as a duplicate.
As we wouldn't have acknowledged receipt of this packet, this situation
would have resulted in a retransmission by the peer anyway, so dropping
the packet won't cause a big regression.
2020-05-27 09:20:51 +07:00
Marten Seemann
b2c4dacd25 fix int overflow when parsing the transport parameters 2020-05-24 12:59:47 +07:00
Marten Seemann
ae14a447a5 Merge pull request #2534 from lucas-clemente/reduce-unprocessed-packet-chan-length
reduce the length of the unprocessed packet chan in the session
2020-05-13 21:04:33 +07:00
mawei
38691a1278 calculate version negotiation packet size to avoid bytes.Buffer growing the bytes 2020-05-13 12:34:39 +08:00
Marten Seemann
e7208219a9 reduce the length of the unprocessed packet chan in the session 2020-05-09 09:14:19 +07:00
Marten Seemann
ff681962e8 Merge pull request #2385 from lucas-clemente/race-detector
run the internal and http3 tests with race detector on Travis
2020-05-05 19:12:59 +07:00
Marten Seemann
b7af419bd0 Merge pull request #2527 from lucas-clemente/reset-pto-when-dropping-packet-number-space
reset the PTO when dropping a packet number space
2020-05-05 18:13:45 +07:00
Marten Seemann
25b3eb8a37 fix race condition in the TLS extension handler test 2020-05-05 18:13:14 +07:00
Marten Seemann
d277e013ab fix race condition in the crypto setup tests 2020-05-05 18:13:14 +07:00
Marten Seemann
d4757395b6 make it possible to run the handshake unit tests with race detector 2020-05-05 18:13:12 +07:00
Marten Seemann
5aec9daf86 Merge pull request #2513 from lucas-clemente/pto-count-on-ack
don't reset pto_count on Initial ACKs
2020-05-05 18:07:07 +07:00
Marten Seemann
741a1aa211 reset the PTO when dropping a packet number space 2020-05-05 16:28:25 +07:00
Marten Seemann
1db3f06e87 stop the timer when the session's run loop returns 2020-05-02 07:53:47 +07:00
Marten Seemann
538cbf7dc0 don't reset the PTO count on Initial ACKs before address validation 2020-05-01 09:58:34 +07:00
Marten Seemann
15a19f681d add a unit test for resetting of the PTO count when receiving an ACK 2020-05-01 09:54:03 +07:00
Marten Seemann
97e191f3b4 update the ChaCha implementation, remove 0xffffffff workaround 2020-04-24 10:18:41 +07:00
Marten Seemann
d1d4e5ce02 reset the PTO count when receiving a Retry 2020-04-17 15:15:11 +07:00
Marten Seemann
dc3c96debf qlog session timeouts 2020-04-17 08:23:25 +07:00
Marten Seemann
f8720bbd55 Merge pull request #2497 from lucas-clemente/logging-numbers
use decimal numbers for logging packet numbers, stream offsets and byte counts
2020-04-16 15:52:07 +07:00
Marten Seemann
e116e2f4cc use decimal number for logging stream offsets and byte counts 2020-04-16 09:50:55 +07:00
Marten Seemann
140b90449b use decimal numbers when logging packet numbers 2020-04-16 09:50:55 +07:00
Marten Seemann
416dc485f8 add a qlog method to log version negotiation packets 2020-04-16 09:50:34 +07:00
Marten Seemann
b705b623a7 Merge pull request #2483 from lucas-clemente/qlog-packet-drop-unknown-version
qlog when packets are dropped due to unsupported QUIC version
2020-04-16 09:31:01 +07:00
Marten Seemann
19f06ad3a9 remove PRR code 2020-04-13 16:31:02 +07:00
Marten Seemann
f58eb47383 qlog when packets are dropped due to unsupported QUIC version 2020-04-10 14:39:02 +07:00
Marten Seemann
6bb11abcd7 use the optimized HKDF-Expand-Label everywhere 2020-04-09 08:33:59 +07:00
Marten Seemann
816019b94e add an optimized implementation of HKDF-Expand-Label
The standard library uses cryptobyte.Builder in hkdfExpandLabel. This
costs quite a bit of performance. Using an optimized implementation
speeds up the initialization of the AEAD used for the Initial encryption
level by ~15%.
2020-04-09 08:16:23 +07:00
Marten Seemann
3ac2fb3161 make quic-go build with both Go 1.13 and 1.14 2020-04-09 07:51:18 +07:00
Marten Seemann
bb2a05af0a Merge pull request #2474 from lucas-clemente/validate-preferred-address-conn-id-len
validate connection ID length in preferred_address transport parameter
2020-04-08 21:04:06 +07:00
Marten Seemann
a9bae761f5 Merge pull request #2469 from lucas-clemente/fix-received-packet-size-logging
fix logging of the size of received packets
2020-04-08 20:59:29 +07:00
Marten Seemann
96ac90e6be validate connection ID length in preferred_address transport parameter 2020-04-08 17:13:35 +07:00
Marten Seemann
8fd2674ce4 fix conversion of qtls.ClientHelloInfo in GetCertificate 2020-04-08 16:19:45 +07:00
Marten Seemann
66d50b4289 fix conversion of qtls.ClientHelloInfo in GetConfigForClient 2020-04-08 15:56:30 +07:00