latexandmore/RK/KlausurLV_WS1415_Maerz.tex

192 lines
6.9 KiB
TeX
Raw Normal View History

%RK Klausur Loesungsversuch (faui2k13)
2015-10-19 21:28:22 +02:00
%compile with: latexmk -pdf $Dateinname
\documentclass{article}
\usepackage{amsmath}
2015-10-19 21:28:22 +02:00
\usepackage{hyperref}
2015-10-14 21:44:38 +02:00
%\usepackage{epsf}
%tkitz stuff
\usepackage{tikz}
\usepackage{listings}
\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}
\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 |}
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
\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}
\end{document}