Opened 11 months ago

Last modified 8 days ago

#26597 needs_review defect

Investigate and document additional overhead for first hop when not using guards

Reported by: irl Owned by: metrics-team
Priority: Medium Milestone:
Component: Metrics/Onionperf Version:
Severity: Normal Keywords: acute-2019-q1-planned
Cc: karsten, acute, metrics-team Actual Points:
Parent ID: Points:
Reviewer: acute Sponsor:

Description

Initial plots in #25774 have shown that there is considerably higher circuit build latency from building the 1st hop compared to subsequent hops. This may be due to not using guards and some additional overhead that is not seen by normal clients when using guards (as it happens before the circuits are actually needed).

We should investigate this and document it as part of the page on Tor Metrics for #25774.

Child Tickets

Change History (7)

comment:1 Changed 4 months ago by irl

Cc: acute added
Owner: changed from hiro to metrics-team
Status: newassigned

Updating owner and CC

comment:2 Changed 4 months ago by irl

Keywords: acute-2019-q1-planned added

comment:3 Changed 5 weeks ago by acute

As per #29373, we've checked OP is always using guards as the first hop - and the circuits are built by a tor client process.

comment:4 Changed 3 weeks ago by karsten

Note to self: think about what to do with this ticket now.

comment:5 Changed 3 weeks ago by karsten

Yesterday we discussed that the difference might be that OnionPerf uses a new relay with the Guard flag for each circuit whereas vanilla tor uses a small, fixed set of relays with the Guard flag for all its circuits. So, even though OnionPerf uses guards for its first hops, performance may be different. OnionPerf first needs to establish a connection to the first hop which vanilla tor doesn't have to do. This is also unrelated to whether or not OnionPerf uses a pre-built circuit for any given measurement, because circuit build times are recorded at circuit build time regardless of its original purpose.

Sounds like we don't need to investigate this any further but that we should document this. Maybe we can find a very high-level explanation for the graph page and a somewhat more technical explanation for the reproducible metrics page.

comment:6 Changed 8 days ago by karsten

Cc: metrics-team added
Status: assignedneeds_review

Suggested text (in bold) for the graph page:

"This graph shows build times of circuits used for downloading static files of different sizes over Tor. The first hop build time is considerably higher in these measurements than subsequent hop build times or even first hop build times observed at common Tor clients. These measurements are performed using a newly selected guard for each measurement, whereas common Tor clients stay connected to a small number of guards which they use for all their circuits. The graph shows the range of measurements from first to third quartile, and highlights the median. The slowest and fastest quarter of measurements are omitted from the graph."

If there's a way to say these with fewer words, please suggest that!

We might not even need a more technical explanation for the reproducible metrics page. After all, that page is there to explain how to reproduce our data, not to explain how Tor works.

comment:7 Changed 8 days ago by irl

Reviewer: acute
Note: See TracTickets for help on using tickets.