summaryrefslogtreecommitdiff
path: root/doc/tex/compression.tex
blob: 3a8e92bc00bdd2fb0b251fce4511b351bce0fc81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
\subsection{Compression algorithms used in the record layer}
\index{Compression algorithms}
The TLS' record layer also supports compression. The algorithms
implemented in \gnutls{} can be found in figure \ref{fig:compression}.
All the algorithms except for ZLIB which is referenced in \cite{TLSCOMP}, should be 
considered as \gnutls' extensions\footnote{You should use \printfunc{gnutls_handshake_set_private_extensions}{gnutls\_handshake\_set\_private\_extensions}
to enable private extensions.}, and
should be advertised only when the peer is known to have a compliant client,
to avoid interoperability problems.
\par
The included algorithms perform really good when text, or other
compressable data are to be transfered, but offer nothing on already 
compressed data, such as compressed images, zipped archives etc.
These compression algorithms, may be useful in high bandwidth TLS tunnels,
and in cases where network usage has to be minimized. As a drawback, 
compression increases latency.

\par
The record layer compression in \gnutls{} is implemented based on
the paper \cite{TLSCOMP}.

\begin{figure}[hbtp]
\begin{tabular}{|l|p{9cm}|}

\hline
ZLIB & ZLIB compression, using the deflate algorithm.
\\
\hline
LZO & LZO is a very fast compression algorithm. This algorithm is only
available if the \gnutlse{} library has been initialized.
\\
\hline
\end{tabular}
\caption{Supported compression algorithms}
\label{fig:compression}
\end{figure}