Commit Graph

277 Commits

Author SHA1 Message Date
Marten Seemann
592fb9cad9 introduce a dedicated qerr.TransportError and qerr.ApplicationError 2021-05-01 09:38:48 +07:00
Marten Seemann
dd052657c5 declare Path MTU probe packets lost with the early retransmit timer 2021-04-30 23:57:49 +07:00
Marten Seemann
17d9860db6 declare the handshake confirmed when receiving an ACK for a 1-RTT packet
... on the client side. Both the receipt of HANDSHAKE_DONE and the
receipt of an ACK for a 1-RTT packet are sufficient for declaring
confirmation of the handshake.
2021-04-14 22:33:45 +07:00
Marten Seemann
3138a45fde Merge pull request #3129 from lucas-clemente/limit-retry-rtt-measurement
don't use a lower RTT than 5ms after receiving a Retry packet
2021-04-02 19:30:06 +07:00
Marten Seemann
4b10e67bf1 Merge pull request #3132 from lucas-clemente/amplification-limit-fixes
various amplification limit fixes
2021-04-02 18:32:38 +07:00
Marten Seemann
37a3938543 Merge pull request #3126 from lucas-clemente/dont-pto-pmtu-packets
don't regard PMTU probe packets as outstanding
2021-04-02 17:41:30 +07:00
Marten Seemann
f60306c4bf Merge pull request #3107 from lucas-clemente/fix-cubic-initialization
initialize the congestion controller with the actual max datagram size
2021-04-02 17:35:13 +07:00
Marten Seemann
b6634fe124 reset the loss detection timer when the client's address is validated 2021-04-02 17:21:31 +07:00
Marten Seemann
a695bae019 restart the loss detection timer when the server becomes unblocked 2021-04-02 17:20:53 +07:00
Marten Seemann
3fab321ea7 cancel the loss detection timer when amplification limited 2021-04-02 17:20:53 +07:00
Marten Seemann
c4073fba8a simplify detection of acknowledgements for skipped packets 2021-04-02 11:37:08 +07:00
Marten Seemann
875692ea10 add a function to trace acknowledged packets 2021-04-02 11:37:07 +07:00
Marten Seemann
d48c08037a don't use a lower RTT than 5ms after receiving a Retry packet 2021-03-26 15:55:30 +07:00
Marten Seemann
5bdbff929d don't regard PMTU probe packets as outstanding
This also means that PMTU probe packets won't be sent as PTO probe packets.
2021-03-26 09:25:04 +07:00
Marten Seemann
7feda789d2 initialize the congestion controller with the actual max datagram size 2021-03-20 14:02:28 +08:00
Marten Seemann
97ab014479 don't retransmit 0-RTT packets when 0-RTT is rejected 2021-03-09 17:59:49 +08:00
Marten Seemann
765d26f132 don't reduce the congestion window when a path MTU probe packet is lost 2021-03-03 12:00:52 +08:00
Marten Seemann
dd8b21f264 use the actual maximum packet size in the Reno congestion controller 2021-03-03 12:00:14 +08:00
Marten Seemann
ac16ee565b Merge pull request #3049 from lucas-clemente/mockgen-source-mode
update gomock to v1.5.0, use mockgen source mode
2021-03-02 21:27:48 +08:00
Marten Seemann
75f49662c0 add a randomized test for the received_packet_history 2021-02-24 13:37:50 +08:00
q191201771
de0a6d4bbe refactor merge packet number ranges 2021-02-24 11:54:33 +08:00
Marten Seemann
efe6d02bef use mockgen source mode 2021-02-20 09:59:44 +08:00
Marten Seemann
383f1a6e89 update gomock to v1.5.0 2021-02-20 09:33:43 +08:00
Marten Seemann
3c0726e132 move the random number generator to the utils package 2021-02-18 09:58:34 +08:00
Marten Seemann
868127b6b4 Merge pull request #2940 from lucas-clemente/packet-number-skipping-cryptographic-random
use cryptographic random for determining skipped packet numbers
2021-01-17 14:38:16 +08:00
Marten Seemann
c5b610f6a5 remove unneeded check in receivedPacketHandler.IsPotentiallyDuplicate
The application data packet number space is never dropped.
2021-01-11 16:56:34 +08:00
Marten Seemann
31de6244e2 fix flaky sentPacketHandler test 2020-12-21 18:07:31 +07:00
Marten Seemann
6b87198c10 use cryptographic random for determining skipped packet numbers 2020-12-15 17:46:41 +07:00
Marten Seemann
d3abf0ec3f fix logging of bytes_in_flight when receiving an ACK
The tracing call needs to be issued after subtracting acknowledged and
lost packets from the bytes_in_flight.
2020-12-15 12:04:12 +07:00
Marten Seemann
431dff2172 reduce the number of skipped packet numbers for long connections 2020-12-06 12:54:39 +07:00
Marten Seemann
416d88990b only skip packet numbers in the application data packet number space 2020-12-06 12:54:39 +07:00
Marten Seemann
e8e6c7b47e use non-cryptographic random to generate skipped packet numbers 2020-12-06 12:54:39 +07:00
Marten Seemann
02b700804f remove support for quic-trace 2020-12-05 23:13:45 +07:00
Marten Seemann
1ade038211 Merge pull request #2899 from lucas-clemente/dont-allocate-for-acked-packets
don't allocate for acked packets
2020-12-05 21:08:44 +07:00
Marten Seemann
8d14d762e5 cache the slice used when detecting acked packets 2020-11-22 11:39:28 +07:00
Marten Seemann
fb6a536adb add a unit test for ACK of skipped packet detection 2020-11-22 11:02:48 +07:00
Marten Seemann
85fd5a2ec5 avoid allocating when detecting lost packets 2020-11-22 10:50:49 +07:00
Marten Seemann
ec55b6d9de rename loop variable 2020-11-22 10:48:12 +07:00
Marten Seemann
0c2f562411 allow an amplification factor of 3.x 2020-11-06 14:16:11 +07:00
Marten Seemann
6d00bdff3f Merge pull request #2841 from lucas-clemente/pad-server-initials
pad datagrams containing ack-eliciting Initial packets sent by the server
2020-10-30 15:12:03 +07:00
Marten Seemann
8752576f26 run gofumpt, enable the gofumpt linter 2020-10-26 09:33:35 +07:00
Marten Seemann
876ccd899b CONNECTION_CLOSE frames are not ack-eliciting 2020-10-25 13:22:33 +07:00
Marten Seemann
55a07c34ee add the exhaustive linter 2020-10-05 13:47:57 +07:00
Marten Seemann
bbd9fa4862 remove the EncryptionUnspecified enum value 2020-10-05 13:17:06 +07:00
Marten Seemann
6ecbc4186e Merge pull request #2786 from lucas-clemente/fix-flaky-packet-number-skipping-test
fix flaky packet number skipping test
2020-09-17 23:02:25 +07:00
Marten Seemann
5eaab73043 fix flaky packet number skipping test 2020-09-15 10:58:12 +07:00
Marten Seemann
fa4f0a9e7a keep track of ECN counts on received packets 2020-09-14 17:01:34 +07:00
Marten Seemann
3ef77b0c1a add an assertion that bytes_in_flight never becomes negative 2020-09-14 10:32:32 +07:00
Marten Seemann
8ea663d04a skip a packet number when sending a 1-RTT PTO packet 2020-09-11 11:16:48 +07:00
Marten Seemann
12c9427f43 save dummy packets in the packet history when skipping packet numbers 2020-09-11 11:01:30 +07:00