Thus spake Nick Mathewson (nickm@xxxxxxxxxxxxx):
> > "For circuits that do not need to be "fast", when choosing among multiple
> > candidates for a path element, we choose randomly. For "fast" circuits, we
> > pick a given router as an exit with probability proportional to its
> > bandwidth."
> >
> > Could anybody explain why Tor pick exit router with probability proportional
> > to its bandwidth only for fast circuits? As far as i know Tor uses this
> > technique for load-balance. But why it uses this technique only for fast
> > circuits?
>
> First of all, "Fast" circuits are a bit misnamed as used in
> path-spec.txt. ÂBasically, "fast" means "bandwidth-sensitive". ÂThe
> only ones that aren't don't need to be "fast" in this sense are ones
> that are going to be used only for a tiny amount of traffic.
>
> That said, I think the statement in path-spec.txt may be poor. ÂIt
> probably makes sense to weight all choices by bandwidth, now that
> bandwidth is measured rather than just being self-advertised.
>
> To see what the code is actually doing, the string to search for is
> need_capacity or NEED_CAPACITY. ÂThe most interesting layer to look
> for this is at is where it's passed as a flag to
> circuit_launch_by_router() or circuit_launch_by_extend_info().
Ok, I've gone ahead and fixed both the spec and the code in
mikeperry/consensus-bw-weights4 in my git repo.
--
Mike Perry
Mad Computer Scientist
fscked.org evil labs