[tor-relays] Question about Bridges Bandwidth Authority

Roger Dingledine arma at torproject.org
Sat Jul 27 17:03:58 UTC 2019


On Wed, Jul 24, 2019 at 07:36:59PM +0300, s7r wrote:
> I'd like to know more details about how exactly the bridge bandwidth
> authority works, and if we use the "weight" of each bridge for anything.

I'll start off by answering some of the questions, and let others
fill in the gaps.

The first answer is that there is no such thing as a bridge bandwidth
authority. There is only the bridge directory authority, Serge, which
collects self-signed bridge descriptors from bridges, checks reachability,
and passes them on to the bridgedb service.

> For example, I have setup 5 obfs4 bridges, with the exact very same
> hardware resources and all on the same network speed of course.

Thanks!

> One of them gets used by clients (say 20-50 unique clients every 6 hours
> or so) while the rest of 4 are not used at all. This usage is not a
> concern for me, as its known bridges take time until they get used,
> depending on which bucket they have been assigned and etc. So I assume
> it's OK at this particular point in their lifetime to be unused by any
> client.

Yep, it is not unusual for bridges to not see much use. As you say this
is due to a variety of factors -- which distribution strategy bridgedb
picks for them, which countries are blocking Tor in what way this week,
whether your IP address has gotten on any blacklists, etc.

> But what I am curious about is, when I search them on RelaySearch, the
> used one has a measured bandwidth of over 2 MiB/s (and has the fast
> flag) while other 3 unused ones have bandwidths of between 50 and 60
> KiB/s (these also have the fast flag) and there is one last one which is
> also not used and has a bandwidth of less than 10 KiB/s that does not
> have the fast flag. (Fast flag missing is also not my problem, I am just
> mentioning it as a side detail).
> 
> Now I know for sure those values are not at all in according to the real
> environment. Each bridge should be at least capable of 3 MiB/s even if
> all 5 are used at the same time at their full speeds. Actually I have
> simulated this, it's not just theoretical.
> 
> Is there anything related to usage, so that the bridge bandwidth
> authority only measures the used bridges? What could have cause such big
> discrepancy in my particular case, any ideas?

These numbers are simply the self-reported bandwidth numbers from the
bridges.

All kinds of relays, including bridge relays, watch how much traffic
they've seen themselves doing, and put the largest burst they've seen
into their relay descriptor (or bridge descriptor in this case).

https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt#n432

So the bridges that have a bunch of users have had more traffic load,
and thus have a higher burst traffic number to report.

Or to answer it differently, the issue is the other way around from
what you were worried about: it isn't that something is giving one of
your bridges a higher bandwidth value, and thus it has more users. It's
that one of your bridges has more users, so it ends up with a higher
bandwidth value.

> Also, do we use the weight of each bridge in order to determine how much
> % probability it has to be served to a request in the bucket that is
> part of, or we don't use bridge weights for anything at all?

I believe we don't use bridge weights for anything at all.

But I might be wrong about this last part. We've changed our mind several
times over the years about how to handle weighting.  Specifically,
I don't know if the behavior changed with the latest iteration of the
entry guard selection design:
https://gitweb.torproject.org/torspec.git/tree/guard-spec.txt

Hope that helps,
--Roger



More information about the tor-relays mailing list