nsdi-presentation/donar.tex

756 lines
24 KiB
TeX

%\section{Tor performances \\ \& VoIP requirements}
\begin{frame}{Our system requirements}
\Large Preliminary definitions\\
\normalsize \textbf{Interactive call:} $99^{th}$-perc delay $<$ 360 ms \\
\textbf{Call duration:} 5 min avg, up to 90 min \\
\vspace{0.5cm}
\Large System requirements \\
\normalsize
\textbf{Interactivity:} \textcolor{blue}{interactive calls $>$ 80\%}\\
\textbf{Stability:} \textcolor{blue}{dropped calls $<$ 2\%} \\
\textbf{Anonymity:} \textcolor{blue}{both caller and callee} \\
%\small Alice is anonymous to Bob,\\Bob is anonymous to Alice
\begin{center}
\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}
\vspace{0.2cm}
\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}
\vspace{0.2cm}
\small
\underline{To reduce latency: Reduce circuits length}
2-hops circuits have been discussed as a possible optimization\footnotemark[2]
\vspace{0.2cm}
\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}
\vspace{0.2cm}
\footnotetext[2]{\fullcite{bauer_optimal_nodate}}
\end{frame}
\begin{frame}[t]{How do we test Tor?}
\normalsize
\underline{2 Tor Configurations}
\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}
\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?\\
\end{frame}
\begin{frame}{Do onion services meet latency requirements?}
\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}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=0.8\textwidth]{img/x1.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\vspace{0.5cm}
\normalsize \underline{Interactive call definition}\\$99^{th}$-perc delay $<$ 360 ms
\vspace{0.5cm}
\normalsize \underline{System interactivity}\\
\Large \textcolor{blue}{$>$ 80\%} \normalsize goal, of interactive calls\\
\Large \textcolor{red}{9\%} \normalsize for 5-minute calls\\
\Large \textcolor{red}{3\%} \normalsize for 90-minute calls
\end{column}
\end{columns}
\begin{center}
\Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Calls are not interactive
\end{center}
\end{frame}
\begin{frame}{And what if we use 2-hop circuits?}
\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}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=0.8\textwidth]{img/x2.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\vspace{0.5cm}
\normalsize \underline{Interactive call definition}\\$99^{th}$-perc delay $<$ 360 ms
\vspace{0.5cm}
\normalsize \underline{System interactivity}\\
\Large \textcolor{blue}{$>$ 80\%} \normalsize goal, interactive calls\\
\Large \textcolor{red}{44\%} \normalsize for 5-minute calls\\
\Large \textcolor{red}{23\%} \normalsize for 90-minute calls\end{column}
\end{columns}
\begin{center}
\Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Calls are \underline{still} not interactive
\end{center}
\end{frame}
\begin{frame}{Are onion services stable enough for calls?}
\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}
\begin{columns}
\begin{column}{0.45\textwidth}
\includegraphics[width=0.8\textwidth]{img/x3.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\vspace{0.3cm}
\normalsize \underline{System stability}\\
\Large \textcolor{blue}{$<$ 2\%} \normalsize goal, dropped calls \\
\Large \textcolor{red}{5\%} \normalsize for 2 hops, 5-minute calls \\
\Large \textcolor{red}{10\%} \normalsize for 3 hops, 5-minute calls \\
\Large \textcolor{red}{10\%} \normalsize for 2 hops, 90-minute calls \\
\Large \textcolor{red}{17\%} \normalsize for 3 hops, 90-minute calls
\end{column}
\end{columns}
\begin{center}
\Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Calls are not stable
\end{center}
\end{frame}
\iffalse
\begin{frame}{Understanding Latency Spike Properties}
\includegraphics[width=0.7\textwidth]{img/circuit.pdf}
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 is able to deliver \underline{only some} packets on time
\end{frame}
\fi
\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 \textbf{multipath} proxy\\
made of 2 components: \\
\underline{Link Selection} and \underline{Scheduling Policies}
\vspace{0.7cm}
\includegraphics[width=0.8\textwidth]{img/proxy.png}
%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]{Link Selection}
\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!30!cyan, line width = 0.4mm] (j0) -- (a2) -- (b2) -- (j4);
\draw[-, solid, black!30!cyan, line width = 0.4mm] (j0) -- (a3) -- (b3) -- (j4);
\draw[-, solid, black!30!cyan, line width = 0.4mm] (j0) -- (a1) -- (b1) -- (j4);
\draw[-, solid, black!30!cyan, line width = 0.4mm] (j0) -- (a6) -- (b6) -- (j4);
\iffalse
\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};
\fi
\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}
\begin{frame}[t]{Scheduling Policy: Alternate}
\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]{Scheduling Policy: 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}{Security}
Multiple paths = less security?
\vspace{0.5cm}
\includegraphics[width=0.8\textwidth]{img/donar-tor-diagram.pdf}
Guards = Fixed relays = Decouple path opening from de-anonimization
\end{frame}
\section{Evaluation}
\begin{frame}[t]{Evaluation Setup}
\underline{Configurations \& Goals:}\\Same as our preliminary analysis
\underline{Our 2 Variants}
\normalsize
\textbf{Donar Alternate}\\
Scheduling policy: Alternate (use less bandwidth)
\textbf{Donar Double Send}\\
Sechduling policy: Double Send (better stability)
\scriptsize Implemented in \texttt{C}, notable API/lib: \texttt{epoll}, \texttt{gstreamer}, \texttt{glib}\\
\normalsize
\underline{Baselines}
\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}{Donar on 2-hop circuits}
\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}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=0.8\textwidth]{img/x5.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\vspace{1cm}
\normalsize \underline{System interactivity}\\
\large \textcolor{blue}{$>$ 80\%} \normalsize goal, interactive 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)\\
\vspace{0.5cm}
\large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Alternate \\
\large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Double Send
\end{column}
\end{columns}
\end{frame}
\begin{frame}{Donar on regular circuits}
\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}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=0.8\textwidth]{img/x4.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\vspace{1cm}
\normalsize \underline{System interactivity}\\
\large \textcolor{blue}{$>$ 80\%} \normalsize goal, interactive 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)\\
\vspace{0.5cm}
\large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Donar Alternate\\
\large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Double Send
\end{column}
\end{columns}
\end{frame}
\begin{frame}{Does Donar maintain calls over time?}
\vspace{1cm}
\includegraphics[width=0.8\textwidth]{img/call_drop.pdf}
\begin{columns}
\begin{column}{0.5\textwidth}
\normalsize \underline{System stability}\\
\large \textcolor{blue}{$<$ 2\%} \normalsize goal, dropped calls \\
\large \textcolor{black!50!green}{0\%} \normalsize Donar Alternate, 2 hops\\
\large \textcolor{black!50!green}{0\%} \normalsize Donar Double Send, 2 hops + default\\
\end{column}
\begin{column}{0.5\textwidth}
\large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Alternate \\
\large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Double Send
\end{column}
\end{columns}
\end{frame}
\section{Conclusion}
\iffalse
\begin{frame}{Future Work}
\underline{We plan to evaluate}
\Large
QoE\\
\normalsize
Large scale experiment
to collect users feedback
\Large
A white box approach\\
\normalsize
Use information from the daemon
to enrich scheduling
\Large
Sending noise\\
\normalsize
To make traffic correlation harder
\end{frame}
\fi
\begin{frame}{Conclusion}
\underline{We contributed}
\Large Foundations \\
\normalsize to build a Tor softphone with stable latency \\
over the existing Tor network \\
\scriptsize Source code: github.com/CloudLargeScale-UCLouvain/Donar
\Large Insights \\
\normalsize
to understand delays on Tor
from a real-time perspective
\end{frame}
\begin{frame}{The end}
Thanks to the audience for attending this talk.
Our email addresses:
\begin{itemize}
\item david.bromberg@irisa.fr
\item \underline{quentin@deuxfleurs.fr}
\item davide.frey@inria.fr
\item etienne.riviere@uclouvain.be
\end{itemize}
\normalsize Source code: github.com/CloudLargeScale-UCLouvain/Donar
\Large Time for questions!
\end{frame}