[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r15935: A bunch of smaller improvements. (projects/hidserv/trunk/doc)
Author: kloesing
Date: 2008-07-15 06:43:41 -0400 (Tue, 15 Jul 2008)
New Revision: 15935
Modified:
projects/hidserv/trunk/doc/descup.png
projects/hidserv/trunk/doc/discussion.tex
projects/hidserv/trunk/doc/firstpub.png
Log:
A bunch of smaller improvements.
Modified: projects/hidserv/trunk/doc/descup.png
===================================================================
(Binary files differ)
Modified: projects/hidserv/trunk/doc/discussion.tex
===================================================================
--- projects/hidserv/trunk/doc/discussion.tex 2008-07-15 09:25:27 UTC (rev 15934)
+++ projects/hidserv/trunk/doc/discussion.tex 2008-07-15 10:43:41 UTC (rev 15935)
@@ -17,7 +17,9 @@
performance of Tor Hidden Services. The ideas for these improvements come
from an earlier analysis of possible performance
bottlenecks\footnote{\url{http://freehaven.net/~karsten/hidserv/perfanalysis-2008-06-15.pdf}}.
-Optimally, the results of the discussion of these ideas will be included in
+All sections start with the design idea
+as stated in the previous analysis and evaluate the possible performance
+gain and possibly unwanted side-effects. Optimally, the results of the discussion of these ideas will be included in
a Tor proposal by August 15, 2008.
\end{abstract}
@@ -43,7 +45,7 @@
Applying the new design would have the following effects:
\begin{description}
-\item[Performance Improvement of 8 Seconds (30\%)] A
+\item[Performance Improvement of 8.2 Seconds] A
pre-evaluation\footnote{Christian Wilms, Improving the Tor Hidden Service
Protocol Aiming at Better Performance, diploma thesis, June 2008} of this
design change has shown that mean connection establishment times can be
@@ -53,7 +55,7 @@
%
\begin{figure}[tb]
\centering
-\includegraphics[width=\textwidth]{boxoverlier.pdf}
+\includegraphics[width=0.8\textwidth]{boxoverlier.pdf}
\begin{tabular}{lrrrrrr}
Protocol & Min. & 1st Qu. & Median & Mean & 3rd Qu. & Max.\\\hline
Regular & 2.479 & 11.450 & 18.210 & 27.370 & 33.220 & 181.800\\
@@ -93,7 +95,7 @@
effect on clients with low bandwidth.}
\begin{description}
-\item[Performance Improvement of 5 Seconds (18\%)] Another pre-evaluation
+\item[Performance Improvement of 4.9 Seconds] A pre-evaluation
resulted in a possible reduction of connection establishment times from
27.4 seconds in the original protocol to 22.5 seconds in the changed
design. Figure~\ref{fig:parintro} shows the possible improvement of
@@ -101,7 +103,7 @@
%
\begin{figure}[tb]
\centering
-\includegraphics[width=\textwidth]{boxparconn.pdf}
+\includegraphics[width=0.8\textwidth]{boxparconn.pdf}
\begin{tabular}{lrrrrrr}
Protocol & Min. & 1st Qu. & Median & Mean & 3rd Qu. & Max.\\\hline
Regular & 2.479 & 11.450 & 18.210 & 27.370 & 33.220 & 181.800\\
@@ -129,41 +131,43 @@
another usage which will make them even slower. Therefore, they should be
discarded after they reach a certain length, e.g.\ 6 hops.
%
-\item[Anonymity Issues with Loser Circuits] There should not be any
-anonymity issues with slower circuits, because they were never told that
-they were intended to be used as introduction circuits.
+\item[Anonymity Issues with Loser Circuits] Other than stated in the analysis, there should not be any
+anonymity issues with slower circuits, because they were never told to be used as introduction circuits.
\end{description}
\section{Individual Cannibalization Timeouts}
An idea that was not described in the last report is to introduce
individual timeouts for cannibalizing a circuit and extending it to an
-introduction point afterwards. The current timeout for this task is 60
-seconds. Figure~\ref{fig:introest} contains a histogram of times that are
-required for this task.
-
-Assuming that the timeout would be reduced to a lower value, a second
+introduction point afterwards on client side.
+The current timeout for this task is 60
+seconds. Assuming that the timeout would be reduced to a lower value, a second
(or third) attempt to cannibalize and extend a circuit would be started
-earlier. Figure~\ref{fig:X} shows the overall introduction circuit
-cannibalization and extension times for timeouts between 10 and 60 seconds.
-%As a simplification, the assumption is made that circuit estalishments can
-%be accomplished within at most three timeouts. % TODO Christian: Can we
-%drop this assumption?
+earlier. Figure~\ref{fig:introest} contains a histogram of times that are
+required for this task.
+%
+\begin{figure}[tb]
+\centering
+%\includegraphics[width=0.8\textwidth]{histogram.pdf}
+\emph{TODO Christian: Insert histogram.}
+\caption{Client-side introduction circuit establishment times}
+\label{fig:introest}
+\end{figure}
\begin{description}
-\item[Performance Improvement of X Seconds (X\%)]
+\item[Performance Improvement of 2 Seconds]
+Figure~\ref{fig:introestmean} shows the simulated mean introduction circuit
+cannibalization and extension times for timeouts between 10 and 60 seconds.
+For a timeout of 30 seconds the performance gain would be approximately 2
+seconds.
%
\begin{figure}[tb]
\centering
-%\includegraphics[width=0.8\textwidth]{introest.png}
-\emph{TODO Christian: Insert histogram of introduction circuit establishment times here, together with summary of values. Also insert the average
-number of requests as a function of timeout.}
-\caption{Introduction circuit establishment times}
-\label{fig:introest}
+\includegraphics[width=0.8\textwidth]{extensionmeans.pdf}
+\caption{Mean client-side introduction circuit establishment times as a
+function of timeout}
+\label{fig:introestmean}
\end{figure}
%
-\emph{TODO Christian: Insert diagram with average introduction circuit
-establishment times as a function of timeouts.}
-%
\item[Effect on Low-Bandwidth Clients] All measurements so far have been
performed on high-bandwidth clients. If there is a significant influence of
bandwidth on cannibalization time, relays should keep a history of past
@@ -172,7 +176,16 @@
%
\item[Increased Network Load] There will be an increased share of circuits
that are discarded after the new timeout expires, but would have been
-completed within the existing timeout of 60 seconds.
+completed within the existing timeout of 60 seconds. Figure~\ref{fig:introestattempts} visualizes the increased number of circuit cannibalization and extension attempts for lower timeouts.
+%
+\begin{figure}[tb]
+\centering
+\includegraphics[width=0.8\textwidth]{extensionretries.pdf}
+\caption{Number of client-side introduction circuit establishment attempts
+as a function of timeout}
+\label{fig:introestattempts}
+\end{figure}
+%
\end{description}
\section{Increase Count of Internal Circuits}
@@ -187,13 +200,13 @@
connections to more than one hidden service at a time.}
\begin{description}
-\item[Performance Improvement of ?? Seconds (??\%)] It is assumed that a
+\item[Performance Improvement of 4.5 Seconds] It is assumed that a
popular hidden service cannot make use of cannibalization for
connecting to rendezvous points, but needs to create new circuits.
Therefore, the circuit creation time needs to be added to the current
results. An evaluation of internal circuit creating times is shown in
-Figure~\ref{fig:Y}. In the mean the connection establishment time to a
-popular hidden service would increase by Z seconds.
+the table below. In the mean the connection establishment time to a
+popular hidden service would increase by 4.7 seconds.
% R: rendest <- read.csv("rendest.csv",sep = ",",header=FALSE, row.names=NULL); summary(rendest)
\begin{tabular}{rrrrrr}
@@ -218,41 +231,27 @@
\begin{description}
\item[Performance Improvement of 3.5 Seconds] The effect of choosing
-the fastest 3 out of 5 circuit creations as introduction points has been
+the fastest 3 out of 5 (4, 6) circuit creations as introduction points has been
evaluated using previously measured data, too. Therefore, circuit
establishment times were derived from log files and written to an array.
-Afterwards, a simulation with 10,000 runs was performed picking 5 random values
+Afterwards, a simulation with 10,000 runs was performed picking 5 (4, 6) random values
and using
the 3 lowest values in contrast to picking only 3 values at random. The
result is that the mean time of the 3-out-of-3 approach is 8 seconds, while the
-mean time of the 3-out-of-5 approach is 4.5 seconds.
+mean time of the 3-out-of-5 approach is 4.5 seconds. The results are given in the table below.
-intro circ establishment\\
-% R: introest <- read.csv("introest.csv",sep = ",",header=FALSE, row.names=NULL); summary(introest)
-\begin{tabular}{rrrrrr}
-Min. & 1st Qu. & Median & Mean & 3rd Qu. & Max.\\\hline
-0.233 & 3.456 & 5.976 & 8.059 & 9.266 & 59.912
+% R: three <- read.csv("3outof3.csv",sep = ",",header=FALSE, row.names=NULL); four <- read.csv("3outof4.csv",sep = ",",header=FALSE, row.names=NULL); five <- read.csv("3outof5.csv",sep = ",",header=FALSE, row.names=NULL); six <- read.csv("3outof6.csv",sep = ",",header=FALSE, row.names=NULL); summary(three); summary(four); summary(five); summary(six)
+\begin{tabular}{crrrrrr}
+Intro. Pnts. & Min. & 1st Qu. & Median & Mean & 3rd Qu. & Max.\\\hline
+3 & 1.023 & 5.020 & 6.820 & 8.060 & 9.720 & 40.500\\
+4 & 0.882 & 3.810 & 5.000 & 5.420 & 6.470 & 30.900\\
+5 & 0.786 & 3.210 & 4.190 & 4.430 & 5.370 & 19.200\\
+6 & 0.578 & 2.830 & 3.700 & 3.870 & 4.710 & 12.100\\
\end{tabular}
%
-
-% R: three <- read.csv("3outof3.csv",sep = ",",header=FALSE, row.names=NULL); summary(three)
-3-out-of-3\\
-\begin{tabular}{rrrrrr}
-Min. & 1st Qu. & Median & Mean & 3rd Qu. & Max.\\\hline
-1.103 & 5.041 & 6.800 & 8.091 & 9.758 & 36.779
-\end{tabular}
-%
-
-% R: five <- read.csv("3outof5.csv",sep = ",",header=FALSE, row.names=NULL); summary(five)
-3-out-of-5\\
-\begin{tabular}{rrrrrr}
-Min. & 1st Qu. & Median & Mean & 3rd Qu. & Max.\\\hline
-0.863 & 3.220 & 4.187 & 4.422 & 5.367 & 18.448
-\end{tabular}
-%
\item[Network Load] The effect on network load is minimal, because the hidden service can reuse the slower internal circuits for other purposes.
The only change is that a hidden service starts establishing more circuits
-at once.
+at once instead of subsequently doing so.
\end{description}
\section{Descriptor Upload Timing}
@@ -282,7 +281,7 @@
seconds.
\end{description}
-% first <- read.csv("firstdesc.csv",sep = ",",header=TRUE, row.names=NULL); png(paste("firstpub", "png", sep="."), width=800, height=600); plot(mean(first/1000),type="o",ylim=c(0,mean(first$firstdesc90)/1000),xlab="Stabilization time before descriptor upload (s)",ylab="Mean time until first descriptor publication (s)"); abline(a=0, b=1, lty=2); dev.off()
+% first <- read.csv("firstdesc.csv",sep = ",",header=TRUE, row.names=NULL); png(paste("firstpub", "png", sep="."), width=800, height=600); plot(mean(first/1000),type="o",ylim=c(0,mean(first$firstdesc90)/1000),xlab="Stabilization time before descriptor upload (s)",ylab="Mean time until first descriptor publication (s)"); abline(a=0, b=1, lty=2); arrows(30,90,30,75); dev.off()
\begin{figure}[tb]
\centering
\includegraphics[width=0.8\textwidth]{firstpub.png}
@@ -290,7 +289,7 @@
\label{fig:firstpub}
\end{figure}
-% stable <- read.csv("theorupl.csv",sep = ",",header=TRUE, row.names=NULL); png(paste("descup", "png", sep="."), width=800, height=600); plot(mean(stable),type="o",xlab="Stabilization time before descriptor upload (s)",ylim=c(0,mean(stable$stable1)),ylab="Mean number of uploaded descriptors"); abline(a=1, b=0, lty=2); dev.off()
+% stable <- read.csv("theorupl.csv",sep = ",",header=TRUE, row.names=NULL); png(paste("descup", "png", sep="."), width=800, height=600); plot(mean(stable),type="o",xlab="Stabilization time before descriptor upload (s)",ylim=c(0,mean(stable$stable1)),ylab="Mean number of uploaded descriptors"); abline(a=1, b=0, lty=2); arrows(30,1.68,30,1.43); dev.off()
\begin{figure}[tb]
\centering
\includegraphics[width=0.8\textwidth]{descup.png}
Modified: projects/hidserv/trunk/doc/firstpub.png
===================================================================
(Binary files differ)