+\subsection{Test suite}
+
+Before executing the test suite the test environment has to be initialized.
+
+\begin{enumerate}
+ \item Boot the vm using VirtualBox.
+ \item Setup iptables by executing \texttt{\# code/iptables.sh}
+ \item Navigate to the working directory by running
+ \texttt{\$ cd /home/student/tt2015}
+ \item Start the echo server by running
+ \texttt{\# cd code/server \&\& Java Main}
+\end{enumerate}
+
+\subsubsection{Preflight checks}
+The we do the preflight checks as defined in Table~\ref{tbl:preflight}.
+
+\subsubsection{Test Cases}
+If the SUT passes the preflight checks the actual test cases can be executed.
+Table~\ref{tbl:testcases} shows the expected results of each of the test cases
+described in Table~\ref{tbl:testpairs}.
+
+\setcounter{TCC}{1}
+\begin{table}[H]
+ \centering
+ \begin{tabular}{|l|p{.7\linewidth}|}
+ \hline
+ Test number & Expected results\\
+ \hline\hline
+ \doTCC & An ACK\# of the send sequence number + 1.\\ \hline
+ \doTCC & An ACK\# of the sequence number of the last send segment + the
+ size of the payload of that segment.\\ \hline
+ \doTCC & An ACK\# of the sequence number of the last send segment + the
+ size of the payload of that segment.\\ \hline
+ \doTCC & An ACK\# of the sequence number of the last send segment + the
+ size of the payload of that segment.\\ \hline
+ \doTCC & The ACK\# for the SEQ\# of the first segments which is
+ corrupted is received for each consecutive segment send.\\
+ $\vdots$ & \\
+ \setcounter{TCC}{12}
+ \doTCC & The ACK\# for the SEQ\# of the first segments which is
+ corrupted is received for each consecutive segment send.\\ \hline
+ \doTCC & The segment is not attributed to the current connection
+ and therefore no ACK\# is received. \\ \hline
+ \doTCC & The ACK\# for the SEQ\# of the first segments which is
+ corrupted is received for each consecutive segment send.\\ \hline
+ \doTCC & The ACK\# for the SEQ\# of the first segments which is
+ corrupted is received for each consecutive segment send.\\ \hline
+ \doTCC & The ACK\# for the SEQ\# of the first segments which is
+ corrupted is received for each consecutive segment send.\\ \hline
+ \doTCC & The ACK\# for the SEQ\# of the first segments which is
+ corrupted is received for each consecutive segment send.\\ \hline
+ \doTCC & The ACK\# for the SEQ\# of the first segments which is
+ corrupted is received for each consecutive segment send.\\ \hline
+ \end{tabular}
+\caption{Expected results of test cases}
+\label{tbl:testcases}
+\end{table}
+
+% Bij Ramons afwezigheid
+% Paul Vitero (linkerkant lange gang)
+% verdieping Mercator
+
+
+\begin{longtable}{|p{.2\linewidth}|p{.8\linewidth}|}
+ \hline
+
+ Nr & 1 \\\hline
+ Title & Connect to the \emph{echo-server} without sending a payload. \\\hline
+ Input & Generated packets. \\\hline
+ Expected output & \emph{Echo-server} accepts the connection. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/1.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 2 \\\hline
+ Title & Single valid request with 1byte payload. \\\hline
+ Input & Generated packets. \\\hline
+ Expected output & Packets echoed back by Echo-Server. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/1.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+% Nr & 3 \\\hline
+% Title & Single valid request with 65495bytes payload. \\\hline
+% Input & Generated packets. \\\hline
+% Expected output & Packets echoed back by Echo-Server. \\\hline
+% \multirow{2}{*}{Course of action}
+% & 1. Use the steps listed above in order to start the SUT. \\
+% & 2. Execute the script by running \texttt{\# code/client/tests/2.py} \\\hline
+% Valid trace & Verify that the script prints 'Success'. \\\hline
+% \hline
+
+ Nr & 3 \\\hline
+ Title & 5 valid requests with 1byte payload. \\\hline
+ Input & Generated packets. \\\hline
+ Expected output & Packets echoed back by Echo-Server, in the same order as the client sent them. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/3.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 4 \\\hline
+ Title & 5 valid requests with 65495bytes payload. \\\hline
+ Input & Generated packets with 65495bytes payload. \\\hline
+ Expected output & Packets echoed back by Echo-Server, in the same order as the client sent them. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/4.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 5 \\\hline
+ Title & 5 requests with 1byte payload with corrupted source port, destination port and checksum. The second segment is omitted in order to simulate a packet drop on the client side. \\\hline
+ Input & Generated packets with 1byte payload, two packets are swapped in position. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/5.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 6 \\\hline
+ Title & 5 requests with 65495byte payload with corrupted source port, destination port and checksum. The second segment is omitted in order to simulate a packet drop on the client side. \\\hline
+ Input & Generated packets with 65495byte payload, second generated packet is removed. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/6.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ %% HIER
+
+ Nr & 7 \\\hline
+ Title & 5 requests with 1byte corrupted payload, corrupted source and destination port. \\\hline
+ Input & Generated packets with 1byte payload, in these packets the payload byte, source and destination ports are increased by one. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/7.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 8 \\\hline
+ Title & 5 requests with 65495byte corrupted payload, corrupted source and destination port. \\\hline
+ Input & Generated packets with 65495byte payload, in these packets one of the payload bytes, source and destination ports are increased by one. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/8.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+
+ Nr & 9 \\\hline
+ Title & 5 requests with 1byte corrupted payload, invalid checksum and the second packet is dropped. \\\hline
+ Input & Generated packets with 1byte payload, in these packets the payload byte and checksum are increased by one. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/9.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 10 \\\hline
+ Title & 5 requests with 65495byte corrupted payload, invalid checksum and the second packet is dropped. \\\hline
+ Input & Generated packets with 65495byte payload, in these packets one of the payload bytes and the checksum are increased by one. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/10.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 11 \\\hline
+ Title & 5 requests with 65495byte corrupted payload that doesn't show up in checksum and corrupted destination port. The second packet is dropped. \\\hline
+ Input & Generated packets with 65495byte payload, in these packets one 16bit word in the payload is increased by 1 and another 16bit word is decreased by 1. The destination port is also increase by one and the second packet is removed. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/11.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+
+ Nr & 12 \\\hline
+ Title & 5 requests with 65495byte corrupted payload that doesn't show up in checksum and corrupted source port and checksum. The 2nd and 3rd packets are swapped. \\\hline
+ Input & Generated packets with 65495byte payload, in these packets one 16bit word in the payload, the source port and checksum are increased by one. A different 16bit word in the payload is decreased by one. The 2nd and 3rd packets are swapped in order to simulate a out-of-order transmission. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/12.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+
+ Nr & 13 \\\hline
+ Title & Single request with 1byte corrupted payload and corrupted source port, destination port and checksum. \\\hline
+ Input & Generated packet with 1byte payload, in this packet one byte in the payload, the source port and checksum are increased by one. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/13.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 14 \\\hline
+ Title & 5 requests with 1byte corrupted payload and corrupted source port, destination port and checksum. \\\hline
+ Input & Generated packets with 1byte payload, in these packet one byte in the payload, the source port and checksum are increased by one. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/14.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 15 \\\hline
+ Title & 5 requests with 65495byte corrupted payload and corrupted source port, destination port and checksum. \\\hline
+ Input & Generated packets with 65495byte payload, in these packets one byte in the payload, the source port and checksum are increased by one. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/15.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+ Nr & 16 \\\hline
+ Title & 5 requests with 65495byte corrupted payload that doesn't show up in the checksum, corrupted source port, destination port and checksum. \\\hline
+ Input & Generated packets with 65495byte payload, in these packets one 16bit word in the payload, the source port and checksum are increased by one. Another 16bit word in the payload is decreased by 1. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/16.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+
+ Nr & 17 \\\hline
+ Title & 5 requests with 1byte payload, corrupted destination port and checksum. The 2nd and 3rd packets are swapped \\\hline
+ Input & Generated packets with 1byte payload, in these packets the destination port and checksum are increased by one. The 2nd and 3rd packets are swapped in order to simulate an out-of-order transmission. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/17.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+
+
+ Nr & 18 \\\hline
+ Title & 5 requests with 65495byte payload, corrupted destination port and checksum. The 2nd and 3rd packets are swapped \\\hline
+ Input & Generated packets with 65495byte payload, in these packets the destination port and checksum are increased by one. The 2nd and 3rd packets are swapped in order to simulate an out-of-order transmission. \\\hline
+ Expected output & All packets are dropped resulting in a connection time-out. \\\hline
+ \multirow{2}{*}{Course of action}
+ & 1. Use the steps listed above in order to start the SUT. \\
+ & 2. Execute the script by running \texttt{\# code/client/tests/18.py} \\\hline
+ Valid trace & Verify that the script prints 'Success'. \\\hline
+ \hline
+\end{longtable}