An Improved Algorithm for Tor Circuit Scheduling
Tor is a popular anonymity-preserving network, consisting of routers run by volunteers all around the world. It protects Internet users’ privacy by relaying their network traffic through a series of routers, thus concealing the linkage between the sender and the recipient. Despite the advantage of Tor’s anonymizing capabilities, it also brings extra latency, which discourages more users from joining the network. One of the factors that causes the latency lies in Tor’s circuit scheduling algorithm, which allows busy circuits to crowd out bursty circuits. In this work, we propose and implement a more advanced scheduling algorithm which treats circuits diﬀerently, based on their recent activity. In this way, bursty circuits such as those used for web browsing can gain higher priority over busy ones such as used for bulk transfer; the performance for most activities over Tor is improved, while minimal overhead is incurred. Our algorithm has been incorporated into the latest build of Tor.