Marten Seemann
267cca773b
switch from math/rand to math/rand/v2 ( #5045 )
...
* switch from math/rand to math/rand/v2
* switch away from golang.org/x/exp/rand
2025-04-19 09:01:22 +02:00
Marten Seemann
c63c4e6990
congestion: migrate the pacer tests away from Ginkgo ( #4929 )
2025-01-26 09:14:03 +01:00
Marten Seemann
5dbb46dcc1
utils: remove unused now parameter from RTTStats.UpdateRTT ( #4780 )
2024-12-22 14:50:31 +08:00
Marten Seemann
7a10ed602d
utils: remove unused methods and constructor from RTTStats ( #4672 )
2024-09-12 00:55:57 -07:00
Marten Seemann
8451b0afd7
utils: remove scarcely used time helper functions ( #4593 )
2024-07-23 14:16:12 -07:00
Marten Seemann
e90a0d4e03
increase initial packet size to 1280 bytes (for both IPv4 and IPv6) ( #4500 )
2024-05-08 20:55:19 -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
f23da7da47
congestion: don't use floating point math when calculating pacing times ( #4148 )
2023-10-31 02:21:42 -07:00
Marten Seemann
9b82196578
make the logging.Tracer and logging.ConnectionTracer a struct ( #4082 )
2023-09-16 04:58:51 -07:00
Marten Seemann
797e275293
congestion: rename OnPacketLost to OnCongestionEvent
2023-09-11 21:14:53 +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
94829edf35
congestion: fix overflow when calculating the pacing budget ( #3796 )
2023-05-01 05:32:20 -07:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go ( #3680 )
2023-01-21 19:53:57 -08:00
Marten Seemann
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
43bde14cf7
implement generic Min and Max functions
2022-08-10 14:59:05 +02:00
Benedikt Spies
63b7354a25
fix comment about congestionWindow value ( #3310 )
2022-01-03 05:20:37 -08:00
Marten Seemann
7feda789d2
initialize the congestion controller with the actual max datagram size
2021-03-20 14:02:28 +08:00
Marten Seemann
91a314258d
use the actual maximum packet size in the pacer
2021-03-03 12:00:14 +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
8895a79e30
initialize the slow start threshold to infinity
2021-03-03 12:00:14 +08:00
Marten Seemann
eea0b1eacd
rename MaxPacketSizeIPv{4,6} to InitialPacketSizeIPv{4,6}
2021-03-03 12:00:14 +08:00
Marten Seemann
33d058f4ee
fix interpretation of time.Time{} as a pacing deadline
...
The pacer returns the zero value of time.Time when a packet can be sent
immediately. The session uses the zero value to unset the pacing
deadline.
2021-01-16 13:35:21 +08:00
Marten Seemann
8752576f26
run gofumpt, enable the gofumpt linter
2020-10-26 09:33:35 +07:00
Marten Seemann
c7127594c8
fix tracing of congestion state updates
2020-07-28 08:56:21 +07:00
Marten Seemann
0b7efe10d1
trace congestion state changes
2020-07-23 11:53:59 +07:00
Marten Seemann
741dc28d74
move the RTTStats to the utils package
...
The RTTStats are used by the logging package. In order to instrument the
congestion package, the RTTStats can't be part of that package any more
(to avoid an import loop).
2020-07-23 11:53:08 +07:00
Marten Seemann
ce16603a24
use untyped constants for RTT calculations
2020-07-23 11:52:37 +07:00
Marten Seemann
6328acffd7
remove the N connection simulation from the Reno code
2020-07-23 08:43:32 +07:00
Marten Seemann
2db579fdc8
remove the SSLR (slow start large reduction) experiment
...
We apparently copied that code over from Chromium's Cubic
implementation, but we certainly don't need it.
2020-07-22 22:30:03 +07:00
Marten Seemann
bc8b37cd14
Merge pull request #2683 from lucas-clemente/remove-reno-congestion-stats
...
remove unused connectionStats counters from the Reno implementation
2020-07-22 22:16:00 +07:00
Marten Seemann
74e32d6762
remove unused connectionStats counters from the Reno implementation
2020-07-22 14:35:58 +07:00
Marten Seemann
e79e45e3a2
privatize some methods in the congestion controller package
2020-07-22 13:42:18 +07:00
Marten Seemann
a20c5f8db0
return an infinite bandwidth if the RTT is zero
2020-06-28 14:55:47 +07:00
Marten Seemann
fda00fe1cd
use a slightly higher bandwidth for the pacer
2020-06-22 14:31:37 +07:00
Marten Seemann
fe622dd780
use a token bucket pacing algorithm
2020-06-22 14:31:37 +07:00
Marten Seemann
312b8d37f0
use a callback to pass the bandwidth to the pacer
2020-06-22 14:31:37 +07:00
Marten Seemann
467e553f2b
limit the pacing duration to the minimum pacing delay
2020-06-22 14:31:37 +07:00
Marten Seemann
4163c255e8
implement a basic token bucket pacing algoritm
2020-06-22 14:31:37 +07:00
Marten Seemann
19f06ad3a9
remove PRR code
2020-04-13 16:31:02 +07: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
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
d00828b762
make it possible to get the PTO with and without max_ack_delay
2019-11-12 11:27:30 +07:00
Marten Seemann
ab2b26a5cb
add the unparam linter
2019-09-17 13:44:05 +07:00
Marten Seemann
5189cb94f1
fix initial PTO timer duration
2019-08-10 17:21:31 +07:00
Marten Seemann
f7eb13fff1
disable the two-connection mode of the congestion controller
2019-07-25 16:34:44 -04:00
Marten Seemann
66abcdfc5c
move calculation of the PTO to the rttStats
...
The PTO value is needed at various places in the protocol. Calculating
it on the rttStats struct will allow us to pass around this struct.
2019-06-29 14:57:24 +07:00
Marten Seemann
b5764f22a2
save the max_ack_delay in the rttStats
2019-06-29 13:40:56 +07:00
Marten Seemann
fcb0d6cfdc
record InSlowStart and InRecovery
2019-06-20 22:58:01 +08:00