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
Marten Seemann
fd33eb319f
add a flag to turn off PRR
2019-05-21 10:57:55 +01:00
Marten Seemann
3e67c12d76
use PRR when deciding if we're congestion limited
2019-05-19 16:49:55 +02:00
Marten Seemann
e06961266c
introduce an invalid packet number to simplify ackhandler and congestion
2019-05-14 06:41:13 +03:00
Marten Seemann
c869d51e52
remove unused SendAlgorithmWithDebugInfo from congestion package
2019-05-13 12:43:08 +02:00
Marten Seemann
448c49851b
remove unused methods from the congestion interface
2019-05-13 12:11:29 +02:00
Marten Seemann
6be9c7bfcd
use the full pacing rate, also when not in slow start
2019-04-08 13:38:12 +09:00
Marten Seemann
2976a3ee19
fix pacing rate
...
The pacing rate needs to be calculated for the next packet to be sent,
not for the next byte to be sent.
2019-04-07 13:11:36 +09:00
Marten Seemann
fbe8844006
remove some unneccessary type conversions
2019-02-27 19:30:55 +09:00
ludweeg
8ff3bf8ca6
simplify x = x <op> ... to x <op>= ...
2018-10-06 01:59:45 +03:00
Marten Seemann
a58cfd64e9
Merge pull request #1336 from lucas-clemente/congestion-in-bytes
...
switch to a byte-based congestion controller
2018-05-05 14:57:51 +09:00
Marten Seemann
2b97fb41c9
switch to a byte-based congestion controller
...
Chrome removed the packet-based congestion controller and switched to
byte-based as well.
2018-05-02 23:45:23 +09:00
Marten Seemann
3cd6cc3e9f
move the initial RTT estimate to the congestion package
2018-05-01 18:57:05 +09:00
Marten Seemann
4a7bab9ffe
remove unused functions from the RTT stats
...
These functions are not used anywhere, and were removed from Chromium
code as well.
2018-05-01 18:50:28 +09:00
Marten Seemann
2b9b949855
move calculation of RTO delay to the sent packet handler
2018-04-16 11:18:14 +09:00
Marten Seemann
948eef3e42
create a logger interface and use it everywhere
2018-04-04 13:03:28 +07:00
Marten Seemann
6fcdcdbea1
make golint happy about the congestion tests
2018-02-23 20:56:07 +08:00
Marten Seemann
3b82628dbe
internalize ackhandler and congestion
2018-02-02 08:40:56 +08:00