MLEFlow: Learning from History to Improve Load Balancing in Tor

Authors: Hussein Darir (All authors with the University of Illinois at Urbana-Champaign), Hussein Sibai (All authors with the University of Illinois at Urbana-Champaign), Chin-Yu Cheng (All authors with the University of Illinois at Urbana-Champaign), Nikita Borisov (All authors with the University of Illinois at Urbana-Champaign), Geir Dullerud (All authors with the University of Illinois at Urbana-Champaign), Sayan Mitra (All authors with the University of Illinois at Urbana-Champaign)

Volume: 2022
Issue: 1
Pages: 75–104
DOI: https://doi.org/10.2478/popets-2022-0005

artifact

Download PDF

Abstract: Tor has millions of daily users seeking privacy while browsing the Internet. It has thousands of relays to route users’ packets while anonymizing their sources and destinations. Users choose relays to forward their traffic according to probability distributions published by the Tor authorities. The authorities generate these probability distributions based on estimates of the capacities of the relays. They compute these estimates based on the bandwidths of probes sent to the relays. These estimates are necessary for better load balancing. Unfortunately, current methods fall short of providing accurate estimates leaving the network underutilized and its capacities unfairly distributed between the users’ paths. We present MLEFlow, a maximum likelihood approach for estimating relay capacities for optimal load balancing in Tor. We show that MLEFlow generalizes a version of Tor capacity estimation, TorFlow-P, by making better use of measurement history. We prove that the mean of our estimate converges to a small interval around the actual capacities, while the variance converges to zero. We present two versions of MLEFlow: MLEFlow-CF , a closed-form approximation of the MLE and MLEFlow-Q, a discretization and iterative approximation of the MLE which can account for noisy observations. We demonstrate the practical benefits of MLEFlow by simulating it using a flow-based Python simulator of a full Tor network and packet-based Shadow simulation of a scaled down version. In our simulations MLEFlow provides significantly more accurate estimates, which result in improved user performance, with median download speeds increasing by 30%.

Keywords: Tor, capacity estimation, load balancing, maximum likelihood estimation, shadow simulator, privacy

Copyright in PoPETs articles are held by their authors. This article is published under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 license.