
\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}
