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.