Lösungsvorschlag zur 12. Übung, GdI 3

Prof. Frederik Armknecht
Sascha Müller
Daniel Mäurer
Grundlagen der Informatik 3
Wintersemester 09/10
Lösungsvorschlag zur 12. Übung
1 Präsenzübungen
1.1 Schnelltest
a) Welche der Behauptungen zum OSI-Modell der Netzwerkschichten sind wahr?
4 In der Regel fügt jede Schicht den Übertragungseinheiten einen neuen Header
hinzu.
4 Die Sicherungsschicht (Schicht 2) regelt bei Broadcast-Medien die Nutzung des
Mediums zwischen den Teilnehmern.
2 Zuverlässige Ende-zu-Ende-Verbindungen zwischen Teilnehmern sind in der
Netzwerkschicht (Schicht 3) angesiedelt.
2 Die Transportschicht (Schicht 4) kümmert sich um das Routing der Pakete.
b) Wie sieht der Aufbau eines Pakets mit Headern Hi für jeder Schicht i auf der OSISchicht 3 aus?
2 H3 H2 H1 Daten
4 H1 H2 H3 Daten
2 Daten H3 H2 H1
2 Daten H1 H2 H3
1
Lösungsvorschlag zur 12. Übung
Grundlagen der Informatik 3, WS 09/10
c) Welche Aussagen zu den Zuteilungsverfahren für Übertragungsmedien treffen zu?
2 Beim reinen ALOHA-Zuteilungsverfahren steht das Übertragungsmedium jedem Teilnehmer in festen Intervallen exklusiv zur Verfügung.
2 Ethernet-LANs verwenden i. d. R. ein Slotted-ALOHA-Protokoll.
4 Bei einem Zuteilungsverfahren mit Zufallsstrategie kann der Sender eine Kollision nur dann erkennen, wenn er gleichzeitig das Medium abhören kann.
2 Bei CSMA-Protokollen sendet jeder Teilnehmer seine Daten über den Kanal,
unabhängig von der Aktivität der anderen Teilnehmer.
d) Bei welchen Routing-Algorithmen handelt es sich um adaptive Verfahren?
2 kürzeste Wege (Dijkstra-Alg.)
2 Flooding
4 Link State Routing
4 Distance Vector Routing
e) Was sind HOPs?
4 Punkt-zu-Punkt-Verbindungen
2 Host-zu-Host-Protokoll
2 Formatklassen
2 Die letzten Bits der Subnetz-Maske.
f) Wie viele Rechner können in einem Klasse B Subnetz adressiert werden?
2 212
4 216
2 220
2 224
1.2 TCP
a) Auf welcher ISO/OSI-Schicht ist TCP angesiedelt? Warum ist TCP dort einzuordnen?
b) TCP ist ein zuverlässiges, verbindungsorientiertes Transportprotokoll. Skizzieren Sie
den Mechanismus zum Verbingsaufbau!
c) Welche Vor- und Nachteile hat TCP als verbindungsorientiertes Protokoll im Gegensatz z.B. zu UDP? In welchen Anwendungen würden Sie eher UDP als TCP einsetzen?
d) TCP bietet Mechanismen zur Sicherung der Datenintegrität. Welche sind dies? Ist
dadurch ausgeschlossen, dass ein Angreifer unbemerkt Datenpakete manipulieren
kann? Begründen Sie ihre Antwort!
2
Lösungsvorschlag zur 12. Übung
Grundlagen der Informatik 3, WS 09/10
a) Schicht 4. TCP ist eine Vereinbarung (Protokoll) darüber, auf welche Art und Weise
Daten zwischen Computern ausgetauscht werden sollen.
b) TCP-Handshake:
c) Vorteile: u.a.
• TCP bietet einen bidirektionalen, byte-orientierten, zuverlässigen Datenstrom
zwischen zwei Endpunkten.
• Umgeht einige Probleme der darunter liegenden Protokolle (wie z.B. IP).
• Paketverluste werden erkannt. Der Sender wiederholt das Senden von Paketen, falls keine Bestätigung innerhalb einer bestimmten Zeitspanne (Timeout)
eintrifft.
• Stellt die Reihenfolge der Pakete durch Sequenznummern sicher.
• Doppelte Pakete werden erkannt und werden verworfen.
• ...
Nachteile: u.a.
• hoher Protokolloverhead
• Nicht so “schnell“ wie z.B. UDP, deshalb für Anwendungen wie z.B. Videostreaming eher ungeeignet. Bei diesen Anwendungen ist es oft auch unerheblich,
ob einzelne Pakete verloren gehen. Hierbei steht die Performanz eher im Vordergrund. Deshalb wird für Audio-, Videostreaming etc. meist UDP eingesetzt.
• ...
d) 16-bit TCP Checksumme; kein CRC; Ein Angreifer kann immer noch Datenpakete manipulieren, da die Datenpakete vollständig manipulieren kann; d.h. er kann
zu den modifizierten Daten eine korrekte Checksumme berechnen und den TCPHeader entsprechend manipulieren.
Checksum: 16 bits
The checksum field is the 16 bit one’s complement of the one’s complement sum of all 16 bit words in the header and text. If a segment contains
an odd number of header and text octets to be checksummed, the last octet
is padded on the right with zeros to form a 16 bit word for checksum purposes. The pad is not transmitted as part of the segment. While computing
the checksum, the checksum field itself is replaced with zeros.
– [RFC793]
1.3 Flussregelung: Sliding-Window-Verfahren
a) Nennen Sie zwei Gründe für die Notwendigkeit einer Flussregelung.
b) Im Folgenden sollen 9 Frames (Sequenznummern 1 - 9) von einem Sender zu einem
3
Lösungsvorschlag zur 12. Übung
Grundlagen der Informatik 3, WS 09/10
Empfänger unter Einsatz des Sliding-Windows-Verfahrens zur Flussregelung übertragen werden. Die Fenstergröße beim Sender („Send Window Size“) und Empfänger
(„Receive Window Size“) seien jeweils 3. Um explizit zu verdeutlichen, welches Frame bestätigt wird, wird ein ACK mit der Sequenznummer des bestätigten Frames
ergänzt. Frames dürfen nur einzeln bestätigt werden, d.h. nicht kumulativ. Alle Frames werden korrekt übertragen. Die Übertragungsdauer eines Frames sowie eines
ACKs betrage eine Zeiteinheit. Das Versenden eines bereitgestellten Frames der oberen Schicht hat beim Sender höhere Priorität als das Empfangen einer Quittierung,
analog das Empfangen eines Frames gegenüber dem Versenden eines ACKs beim
Empfänger. Gleichzeitiges Senden und Empfangen einer Station seien nicht möglich.
Ergänzen Sie Tabelle A auf der letzten Seite des Übungsblatts.
c) Im Folgenden sei keine korrekte Übertragung für die 4 Frames garantiert. Nehmen
Sie an, dass das Frame mit der Sequenznummer 2 verloren geht, d.h. es wird nicht
quittiert. Als Fehlerbehandlung wird „Selective-Repeat“ verwendet: Es werden dabei alle
Pakete erneut versendet, welche nach der Beendigung eines Timeouts nicht bestätigt wurden.
Als Timeout werden t = 6 Zeiteinheiten nach Versenden des verlorenen Frames angenommen: Wird ein Frame z.B. bei t = 3 versendet, wird bei Nicht-Quittierung des
Frames, ein Timeout bei t = 9 geworfen. Ergänzen Sie Tabelle B auf der letzten Seite
des Übungsblatts.
4
Lösungsvorschlag zur 12. Übung
a)
Grundlagen der Informatik 3, WS 09/10
• Angleichen der Sende- und Empfangsgeschwindigkeiten (Sender darf Empfangspuffer nicht zum Überlauf bringen).
• Garantie von zuverlässigen Übertragungen
b)
Zeit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
15
16
17
18
19
20
21
22
23
24
Sender
Fenster
0-0
0-1
0-1
0-2
1-2
1-3
1-4
2-4
2-4
3-4
4-4
4-4
4-5
4-6
4-7
4-7
4-7
5-7
5-8
6-8
6-9
7-9
8-9
9-9
Frame(s)
sendebereit
F1
F2
F3, F4
F5, F6, F7, F8
F9
-
Zeit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sender
Grenze
0-0
0-1
0-2
0-3
1-3
1-3
1-3
1-3
1-3
1-3
1-4
1-4
1-4
3-4
4-4
Frame(s)
sendebereit
Sender
Senden
F1, F2, F3
F4
-
F1
F2
F3
Timeout
F2
F4
- 5
-
-
Sender
Senden
F1
F2
F3
F4
F5
F6
F7
F8
F9
-
Sender
Empfangen
ACK1
ACK2
ACK3
ACK4
Empfänger
Empfangen
F1
F2
F3
F4
ACK5
ACK6
ACK7
ACK8
ACK9
F5
F6
F7
F8
F9
-
Sender
Empfangen
ACK1
ACK3
ACK2
ACK4
Empfänger
Empfangen
F1
F3
F2
F4
-
Empfänger
Senden
ACK1
ACK2
ACK3
ACK4
ACK5
ACK6
ACK7
ACK8
ACK9
-
Empfänger
Fenster
0-3
0-3
1-4
1-4
2-5
2-5
3-6
4-7
4-7
4-7
4-7
4-7
4-7
4-7
5-8
6-9
7 - 10
7 - 10
7 - 10
8 - 11
8 - 11
9 - 12
9 - 12
9 - 12
Empfänger
Senden
ACK1
ACK3
ACK2
ACK4
-
Empfänger
Grenze
0-3
0-3
1-4
1-4
1-4
1-4
1-4
1-4
1-4
1-4
3-6
4-7
4-7
4-7
4-7
c)
Lösungsvorschlag zur 12. Übung
Grundlagen der Informatik 3, WS 09/10
2 Hausübungen
2.1 Distance Vector Routing (4 Punkte)
Gegeben sei folgendes Netzwerk mit den 7 Routern A, B, C, D und E. Knoten A bekommt
von seinen Nachbarknoten die Distanzvektoren wie in Tab.1 notiert.
D
E
C
A
D
1
B
E
1
8
9
C
B D
Delay 1 8
A
1 4
B
0 3
C
1 2
D
3 0
E
2 1
Tab.1
E
9
3
2
1
1
0
To
A
B
C
D
E
Dir
-
Dist
0
Tab.2
1
A
To
A
B
C
D
E
1
B
Dir Dist
0
B
1
B
2
B
4
B
3
Tab.2
a) Vervollständigen Sie die Routingtabelle von A (Tab.2).
b) Beschriften Sie alle Kanten des Graphen (Ganzzahlig), so daß die Distanzvektoren
gültig bleiben.
c) Sie wollen gerade eine Nachricht von A nach E versenden, da fällt Router C wegen eines taktischen Nuklearschlags am Standort von C aus. Beschreiben Sie detailliert, was
während der nächsten Meldungszyklen passiert. Wie ändert sich die Routingtabelle
von A? Betrachten Sie dabei auch die Routingtabelle von Nachbarknoten B.
Die Werte inkrementieren im Zusammenspiel mit B wie beim count-to-infinity.
d) Wie lange braucht das Netz um sich zu erholen, d.h. wieder zuverlässig Daten von A
nach E senden kann?
Bis die Verbindung A-E die kürzeste ist. Dafür benötigt es in diesem Fall mindestens
5 Zyklen.
6
Lösungsvorschlag zur 12. Übung
Grundlagen der Informatik 3, WS 09/10
2.2 Link State Routing (6 Punkte)
Gegeben sei folgendes Netzwerk mit den 7 Routern A, B, C, D, E, F und G.
1
E
6
6
9
10
F
A
D
24
B
2
2
G
8
3
C
5
a) Wozu dienen die Felder Seq und Age der Link State Packets?
Ein Link State Packet kann einen Router über mehrere Wege erreichen. Jeder Router inkrementiert die Sequenz-Nummer bei jedem neuen Link State Packet. Wenn
ein neues Packet bei einem Router ankommt, vergleicht er zunächst die SequenzNummer mit einem eventuell bereits vorhandenen Packet und verwirft das ankommende, wenn dessen Sequenz-Nummer kleiner oder gleich der des bereits vorhandenen Packets ist. Das age-Feld dient dazu, Ausfälle eines Routers zu erkennen. Das
Feld wird in regelmäßigen Zeitintervallen (z.B. jede Sekunde) dekrementiert. Wenn
das Feld den Wert 0 erreicht, wird die Information des Packets verworfen. Da die
Router neue Link State Packets in regelmäßigen Intervallen verschicken (z.B. alle 10
Sekunden), können so Router-Ausfälle registriert und neue Wege ermittelt werden.
Das age-Feld dient ebenfalls dazu, dass Packets nicht ewig zirkulieren.
b) Führen Sie ein Link State Routing auf dem Graphen für die beiden Knoten B und F
schrittweise aus. Zunächst ermittelt jeder Router die Kosten zu seinen Nachbarn. Die
Link State Packets kommen danach in folgender Reihenfolge bei B an: D,G,A,C,E,F. F
erhält die Packets in der Reihenfolge E,A,G,D,B,C.
Vernachlässigen Sie bei den Link State Packets die Felder Seq und Age.
B
A
B
E
F
G
24
1
9
2
A
C
D
E
G
24
5
2
6
3
C
B
G
Knoten B:
Ablauf:
Nr.
M1
0
1
B
2
B-D
3
B-D-G
4
B-D-G-A
5
B-D-G-A-C
6
B-D-G-A-C-E
7
B-D-G-A-C-E-F
D
5
8
B
F
A
∞
24,B
24,B
[5,G]
2
10
C
∞
[5,B]
E
A
B
F
F
1
6
6
A
D
E
D
∞
[2,B]
G
9
10
6
E
∞
6,B
6,B
6,B
[6,A]
Routing-Tabelle:
7
A
B
C
F
∞
∞
12,D
12,D
12,D
12,D
[12,E]
2
3
8
G
∞
[3,B]
Lösungsvorschlag zur 12. Übung
Knoten
A
C
D
E
F
G
über
G
B
B
A
E
B
Grundlagen der Informatik 3, WS 09/10
Kosten
5
5
2
6
12
3
Knoten F:
Ablauf:
Nr.
M1
0
1
F
2
F-E
3
F-E-A
4
F-E-A-G
5
F-E-A-G-D
6
F-E-A-G-D-B
7
F-E-A-G-D-B-C
A
∞
9,F
[7,E]
B
∞
∞
12,E
12,E
12,G
[12,D]
C
∞
∞
∞
∞
17,G
17,G
[17,B]
D
∞
[10,F]
E
∞
[6,F]
G
∞
∞
∞
[9,A]
Routing-Tabelle:
Knoten über Kosten
A
E
7
B
D
12
C
B
17
D
F
10
E
F
6
G
A
9
Hinweis: in den Ablauf-Tabellen haben wir Werte, die sich im weiteren Verlauf nicht mehr
ändern, in eckige Klammern gesetzt und der Übersichtlichkeit wegen nicht fortgeführt.
Zudem haben wir immer den letzten kürzesten Weg übernommen, wenn es mehr als eine
Möglichkeit gibt – diese Festlegung ist willkürlich gewählt.
c) Geben sie für die übrigen Knoten A,C,D,E,G die aus dem Link State Routing entstehenden Routing-Tabellen an. Geben Sie dabei zu jeder Verbindung den gewählten
Weg an.
Knoten A:
Knoten
B
C
D
E
F
G
über
G
G
G
A
E
A
Kosten
5
10
7
1
7
2
Knoten C:
8
Lösungsvorschlag zur 12. Übung
Knoten
A
B
D
E
F
G
über
G
C
B
G
B
B
Kosten
10
5
7
11
17
8
Knoten D:
Knoten über
A
B
B
D
C
B
E
B
F
D
G
B
Kosten
7
2
7
8
10
5
Knoten E:
Knoten über
A
E
B
C
C
B
D
B
F
E
G
A
Kosten
1
6
11
8
6
3
Knoten G:
Knoten über
A
G
B
G
C
B
D
B
E
A
F
A
Kosten
2
3
8
5
3
9
Grundlagen der Informatik 3, WS 09/10
d) Beim Distance Vector Routing kann es zum count-to-infinity kommen. Treten beim
Link State Routing ähnliche Probleme auf? Was geschieht, wenn eine Verbindung ausfällt? Begründen Sie.
Nein, das count-to-infinity Problem kann beim Link State Routing nicht auftreten, da
die Kosten-Informationen des Knotens nicht an die jeweiligen Nachbarn gesendet
werden. Beim Link State Routing hat jeder Knoten eine Tabelle mit seinen direkten
Nachbarn und sendet an diese periodisch eine Abfrage. Falls eine Verbindung ausfällt, bemerken es die Nachbarn des Knotens innerhalb des Intervalls. Anschließend
verbreiten sie die Nachricht über den Ausfall.
e) Welchen Nachteil besitzt Link State Routing gegenüber Distance Vector? Welche Möglichkeiten zur Abmilderung des Problems gibt es?
9
Lösungsvorschlag zur 12. Übung
Grundlagen der Informatik 3, WS 09/10
Link State Routing verursacht extrem viel Netzwerkverkehr, da jeder Knoten im
Netzwerk Link State Packets weiterleitet. Dieses Flooding-Prinzip ist in großen
Netzwerken nicht praktikabel, da die Datenmenge exponentiell ansteigt. Ansatzweise abmildern kann man das Problem durch ein hierarchisches Routing.
Zeit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
15
16
17
18
19
20
21
22
23
Sender
Fenster
0-0
0-1
0 - ...
Frame(s)
sendebereit
F1
F2
Sender
Senden
F1
-
Sender
Empfangen
ACK. . .
F3, F4
F5, F6, F7, F8
F9
Tabelle 1: Tab. A
10
Empfänger
Empfangen
F1
Empfänger
Senden
ACK1
Empfänger
Fenster
0-3
0-3
1-4
Lösungsvorschlag zur 12. Übung
Zeit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sender
Grenze
0-0
0-1
Frame(s)
sendebereit
F1, F2, F3
Grundlagen der Informatik 3, WS 09/10
Sender
Senden
F1
Sender
Empfangen
-
F4
Tabelle 2: Tab. B
11
Empfänger
Empfangen
-
Empfänger
Senden
-
Empfänger
Grenze
0-3
0-3