Skip to content

Commit

Permalink
Merge branch 'tcpimprov' into releaseWithoutQA
Browse files Browse the repository at this point in the history
# Conflicts:
#	res/sections/15-TCPVersions.tex
  • Loading branch information
Polpetta committed Feb 6, 2018
2 parents c5a2e3f + abde809 commit 40b62dc
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 26 deletions.
13 changes: 10 additions & 3 deletions res/sections/15-TCPVersions.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@
\section{TCP versions}

\subsection{TCP Tahoe}
Characteristics:
One of the first protocols, very basic. It uses the Slow Start Phase and
AIMD, but it only relies on timeouts to detect losses, so no fast retransmit nor
fast recovery (it doesn't check for dupacks). At every loss, it always restart
from 1.

\paragraph*{Characteristics}
\begin{itemize}
\item Standard TCP functions
\item ``Slow'' start
Expand All @@ -15,7 +20,7 @@ \subsection{TCP Tahoe}
\end{figure}

\subsection{TCP Reno}
Characteristics:
\paragraph*{Characteristics}
\begin{itemize}
\item Fast Retransmit/Fast Recovery (3 dupAcks to recover one packet loss)
\item TCP Reno can recover from one packet loss without having a time out
Expand All @@ -40,7 +45,9 @@ \subsubsection{TCP New Reno}
\end{figure}

\subsection{TCP SACK}
SACK means \textit{Selective acknowledgment}.
SACK means \textit{Selective acknowledgment}. This means that all ACKs are a
little bigger but carry more information, they can give the sender the complete
picture.

Returning ACKs declares which packets (even non contiguous) were received.
All non-received packets can be retransmitted and so it recovers from multiple
Expand Down
44 changes: 21 additions & 23 deletions res/sections/20-TCPVegas.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ \subsection{TCP Vegas}
\subsubsection{Congestion avoidance}

Reaction to congestion episode, not to packets loss

Modifications:

\begin{itemize}
\item Modified Congestion Avoidance
\item Aggressive Retransmission
Expand All @@ -14,38 +12,38 @@ \subsubsection{Congestion avoidance}
\end{itemize}

Some definitions:

\begin{itemize}
\item \textbf{Throughput}: speed of transmission
\item \textbf{Goodput}: speed of reception
\end{itemize}

Comparing expected and actual throughput:
\noindent Comparing expected throughput\dots
\begin{equation*}
Expected\ throughput = \frac{window\ size}{RTT}
\end{equation*}
\dots and actual throughput:
\begin{equation*}
Actual\ throughput: \frac{actual\ transmitted\ amount}{RTT}
\end{equation*}

\noindent Monitor transmission rate:
\begin{itemize}
\item \textbf{Expected throughput}: $\frac{window\_size}{RTT}$
\item \textbf{Actual throughput}: $\frac{actual\_transmitted\_amount}{RTT}$
\item If $expected - \alpha < actual < expected$: Queues decreasing
$\rightarrow$ increase rate
\item If $expected - \alpha < actual < expected - \beta$: Don’t do anything
\item If $actual < expected - \beta$: Queues increasing $\rightarrow$ decrease
rate before packet drop (maybe there is a congestion in network or maybe the
connection is shared among other services)
\end{itemize}

Monitor transmission rate: \\

$\diamond$ If $expected - \alpha < actual < expected$:
Queues decreasing $\rightarrow$ increase rate \\

$\diamond$ If $expected - \alpha < actual < expected - \beta$:
Don’t do anything \\

$\diamond$ If $actual < expected - \beta$:
Queues increasing $\rightarrow$ decrease rate before packet drop (maybe there
is a congestion in network or maybe the connection is shared among other
services) \\

Thresholds of $\alpha (= \frac{1 pkts}{RTT})$ and $\beta (= \frac{3 pkts}{RTT})$ correspond to how many packets
Vegas is willing to have in queues.

\begin{figure}[H]
Thresholds of $\alpha (= \frac{1 pkts}{RTT})$ and
$\beta (= \frac{3 pkts}{RTT})$ correspond to how many packets Vegas is willing
to have in queues.
\begin{figure}[t]
\centering
\includegraphics[scale=0.35]{CAVegas}
\caption{Vegas - Modified Congestion Avoidance}
\label{fig:tcpVegas:mca}
\end{figure}


Expand Down

0 comments on commit 40b62dc

Please sign in to comment.