nsdi-presentation/donar.tex

679 lines
23 KiB
TeX

\section{Tor performances \\ \& VoIP requirements}
\begin{frame}{What are voice calling requirements?}
\tikzsetnextfilename{rtapp}
\begin{tikzpicture}[scale=1]
\node (micro) at (0,0) {\includegraphics{img/microphone.pdf}};
\node (speaker) at (9,0) {\includegraphics{img/speaker.pdf}};
\draw[->, solid, black,line width=1mm] (micro) edge node[sloped,anchor=north,text width=7cm]{
\Large Call Requirements \\
\normalsize
\textbf{Delay:} $99^{th}$-perc delay $<$ 360 ms \\
\textbf{Drop:} Dropped calls $<$ 2\% \\
\textbf{Duration:} avg: 5 min \& up to: 90 min \\
\textbf{Anonymity:} 2-way anonymity\\
\small Alice is anonymous to Bob,\\Bob is anonymous to Alice
} (speaker);
\end{tikzpicture}
\begin{center}
\Large \includegraphics[scale=0.6]{img/question.pdf} \color{blue} Which Tor configuration should we use? \\
\Large \includegraphics[scale=0.6]{img/question.pdf} \color{blue} Can Tor satisfy these requirements?
\end{center}
\end{frame}
\begin{frame}[t]{Which Tor configuration should we use?}
\small
\underline{For 2-way anonymity: Onion Services}
\begin{figure}
\tikzsetnextfilename{os1ss}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5,5) circle(1mm);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\draw[fill=black] (7.5,5) circle(1mm);
\node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}};
\node (lt) at (2,4.5) {\emph{Security-first}};
\node (aaa) at (6.25,4.5) {\emph{6 relays, 3-hop circuits}};
\end{tikzpicture}
\end{figure}
\small
\underline{To reduce latency: Reduce circuits length}
2-hops circuits have been discussed as a possible optimization\footnotemark[2]
\begin{figure}
\tikzsetnextfilename{os2ss}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\node (aaa) at (6.25,4.5) {\emph{4 relays, 2-hop circuits}};
\node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}};
\node (lt) at (2,4.5) {\emph{Performance-first}};
\end{tikzpicture}
\end{figure}
\footnotetext[2]{\fullcite{bauer_optimal_nodate}}
\end{frame}
\begin{frame}[t]{How do we test Tor?}
\normalsize
\underline{2 Tor Configurations}
\begin{figure}
\tikzsetnextfilename{os3ss}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5,5) circle(1mm);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\draw[fill=black] (7.5,5) circle(1mm);
\node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}};
\end{tikzpicture}
\tikzsetnextfilename{os4ss}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}};
\end{tikzpicture}
\end{figure}
\underline{Simulated Calls}\\
5-minute and 90-minute calls\\
Each configuration is repeated 64 times\\
\underline{Questions}\\
Do Onion Service meet latency requirements?\\
Do Onion Service are stable enough?\\
Get insights on Onion Services' latency
\end{frame}
\begin{frame}{Do onion services meet latency requirements?}
\begin{figure}
\tikzsetnextfilename{petitschema1}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5,5) circle(1mm);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\draw[fill=black] (7.5,5) circle(1mm);
\node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}};
\end{tikzpicture}
\end{figure}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{img/x1.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\normalsize \underline{Acceptable 5-minute calls}\\
\Large \textcolor{red}{9\%}
\vspace{0.5cm}
\normalsize \underline{Acceptable 90-minute calls}\\
\Large \textcolor{red}{3\%}
\end{column}
\end{columns}
\begin{center}
\Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Onion Services' delays are too high
\end{center}
\end{frame}
\begin{frame}{Even with onion service using 2-hop circuits?}
\begin{figure}
\tikzsetnextfilename{petitschema2}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}};
\end{tikzpicture}
\end{figure}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{img/x2.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\normalsize \underline{Acceptable 5-minute calls}\\
\Large \textcolor{red}{44\%}
\vspace{0.5cm}
\normalsize \underline{Acceptable 90-minute calls}\\
\Large \textcolor{red}{23\%}
\end{column}
\end{columns}
\begin{center}
\Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} With 2-hop circuits, delays are still too high
\end{center}
\end{frame}
\begin{frame}{Do onion services are stable enough for calls?}
\begin{figure}
\tikzsetnextfilename{os3ss}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5,5) circle(1mm);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\draw[fill=black] (7.5,5) circle(1mm);
\node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}};
\end{tikzpicture}
\tikzsetnextfilename{os4ss}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}};
\end{tikzpicture}
\end{figure}
\begin{columns}
\begin{column}{0.45\textwidth}
\includegraphics[width=\textwidth]{img/x3.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\normalsize \underline{Dropped 5-minute calls}\\
\Large \textcolor{red}{5\%} \normalsize for 2 hops \\
\Large \textcolor{red}{10\%} \normalsize for 3 hops
\vspace{0.5cm}
\normalsize \underline{Dropped 90-minute calls}\\
\Large \textcolor{red}{10\%} \normalsize for 2 hops\\
\Large \textcolor{red}{17\%} \normalsize for 3 hops
\end{column}
\end{columns}
\begin{center}
\Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Calls are dropped too often
\end{center}
\end{frame}
\begin{frame}{Understanding Latency Spike Properties}
\includegraphics[width=\textwidth]{img/circuit.pdf}
\begin{center}
For most circuits,\\
\Large
\includegraphics[scale=0.4]{img/stop.pdf} \color{red} the $99^{th}$ latency is too high, \\
\includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} the median latency is acceptable:\\
\includegraphics[scale=0.6]{img/question.pdf} \color{blue} Tor has latency spikes but is able to deliver some packets on time
\end{center}
\end{frame}
\section{Our contribution: Donar}
\begin{frame}{Our goal}
\Large Building a communication \underline{abstraction}
\Large to provide \underline{stable low-latency} packet delivery
\Large over the \underline{existing} Tor network
%by leveraging on link diversity, scheduling and redundancy.
\end{frame}
\begin{frame}{Donar Overview}
\Large Donar is a set of \textbf{multipath} components \\
\underline{Alternate}, \underline{Double Send} and \underline{Path Ranking}
\vspace{0.7cm}
We make 2 flavors with them:
\vspace{0.5cm}
\begin{columns}
\begin{column}{0.45\textwidth}
\normalsize
\underline{Anticipate Failures}
\Large Donar Alternate
\Large Donar Double Send
\end{column}
\begin{column}{0.45\textwidth}
\normalsize
\underline{React to Failures}
\Large + Path Ranking
\Large + Path Ranking
\end{column}
\end{columns}
\end{frame}
\begin{frame}[t]{Alternate Strategy}
\tikzsetnextfilename{padding}
\begin{tikzpicture}[scale=1]
\node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}};
\node[below=0cm of alice] (alicet) {Alice};
\node (bob) at (10,5) {\includegraphics[scale=0.26]{img/computer.pdf}};
\node[below=0cm of bob] (bobt) {Bob};
\node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {};
\node[circle,fill=black,minimum size=1mm,left=0cm of bob] (j4) {};
\coordinate (a1) at (3,6.5) {};
\coordinate (a2) at (3,5.5) {};
\coordinate (a3) at (3,4.5) {};
\coordinate (a4) at (3,3.5) {};
\coordinate (b1) at (8,6.5) {};
\coordinate (b2) at (8,5.5) {};
\coordinate (b3) at (8,4.5) {};
\coordinate (b4) at (8,3.5) {};
\coordinate (a5) at (3,2.5) {};
\coordinate (a6) at (3,7.5) {};
\coordinate (b5) at (8,2.5) {};
\coordinate (b6) at (8,7.5) {};
\draw[-, solid, black] (j0) -- (a1) -- (b1) -- (j4);
\draw[-, solid, black] (j0) -- (a2) -- (b2) -- (j4);
\draw[-, solid, black] (j0) -- (a3) -- (b3) -- (j4);
\draw[-, solid, black] (j0) -- (a4) -- (b4) -- (j4);
\draw[-, solid, black] (j0) -- (a5) -- (b5) -- (j4);
\draw[-, solid, black] (j0) -- (a6) -- (b6) -- (j4);
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p11) at (7,5.5) {1};
\node[rectangle,draw=black,fill=black,minimum width=5mm] (p11p) at (6.5,5.5) {\color{black}1};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p13) at (4.6,3.5) {3};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p13p) at (4.1,3.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p22) at (5.8,4.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p22p) at (5.3,4.5) {1};
\node[text width=10cm,align=center] (expl) at (5.5, 1.0) {\Large
\textbf{Alternate} schedule packets across links and leverages Tor's padding
};
\end{tikzpicture}
\end{frame}
\begin{frame}[t]{Donar Double Send}
\tikzsetnextfilename{doublesend}
\begin{tikzpicture}[scale=1]
\node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}};
\node[below=0cm of alice] (alicet) {Alice};
\node (bob) at (10,5) {\includegraphics[scale=0.26]{img/computer.pdf}};
\node[below=0cm of bob] (bobt) {Bob};
\node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {};
\node[circle,fill=black,minimum size=1mm,left=0cm of bob] (j4) {};
\coordinate (a1) at (3,6.5) {};
\coordinate (a2) at (3,5.5) {};
\coordinate (a3) at (3,4.5) {};
\coordinate (a4) at (3,3.5) {};
\coordinate (b1) at (8,6.5) {};
\coordinate (b2) at (8,5.5) {};
\coordinate (b3) at (8,4.5) {};
\coordinate (b4) at (8,3.5) {};
\coordinate (a5) at (3,2.5) {};
\coordinate (a6) at (3,7.5) {};
\coordinate (b5) at (8,2.5) {};
\coordinate (b6) at (8,7.5) {};
\draw[-, solid, black] (j0) -- (a1) -- (b1) -- (j4);
\draw[-, solid, black] (j0) -- (a2) -- (b2) -- (j4);
\draw[-, solid, black] (j0) -- (a3) -- (b3) -- (j4);
\draw[-, solid, black] (j0) -- (a4) -- (b4) -- (j4);
\draw[-, solid, black] (j0) -- (a5) -- (b5) -- (j4);
\draw[-, solid, black] (j0) -- (a6) -- (b6) -- (j4);
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p11) at (7,5.5) {1};
\node[rectangle,draw=black,fill=black,minimum width=5mm] (p11p) at (6.5,5.5) {\color{black}1};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p13) at (4.6,3.5) {3};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p13p) at (4.1,3.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p22) at (5.8,4.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p22p) at (5.3,4.5) {1};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p31) at (7,7.5) {1};
\node[rectangle,draw=black,fill=black,minimum width=5mm] (p31p) at (6.5,7.5) {\color{black}1};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p33) at (4.6,2.5) {3};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p33p) at (4.1,2.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p42) at (5.8,6.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p42p) at (5.3,6.5) {1};
\node[text width=10cm,align=center] (expl) at (5.5, 1.0) {\Large
\textbf{Double Send} extends Alternate by adding on-wire duplication
\normalsize
};
\end{tikzpicture}
\end{frame}
\begin{frame}[t]{Path Ranking}
\tikzsetnextfilename{scheduling}
\begin{tikzpicture}[scale=1]
\node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}};
\node[below=0cm of alice] (alicet) {Alice};
\node (bob) at (10,5) {\includegraphics[scale=0.26]{img/computer.pdf}};
\node[below=0cm of bob] (bobt) {Bob};
\node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {};
\node[circle,fill=black,minimum size=1mm,left=0cm of bob] (j4) {};
\coordinate (a1) at (3,6.5) {};
\coordinate (a2) at (3,5.5) {};
\coordinate (a3) at (3,4.5) {};
\coordinate (a4) at (3,3.5) {};
\coordinate (b1) at (8,6.5) {};
\coordinate (b2) at (8,5.5) {};
\coordinate (b3) at (8,4.5) {};
\coordinate (b4) at (8,3.5) {};
\draw[-, dashed, black] (j0) -- (a1) -- (b1) -- (j4);
\draw[-, dashed, black] (j0) -- (a2) -- (b2) -- (j4);
\draw[-, dashed, black] (j0) -- (a3) -- (b3) -- (j4);
\draw[-, dashed, black] (j0) -- (a4) -- (b4) -- (j4);
\coordinate (a5) at (3,2.5) {};
\coordinate (a6) at (3,7.5) {};
\coordinate (b5) at (8,2.5) {};
\coordinate (b6) at (8,7.5) {};
\draw[-, dashed, black] (j0) -- (a5) -- (b5) -- (j4);
\draw[-, dashed, black] (j0) -- (a6) -- (b6) -- (j4);
\node[below=0cm of a6] (a6t) {~A};
\node[below=0cm of a1] (a1t) {~B};
\node[below=0cm of a2] (a2t) {~C};
\node[below=0cm of a3] (a3t) {~D};
\node[below=0cm of a4] (a4t) {~E};
\node[below=0cm of a5] (a5t) {~F};
\only<1> {
\draw[-, solid, black] (j0) -- (a2) -- (b2) -- (j4);
\draw[-, solid, black] (j0) -- (a3) -- (b3) -- (j4);
\draw[-, solid, black] (j0) -- (a1) -- (b1) -- (j4);
\draw[-, solid, black] (j0) -- (a6) -- (b6) -- (j4);
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p11) at (5.8,5.5) {1};
\node[rectangle,draw=black,fill=black,minimum width=5mm] (p11p) at (5.3,5.5) {\color{black}1};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p13) at (4.1,5.5) {3};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p13p) at (3.6,5.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p22) at (6.3,4.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p22p) at (5.8,4.5) {1};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p31) at (6.5,7.5) {1};
\node[rectangle,draw=black,fill=black,minimum width=5mm] (p31p) at (6,7.5) {\color{black}1};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p33) at (4.6,7.5) {3};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p33p) at (4.1,7.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p42) at (7,6.5) {2};
\node[rectangle,draw=black,fill=white,minimum width=5mm] (p42p) at (6.5,6.5) {1};
\node[text width=10cm,align=left] (expl) at (5.5, 1.2) {\Large
\Large \includegraphics[scale=0.6]{img/question.pdf} \color{blue} We want to schedule only on fastest links \\
};
}
\only<2> {
\draw[-, solid, black!50!red, line width = 0.4mm] (j0) -- (a2) -- (b2) -- (j4);
\draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a3) -- (b3) -- (j4);
\draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a1) -- (b1) -- (j4);
\draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a6) -- (b6) -- (j4);
\node[below=0cm of bobt, text width=3cm] (bobr) {
\textbf{Path Ranking}\\
\textcolor{black!50!green}{1. B}\\
\textcolor{black!50!green}{2. D}\\
\textcolor{black!50!green}{3. A}\\
\textcolor{black!50!red}{4. C}
};
\node[text width=8cm,align=center] (expl) at (4, 1.2) {\Large
Bob ranks paths and informs Alice that stops using the slowest ones
};
}
\only<3> {
\draw[-, solid, black!30!cyan, line width = 0.4mm] (j0) -- (a5) -- (b5) -- (j4);
\draw[-, solid, black] (j0) -- (a3) -- (b3) -- (j4);
\draw[-, solid, black] (j0) -- (a1) -- (b1) -- (j4);
\draw[-, solid, black] (j0) -- (a6) -- (b6) -- (j4);
\node[below=0cm of bobt, text width=3cm] (bobr) {
\textbf{Path Ranking}\\
1. ...\\
2. ...\\
3. ...\\
4. ...
};
\node[text width=8cm,align=center] (expl) at (4, 1.2) {\Large
Alice selects a new path
};
}
\only<4> {
\draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a5) -- (b5) -- (j4);
\draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a3) -- (b3) -- (j4);
\draw[-, solid, black!50!red, line width = 0.4mm] (j0) -- (a1) -- (b1) -- (j4);
\draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a6) -- (b6) -- (j4);
\node[below=0cm of bobt, text width=3cm] (bobr) {
\textbf{Path Ranking}\\
\textcolor{black!50!green}{1. F}\\
\textcolor{black!50!green}{2. A}\\
\textcolor{black!50!green}{3. D}\\
\textcolor{black!50!red}{4. B}
};
\node[text width=8cm,align=center] (expl) at (4, 1.2) {\Large
Ranking is re-computed regularly
};
}
\end{tikzpicture}
\end{frame}
\section{Evaluation}
\begin{frame}[t]{Evaluation Setup}
\underline{Configurations \& Goals:} Same as our preliminary analysis
\underline{Our algorithms}
\normalsize
\textbf{Donar Alternate}\\
Alternate + Ranking (6/12 active paths)
\textbf{Donar Double Send}\\
Double Send + Ranking (6/12 active paths)
\scriptsize Implemented in \texttt{C}, notable API/lib: \texttt{epoll}, \texttt{gstreamer}, \texttt{glib}
\normalsize
\underline{State of the Art algorithms}
\textbf{Simple:} Baseline introduced in the preliminary analysis \\
%Same data consumption as Donar Alternate
\textbf{Torfone:} Duplicates packets on 2 paths \\
%Same data consumption as Donar Double Send
\end{frame}
\begin{frame}{Does Donar reduce latency enough with 2-hop circuits?}
\begin{figure}
\tikzsetnextfilename{petitschema4}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}};
\end{tikzpicture}
\end{figure}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{img/x5.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\normalsize \underline{Acceptable 90-minute calls}\\
\large \textcolor{black!50!green}{87\%} \normalsize for Donar Alternate\\
\large \textcolor{black!50!green}{95\%} \normalsize for Donar Double Send\\
\large \textcolor{red}{25\%} \normalsize for Torfone\\
\large \textcolor{red}{23\%} \normalsize for Simple (our baseline)\\
\end{column}
\end{columns}
\begin{center}
\large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Both Donar variants succeed most of their calls
\end{center}
\end{frame}
\begin{frame}{Does Donar reduce latency enough?}
\begin{figure}
\tikzsetnextfilename{petitschema33}
\begin{tikzpicture}
\node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[left=0cm of j0] (j0t) {Alice};
\node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}};
\node[right=0cm of j4] (j4t) {Bob};
\draw[-, solid, black, line width=0.2mm] (j0) edge (j4);
\draw[fill=black] (5,5) circle(1mm);
\draw[fill=black] (5.5,5) circle(1mm);
\draw[fill=black] (6,5) circle(1mm);
\draw[fill=black] (6.5,5) circle(1mm);
\draw[fill=black] (7,5) circle(1mm);
\draw[fill=black] (7.5,5) circle(1mm);
\node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}};\end{tikzpicture}
\end{figure}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{img/x4.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\normalsize \underline{Acceptable 90-minute calls}\\
\large \textcolor{red}{58\%} \normalsize for Donar Alternate\\
\large \textcolor{black!50!green}{87\%} \normalsize for Donar Double Send\\
\large \textcolor{red}{31\%} \normalsize for Torfone\\
\large \textcolor{red}{3\%} \normalsize for Simple (our baseline)\\
\end{column}
\end{columns}
\begin{center}
\large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Even with Donar Alternate, many calls still fail\\
\large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} With Donar Double Send, most calls succeed
\end{center}
\end{frame}
\begin{frame}{Does Donar maintain calls over time?}
\includegraphics[width=\textwidth]{img/call_drop.pdf}
\begin{center}
\Large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar provides stable calls
\end{center}
\end{frame}
\section{Future work \& Conclusion}
\begin{frame}{Conclusion}
\underline{We contributed}
\Large Foundations \\
\normalsize to build a Tor softphone with stable latency
\Large Insights \\
\normalsize
to understand delays on Tor
from a real-time perspective
\end{frame}