# Post-Quantum Migration of the Tor Application
## 5 Evaluation
### Results  
#### 5.1.1 Bandwidth and Circuit Performance  
For an average bandwidth of 93.8 Mbits/s between nodes, without passing through the circuits in the network, the mean time taken for a circuit to be built varies between approximately 44 and 60 milliseconds. The tools used did not allow accurate measurement of the circuit build time per hop but rather the entire circuit building. The stem scripts, however, may be modified to measure a single-hop latency. This was not performed here, yet the overall latency gave an approximation of the single-hop circuit build time. Their results are compared in Figure 4. The graph displays metrics from twelve different script executions over time. The upper row displays timings more spread out, yet faster than the lower one. They have been differentiated, as each script execution would either average a circuit time close to 44 ms or the upper 57 ms due to hardware differences in the chosen nodes.  
When using Tor circuits to fetch the \"local.tor\" HTML page (HTTPS), the upload speed was 3808.52 kB/s, and the download speed reached 9648.06 kB/s. Without passing through circuits, much closer values were obtained: an upload speed of 11,511.83 kB/s and a download speed of 11,410.24 kB/s. This implies asymmetrical bandwidth capabilities between paths; this is supported by the results obtained in the file transmission, as shown in Figure 2, with higher upload speeds on the exit path.  
The Pcap analysis results show limitations in terms of accuracy; on the other hand, using a greater sample of curl timings data, relevant metrics were obtained. Table 9 displays  
Figure 4: Circuit build time. The Q1 and Q3 measurements are omitted from the graph.  
the median and average values of a single request according to the targeted source. The three targets were running Nginx web servers, all equipped with SSL certificates.  
The round-trip latency can be calculated accurately by subtracting the average latency of direct route requests from that of requests routed through Tor. Based on 1900 requests per source, fetching \"duckduckogo.com\" yields an overhead of 83.1 ms, while accessing the \"local.tor\" Nginx webserver incurs an additional latency of 82.4 milliseconds. Rounding up these values, the estimated latency overhead is approximately 83 milliseconds.  
Regarding OS performance, the data exchange to fetch the test page (as shown in Figure 6) takes approximately 20 ms longer compared to the identically configured Nginx server. Knowing that OS requires going through three more hops than the external resource fetching it, the time per hop extension for fetching via OS is approximately 7 ms, while the circuit building time per hop ranges from 15 to 20 ms (based on stem script results). This could be explained by the optimised ntor handshake initiated in hs_ntor.c.  
The bandwidth results obtained from sbus corroborate the initial bandwidth measurement of 93 Mbits/s made using iPerf. Notably, the first authority guard is excluded from this analysis as it introduces an error. In Figure 5, the first authority guard is omitted as it results in an error due to the fact that sbus uses it to fetch data in the network, corrupting its bandwidth assessment.