[tor-dev] Updated Proposal 324: RTT-based Congestion Control for Tor

Mike Perry mikeperry at torproject.org
Fri Jul 30 18:22:34 UTC 2021

As a heads up, I have updated Proposal 324: RTT-based Congestion Control
for Tor -

The updated version has a new congestion control algorithm, detailed
specifics on how to accurately measure RTT and BDP, and descriptions of
algorithm parameter values and tuning experiments, among other improvements.

A C implementation of these algorithms has been merged to tor.git
orgin/main. They live in src/core/or/congestion_control_*.[ch]. These
algorithms are not enabled yet; we still need to implement flow control
and negotiation, as well as do shadow experimentation to determine good
candidate parameter values to further tune on live.

Here is a full changelog since the proposal was last published to tor-dev:
 - Correct algorithms to update once per congestion window
 - Add orconn blocking and edge connection checks as signals
 - Specify BDP estimators based on onion service testing and eval.
 - Specify a pure BDP tracking congestion control algorithm (TOR_NOLA)
 - Update consensus parameters with tuning notes
 - Document what we learned so far in live onion service experimentation
 - Mention that we need to test intermittent downloads in Shadow/live
 - Describe clock jump and stall detection during RTT measurement
 - Mention if we calculate package window, it can become negative
 - Break off the backwards ECN idea into a future idea draft:

 - Update old trac URLs
 - Add Acknowledgements

Review and comments are welcome!

Mike Perry

More information about the tor-dev mailing list