Commit graph

301 commits

Author SHA1 Message Date
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go (#3680) 2023-01-21 19:53:57 -08:00
Marten Seemann
3affa1d911 ackhandler: remove unused version parameter from constructor 2023-01-18 20:50:17 +13:00
Marten Seemann
2aa71ff76b
use a sync.Pool for ackhandler.Frames (#3656) 2023-01-17 23:15:02 -08:00
Marten Seemann
d9665c632e use a sync.Pool to reduce allocation of linked list elements
Especially the sentPacketHistory linked list shows up in allocation
profiles, since a new list element is allocated for every single packet
we send.
Using a pool for the receiving path, as well as for the frame sorter, is
less critical, since we're tracking ranges there instead of individual
packets / frames, but it doesn't hurt either.
The other occurrences where we use a linked list (connection ID tracking
and the token store) are used so rarely (a few times over the lifetime
of the connection) that using a pool doesn't make any sense there.
2022-12-30 19:24:56 +13:00
Marten Seemann
dd30a02627 ackhandler: remove the packet list element from the correct list 2022-12-30 18:35:26 +13:00
cliffc-spirent
b8447041bb
limit the exponential PTO backoff to 60s (#3595) 2022-11-15 15:42:35 -08:00
Toby
5fe9f9bd89
chore: fix multiple typos in comments (#3612)
* chore: fix multiple typos I run into

* Update conn_id_generator_test.go

Co-authored-by: Marten Seemann <martenseemann@gmail.com>

* Update internal/ackhandler/sent_packet_handler_test.go

Co-authored-by: Marten Seemann <martenseemann@gmail.com>

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-11-06 10:59:16 -08:00
Marten Seemann
870fbe7ab0 migrate to Ginkgo v2 2022-10-11 16:38:44 +04:00
Marten Seemann
438942b888
ackhandler: reject duplicate packets in ReceivedPacket (#3568)
Before we process a packet, IsPotentiallyDuplicate is called.
This should filter out all duplicates before the reach ReceivedPacket.
2022-10-11 02:27:10 -07:00
Marten Seemann
63764c429c use a sync.Pool for ACK frames 2022-09-06 14:41:13 +03:00
Marten Seemann
c3289188d1 append ACK ranges instead of allocating a new slice 2022-09-05 20:15:35 +03:00
Marten Seemann
80c3afed34
fix usage of ackhandler.Packet pool for non-ack-eliciting packets (#3538) 2022-08-30 04:09:11 -07:00
Marten Seemann
a3b91cf683 use a sync.Pool to avoid allocations of ackhandler.Packet 2022-08-29 11:45:28 +03:00
Marten Seemann
fd38fe4a9a avoid allocations when adding packets to the sent packet history 2022-08-27 18:22:46 +03:00
Benedikt Spies
7da024da5a
Disable anti-amplification limit by address validation token (#3326) 2022-08-20 08:02:17 -07:00
Marten Seemann
bea5de0221
Merge pull request #3483 from lucas-clemente/generic-min-max
use generic Min and Max functions
2022-08-12 12:09:30 +04:00
Marten Seemann
7ebe1430ef
use a generic linked list (#3487) 2022-08-10 09:50:21 -07:00
Marten Seemann
43bde14cf7 implement generic Min and Max functions 2022-08-10 14:59:05 +02:00
Toby
d5efd340c7
optimize FirstOutstanding in the sent packet history (#3467)
* optimize FirstOutstanding

* fix variable naming

* bug fix

* minor code improvements

* add a test to make sure that `Iterate` iterates in the right order

* add comment
2022-07-24 12:50:41 -07:00
Marten Seemann
8906148682
Merge pull request #3230 from lucas-clemente/optimize-has-outstanding-crypto-packets
optimize hasOutstandingCryptoPackets in sentPacketHandler
2021-07-25 19:40:18 +02:00
Marten Seemann
61748d4d63 cancel the PTO timer when all Handshake packets are acknowledged 2021-07-13 14:05:00 -04:00
Marten Seemann
6279d6b556 optimize hasOutstandingCryptoPackets in sentPacketHandler 2021-07-13 11:56:21 -04:00
Marten Seemann
1758299a56 remove outdated ackhandler test case 2021-06-26 15:53:40 -07:00
Marten Seemann
2f205a4c00 reduce flakiness of packet number generation test 2021-05-15 19:10:37 -07:00
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