+
+%
+% wat ik ook probeer ik krijg de eerste collum
+% zijn tekst niet verticaal gecentered
+%
+
+
+\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, second generated segment 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/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 segments with 65495byte payload, second generated segment 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. The second segment 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/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. 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/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 segment 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 segment with 1byte payload, in this segment 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 segment 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}
+
+%\begin{tabularx}{\linewidth}{| l | X|}
+%\hline
+%Nr & 1 \\\hline
+%Title & Single valid request. \\\hline
+%Input & Pcap file with prerecorded valid packets. \\\hline
+%Expected output & Pcap file with valid response to request. \\\hline
+%Course of action & \begin{enumerate}
+% \item Execute \emph{./scripts/tests/case1-single-valid.sh}
+% \item Load \emph{output/case1.pcap} with ...
+%\end{enumerate} \\\hline
+%Valid trace & \begin{enumerate}
+% \item \textbf{Hier packets benoemen?}
+%\end{enumerate} \\\hline
+%\end{tabularx}
+%
+%\begin{tabularx}{\linewidth}{| l | X|}
+% \hline
+% Nr & 2 \\\hline
+%Title & Single request with corrupted checksum. \\\hline
+% Input & Pcap file used as \emph{test-case 1} input. \\\hline
+% Expected output & No response from SUT, logs with rejected packets. \\\hline
+% Course of action & \begin{enumerate}
+% \item Load input pcap file into ....
+% \item Corrupt checksum of loaded packets.
+% \item Save resulting packets as pcap file.
+% \item Load new pcap file into ...
+% \item Replay new pcap file.
+% \item Record SUT response using...
+% \item Extract log with rejected packets.
+% \item Save recorded packets as a pcap file.
+% \item Analyze packets in resulting file.
+% \end{enumerate} \\\hline
+% Valid trace & \begin{enumerate}
+% \item \textbf{Aangeven welke packets corrupted zijn?}
+% \end{enumerate} \\\hline
+%\end{tabularx}
+%\end{table}