mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Do not reset our RTT in slow start.
If a circuit only sends a tiny amount of data such that its cwnd is not full, it won't increase its cwnd above the minimum. Since slow start circuits should never hit the minimum otherwise, we can just ignore them for RTT reset to handle this.
This commit is contained in:
parent
c50496036b
commit
482cde5931
@ -902,7 +902,7 @@ congestion_control_update_circuit_rtt(congestion_control_t *cc,
|
|||||||
if (cc->min_rtt_usec == 0) {
|
if (cc->min_rtt_usec == 0) {
|
||||||
// If we do not have a min_rtt yet, use current ewma
|
// If we do not have a min_rtt yet, use current ewma
|
||||||
cc->min_rtt_usec = cc->ewma_rtt_usec;
|
cc->min_rtt_usec = cc->ewma_rtt_usec;
|
||||||
} else if (cc->cwnd == cc->cwnd_min) {
|
} else if (cc->cwnd == cc->cwnd_min && !cc->in_slow_start) {
|
||||||
// Raise min rtt if cwnd hit cwnd_min. This gets us out of a wedge state
|
// Raise min rtt if cwnd hit cwnd_min. This gets us out of a wedge state
|
||||||
// if we hit cwnd_min due to an abnormally low rtt.
|
// if we hit cwnd_min due to an abnormally low rtt.
|
||||||
uint64_t new_rtt = percent_max_mix(cc->ewma_rtt_usec, cc->min_rtt_usec,
|
uint64_t new_rtt = percent_max_mix(cc->ewma_rtt_usec, cc->min_rtt_usec,
|
||||||
|
Loading…
Reference in New Issue
Block a user