-
Notifications
You must be signed in to change notification settings - Fork 5
/
fragment_netzwerke.tex
125 lines (103 loc) · 7.21 KB
/
fragment_netzwerke.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
\section{Netzwerke und Interprozess-Kommunikation}
\question{Wozu verwendet man \textit{Kanäle} bzw. \textit{Ports}? Was ist das?}
\begin{answer}
Kommunikation zwischen zwei Prozessen setzt die Benennung der Partner voraus. Besser wäre es, hier den Kanal zu benennen, über den sie kommunizieren. Die Partner bleiben dadurch ,,anonym''. Ports geben an, wohin gesendet werden soll. Sie werden verwendet, wenn es nur einen Sender oder Empfänger auf einem Kanal gibt. Durch Ports ist eine dynamische Zuordnung zu Prozessen möglich.
\end{answer}
\question{Was ist ein \textit{guarded command}? Warum kann die Verwendung eines solchen Konzepts gerade im Zusammenhang mit Nachrichtenaustausch interessant sein?}
\begin{answer}
Guarded commands tauchen im Protokoll ,,CSP'' (Communicating Sequential Processes) auf, welches das Beschreiben von Algorithmen mit synchronem Nachrichtenaustausch ermöglicht.
Durch guarded commands ist es möglich, auf verschiedene Sender als Empfänger entsprechend
zu reagieren. Mit Hilfe von guarded commands können Unterscheidungen getroffen werden (zum Beispiel
if...else if....).
Wenn mehrere Wächter zutreffen, ist die Auswahl nichtdeterministisch.
\end{answer}
\question{Wie arbeitet der \textit{Korridor}-Algorithmus zum Überwachen mehrerer Eingabequellen (\texttt{select()}) in etwa?}
\begin{answer}
Der Korridor-Algorithmus arbeitet ähnlich wie ein Bürobote, der auf seinem Rundgang durch einen Korridor mit vielen Büros geht. Der Bote hat einen ,,Warteraum'', in dem er im ruhenden Zustand sitzt. An jedem Büro ist eine Lampe o.ä. angebracht, die abzuarbeitende Aufträge anzeigt.
Wenn der Bote von seinem Warteraum aus sieht, dass ein Auftrag abzuarbeiten ist, geht er an den Türen aller Büros vorbei und sammelt die zu diesem Zeitpunkt anstehenden Aufträge ein. Dies tut er in festgelegter Reihenfolge. Der Bürobote sollte sich, bevor er sich wieder in den Warteraum begibt, noch einmal umsehen, ob in der Zwischenzeit nicht neue Aufträge zu Beginn seiner Runde entstanden sind.
\end{answer}
\begin{multilinequestion}[Worin unterscheiden sich die Eigenschaften der folgenden UNIX-Mechanismen zur Interprozesskommunikation:]
\begin{itemize}
\item Pipes,
\item Named Pipes,
\item Sockets?
\end{itemize}
Wie lassen sich die Kommunikationseigenschaften von Sockets mit normaler Briefpost und Telefongesprächen vergleichen?
\end{multilinequestion}
\question{}
\begin{answer}
\paragraph*{Pipe:}
Unidirektionaler sequentieller Bytestrom von stdout eines Prozesses zu stdin eines anderen Prozesses. Um eine Pipe verwenden zu können, müssen die beiden Prozesse verwandt sein.
\paragraph*{Named Pipe (FIFO):}\label{netzwerke:named-pipe}
Das Pipe-Objekt benötigt einen eindeutigen Namen (Kanal-Bezeichner). Die
beiden miteinander kommunizierenden Prozesse müssen nicht verwandt sein, auch eine Named Pipe ist ein unidirektionaler sequentieller Bytestrom.
\paragraph*{Sockets:}\label{netzwerke:sockets}
Es gibt zwei Arten von Sockets: Stream-Sockets und Datagram-Sockets.
Stream-Socket: Bidirektionaler Pipe, Bytestrom, sequentielle übertragung, zuverlässig und verbindungsorientiert (Vergleich: Telefongespräch)
Datagram-Socket: Paketübergabe, Nachrichten, beliebige Reihenfolge, u.U. unzuverlässig (Verluste
sind möglich), verbindungslos (Vergleich: Brief-/Paketzustellung)
\end{answer}
\question{Wie lassen sich die Kommunikationseigenschaften von Sockets in die generische Systemaufrufschnittstelle zum Zugriff auf Dateien einordnen?}
\begin{answer}
Man erzeugt sie, bekommt den Deskriptor zurück und kann auf ihnen operieren.
\end{answer}
\question{Warum kommt dem Adressierungsproblem in der Interkommunikation eine so gro"se Bedeutung zu? In welche zwei Teile zerfällt eine Adressangabe typischerweise?}
\begin{answer}
Ohne eindeutige Adressierung ist Kommunikation unmöglich. Nur die eindeutige und funktionierende
Adressierung ermöglicht den Austausch von Nachrichten bzw. Inhalten.
Eine Adresse zerfällt typischerweise in die Benennung des Rechners und die Benennung des Ports.
Protokolle enthalten z.B. Verabredungen zur Informationsrepräsentation, zur Fehlersicherung, zur
Flusskontrolle, zur Adressierung und zur Netzkoppelung. Dies ist üblicherweise in einer ganzen
Protokollhierachie festgelegt, TCP/IP, OSI-Schichten.
\end{answer}
\question{Was ist ein (Kommunikations-)Protokoll?}
\begin{answer}
Protokoll: Verabredung über die Art und Weise des Kommunikationsvorgangs.
\end{answer}
\question{Skizziere kurz einige typische Kommunikationsprobleme und je einen Lösungsvorschlag im Rahmen eines entsprechenden Protokolls.}
\begin{answer}
Probleme und Lösungsansätze:
- Kabel, d.h. übertragungsmedium kaputt: via Routing eines anderen Weg suchen.
- Bitkipper: via Fehlererkennung, z.B. Prüfsummenberechnung eine überprüfung durchführen und
den Vorgang gegebenenfalls wiederholen.
- überlastung des Empfängers, d.h. die Nachricht kann nicht angenommen werden: via Flusskontrolle
überprüfen (Staumeldung).
- Empfänger liegt in einem anderen System, d.h. er arbeitet mit einem anderen Protokoll: die
Daten müssen entsprechend umgewandelt werden.
\end{answer}
\question{Skizziere einige Eigenschaften typischer Netztopologien.}
\begin{answer}
- Vollständige Vermaschung:
Ist eine aufwändige, d.h. teure Möglichkeit. Zum einen wird besonders viel Verkabelung
benötigt, zum anderen müssen alle Adressen aller beteiligten Computer auf jedem einzelnen Netzwerkrechner
gespeichert werden.
- Ring:
Ein Ringsystem bietet den Vorteil, dass die Nachrichten einfach in eine Richtung losgeschickt
werden und die beteiligten Computer nur überprüfen, ob die Nachricht für sie ist. Wenn nicht,
wird das Datenpaket weitergeleitet.
Es hat den Nachteil besonders gro"ser Störanfälligkeit. Wenn ein einziger Netzwerkrechner oder
ein Kabel ausfällt, ist die Kommunikation ,,dahinterliegender'' Rechner gestört.
- Bus:
Bei einem Bussystem ist die grö"ste Störanfälligkeit der Bus selbst. Fällt diese Leitung aus, sind
u.U. alle Rechner vom Netz abgeschnitten. Ausserdem muss bei dieser Netzvariante besonderes
Augenmerk auf die Reihenfolge der Nachrichtenübertragung gelegt werden.
- Stern:
Bei einem Stern geschieht die Speicherung der Adressen für die Weiterleitung nur auf dem Zentralrechner.
Besonderer Nachteil eines Sterns ist die Möglichkeit, dass der zentrale Rechner ausfällt, in
diesem Fall ist keinerlei Kommunikation mehr möglich. Allerdings stört der Ausfall eines einzelnen
Computers oder einer übertragungsleitung die Funktionsfähigkeit des restlichen Netzes in keiner
Weise.
- allgemeines Netz:
Ein allgemeines Netz ist durch die Möglichkeit bei Störungen andere Wege zu suchen, in seiner
Funktionsfähigkeit eine sehr Fehler tolerante Netzwerkvariante.
\end{answer}
\question{Welche besondere Bedeutung kommt dem Protokoll IP zu?}
\begin{answer}
Das Internet Protokoll sorgt für die Integration von Anwendungen und Medien. Es ermöglicht
eine Netzübergreifende Adressierung und ist Paket-orientiert.
Durch die mit IP bestehenden Möglichkeiten ist es zum wichtigsten und am weitesten verbreiteten Protokoll geworden.
\end{answer}
\question{Was ist ein \textit{Remote Procedure Call} (RPC), und welche Parameter wird man typischerweise dabei übergeben? Was haben RPCs mit dem \textit{Client/Server}-Modell zu tun?}
\begin{answer}
TODO
\end{answer}