From my understanding, when I first open a connection to a Hidden Service, what happend is the following:

  1. local Tor client gets the descriptor of the Hidden Service form the HS Directory Server
  2. local Tor client contact an Introduction Point found in the descriptor obtained at point 1 and tells it about the choosen Rendezvous Point
  3. local Tor client waits for the Hidden Service to "meet" it at the Rendezvous Point

Now, my question is: if I open a second connection almost identical to the first one, soon after the first one has terminated, will Tor do all the steps again or is there something cached that can speed up the second connection? I think that the descriptors are cached but I'm not sure about the second point.

My goal is to understand how much time is "wasted" every connection in something that's not just the application data flowing from the source to the destination and back.

1 Answer 1


For 10 minutes after a circuit is first used, new streams can be attached to it.
See the MaxCircuitDirtiness directive. So in your scenario, that 2nd connection could be setup on the same circuit 'immediately' as long as it is not too old.

I assume (but don't know for a fact) that it makes no difference whether the circuit is to an exit node or a hidden service.

  • This makes sense for circuits to exit nodes but in case of hidden services the "complete circuit" is made of two circuits (AFAIK), the one that connects the client to the rendezvous point, and the one that connects the server to the rendezvous point. To use the same "complete circuit" for the second connection, three points must be true: 1) the client would have to remember the previously choosen rendezvous point, 2) the client would have to keep the circuit to it alive, 3) the server would have to keep the circuit to it alive. I'd like to understand what points are true.
    – flagg19
    Dec 14, 2014 at 11:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .