mirror of
https://gitlab.cs.fau.de/ik15ydit/latexandmore.git
synced 2024-11-27 06:05:03 +01:00
192 lines
6.9 KiB
TeX
192 lines
6.9 KiB
TeX
%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}
|