%RK Klausur Loesungsversuch (faui2k13) %compile with: latexmk -pdf $Dateinname \documentclass{article} \usepackage{amsmath} \usepackage{hyperref} %\usepackage{epsf} %tkitz stuff \usepackage{tikz} \usepackage{listings} \DeclareMathSizes{10}{10}{10}{10} \setlength{\parindent}{0pt} \title{Klausur M\"arz 2015 - L\"osungsvorschlag"} \author{L\"o"sungen: faui2k13, Latexversion: Sheppy} \begin{document} \maketitle \section{Allgemeine Fragen} \subsection{FTP} \textbf{a)}\\ - Verschiedene TCP-Verbinndungen f\"ur Daten\"ubertragung und Streuerung/Befehle\\ - Steuerung w\"ahrend Daten\"ubertragen m\"oglich\\ \textbf{b)}\\ - im Aktive Mode initialisiert der Server die Datenverbinndung zum Client nach Anfrage\\ - im Passive Mode tun dies der Client selbst, das hat den Vorteil, dass die Firewall des Clients dann wahrscheinlich nicht die Verbinndung des Servers blockt\\ \subsection{Adressierung} \textbf{a)}\\ - ARP \\ - BROTKAST an alle Ger\"ate mit der IP des gesuchten Ger\"ats als Payload\\ - gesuchtes Ger\"at antwortet mit eigener MAC\\ - Schicht 2 (Sicherungsschicht)\\ \textbf{b)}\\ - Nein, ARP ist bereits ein Gegenbeispiel\\ \textbf{c)}\\ Ja, da beide im gleichen Subnetz sind \begin{align*} &HostB\;00001010\;00000000\;000000|01\;00000100 \\ &HostC\;00001010\;00000000\;000000|11\;00001000 \end{align*} Teilnehmer: $(2^10)$-2 = 1022 \textbf{d)}\\ - Vorteil: Auch bitfehler im IP-Header k\"onnen erkannt werden\\ - Nachteil: Verletzung des Schichtenprinzips \subsubsection{Leitungskodierung} \textbf{a)}\\ - selbsttaktend: Empfänger kann Sendertakt aus Signal gewinnen \\ - gleichstromfrei: kein Gleichanteil im elektrischen Signal \\ \textbf{b)}\\\\ \begin{tikzpicture}[xscale=2] \draw (0,0) -- (0.25,0) -- (0.25,0.5) -- (0.75,0.5) -- (0.75,0) -- (1,0) -- (1,0.5) -- (1.25,0.5) -- (1.25,0) -- (1.5,0) -- (1.5,0.5) -- (1.75,0.5) -- (1.75,0) -- (2.25,0) -- (2.25,0.5) -- (2.5,0.5) -- (2.5,0) -- (2.75,0) -- (2.75,0.5) -- (3.25,0.5) -- (3.25,0) -- (3.5,0) -- (3.5,0.5) -- (3.75,0.5) -- (3.75,0) -- (4,0); \end{tikzpicture}\\ -\hspace{3mm}0\hspace{8mm}1\hspace{8.5mm}1\hspace{8mm}1\hspace{9mm}0\hspace{8mm} 0\hspace{8mm}1\hspace{8mm}1 \;\;- \\ \section{TCP} \subsection{Round-Trip-Time} \[ RTT = 2*d_{prop} + 10ms = 2*45ms+10ms = 100ms \] \subsection{TCP Verlauf} $A->B: SYN, Seq=1, Ack=XX \\ A<-B: SYN, ACK, Seq=XX+1, Ack=2 \\ A->B: ACK, Seq=2, Ack=XX+2 \\ \textbf{\textit{Verbindung erfolgreich aufgebaut}} \\ A<-B: Data, Seq=XX+2, Ack=3 \hspace*{1cm}|\;\;CW = 1 \\ A->B: ACK, Seq=3, Ack=XX+3 \\ \textbf{\textit{BANG!}} \\ A<-B: Data, Seq=XX+3, Ack=4 \\ A<-B: Data, Seq=XX+4, Ack=5 \hspace*{1cm}|\;\; CW = 2 \\ \textbf{\textit{Demnach weiterer Verlauf nach tau:}} \\ A<-B: Data, Seq=XX+3, Ack=4 \hspace*{1cm}|\;\; CW = 1 \\ A->B: ACK, Seq=4, Ack=XX+4 \\ A<-B: Data, Seq=XX+4, Ack=5 \hspace*{1cm}|\;\; CW = 2 \\ A<-B: Data, Seq=XX+5, Ack=6 \\ A->B: ACK, Seq=5, Ack=XX+5 \\ A->B: ACK, Seq=6, Ack=XX+6 \\ $\\ Nach dem 4. Paket wurden 5000 Bytes uebertragen. \subsection{Leistungsanalyse} $d_{prop} = 45ms$\\\\ $d_{trans} = \frac{L}{R} = 1ms\;\;denn\;10\frac{MBit}{s} = 10^6 \frac{Bit}{s} = 1250\frac{Byte}{s}$\\\\ $\frac{O}{L} = \frac{5000}{1250} = 4$\;\;\;\;$t = 2RTT + 4*1ms + 4*45ms = 384 (mit\;RTT\;als\;100ms)$ \newpage \section{Programieraufgabe TCP-FIN} \begin{lstlisting}[language=java] public class TCPFIN extends base { final int FIN_WAIT_1 = 1; final int FIN_WAIT_2 = 2; final int CLOSING = 3; final int TIME_WAIT = 4; final int CLOSED = 5; int state; void close() throws IOException { state = FIN_WAIT_1; send(FIN); } void receive(int flag) throws IOException { if (flag == FIN) { if (state == FIN_WAIT_1) { state = CLOSING; } else if (state == FIN_WAIT_2) { state = TIME_WAIT; startTimer(); } send(ACK); } else if (flag == ACK) { if (state == FIN_WAIT_1) { state = FIN_WAIT_2; } else if (state == CLOSING) { state = TIME_WAIT; startTimer(); } } } void timeout() throws WrongStateException { if (state != TIME_WAIT) { throw new WrongStateException(); } state = CLOSED; } } \end{lstlisting} \newpage %unformated codeblock end \section{Routingverfahren} \subsection{Routingverfahren} \subsubsection{Darstellung} \begin{tikzpicture} %Knoten \draw(0,2) circle [radius=0.3]; \draw(3,2) circle [radius=0.3]; \draw(6,2) circle [radius=0.3]; \draw(0,0) circle [radius=0.3]; \draw(3,0) circle [radius=0.3]; %Beschriftung Knoten \node[purple] at (0,2) {P}; \node[purple] at (3,2) {A}; \node[purple] at (6,2) {S}; \node[purple] at (0,0) {C}; \node[purple] at (3,0) {B}; %Linien \draw (0.3,0) -- (2.7,0); \draw (0,0.3) -- (0,1.7); \draw (0.3,2) -- (2.7,2); \draw (3,0.3) -- (3,1.7); \draw (3.3,2) -- (5.7,2); \draw (3.3,0) -- (6,1.7); \draw (3,0.3) -- (0,1.7); %Beschriftungen Linien \node [left,red] at (0,1) {1}; \node [above,red] at (1.5,2) {8}; \node [above,red] at (1.5,1) {4}; \node [below,red] at (1.5,0) {2}; \node [left,red] at (3,1) {2}; \node [red] at (4.5,1) {4}; \node [above,red] at (4.5,2) {1}; \end{tikzpicture} \subsubsection{Minimal aufspannender Baum} \begin{tabular}{| l | c | c | c | c | c |} \hline N' & D(A),p(A) & D(B),p(B) & D(C),p(C) & D(P),p(P) \\ \hline S & 1S & 4S & & \\ \hline SA & 1S & 3A & & 9A \\ \hline SAB & 1S & 3A & 5B & 7B \\ \hline SABC & 1S & 3A & 5B & 6C \\ \hline \end{tabular} \subsection{Medienzugriff} \textbf{a)}\\ \\ \begin{tabular}{|l|l|l|} \hline Zeit (in Bit-Zeiten) & Ereignis & Erkl\"a"rung (nicht gefordert) \\ \hline t = 0 & A und B beginnen das Senden & \\ \hline t = 225 & A und B erkennen Kollision & $+=d_{prop}$ \\ \hline t = 273 & Ende des Jam-Signals & $+=d_{jam}$ \\ \hline t = 498 & letztes Bit kommt zu A & $+=d_{prop}$ \\ \hline t = 594 & A beginnt mit \"U"bertragung & $+=d_{wait}$ \\ \hline t = 785 & B \"u"berprüft ob Kanal frei ist& $273+d_{back}$ Kanal-\"Uberpr\"ufung von 785-881 \\ \hline t = 1427 & B beginn mit \"Ubertragung" & $1331$ (letztes Bit von a) + $96 d_{wait}$ \\ \hline \end{tabular}\\ \\ \\ \textbf{b)}\\ Nein denn Rahmengr\"osse $<=$ Backoffgr\"osse" und ein Konten geht immer in Backoff mit Faktor 1 und der andere mit 0. \\\\\\ \begin{small} Diese Sammlung bassiert auf dem RK L\"osungspad des faui2k13 (\url{https://pad.stuve.fau.de/p/RK}) und enthält möglicherweise Fehler! \end{small} \end{document}