[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: How many hidden service circuits built?



On Friday 12 December 2008, Karsten Loesing wrote:
> Bernhard Fischer wrote:
> > On Thursday 11 December 2008, Roger Dingledine wrote:
> >> On Thu, Dec 11, 2008 at 11:25:40PM +0100, Bernhard Fischer wrote:
> >>> If I connect through the SOCKS interface several times at the same time
> >>> to the same hidden service, does TOR open a bunch of circuits in
> >>> parallel to the designated hidden service or does it just open a single
> >>> one and then reuse it for every of the incoming SOCKS request?
> >>
> >> It should try to reuse the same circuit.
> >>
> >> (You will see a bunch of circuits going to make the rendezvous happen,
> >> but only one of them will be the one that all your streams get connected
> >> to.)
> >>
> >> --Roger
> >
> > Is it possible to change this behavior (maybe by a slight modification of
> > the source)?
>
> I'm not sure what you are up to, so I'm guessing. Are you asking for a)
> parallelizing connection establishment in order to reduce delay, b)
> having a separate circuit to the hidden server for every
> application-level stream, or something else?
>
> As for a), we are already working on improvements to reduce the delay in
> connection establishment. Did you have a look at this page?:
>
> https://www.torproject.org/projects/hidserv.html

Sorry, I didn't see this before. I'll read your paper and I appreciate all 
improvements regarding hidden services. 

> As for b), I don't know if this makes sense, either. Why separate the
> circuits when you can multiplex an arbitrary number of streams over
> them? Fault tolerance? Unlinkability of streams?
>
> But instead of guessing what you had in mind, I'll just ask: Why do you
> want to do this?

You guessed pretty good ;)
While TOR is building circuits there's always some kind of randomness 
involved. As far as I know TOR chooses nodes based on directory flags 
(like "fast", "stable", ...) and the randomizes those matching some criteria.
Obviously the flag "fast" is somehow misleading because bandwidth is a local 
property and does not necessarily mean that it's also fast across the network 
to any other node.

I'm interested in performance improvements of hidden services, but I'm talking 
about RTT once the connections are established and not so much on the 
connection setup time (which of course is also important but this time is 
only spent once)

I did some RTT measurements and my observations are really ugly. It usually is 
never below 5s. What you can observe is that when the circuit is rotated the 
RTT also changes signifficant.

My idea now was to open several circuits to the same hidden service. If 
they're connected through different nodes (because of the random selection) 
also the RTT will be different. Then I continuously do RTT measurements on 
all those circuits and always use that one with the lowest time for user 
data.

Best regard,
Bernhard

Attachment: signature.asc
Description: This is a digitally signed message part.