From 4404ffd114c76bac819f2d70f89f8e2a12652738 Mon Sep 17 00:00:00 2001 From: Refik Hadzialic Date: Tue, 11 Oct 2011 13:12:51 +0200 Subject: Working on the report! --- notFinishedCode/Report/test.aux | 60 ++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 27 deletions(-) (limited to 'notFinishedCode/Report/test.aux') diff --git a/notFinishedCode/Report/test.aux b/notFinishedCode/Report/test.aux index 4bb90ba..3971941 100644 --- a/notFinishedCode/Report/test.aux +++ b/notFinishedCode/Report/test.aux @@ -6,39 +6,45 @@ \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction and Motivation}{3}} \@writefile{toc}{\contentsline {section}{\numberline {2}Requirements}{4}} \@writefile{toc}{\contentsline {section}{\numberline {3}Database design}{5}} +\citation{mysqlManual} +\citation{wiki} +\citation{wiki} \@writefile{toc}{\contentsline {section}{\numberline {4}Software design}{6}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Database access}{6}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{6}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Controlling the cell phones}{6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}subsection}{6}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces }}{7}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}subsection}{7}} \citation{beagleDataSheet} -\@writefile{toc}{\contentsline {section}{\numberline {5}Hardware design}{7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}BeagleBoard}{7}} -\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Cell phones}{8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{8}} -\@writefile{toc}{\contentsline {section}{\numberline {6}Communication protocol}{9}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Hanlder side}{9}} -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces }}{9}} -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces }}{9}} -\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces }}{9}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{10}} +\@writefile{toc}{\contentsline {section}{\numberline {5}Hardware design}{8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}BeagleBoard}{8}} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces }}{8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Cell phones}{9}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{9}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Communication protocol}{10}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Hanlder side}{10}} +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces }}{10}} +\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces }}{10}} +\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces }}{10}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{11}} \citation{sshTunnel} -\@writefile{toc}{\contentsline {section}{\numberline {7}Security and safety of the system}{11}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{11}} -\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces }}{11}} +\@writefile{toc}{\contentsline {section}{\numberline {7}Security and safety of the system}{12}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{12}} +\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces }}{12}} \citation{https} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Security on the web site}{12}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Security on the web site}{13}} \citation{https} \citation{https} -\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{16}} -\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{16}} -\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Results on the web page}{16}} +\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{17}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{17}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Results on the web page}{17}} \citation{pChart} -\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces }}{17}} -\@writefile{toc}{\contentsline {section}{\numberline {9}Conclusion}{18}} -\bibcite{site1}{1} -\bibcite{sshTunnel}{2} -\bibcite{https}{3} -\bibcite{pChart}{4} -\bibcite{beagleDataSheet}{5} -\newlabel{LastPage}{{}{19}} +\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces }}{18}} +\@writefile{toc}{\contentsline {section}{\numberline {9}Conclusion}{19}} +\bibcite{mysqlManual}{1} +\bibcite{wiki}{2} +\bibcite{sshTunnel}{3} +\bibcite{https}{4} +\bibcite{pChart}{5} +\bibcite{beagleDataSheet}{6} +\newlabel{LastPage}{{}{20}} -- cgit v1.2.3-55-g7522 From d75d95aea7b8b7943704e181bfa0eaf9758da367 Mon Sep 17 00:00:00 2001 From: Refik Hadzialic Date: Tue, 11 Oct 2011 14:54:02 +0200 Subject: Report writing! --- notFinishedCode/Report/ClientClass.png | Bin 0 -> 10718 bytes notFinishedCode/Report/ServerHandlerClass.png | Bin 0 -> 7930 bytes notFinishedCode/Report/test.aux | 60 +++++++++++-------- notFinishedCode/Report/test.log | 82 +++++++++++++++----------- notFinishedCode/Report/test.pdf | Bin 667102 -> 698250 bytes notFinishedCode/Report/test.tex | 54 ++++++++++++++--- notFinishedCode/Report/test.tex.backup | 50 ++++++++++++++-- notFinishedCode/Report/test.tex~ | 57 +++++++++++++++--- notFinishedCode/Report/test.toc | 30 +++++----- 9 files changed, 237 insertions(+), 96 deletions(-) create mode 100644 notFinishedCode/Report/ClientClass.png create mode 100644 notFinishedCode/Report/ServerHandlerClass.png (limited to 'notFinishedCode/Report/test.aux') diff --git a/notFinishedCode/Report/ClientClass.png b/notFinishedCode/Report/ClientClass.png new file mode 100644 index 0000000..9df72cc Binary files /dev/null and b/notFinishedCode/Report/ClientClass.png differ diff --git a/notFinishedCode/Report/ServerHandlerClass.png b/notFinishedCode/Report/ServerHandlerClass.png new file mode 100644 index 0000000..cfd4985 Binary files /dev/null and b/notFinishedCode/Report/ServerHandlerClass.png differ diff --git a/notFinishedCode/Report/test.aux b/notFinishedCode/Report/test.aux index 3971941..a73f014 100644 --- a/notFinishedCode/Report/test.aux +++ b/notFinishedCode/Report/test.aux @@ -13,38 +13,46 @@ \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Database access}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{6}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Controlling the cell phones}{6}} +\citation{socket} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces }}{7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}subsection}{7}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Client and Server model}{7}} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces }}{7}} +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces }}{8}} \citation{beagleDataSheet} -\@writefile{toc}{\contentsline {section}{\numberline {5}Hardware design}{8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}BeagleBoard}{8}} -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces }}{8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Cell phones}{9}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{9}} -\@writefile{toc}{\contentsline {section}{\numberline {6}Communication protocol}{10}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Hanlder side}{10}} -\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces }}{10}} -\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces }}{10}} -\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces }}{10}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{11}} +\@writefile{toc}{\contentsline {section}{\numberline {5}Hardware design}{9}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}BeagleBoard}{9}} +\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces }}{9}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Cell phones}{10}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{10}} +\citation{spin} +\citation{spin} +\citation{wiki} +\@writefile{toc}{\contentsline {section}{\numberline {6}Communication protocol}{11}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Hanlder side}{11}} +\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces }}{11}} +\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces }}{11}} +\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces }}{11}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{12}} \citation{sshTunnel} -\@writefile{toc}{\contentsline {section}{\numberline {7}Security and safety of the system}{12}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{12}} -\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces }}{12}} +\@writefile{toc}{\contentsline {section}{\numberline {7}Security and safety of the system}{13}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{13}} +\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces }}{13}} \citation{https} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Security on the web site}{13}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Security on the web site}{14}} \citation{https} \citation{https} -\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{17}} -\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{17}} -\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Results on the web page}{17}} +\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{18}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{18}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Results on the web page}{18}} \citation{pChart} -\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces }}{18}} -\@writefile{toc}{\contentsline {section}{\numberline {9}Conclusion}{19}} +\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces }}{19}} +\@writefile{toc}{\contentsline {section}{\numberline {9}Conclusion}{20}} \bibcite{mysqlManual}{1} \bibcite{wiki}{2} -\bibcite{sshTunnel}{3} -\bibcite{https}{4} -\bibcite{pChart}{5} -\bibcite{beagleDataSheet}{6} -\newlabel{LastPage}{{}{20}} +\bibcite{socket}{3} +\bibcite{spin}{4} +\bibcite{sshTunnel}{5} +\bibcite{https}{6} +\bibcite{pChart}{7} +\bibcite{beagleDataSheet}{8} +\newlabel{LastPage}{{}{21}} diff --git a/notFinishedCode/Report/test.log b/notFinishedCode/Report/test.log index 751d289..f9cb449 100644 --- a/notFinishedCode/Report/test.log +++ b/notFinishedCode/Report/test.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 11 OCT 2011 13:12 +This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 11 OCT 2011 14:52 entering extended mode %&-line parsing enabled. **test.tex @@ -298,70 +298,85 @@ Class scrartcl Info: You've told me to use the font selection of the element \tf@toc=\write4 \openout4 = `test.toc'. - [2] [3] -[4] [5] + [2] [3 + +] +[4 + +] [5] File: dbClass.png Graphic file (type png) File: serialPort.png Graphic file (type png) -[6 <./dbClass.png (PNG copy)>] [7 <./serialPort.png (PNG copy)>] - +[6 <./dbClass.png (PNG copy)>] + +File: ServerHandlerClass.png Graphic file (type png) + + + +File: ClientClass.png Graphic file (type png) + +[7 <./serialPort.png (PNG copy)> <./ServerHandlerClass.png (PNG copy)>] +[8 <./ClientClass.png (PNG copy)>] File: bb.jpg Graphic file (type jpg) - [8 <./bb.jpg>] [9] - + + [9 + + <./bb.jpg>] [10] + File: protocolCommunicationHandler.png Graphic file (type png) - File: protocolCommunicationcControllerReceiver.png Graphic file (type png) - + File: protocolCommunicationcControllerCaller.png Graphic file (type png) - [10 + [11 <./protocolCommunicationHandler.png (PNG copy)> <./protocolCommunicationcContr ollerReceiver.png (PNG copy)> <./protocolCommunicationcControllerCaller.png (PN G copy)>] LaTeX Font Info: External font `cmex10' loaded for size -(Font) <9> on input line 193. +(Font) <9> on input line 225. LaTeX Font Info: External font `cmex10' loaded for size -(Font) <5> on input line 193. - [11] - +(Font) <5> on input line 225. + [12] + File: sshTunnel.png Graphic file (type png) - [12 + [13 - <./sshTunnel.png (PNG copy)>] [13] [14] -LaTeX Font Info: Try loading font information for OMS+cmr on input line 356. + <./sshTunnel.png (PNG copy)>] [14] [15] +LaTeX Font Info: Try loading font information for OMS+cmr on input line 388. (/usr/share/texmf-texlive/tex/latex/base/omscmr.fd File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions ) LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <9> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 356. - [15] [16] [17] +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 388. + [16] [17] [18] LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <12> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 428. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 460. - + File: resultsImage.png Graphic file (type png) -[18 <./resultsImage.png (PNG copy)>] [19] -LaTeX Font Info: Try loading font information for T1+cmtt on input line 452. +[19 <./resultsImage.png (PNG copy)>] [20] +LaTeX Font Info: Try loading font information for T1+cmtt on input line 484. (/usr/share/texmf-texlive/tex/latex/base/t1cmtt.fd File: t1cmtt.fd 1999/05/25 v2.5h Standard LaTeX font definitions ) -AED: lastpage setting LastPage [20] (./test.aux) ) +AED: lastpage setting LastPage [21] (./test.aux) ) Here is how much of TeX's memory you used: - 4896 strings out of 495061 - 67749 string characters out of 1182621 - 255263 words of memory out of 3000000 - 8011 multiletter control sequences out of 15000+50000 + 4908 strings out of 495061 + 67986 string characters out of 1182621 + 255271 words of memory out of 3000000 + 8021 multiletter control sequences out of 15000+50000 18484 words of font info for 43 fonts, out of 3000000 for 9000 28 hyphenation exceptions out of 8191 36i,10n,45p,751b,1285s stack positions out of 5000i,500n,10000p,200000b,50000s @@ -376,11 +391,12 @@ nts/pk/ljfour/jknappen/ec/ecsx1095.600pk> -Output written on test.pdf (20 pages, 667102 bytes). +sr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi12.pfb> +Output written on test.pdf (21 pages, 698250 bytes). PDF statistics: - 612 PDF objects out of 1000 (max. 8388607) + 626 PDF objects out of 1000 (max. 8388607) 0 named destinations out of 1000 (max. 500000) - 46 words of extra memory for PDF output out of 10000 (max. 10000000) + 56 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/notFinishedCode/Report/test.pdf b/notFinishedCode/Report/test.pdf index 4a4dcd9..816602b 100644 Binary files a/notFinishedCode/Report/test.pdf and b/notFinishedCode/Report/test.pdf differ diff --git a/notFinishedCode/Report/test.tex b/notFinishedCode/Report/test.tex index 8998141..6475dee 100644 --- a/notFinishedCode/Report/test.tex +++ b/notFinishedCode/Report/test.tex @@ -91,7 +91,7 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei \tableofcontents %new page to start with -\newpage +\clearpage @@ -101,7 +101,7 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei \large In the following report, the authors will try to give you a brief insight into our team project. The goal of our project was to develop a mechanism for automatic testing of our University Telecommunication network. The Telecommunication network of University of Freiburg consists of: our own internal GSM and telephone network systems; GSM redirecting device (if one initiates a call to one of the four external GSM networks, it redirects the calls to: T-mobile, 02, Vodaphone or E-Plus); a SIP gateway for landline calls inside of Germany (sipgate.de) and international calls. Since we did not have access to internal servers, our strategy was to exploit the existing systems and infer the results out of our findings. Before we had started working on our project, we had to analyze the overall network to come up with test cases that contain the highest information content. The next step in our procedure was to implement our ideas into a working piece of software. Gradually we implemented a bit-by-bit of the final software. Every single step was accompanied by testing and validation procedures. At the end we connected all the ``black-boxes'' into one big piece of software. We have fulfilled our requests and goals and made a fully working and operable test software. Despite developing a working software, all the way along we thought about the simplicity of the usage of the software. In the following chapters we will describe in more detail our approach and how each subsystem works. -\newpage +\clearpage \section{Requirements} % chapter 2 \newpage \section{Database design} @@ -121,17 +121,32 @@ The method names are self-explanatory and do not require extra explanations. All Our first version of the developed program code for controlling the cell phones used predefined timed values to send commands instead of using a state controlled approach to confirm that every command was successfuly received and executed by the cell phone. It meant we had to make an enormous number of assumptions. In comparison to our second approach, to build a state controlled cell phone control class, -our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than timed approach. +our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than the timed approach. \begin{figure}[ht!] \centering \includegraphics[width=80mm]{serialPort.png} \caption[]{GSM class diagram for controlling the cell phones} \end{figure} -One can easyly apply the the class just by correctly defining the parameters: port address, baud rate and timeout. The former two are self-explanatory and the timeout parameter is used to define when the alarm function should raise a timeout exception. +One can easyly apply the class just by correctly defining the parameters: port address, baud rate and timeout. The former two are self-explanatory and the timeout parameter is used to define when the alarm function should raise a timeout exception. A timeout exception gets raised when the cell phone does not respond (i.e. when the cell phone enters a deadlock or delayed state.) We had used the serial port library inside of Python although we use USB cables to connect to our cell phones. One should be aware that our USB cables create a virtual serial port. More details on class design and an example can be found on our project wiki \cite{wiki}. -\subsection{subsection} -\newpage +\subsection{Client and Server model} +\cite{socket} + +\begin{figure}[ht!] + \centering + \includegraphics[width=97mm]{ServerHandlerClass.png} + \caption[]{Result image showing working, defected and not tested subsystems} +\end{figure} + +\begin{figure}[ht!] + \centering + \includegraphics[width=90mm]{ClientClass.png} + \caption[]{Result image showing working, defected and not tested subsystems} +\end{figure} + + +\clearpage \section{Hardware design} In our team project we had the option to choose all the required hardware ourself beside the two BeagleBoards, which we were supplied by Konrad and Dennis. Since one of the project goals was to reduce the costs as much as it was possible, we had tried to use some of the leftovers found in our lab. @@ -164,7 +179,11 @@ At the start we did not have a cable supplied for the Siemens S55 phone. We cont \subsection{Cables for the cell phones} Due to the fact that we had used 5 cell phones on a single computer, the best solution was to order 5 USB cables. Konrad bought 5 cables for 5 Siemens S55 cell phones. All of the cables have an USB2Serial chip converter inside of them. -Once they were plugged into the USB port, Ubuntu automatically recognized the cables and it created properly virtual ports. +Once they were plugged into the USB port, Ubuntu automatically recognized the cables and installed the drivers. +The virtual serial ports were created and could be found on \emph{/dev/ttyUSBx}, where $x$ is the automatically assigned number for the port. +Some of the cables had the cability to charge the Siemens S55 phones. +Konrad had opened several cables to solder the power supplies to some contacts and the problem was solved for all of the cables. + \clearpage \section{Communication protocol} @@ -188,7 +207,20 @@ Once they were plugged into the USB port, Ubuntu automatically recognized the ca \end{figure} \subsection{Verification of the protocol} -The verification results are listed here: +``SPIN is a model checker - a software tool for verifying models of physical +systems, in particular, computerized systems. First, a model is written that +describes the behavior of the system; then, correctness properties that express +requirements on the system's behavior are specified; finally, the model +checker is run to check if the correctness properties hold for the model, and, +if not, to provide a counterexample: a computation that does not satisfy a +correctness property.'' \cite{spin}. We modeled our simple protocol in SPIN using +the programming language PROMELA \cite{spin}. Since PROMELA is similar to C it was +not possible to ensure 100\% matching with Python but we had made the assumptions of it. +We modeled both sides, server and client side. As well as the server side being a caller +and a callee. It was important to find out if our protocol can be in a deadlock or delayed state. +For more details our model can be found on our wiki project page \cite{wiki}. +We had modeled also the chance that the call test was not successful, to make the model more +realistic. Our protocol idea was deadlock free and the verification results prove it: \begin{lstlisting} (Spin Version 6.1.0 -- 2 May 2011) + Partial Order Reduction @@ -453,7 +485,13 @@ If one of the fields is red it means the subsystem is not online or cannot be se \bibitem{wiki} \emph{[2011] GSM Selftest - Wiki - Lehrstuhl f\"{u}r Kommunikationssysteme}, accessed on 20.09.2011, available at \\ \url{http://lab.ks.uni-freiburg.de/projects/gsm-selftest/wiki}. + +\bibitem{socket} \emph{17.2. socket - Low-level networking interface}, accessed on 20.06.2011, available at +\url{http://docs.python.org/library/socket.html}. +\bibitem{spin} M. Ben-Ari \emph{Principles of the Spin Model Checker}, +Springer Verlag, Weizmann Institute of Science, Israel, ISBN: 978-1-84628-769-5, 2008. + \bibitem{sshTunnel} R. Natarajan, \emph{3 Steps to perform SSH login without password using ssh-keygen \& ssh-copy-id}, accessed on 18.08.2011, available at \url{http://goo.gl/fX68N}. diff --git a/notFinishedCode/Report/test.tex.backup b/notFinishedCode/Report/test.tex.backup index edabdf7..c163e2f 100644 --- a/notFinishedCode/Report/test.tex.backup +++ b/notFinishedCode/Report/test.tex.backup @@ -91,7 +91,7 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei \tableofcontents %new page to start with -\newpage +\clearpage @@ -101,7 +101,7 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei \large In the following report, the authors will try to give you a brief insight into our team project. The goal of our project was to develop a mechanism for automatic testing of our University Telecommunication network. The Telecommunication network of University of Freiburg consists of: our own internal GSM and telephone network systems; GSM redirecting device (if one initiates a call to one of the four external GSM networks, it redirects the calls to: T-mobile, 02, Vodaphone or E-Plus); a SIP gateway for landline calls inside of Germany (sipgate.de) and international calls. Since we did not have access to internal servers, our strategy was to exploit the existing systems and infer the results out of our findings. Before we had started working on our project, we had to analyze the overall network to come up with test cases that contain the highest information content. The next step in our procedure was to implement our ideas into a working piece of software. Gradually we implemented a bit-by-bit of the final software. Every single step was accompanied by testing and validation procedures. At the end we connected all the ``black-boxes'' into one big piece of software. We have fulfilled our requests and goals and made a fully working and operable test software. Despite developing a working software, all the way along we thought about the simplicity of the usage of the software. In the following chapters we will describe in more detail our approach and how each subsystem works. -\newpage +\clearpage \section{Requirements} % chapter 2 \newpage \section{Database design} @@ -121,14 +121,32 @@ The method names are self-explanatory and do not require extra explanations. All Our first version of the developed program code for controlling the cell phones used predefined timed values to send commands instead of using a state controlled approach to confirm that every command was successfuly received and executed by the cell phone. It meant we had to make an enormous number of assumptions. In comparison to our second approach, to build a state controlled cell phone control class, -our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than timed approach. +our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than the timed approach. \begin{figure}[ht!] \centering \includegraphics[width=80mm]{serialPort.png} \caption[]{GSM class diagram for controlling the cell phones} \end{figure} -\subsection{subsection} -\newpage +One can easyly apply the class just by correctly defining the parameters: port address, baud rate and timeout. The former two are self-explanatory and the timeout parameter is used to define when the alarm function should raise a timeout exception. +A timeout exception gets raised when the cell phone does not respond (i.e. when the cell phone enters a deadlock or delayed state.) We had used the serial port library inside of Python although we use USB cables to connect to our cell phones. One should +be aware that our USB cables create a virtual serial port. More details on class design and an example can be found on our project wiki \cite{wiki}. +\subsection{Client and Server model} +\cite{socket} + +\begin{figure}[ht!] + \centering + \includegraphics[width=97mm]{ServerHandlerClass.png} + \caption[]{Result image showing working, defected and not tested subsystems} +\end{figure} + +\begin{figure}[ht!] + \centering + \includegraphics[width=90mm]{ClientClass.png} + \caption[]{Result image showing working, defected and not tested subsystems} +\end{figure} + + +\clearpage \section{Hardware design} In our team project we had the option to choose all the required hardware ourself beside the two BeagleBoards, which we were supplied by Konrad and Dennis. Since one of the project goals was to reduce the costs as much as it was possible, we had tried to use some of the leftovers found in our lab. @@ -159,6 +177,12 @@ The first one, Siemens M45, had a cable supplied with it and it was not difficul At the start we did not have a cable supplied for the Siemens S55 phone. We controlled it over the Bluetooth port. \subsection{Cables for the cell phones} +Due to the fact that we had used 5 cell phones on a single computer, the best solution was to order 5 USB cables. +Konrad bought 5 cables for 5 Siemens S55 cell phones. All of the cables have an USB2Serial chip converter inside of them. +Once they were plugged into the USB port, Ubuntu automatically recognized the cables and installed the drivers. +The virtual serial ports were created and could be found on \emph{/dev/ttyUSBx}, where $x$ is the automatically assigned number for the port. +Some of the cables had the cability to charge the Siemens S55 phones. +Konrad had opened several cables to solder the power supplies to some contacts and the problem was solved for all of the cables. \clearpage @@ -183,6 +207,16 @@ At the start we did not have a cable supplied for the Siemens S55 phone. We cont \end{figure} \subsection{Verification of the protocol} +``SPIN is a model checker - a software tool for verifying models of physical +systems, in particular, computerized systems. First, a model is written that +describes the behavior of the system; then, correctness properties that express +requirements on the system's behavior are specified; finally, the model +checker is run to check if the correctness properties hold for the model, and, +if not, to provide a counterexample: a computation that does not satisfy a +correctness property.'' \cite{spin}. We modeled our simple protocol in SPIN using +a programming language called PROMELA \cite{spin}. Since PROMELA is similar to C it was +not possible to ensure 100\% matching with Python but we had made the assumptions of it. +We modeled both sides, server and client side. As well as the server side The verification results are listed here: \begin{lstlisting} (Spin Version 6.1.0 -- 2 May 2011) @@ -448,7 +482,13 @@ If one of the fields is red it means the subsystem is not online or cannot be se \bibitem{wiki} \emph{[2011] GSM Selftest - Wiki - Lehrstuhl f\"{u}r Kommunikationssysteme}, accessed on 20.09.2011, available at \\ \url{http://lab.ks.uni-freiburg.de/projects/gsm-selftest/wiki}. + +\bibitem{socket} \emph{17.2. socket - Low-level networking interface}, accessed on 20.06.2011, available at +\url{http://docs.python.org/library/socket.html}. +\bibitem{spin} M. Ben-Ari \emph{Principles of the Spin Model Checker}, +Springer Verlag, Weizmann Institute of Science, Israel, ISBN: 978-1-84628-769-5, 2008. + \bibitem{sshTunnel} R. Natarajan, \emph{3 Steps to perform SSH login without password using ssh-keygen \& ssh-copy-id}, accessed on 18.08.2011, available at \url{http://goo.gl/fX68N}. diff --git a/notFinishedCode/Report/test.tex~ b/notFinishedCode/Report/test.tex~ index c6742ce..65dc84e 100644 --- a/notFinishedCode/Report/test.tex~ +++ b/notFinishedCode/Report/test.tex~ @@ -91,7 +91,7 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei \tableofcontents %new page to start with -\newpage +\clearpage @@ -101,7 +101,7 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei \large In the following report, the authors will try to give you a brief insight into our team project. The goal of our project was to develop a mechanism for automatic testing of our University Telecommunication network. The Telecommunication network of University of Freiburg consists of: our own internal GSM and telephone network systems; GSM redirecting device (if one initiates a call to one of the four external GSM networks, it redirects the calls to: T-mobile, 02, Vodaphone or E-Plus); a SIP gateway for landline calls inside of Germany (sipgate.de) and international calls. Since we did not have access to internal servers, our strategy was to exploit the existing systems and infer the results out of our findings. Before we had started working on our project, we had to analyze the overall network to come up with test cases that contain the highest information content. The next step in our procedure was to implement our ideas into a working piece of software. Gradually we implemented a bit-by-bit of the final software. Every single step was accompanied by testing and validation procedures. At the end we connected all the ``black-boxes'' into one big piece of software. We have fulfilled our requests and goals and made a fully working and operable test software. Despite developing a working software, all the way along we thought about the simplicity of the usage of the software. In the following chapters we will describe in more detail our approach and how each subsystem works. -\newpage +\clearpage \section{Requirements} % chapter 2 \newpage \section{Database design} @@ -121,17 +121,32 @@ The method names are self-explanatory and do not require extra explanations. All Our first version of the developed program code for controlling the cell phones used predefined timed values to send commands instead of using a state controlled approach to confirm that every command was successfuly received and executed by the cell phone. It meant we had to make an enormous number of assumptions. In comparison to our second approach, to build a state controlled cell phone control class, -our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than timed approach. +our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than the timed approach. \begin{figure}[ht!] \centering \includegraphics[width=80mm]{serialPort.png} \caption[]{GSM class diagram for controlling the cell phones} \end{figure} -One can easyly apply the the class just by correctly defining the parameters: port address, baud rate and timeout. The former two are self-explanatory and the timeout parameter is used to define when the alarm function should raise a timeout exception. +One can easyly apply the class just by correctly defining the parameters: port address, baud rate and timeout. The former two are self-explanatory and the timeout parameter is used to define when the alarm function should raise a timeout exception. A timeout exception gets raised when the cell phone does not respond (i.e. when the cell phone enters a deadlock or delayed state.) We had used the serial port library inside of Python although we use USB cables to connect to our cell phones. One should be aware that our USB cables create a virtual serial port. More details on class design and an example can be found on our project wiki \cite{wiki}. -\subsection{subsection} -\newpage +\subsection{Client and Server model} +\cite{socket} + +\begin{figure}[ht!] + \centering + \includegraphics[width=97mm]{ServerHandlerClass.png} + \caption[]{Result image showing working, defected and not tested subsystems} +\end{figure} + +\begin{figure}[ht!] + \centering + \includegraphics[width=90mm]{ClientClass.png} + \caption[]{Result image showing working, defected and not tested subsystems} +\end{figure} + + +\clearpage \section{Hardware design} In our team project we had the option to choose all the required hardware ourself beside the two BeagleBoards, which we were supplied by Konrad and Dennis. Since one of the project goals was to reduce the costs as much as it was possible, we had tried to use some of the leftovers found in our lab. @@ -162,8 +177,13 @@ The first one, Siemens M45, had a cable supplied with it and it was not difficul At the start we did not have a cable supplied for the Siemens S55 phone. We controlled it over the Bluetooth port. \subsection{Cables for the cell phones} -Due to the fact that we had used 5 cell phones on a single computer, the best solution was to buy 5 USB cables. -Konrad ordered 5 cables for 5 Siemens S55 cell phones. +Due to the fact that we had used 5 cell phones on a single computer, the best solution was to order 5 USB cables. +Konrad bought 5 cables for 5 Siemens S55 cell phones. All of the cables have an USB2Serial chip converter inside of them. +Once they were plugged into the USB port, Ubuntu automatically recognized the cables and installed the drivers. +The virtual serial ports were created and could be found on \emph{/dev/ttyUSBx}, where $x$ is the automatically assigned number for the port. +Some of the cables had the cability to charge the Siemens S55 phones. +Konrad had opened several cables to solder the power supplies to some contacts and the problem was solved for all of the cables. + \clearpage \section{Communication protocol} @@ -187,7 +207,20 @@ Konrad ordered 5 cables for 5 Siemens S55 cell phones. \end{figure} \subsection{Verification of the protocol} -The verification results are listed here: +``SPIN is a model checker - a software tool for verifying models of physical +systems, in particular, computerized systems. First, a model is written that +describes the behavior of the system; then, correctness properties that express +requirements on the system's behavior are specified; finally, the model +checker is run to check if the correctness properties hold for the model, and, +if not, to provide a counterexample: a computation that does not satisfy a +correctness property.'' \cite{spin}. We modeled our simple protocol in SPIN using +the programming language PROMELA \cite{spin}. Since PROMELA is similar to C it was +not possible to ensure 100\% matching with Python but we had made the assumptions of it. +We modeled both sides, server and client side. As well as the server side being a caller +and a callee. It was important to find out if our protocol can be in a deadlock or delayed state. +For more details our model can be found on our wiki project page \cite{wiki}. +We had modeled also the chance that the call test was not successful, +Our protocol idea was deadlock free and the verification results are listed here: \begin{lstlisting} (Spin Version 6.1.0 -- 2 May 2011) + Partial Order Reduction @@ -452,7 +485,13 @@ If one of the fields is red it means the subsystem is not online or cannot be se \bibitem{wiki} \emph{[2011] GSM Selftest - Wiki - Lehrstuhl f\"{u}r Kommunikationssysteme}, accessed on 20.09.2011, available at \\ \url{http://lab.ks.uni-freiburg.de/projects/gsm-selftest/wiki}. + +\bibitem{socket} \emph{17.2. socket - Low-level networking interface}, accessed on 20.06.2011, available at +\url{http://docs.python.org/library/socket.html}. +\bibitem{spin} M. Ben-Ari \emph{Principles of the Spin Model Checker}, +Springer Verlag, Weizmann Institute of Science, Israel, ISBN: 978-1-84628-769-5, 2008. + \bibitem{sshTunnel} R. Natarajan, \emph{3 Steps to perform SSH login without password using ssh-keygen \& ssh-copy-id}, accessed on 18.08.2011, available at \url{http://goo.gl/fX68N}. diff --git a/notFinishedCode/Report/test.toc b/notFinishedCode/Report/test.toc index d1730e8..17b11fa 100644 --- a/notFinishedCode/Report/test.toc +++ b/notFinishedCode/Report/test.toc @@ -5,18 +5,18 @@ \contentsline {section}{\numberline {4}Software design}{6} \contentsline {subsection}{\numberline {4.1}Database access}{6} \contentsline {subsection}{\numberline {4.2}Controlling the cell phones}{6} -\contentsline {subsection}{\numberline {4.3}subsection}{7} -\contentsline {section}{\numberline {5}Hardware design}{8} -\contentsline {subsection}{\numberline {5.1}BeagleBoard}{8} -\contentsline {subsection}{\numberline {5.2}Cell phones}{9} -\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{9} -\contentsline {section}{\numberline {6}Communication protocol}{10} -\contentsline {subsection}{\numberline {6.1}Hanlder side}{10} -\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{11} -\contentsline {section}{\numberline {7}Security and safety of the system}{12} -\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{12} -\contentsline {subsection}{\numberline {7.2}Security on the web site}{13} -\contentsline {section}{\numberline {8}Web page}{17} -\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{17} -\contentsline {subsection}{\numberline {8.2}Results on the web page}{17} -\contentsline {section}{\numberline {9}Conclusion}{19} +\contentsline {subsection}{\numberline {4.3}Client and Server model}{7} +\contentsline {section}{\numberline {5}Hardware design}{9} +\contentsline {subsection}{\numberline {5.1}BeagleBoard}{9} +\contentsline {subsection}{\numberline {5.2}Cell phones}{10} +\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{10} +\contentsline {section}{\numberline {6}Communication protocol}{11} +\contentsline {subsection}{\numberline {6.1}Hanlder side}{11} +\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{12} +\contentsline {section}{\numberline {7}Security and safety of the system}{13} +\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{13} +\contentsline {subsection}{\numberline {7.2}Security on the web site}{14} +\contentsline {section}{\numberline {8}Web page}{18} +\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{18} +\contentsline {subsection}{\numberline {8.2}Results on the web page}{18} +\contentsline {section}{\numberline {9}Conclusion}{20} -- cgit v1.2.3-55-g7522