Congestion Control “will result in significant performance improvements in Tor, as well as increased utilization of our network capacity,” say the maintainers of the project.
Tor and congestion
Tor (The Onion Router) is a volunteer-run overlay network consisting of thousands of relays that serve as bouncing points for encrypted user network traffic and exit nodes that are essentially the gateways to the public internet.
The project’s mission is to conceal users’ real location and browsing interests, aiming for ultimate internet user privacy and anonymity.
One of the downsides of such a system is slow browsing speeds, which are crippled by traffic congestion on the Tor network’s nodes and the queues on the exit relays.
Regulating traffic congestion on the Tor network is challenging without making concessions on the privacy-preserving mechanisms. However, after nearly two decades of looking for solutions, the project finally introduced Congestion Control.
The new system implements three algorithms, namely Tor-Westwood, Tor-Vegas, and Tor-NOLA, which collectively help reduce memory consumption and stabilize and minimize queue delay and latency:
Tor Westwood – minimizes packet loss in large pipes
Tor-Vegas – estimates queue length and introduces balancing elements
Tor-NOLA – works as a bandwidth-delay estimator.
Results and implementation
The Tor project has run simulations to compare versions 0.4.6 and 0.4.7, and the results are impressive across the board with smoother and improved browsing free of speed limitations and bottlenecks, without adding any burden on end-to-end latency.
However, for the entire community to benefit from the improvements, exit relay operators will have to upgrade to 0.4.7 of the Tor protocol.
Operators of internal Tor nodes do not need to upgrade but will have to set bandwidth limits. That’s because traffic patterns will change as Congestion Control is expected to utilize relays at their full capacity.
The more clients upgrade to version 0.4.7 (or later), the more apparent the performance increase on the network will become for everyone, but the first results are already notable.
“Because our network is roughly 25% utilized, we expect that throughput may be very high for the first few users who use 0.4.7 on fast circuits with fast 0.4.7 Exits until the point where most clients have upgraded. At that point, a new equilibrium will be reached in terms of throughput and network utilization.”
“For this reason, we are holding back on releasing a Tor Browser Stable with congestion control until enough Exits have upgraded to make the experience more uniform. We hope this will happen by May 31st” – the Tor Project
For the next major stable release, version 0.4.8, the Tor project plans to implement a traffic splitting mechanism that should improve network speeds even more.