[tor-bugs] #22453 [Core Tor/Tor]: Relays should regularly do a larger bandwidth self-test
Tor Bug Tracker & Wiki
blackhole at torproject.org
Wed Nov 21 03:43:20 UTC 2018
#22453: Relays should regularly do a larger bandwidth self-test
-------------------------------------------------+-------------------------
Reporter: arma | Owner: juga
Type: defect | Status:
| needs_information
Priority: Medium | Milestone: Tor:
| 0.4.0.x-final
Component: Core Tor/Tor | Version:
Severity: Normal | Resolution:
Keywords: 034-triage-20180328, | Actual Points:
034-removed-20180328, tor-bwauth, |
035-backport, 034-backport-maybe, 033 |
-backport-maybe, 029-backport-maybe-not |
Parent ID: #25925 | Points:
Reviewer: teor | Sponsor:
-------------------------------------------------+-------------------------
Description changed by teor:
Old description:
> Inspired by #8247 ("In sum. a vestigial tiny bw self-test seems silly to
> keep around"), I wonder if we're at the point where we can just take out
> all the bandwidth self-test infrastructure.
>
> In favor of ripping it out: there's some complexity at relay startup
> where we try to delay publishing our descriptor until we've done the
> self-test, since we know we'll have a newer bandwidth number to include
> soon. We've had bugs in this delay step.
>
> In favor of ripping it out: in the current design we try to build 4
> separate circuits, without using our guards in order to have actually
> independent paths, for pushing our 500KB. Relays that aren't reachable
> end up with hundreds or thousands of connections open, because they keep
> making new circuits and each one probably is to a new relay. Not a big
> deal but kind of unfortunate.
>
> In favor of ripping it out: 50KB, which is the most that the current
> bandwidth test can tell you, is super tiny compared to current descriptor
> bandwidths and current consensus weights. In fact, as prophesied in
> #8247, the threshold for the Fast flag is now above 50KB, so publishing 0
> vs 50 is essentially just moving you around within the "don't use,
> they're too slow" bucket.
>
> In favor of keeping it: maybe the bandwidth authorities have some sort of
> psychotic behavior in the face of relays that have a 0 in their
> descriptor? Like, they multiply the 0 by a factor for how much better
> than the other 0's they are? I have no idea. In case they do, I propose
> that we proceed with ripping out the self-test, and simply replace it
> with the number "20KB" to guard against psychotic bwauth behavior. (I
> picked that number because the directory authorities already use the
> number 20 when assigning a weight to a relay that (A) is unmeasured and
> (B) self-declares at least 20KB in its descriptor.)
>
> But what about bridges, you might ask? Public relays might have the
> bwauths to measure them remotely, but bridges don't have that. I think
> nothing uses the bandwidths in bridge descriptors. Are there any plans
> for that to change in the future? Even if there are, I think raising the
> floor from 0 to 20, and retaining the behavior where we publish a bigger
> number if we actually see a bigger number due to client load, should make
> us compatible with whatever these plans might be.
New description:
Inspired by #8247 ("In sum. a vestigial tiny bw self-test seems silly to
keep around"), I wonder if we're at the point where we can just take out
all the bandwidth self-test infrastructure.
In favor of ripping it out: there's some complexity at relay startup where
we try to delay publishing our descriptor until we've done the self-test,
since we know we'll have a newer bandwidth number to include soon. We've
had bugs in this delay step.
In favor of ripping it out: in the current design we try to build 4
separate circuits, without using our guards in order to have actually
independent paths, for pushing our 500KB. Relays that aren't reachable end
up with hundreds or thousands of connections open, because they keep
making new circuits and each one probably is to a new relay. Not a big
deal but kind of unfortunate.
In favor of ripping it out: 50KB, which is the most that the current
bandwidth test can tell you, is super tiny compared to current descriptor
bandwidths and current consensus weights. In fact, as prophesied in #8247,
the threshold for the Fast flag is now above 50KB, so publishing 0 vs 50
is essentially just moving you around within the "don't use, they're too
slow" bucket.
In favor of keeping it: maybe the bandwidth authorities have some sort of
psychotic behavior in the face of relays that have a 0 in their
descriptor? Like, they multiply the 0 by a factor for how much better than
the other 0's they are? I have no idea. In case they do, I propose that we
proceed with ripping out the self-test, and simply replace it with the
number "20KB" to guard against psychotic bwauth behavior. (I picked that
number because the directory authorities already use the number 20 when
assigning a weight to a relay that (A) is unmeasured and (B) self-declares
at least 20KB in its descriptor.)
Note: if we do keep it in, here's a better design:
https://trac.torproject.org/projects/tor/ticket/22453#comment:35
But what about bridges, you might ask? Public relays might have the
bwauths to measure them remotely, but bridges don't have that. I think
nothing uses the bandwidths in bridge descriptors. Are there any plans for
that to change in the future? Even if there are, I think raising the floor
from 0 to 20, and retaining the behavior where we publish a bigger number
if we actually see a bigger number due to client load, should make us
compatible with whatever these plans might be.
--
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/22453#comment:36>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list