In the course of my master thesis I am currently trying to rebuild a simplified version of the selection algorithm from Tor. During my research, I found the following selection algorithm in some papers and in the Tor code itself:

Selection Algorithm

In the simulation, I only consider the Guard and Exit flags, i.e. other factors are not included in the node selection process. I weight all nodes according to the position to be filled and their flags with the weights published in the consensus.

Now my current understanding is that nodes are selected with a probability proportional to their bandwidth in order to better distribute the traffic. However, if I select the nodes in my simulation with the above algorithm after they were weighted, the following picture of the bandwidth distribution emerges.

Bandwidth Distribution for 1000 Circuits, including all positions on the left and only exit position on the right.

Since the specifications do not help at this point, here is the question of whether anyone can explain how the increased selection of nodes with higher bandwidth is achieved. Thanks in advance!

  • If you're doing something as important as a masters thesis, then interview the developers directly. I can't believe that any reputable university would accept stackexchange as a valid primary source. Here's the contact info torproject.org/contact. I'm sure you can get someone to work with you directly if you ask.
    – JSEvans
    Mar 27 '20 at 16:32
  • I'm not looking for an answer to use as a primary source. Just hoping for a hint like "Have a look at this part of the code or at this paper, this might answer your question". But thanks anyway for your answer, I'll try to get in touch with them!
    – tor123
    Mar 27 '20 at 17:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.