2015-10-14 14:17:01 +02:00
%RK Klausur Loesungsversuch (faui2k13)
2015-10-19 21:28:22 +02:00
%compile with: latexmk -pdf $Dateinname
2015-10-14 14:17:01 +02:00
\documentclass { article}
\usepackage { amsmath}
2015-10-19 21:28:22 +02:00
\usepackage { hyperref}
2015-10-14 21:44:38 +02:00
%\usepackage{epsf}
2015-10-19 17:08:39 +02:00
%tkitz stuff
\usepackage { tikz}
\usepackage { listings}
2015-10-14 14:17:01 +02:00
\DeclareMathSizes { 10} { 10} { 10} { 10}
\setlength { \parindent } { 0pt}
2015-10-19 21:28:22 +02:00
\title { Klausur M\" arz 2015 - L\" osungsvorschlag"}
\author { L\" o"sungen: faui2k13, Latexversion: Sheppy}
2015-10-14 14:17:01 +02:00
\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 \\
2015-10-19 17:08:39 +02:00
\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 } + 10 ms = 2 * 45 ms + 10 ms = 100 ms \]
\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 } = 45 ms $ \\ \\
$ d _ { trans } = \frac { L } { R } = 1 ms \; \; denn \; 10 \frac { MBit } { s } =
10^ 6 \frac { Bit} { s} = 1250\frac { Byte} { s} $ \\ \\
$ \frac { O } { L } = \frac { 5000 } { 1250 } = 4 $ \; \; \; \; $ t = 2 RTT + 4 * 1 ms + 4 * 45 ms = 384 ( mit \; RTT \; als \; 100 ms ) $
\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 |}
2015-10-19 21:28:22 +02:00
\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
2015-10-19 17:08:39 +02:00
\end { tabular}
2015-10-19 21:28:22 +02:00
\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}
2015-10-19 17:08:39 +02:00
\end { document}