Marten Seemann
bf3ccd1fb3
ackhandler: refactor loss detection timer reset logic ( #4893 )
2025-01-21 11:09:32 +08:00
Marten Seemann
88501cc02a
ackhandler: migrate sentPacketHandler tests away from Ginkgo ( #4881 )
2025-01-20 14:04:37 +08:00
Marten Seemann
2d2538d790
ackhandler: remove unneeded SetHandshakeConfirmed from SentPacketHandler ( #4890 )
...
According to section 4.9.2 of RFC 9001, dropping the Handshake packet
number spaces happens when the handshake is confirmed.
2025-01-20 12:59:27 +08:00
Marten Seemann
29f98a296c
ackhandler: avoid calling time.Now() when setting loss detection timer ( #4885 )
2025-01-18 15:40:30 +08:00
Marten Seemann
d87e2bb649
ackhandler: remove error return value of SentPacketHandler.ResetForRetry ( #4834 )
2025-01-06 15:05:19 +08:00
Marten Seemann
5dbb46dcc1
utils: remove unused now parameter from RTTStats.UpdateRTT ( #4780 )
2024-12-22 14:50:31 +08:00
Marten Seemann
4be70e0146
protocol: use the packet number decoding / encoding logic from the RFC ( #4661 )
2024-09-05 09:54:44 -07:00
Marten Seemann
047cc90f42
ackhandler: reduce allocations for tracking sent packets ( #4602 )
2024-07-31 16:37:05 -07:00
Marten Seemann
22411e16d5
utils: switch to standard library min and max functions ( #4218 )
...
These functions were added in Go 1.21.
2023-12-27 21:19:13 -08:00
Marten Seemann
9b82196578
make the logging.Tracer and logging.ConnectionTracer a struct ( #4082 )
2023-09-16 04:58:51 -07:00
Marten Seemann
d6ac6300a4
feed ECN feedback into the congestion controller
2023-09-11 21:17:31 +07:00
Marten Seemann
797e275293
congestion: rename OnPacketLost to OnCongestionEvent
2023-09-11 21:14:53 +07:00
Marten Seemann
f9cfa248da
implement ECN path validation logic, send ECN-marked 1-RTT packets
2023-09-11 21:14:52 +07:00
Marten Seemann
bed8ebbd4c
distinguish coalesced and 1-RTT packets when determining ECN mode
2023-09-11 20:31:50 +07:00
Marten Seemann
b73a4de7ea
only add an ECN control message if ECN is supported
2023-09-11 20:31:50 +07:00
Marten Seemann
5dd6d91c11
send and track packets with ECN markings
2023-09-11 20:31:50 +07:00
Marten Seemann
54b76ceb3e
ackhandler: use the receive time of the Retry packet for RTT estimation ( #4070 )
2023-09-09 06:12:19 -07:00
Marten Seemann
469a6153b6
use a synchronous API for the crypto setup ( #3939 )
2023-07-21 10:00:42 -07:00
Marten Seemann
e45c46041a
ackhandler: don't allocate a packet struct for non-ack-eliciting packets
2023-06-05 21:07:05 +03:00
Marten Seemann
da55dfaabd
ackhandler: unexport Packet
2023-06-05 21:06:58 +03:00
Marten Seemann
e1bcedc78c
ackhandler: use a frame handler interface for OnAcked / OnLost of all frame types ( #3888 )
2023-06-04 13:04:28 -07:00
Marten Seemann
bde283640b
ackhandler: be explicit about skipping packet numbers ( #3886 )
2023-06-04 12:45:43 -07:00
Marten Seemann
6619e17dd7
ackhandler: don't log / trace skipped packets when declaring them lost ( #3887 )
2023-06-04 12:29:40 -07:00
Marten Seemann
8f3a68b4eb
ackhandler: use a slice to keep track of sent packets ( #3841 )
...
* ackhandler: simplify deletion of old packets in packet history
* ackhandler: use a slice to keep track of sent packets
This is a vastly simpler data structure than the combination of map
and linked list used before. It avoids using a linked list (bad cache
locality) and a sync.Pool (for list elements), as well as having to do
hash table lookups.
In the future, this can be easily replaces with a ring buffer, avoiding
all allocations.
* ackhandler: don't store packets that were declared lost
2023-06-04 02:36:38 -07:00
Marten Seemann
6f07050269
ackhandler: apply logic from RFC 9000 to derive packet number length ( #3885 )
2023-06-04 02:17:57 -07:00
Marten Seemann
b27d114f07
pass the current timestamp to the pacer instead of calling time.Now() ( #3824 )
2023-06-03 00:26:30 -07:00
Marten Seemann
9d70bc24a5
simplify pacing logic by introducing a SendPacingLimited send mode
2023-06-02 18:35:02 +03:00
Marten Seemann
f8d24ef1e9
don't use closures for passing OnLost and OnAcked STREAM frame callbacks ( #3833 )
2023-06-02 04:14:04 -07:00
Marten Seemann
215ba85db4
ackhandler: simplify sentPacketHandler.SentPacket ( #3847 )
...
No functional change expected.
2023-06-02 02:59:46 -07:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go ( #3680 )
2023-01-21 19:53:57 -08:00
cliffc-spirent
b8447041bb
limit the exponential PTO backoff to 60s ( #3595 )
2022-11-15 15:42:35 -08: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
Benedikt Spies
7da024da5a
Disable anti-amplification limit by address validation token ( #3326 )
2022-08-20 08:02:17 -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
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
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