% 
% Network programming Lab sum report
%
% authors:
%   Χρήστος Χουτουρίδης ΑΕΜ 8997
%   cchoutou@ece.auth.gr


% Document configuration
\newcommand{\ClassName}{Δίκτυα Υπολογιστών Ι}
\newcommand{\DocTitle}{Εργασία δικτυακού προγραμματισμού I}
\newcommand{\InstructorName}{Δημήτριος Μητράκος}
\newcommand{\InstructorMail}{mitrakos@eng.auth.gr}
\newcommand{\CurrentDate}{\today}

\input{AuthReport.tex}

%\renewcommand{\AuthorName}{Χρήστος Χουτουρίδης}
%\renewcommand{\AuthorMail}{cchoutou@ece.auth.gr}
%\renewcommand{\AuthorAEM}{8997}

%\setFancyHead{\ClassName}{Χρήστος Χουτουρίδης 8997}
\fancyhead[L]{\ClassName}
\fancyhead[R]{Χρήστος Χουτουρίδης 8997}

% Document
% =================
\begin{document}

\FirstPage

\tableofcontents
%\listoffigures
%\listoftables

\section{Εισαγωγή}
Η εργασία αυτή αφορά μια εφαρμογή δικτυακού προγραμματισμού που αναπτύχθηκε σε γλώσσα \eng{Java.}
Η εφαρμογή χρησιμοποιήθηκε ως εργαλείο επικοινωνίας με τον \eng{server} του εργαστηρίου “\textbf{Ιθάκη}”, ώστε να πραγματοποιήσει μία σειρά από μετρήσεις και λήψεις δεδομένων.
Με τα δεδομένα  των μετρήσεων μπορέσαμε να εξάγουμε συμπεράσματα τόσο για την χρονική απόκριση του \eng{server} και του καναλιού επικοινωνίας, όσο και για την πιθανότητα εσφαλμένης μετάδοσης δεδομένων.
Για την επεξεργασία των δεδομένων και την παρουσίαση των αποτελεσμάτων χρησιμοποιήθηκε το \eng{matlab.}

\section{Παραδοτέα}
Στο αρχείο που μεταφορτώνεται στην Ιθάκη υπάρχουν:
\begin{itemize}
    \item Οι αναφορές σε μορφή \eng{pdf.}
    \item Ο κατάλογος \eng{\textbf{matlab}} που περιέχει τον κώδικα που χρησιμοποιήθηκε για την επεξεργασία και μορφοποίηση των αποτελεσμάτων, καθώς και τα δεδομένα από τις συνόδους.
    \item Ο κατάλογος \eng{\textbf{src}} που περιέχει τον κώδικα της εφαρμογής.
    \item Ο κατάλογος \eng{\textbf{doc}} που περιέχει την τεκμηρίωση του κώδικα σε μορφή \eng{html.}
\end{itemize}
Τέλος στον σύνδεσμο \href{https://git.hoo2.net/hoo2/virtualModem}{\eng{git.hoo2.net/hoo2/virtualModem}} υπάρχει το \textbf{αποθετήριο με τον κώδικα} της εφαρμογής, τον κώδικα των αναφορών καθώς και τον κώδικα \eng{matlab} που χρησιμοποιήσαμε για να επεξεργαστούμε τα δεδομένα.

% Backround - modem section
% ============================
\section{Γενικά περί \eng{modem}}
Ξεκινώντας από την ονομασία τους, ο όρος \eng{modem} προέρχεται από τη συνένωση των λέξεων \eng{modulator-demodulator.}
Πρόκειται για ηλεκτρονική συσκευή η οποία είναι ικανή για την μετάδοση δεδομένων από ένα ηλεκτρονικό υπολογιστή σε έναν άλλο.
Ιστορικά οι συσκευές αυτές συνήθως χρησιμοποιούσαν τις τηλεφωνικές γραμμές.
Τα πρώτα \eng{modem} ήταν τα \eng{\textit{bell 101}} και άρχισαν να παράγονται μαζικά το 1958 από την εταιρία \eng{AT\&T}\cite{bell-101}, ώστε να χρησιμοποιηθούν στο υπολογιστικό σύστημα \eng{SAGE}\cite{sage}.
Ένα χαρακτηριστικό των \eng{modem,} το οποίο βρίσκεται κάτω από συνεχή έρευνα για βελτίωση, είναι η ταχύτητα δεδομένων τα οποία μπορούν να μεταδώσουν και η οποία μετράται σε \eng{bit/sec} ή \eng{bps.}
Για το σκοπό αυτό αναπτύχθηκαν πολλά πρωτόκολλα και τεχνολογίες.

\par Κατά τα τέλη της δεκαετίας του 1990 αρκετές εταιρίες ανταγωνίζονται για να επιτύχουν καλύτερες ταχύτητες μετάδοσης με αποτέλεσμα τον Φεβρουάριο του 1998, η παγκόσμια ένωση τηλεπικοινωνιών να ανακοινώνει το πρότυπο \eng{v90}\cite{itu_v90}.
Δύο χρόνια αργότερα η ίδια το βελτιώνει, παρουσιάζοντας το \eng{v92}\cite{itu_v92}, το οποίο χρησιμοποιεί διαμόρφωση \eng{\textbf{PCM},} τόσο για την λήψη, όσο και για την αποστολή δεδομένων.
Η σπουδαιότητα αυτού φαίνεται από το γεγονός οτι το \eng{PCM} χρησιμοποιείται ευρέως μέχρι και σήμερα.

\subsection{\eng{PCM - Pulse code modulation}}
\WrapFigure{0.5}{R}{fig:pcm-modulator}{pcm-modulator.png}{Διάγραμμα ενός \eng{PCM}}
Η διαμόρφωση \eng{PCM} είναι η απλούστερη μορφή κωδικοποίησης μιας κυματομορφής.
Το ζητούμενο είναι να μετατραπεί ένα αναλογικό σήμα σε ψηφιακή πληροφορία και το ανάποδο.
Ένας κωδικοποιητής \eng{PCM} χρησιμοποιείται για την παραγωγή ψηφιακής πληροφορίας από ένα αναλογικό σήμα, ενώ ένας αποκωδικοποιητής για αντίθετο.
Οι κωδικοποιητές \eng{PCM} αποτελούνται από τρία βασικά μέρη.
Ένα \textbf{δειγματολήπτη}, ένα \textbf{κβαντιστή} και ένα \textbf{κωδικοποιητή}.

\par Τα στοιχεία που έκαναν την διαμόρφωση \eng{PCM} μια από τις ποιο βασικές τεχνικές κωδικοποίησης είναι:
\begin{itemize}
    \item Η απλότητα του υλικού που απαιτείται για την υλοποίηση.
    \item Η μή χρησιμοποίηση φέροντος.
    \item Η ευρωστία απέναντι στους θορύβους και τις παρεμβολές.
    \item Η ασφάλεια στη μετάδοση, καθώς διευκολύνεται η χρήση κρυπτογράφησης.
\end{itemize}

\subsection{Αρχή λειτουργίας \eng{PCM}}
Όπως φαίνεται και στο σχήμα \ref{fig:pcm-modulator}, αρχικά το σήμα δειγματοληπτείται.
Εδώ ο δειγματολήπτης πρέπει να χρησιμοποιήσει μια συχνότητα μεγαλύτερη από τη συχνότητα \eng{Nyquist}\cite{shannon-1949}.
Έπειτα το δειγματοληπτημένο σήμα διέρχεται από τον κβαντιστή, απ' όπου και εξέρχεται σε πεπερασμένες στάθμες πλάτους.
Αυτό επιτυγχάνεται καθώς ο κβαντιστής αλλάζει την τιμή πλάτους του σήματος εξόδου σε προκαθορισμένες διακριτές τιμές, επιλέγοντας κάθε φορά μια τιμή που είναι κοντινότερη σε αυτή του σήματος εισόδου.
Τέλος η κάθε στάθμη κωδικοποιείται σε ένα ψηφιακό αριθμό, ομαδοποιείται σε ψηφιακές λέξεις των \eng{n bits} και εξέρχεται από τη διάταξη.

\subsection{\eng{ADSL}}
\WrapFigure{0.5}{R}{fig:adsl-frequency}{ADSL_frequency.png}{\eng{Βandwith} συχνοτήτων που χρησιμοποιείται για φωνή, αποστολή και λήψη δεδομένων μιας γραμμής \eng{ADSL.}}
Μια ποιο πρόσφατη τεχνολογία στο χώρο των \eng{modem,} είναι η \eng{DSL (digital subscriber line).}
Σε αυτή την τεχνολογία γίνεται χρήση ενός μεγαλύτερου εύρους συχνοτήτων από αυτό της φωνής μιας τηλεφωνικής γραμμής.
Με αυτό τον τρόπο υπάρχει δυνατότητα για μετάδοση δεδομένων με μεγαλύτερο ρυθμό.
Μια υλοποίηση αυτής της τεχνολογίας είναι το \eng{ADSL (Asymmetric digital subscriber line)\cite{ADSL_ANSI-1998}\cite{w.Stallings},} όπου το \eng{bandwith} συχνοτήτων που χρησιμοποιείται για αποστολή δεδομένων είναι διαφορετικού μεγέθους από αυτό που χρησιμοποιείται για την λήψη (σχήμα \ref{fig:adsl-frequency}).

% Session 1 analysis
% ============================
\section{Ανάλυση πειραματικών δεδομένων}
\subsection{Πρώτη σύνοδος}
\InsertFigure{0.9}{fig:E7837-dist}{session1/E7837-dist.png}
{Κατανομή του χρόνου απόκρισης του συστήματος για αποστολές\eng{echo} 40 λεπτών}
Με βάση την απόκριση του συστήματος στα πακέτα \eng{echo G1} της πρώτης συνόδου, παράξαμε την κατανομή που φαίνεται στο σχήμα \ref{fig:E7837-dist}.

\par Με μια πρώτη ματιά μπορούμε να διακρίνουμε ότι ο μέσος χρόνος απόκρισης που φαίνεται στον κύριο λοβό, είναι περίπου 120 \eng{msec}, ενώ ακόμα αυτός είναι μή συμμετρικός και μετατοπισμένος προς τα αριστερά.
Ακόμα η κατανομή παρουσιάζει εκτός του κύριου λοβού δύο ακόμα μικρότερους λοβούς σε χρόνους περί τα 180 και 210 \eng{msec} αντίστοιχα.

\par
\InsertFigure{0.9}{fig:ARQ1-dist}{session1/ARQ-dist.png}
{Κατανομή του χρόνου απόκρισης του συστήματος για αποστολές\eng{ARQ} 40 λεπτών}
Αντίστοιχα με βάση την απόκριση του συστήματος για αποστολές με το μηχανισμό \eng{ARQ G2} της πρώτης συνόδου παράξαμε την κατανομή του σχήματος \ref{fig:ARQ1-dist}.
Εδώ μπορούμε να διακρίνουμε επιπλέον μικρούς λοβούς οι οποίοι αφορούν τις κατανομές για πακέτα τα οποία χρειάστηκαν περισσότερες από μία αποστολές.

\par Εύκολα μπορεί κάποιος να παρατηρήσει πως οι μικρότεροι λοβοί είναι μια “σχεδόν μικρογραφία” του κύριου.
Αυτό μας οδηγεί στο συμπέρασμα πως δεν πρόκειται για απόκριση που οφείλεται στον \eng{server} της Ιθάκης, αλλά ίσως κάποια διαφορετική διαδρομή που ακολούθησαν τα συγκεκριμένα πακέτα, η οποία παίρνει περισσότερο χρόνο.
Φυσικά δεν μπορούμε να αποκλείσουμε τον \eng{server,} καθώς κάλλιστα και αυτός θα μπορούσε να δημιουργεί τεχνικά τις ίδιες καθυστερήσεις.
Το γεγονός όμως ότι δημιουργούνται λοβοί, τόσο ο κύριος όσο και οι μικρότεροι, έγκειται στο ότι οι διαδρομές που ακολουθούν τα πακέτα είναι συγκεκριμένες και πεπερασμένες.

\par Στο γράφημα του σχήματος \eng{G3} της πρώτης συνόδου φαίνεται ο αριθμός τον εκπομπών ανά πακέτο αλλά και ο κανονικοποιημένος αριθμός των επανεκπομπών.
Αυτός αντιστοιχεί ουσιαστικά στην πιθανότητα που έχει κάποιο πακέτο να χρειαστεί επανεκπομπή.

\par Η εκτιμώμενη συνάρτηση που προσεγγίζει την πιθανότητα του αριθμού των επανεκπομπών, με βάση τα αποτελέσματα των μετρήσεων της πρώτης συνόδου είναι εκθετική και ακολουθεί την εξίσωση:
\[
    P(n) = 0.740089 e^{-1.36012n}
\]
Όπου \eng{n}, ο αριθμός των επανεκπομπών.

% Session 2 analysis
% ============================
\subsection{Δεύτερη σύνοδος}
\InsertFigure{0.9}{fig:E1510-dist}{session2/E1510-dist.png}
{Κατανομή του χρόνου απόκρισης του συστήματος για αποστολές\eng{echo} 60 λεπτών}
Με βάση την απόκριση του συστήματος στα πακέτα \eng{echo G1} της δεύτερης συνόδου, παράξαμε την κατανομή που φαίνεται στο σχήμα \ref{fig:E1510-dist}.

\par Αρχικά βλέπουμε ότι το σύστημα έχει διπλό “κύριο” λοβό.
Αυτό πρόκυψε γιατί τα δεδομένα λήφθηκαν με σύνδεση μέσω \eng{GSM} και όπως φαίνεται και στο γράφημα \eng{G1} της δεύτερης συνόδου, περίπου μετά τα πρώτα 10000 πακέτα, η απόκριση του συστήματος μειώθηκε.
Η χρήση της γραμμής του \eng{GSM} έγινε λόγω τεχνικών προβλημάτων στην επίγεια γραμμή.
Παρόλα αυτά μπορούμε να παρατηρήσουμε πως οι κύριοι λοβοί δεν παρουσιάζουν την ασυμμετρία που είχαν στις μετρήσεις με την επίγεια γραμμή που είχαμε στην πρώτη σύνοδο.

\par
\InsertFigure{0.9}{fig:ARQ2-dist}{session2/ARQ-dist.png}
{Κατανομή του χρόνου απόκρισης του συστήματος για αποστολές\eng{ARQ} 60 λεπτών}
Αντίστοιχα με βάση την απόκριση του συστήματος για αποστολές με το μηχανισμό \eng{ARQ G2} της δεύτερης συνόδου παράξαμε την κατανομή του σχήματος \ref{fig:ARQ2-dist}.
Εδώ χρησιμοποιήθηκε πάλι η επίγεια γραμμή, καθώς η βλάβη αποκαταστάθηκε.
Μπορούμε και σε αυτή την περίπτωση, όπως ακριβώς και στην αντίστοιχη της πρώτης συνόδου, να διακρίνουμε επιπλέον μικρούς λοβούς οι οποίοι αφορούν τις κατανομές για πακέτα τα οποία χρειάστηκαν περισσότερες από μία αποστολές.
Αυτή τη φορά η λοβοί είναι πολύ μικρότεροι, καθώς η πιθανότητα σφάλματος αυτή τη φορά είναι μικρότερη.

\par Στο γράφημα του σχήματος \eng{G3} της δεύτερης συνόδου φαίνεται ο αριθμός τον εκπομπών ανά πακέτο αλλά και ο κανονικοποιημένος αριθμός των επανεκπομπών.
Αυτός και εδώ αντιστοιχεί στην πιθανότητα που έχει κάποιο πακέτο να χρειαστεί επανεκπομπή.

\par Η εκτιμώμενη συνάρτηση που προσεγγίζει την πιθανότητα του αριθμού των επανεκπομπών, με βάση τα αποτελέσματα των μετρήσεων της δεύτερης συνόδου είναι επίσης εκθετική και ακολουθεί την εξίσωση:
\[
    P(n) = 0.851462 e^{-1.90528n}
\]
Όπου \eng{n}, ο αριθμός των επανεκπομπών.

% Epilogue
% ============================
\section{Επίλογος}
Συνολικά παρατηρούμε πως οι αποκρίσεις δεν έχουν σταθερή συμπεριφορά, κάτι που λέει πολλά για το περιβάλλον στο οποίο πρέπει να “ζουν” οι εφαρμογές που επικοινωνούν με το δίκτυο.
Κατά την εκπόνηση μόνο της παρούσας είχαμε τεχνικά προβλήματα στην επίγεια γραμμή όπως η απώλεια πακέτων ακόμη και στο \eng{ping.}
Παρόλα αυτά θεωρούμε ότι καταφέραμε να δημιουργήσουμε μια εφαρμογή που να “μιλάει” τη γλώσσα της \textbf{Ιθάκης} και να μπορεί να λάβει μετρήσεις και δεδομένα με σταθερότητα.
Κλείνοντας την παρούσα εργασία μπορούμε να πούμε πως μας πρόσφερε αρκετό έδαφος για πειραματισμό και αυτό είναι κάτι που εκτιμούμε ιδιαίτερα.

% References
% ============================
\begin{thebibliography}{100}
    
\bibitem{bell-101}
\href{http://ethw.org/Bell_Telephone_Laboratories,_Inc._List_of_Significant_Innovations_\%26_Discoveries_(1925-1983)}{\eng{Bell Telephone Laboratories, Inc. List of Significant Innovations \& Discoveries (1925-1983)}}

\bibitem{sage}
\eng{Kent C. Redmond \& Thomas M. Smith (2000). From Whirlwind to MITRE: The R\&D Story of the SAGE Air Defense Computer. MIT Press. ISBN 978-0-262-26426-6.(20th of April 1951 - p.1, National Security Act 1947 - p.12, April 1947 - p.13)}

\bibitem{itu_v90}
\href{http://www.itu.int/newsarchive/press_releases/1998/04.html}{\eng{"Agreement reached on 56K Modem standard". International Telecommunication Union. 9 February 1998}}

\bibitem{itu_v92}
\href{http://modemsite.com/56k/v92.asp}{\eng{Modern site: V.92}}

\bibitem{shannon-1949}
\eng{Shannon, Claude E. (January 1949). "Communication in the presence of noise". Proceedings of the Institute of Radio Engineers. 37 (1): 10–21}

\bibitem{ADSL_ANSI-1998}
\eng{ANSI T1.413-1998 "Network and Customer Installation Interfaces – Asymmetric Digital Subscriber Line (ADSL) Metallic Interface." (American National Standards Institute 1998)}

\bibitem{w.Stallings}
\eng{Data and Computer Communications, William Stallings, ISBN 0-13-243310-9, ISBN 978-0-13-243310-5}
    
\end{thebibliography}

\end{document}