bit-twist -> tcpdump. geen host OS gedoe. en wat over performance toegevoegd.
[tt2015.git] / 1intro.tex
1 \subsection{Objectives}
2 %1, 2
3 The objective of this document is to provide an approach for testing a
4 particular implementation of \textit{Transmission Control Protocol} (TCP). TCP
5 is a host-to-host protocol that provides a reliable communication.
6
7 This testing approach can be used by either an internal test team or an
8 independent testing team. The test effort's goal is to become confident about
9 the conformance of an existing implementation to the specification created by
10 \textit{The Internet Engineering Task Force}
11 (IETF)\footnote{\url{http://www.ietf.org}} as document
12 \textit{RFC793}~\cite{rfc793}. This document is explicitly \emph{not} intended
13 to serve as guideline for testing during the development phase, but for testing
14 conformity to the specification of an \emph{existing} implementation.
15
16 \subsection{SUT}
17 %3,4
18 The \textit{System under test} (SUT) is a
19 Java\footnote{\url{http://www.java.com}} TCP driven echo server that executed
20 on a virtualized Ubuntu system\footnote{\url{http://www.ubuntu.com}} running on
21 the Linux kernel\footnote{\url{http://www.kernel.org}} version $3.13$. To test
22 the error behaviour custom iptables output policies have to be set
23 Listing~\ref{listing:iptables}. This is needed because the kernel by default
24 closes all connections from unknown sources and the manually created TCP
25 packets used in testing the implementation are from a source unknown to the
26 kernel.
27
28 \begin{lstlisting}[label={listing:iptables},caption={settings iptables}]
29 Chain OUTPUT (policy ACCEPT)
30 target prot opt source destination
31 ACCEPT tcp -- anywhere anywhere tcp flags:PSH/PSH
32 DROP tcp -- anywhere anywhere tcp flags:RST/RST
33 \end{lstlisting}
34
35 \subsection{Risks} \label{sec:risks}
36 %5. Risks
37 Risks can be divided into two categories. Project risks and product risks.
38 Because an existing implementation is used the project risk are non applicable.
39 Product risks even more so, since it is unknown if the product has been tested
40 during development.
41
42 The product risks for the SUT are significant because misbehaviour of the SUT
43 could have potential large consequences. The key characteristics of TCP are
44 integrity and reliability~\cite{rfc793}, these characteristics cease to exist
45 when the implementation is faulty.
46
47 Because TCP is a core functionality of a networking capable system it is
48 crucial that the TCP implementation functions according to the specification.
49 Several critical systems could rely on the correct functionality of the TCP
50 implementation. A failure in the SUT could therefore have extensive
51 consequences. Even more so since TCP is a computer-to-computer protocol, which
52 leaves no room for ambiguity, which could be solved in a computer-to-human
53 protocol.