Transportschicht Flashcards

1
Q

Was ist die Aufgabe der Transportschicht und ihrer Protokolle?

Worauf läuft die Transportschicht?

Welche sind die beiden Transportprotokolle des Internets?

A

Die Protokolle stellen logische Kommunikation zwischen Anwendungsprozessen auf verschiedenen Hosts zur Verfügung

Transportprotokolle laufen auf Endsystemen

TCP und UDP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wofür steht UDP und TCP?

Was ist der unterschied der beiden Protokolle und wann benutzt man welches?

A

UDP = User Datagram Protocol

TCP =Transmission Control Protocol

Beides sind Protokolle der Transportschicht unterscheiden sich jedoch stark. UDP zielt einen Datenaustausch in echtzeit an, wobei Paketverluste in kauf genommen werden. TCP hingegen zielt ab mit Sicherheit ein Paket von A nach B zu schicken ohne Verluste auf Kosten der dauer die dafür benötigt wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was bedeutet Demultiplexing beim Empfänger?

Was bedeutet Multiplexing beim Sender?

A

Empfangene Segmente am richtigen Socket abliefern

Daten von mehreren Sockets einsammeln, Daten mit einem Header versehen (der später für das Demultiplexing verwendet wird)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wodurch wird der UDP-Socket identifierziert?

Was passiert wenn ein Host ein UDP-Segment empfängt?

A

Durch die Empfänger-IP-Adresse und die Empfänger-Portnummer.

  1. Lese EmpfängerPortnummer
  2. Das UDP-Segment wird an den UDP-Socket mit dieser Portnummer weitergeleitet

Bemerkung: IP-Datagramme mit anderer Absender-IPAdresse oder anderer Absender-Portnummer werden an denselben Socket ausgeliefert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wodurch wird der TCP-Socket identifiziert?

Kann ein Server mehrere TCP-Sockets gleichzeitig offen haben?

A

Absender-IP-Addresse, Absender-Portnummer, Empfänger-IP-Adresse, Empfänger-Portnummer

-Empfänger nutzt alle vier Werte, um den richtigen TCP-Socket zu identifizieren

Ja ein Server hat für jeden Host verschiedene eigene TCP-Sockets offen

Bemerkung: Bei nichtpersistentem HTTP wird jede Anfrage über einen eigenen Socket beantwortet (dieser wird nach jeder Anfrage wieder geschlossen)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Warum gibt es UDP?

Nach welchem Prinzip versucht UDP zu arbeiten?

Was bedeutet Verbindungslos?

A
  • Kein Verbindungsaufbau (der zu Verzögerungen führen kann)
  • Einfach: kein Verbindungszustand im Sender oder Empfänger
  • Kleiner Header
  • Keine Überlastkontrolle: UDP kann so schnell wie von der Anwendung gewünscht senden

UDP arbeitet nach dem “Best effort” Prinzip, dennoch können Pakete verloren gehen oder in der falschen Reihenfolge ankommen.

Verbindungslos bedeutet, dass kein Handshake zum Verbindungsaufbau benötigt wird und jedes UDP-Segment unabhängig von allen anderen behandelt wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Woraus besteht das UDP-Datagramm und wie groß sind die jeweiligen Segmente?

A

Quellportnummer 16 Bit

Zielportnummer 16 BIt

Länge 16 Bit

Prüfsumme 16 Bit

Anwendungsdaten Abhängig von den Daten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wofür wird die Prüfsumme benötigt und wie wird sie berechnet?

A

Ziel: Fehler im übertragenen Segment erkennen (z.B. verfälschte Bits)

Der Sender betrachtet das Segment als 16-Bit Integer Wert und addiert mit dem einer Komplement. Danach legt der Sender das invertierte Resultat im UDP-Prüfsummen Feld ab.

Der Empfänger berechnet dann die Prüfsumme und wenn alle Bits 1 sind ist sie korrekt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was bedeutet Verbindungsorientiert und was ist die Fluss und Überlastkontrolle?

A

Verbindungsorientiert: Handshaking (Austausch von Kontrollnachrichten) initialisiert den Zustand im Sender und Empfänger, bevor Daten ausgetauscht werden.

Flusskontrolle: Sender überfordert den Empfänger nicht

Überlastkontrolle: Sender überfordert das Netzwerk nicht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Woraus besteht das TCP Datagram?

A

Quellport, Zielport 16-Bit

Sequenznummer 32-Bit

Acknoledgement Number ACK 32 Bit

Header Länge

Flags je 1 Bit:

URG: urgent Data (meist unbenutzt)

ACK: ACK nummer gültig

PSH: Push – Daten direkt nach oben weitergeben (meist nicht benutzt)

RST, SYN, FIN: Befehle zum Verbindungsauf- und -abbau

Empfangsfenster 16 Bit

Urgent Data Pointer 16 Bit

Prüfsumme 16 Bit

Optionen 32 Bit

Daten 32 Bit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie funktionieren Sequenz und ACK Nummern, wofür werden sie gebraucht?

A

Die Anzahl des ersten Bits des Pakets ist die Sequenznummer zudem wird noch eine ACK Nummer mit verschickt. Wenn der Host das Paket mit dieser Sequenznummer erhalten hat schickt er ein Paket mit einer eigenen Sequenznummer zurück und die ACK Nummer ist die des erhaltenen Paketes. Dadurch weiß der Host der ursprünglich Daten verschickt hatte, dass sein Paket erfolgreich und in der richtigen Reihenfolge angekommen ist. Daraufhin schickt der Host ein neues Paket mit einer neuen Sequenznummer und die ACK Nummer ist jetzt die Sequenznummer des erhaltenen Paketes, somit weiß der Empfänger, dass seine Nachricht ebenfalls angekommen ist. Dieser Austausch geht bis zum Schluss weiter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist Time-out wofür braucht man Time-out und wie wird er berechnet?

A

Der Empfänger der Nachricht hat eine Gewisse Zeit auf diese zu antworten und erhält man keine Antwort wird die Verbindunggeschlossen oder versucht eine neue Aufzubauen. Wird diese Zeit überschritten kommt es zu einem Time-out. Dabei muss die Time-out Zeit gut gewählt sein, denn bei zu kleiner Zeit kommt es zu oft unnötig zu Time-outs und bei zu großer Zeit wird zu langsam auf Paketverlust reagiert.

EstimatedRTT = (1- α)*EstimatedRTT + α*SampleRTT

Üblicher Wert: α = 0.125

DevRTT = (1-β)*DevRTT + β*|SampleRTT-EstimatedRTT|

(üblicherweise: β = 0.25)

TimeoutInterval = EstimatedRTT + 4*DevRTT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie funktioniert die Flusskontrolle?

A

Durch das Feld Windowsize im TCP-Datagramm wird die Kapazität angegeben, die der Empfänger noch erhalten kann, wodurch der Sender seine Daten die er schickt reduziert.

Dabei hat der Empfänger einen Empfangspuffer

Empfänger: Platz im Puffer, RcvWindow

RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead]

Absender: Menge der unbestätigten Daten

LastByteSent - LastByteAcked ≤ RcvWindow

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie funktioniert der Verbindungsaufbau bei TCP, welche flags werden dabei benutzt?

A

Schritt 1: Client sendet TCP-SYNSegment an den Server

Initiale Sequenznnummer (Client->Server)

keine Daten

Schritt 2: Server empfängt SYN und antwortet mit SYNACK

Server legt Puffer an

Initale Sequenznummer (Server->Client)

Schritt 3: Client empfängt SYNACK und antwortet mit einem ACK – dieses Segment darf bereits Daten beinhalten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie funktioniert das schließen einer TCP Verbindung?

A

Schritt 1: Client sendet ein TCP-FIN-Segment an den Server

Schritt 2: Server empfängt FIN, antwortet mit ACK; dann sendet er ein FIN (kann im gleichen Segment erfolgen)

Schritt 3: Client empfängt FIN und antwortet mit ACK

Beginnt einen “TimedWait”-Zustand – er antwortet auf Sendewiederholungen des Servers mit ACK

Schritt 4: Server, empfängt ACK und schließt Verbindung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wofür ist die Überlastkontrolle gedacht?

A

Um das innere Netzwerk nicht zu überfordern, wenn zu viele Endsysteme zu viele Daten verschicken, wodurch Paketverlust und eine lange Verzögerung entstehen kann.

17
Q

Was sind die Kosten der Überlast?

A

Mehr Arbeit (Übertragungswiederholungen) bei gleichem “Goodput”

Überflüssige Übertragungswiederholungen: Leitung befördert mehrere Kopien desselben Pakets

18
Q

Ansätze zur Kontrolle von Überlast:

Wie funktioniert der End-zu-End Ansatz?

Wie funktioniert Netzwerkunterstützte Kontrolle?

A

Ende-zu-Ende:

Keine explizite Unterstützung durch das Netzwerk

Überlast wird von den Endsystemen durch Paketverlust und erhöhte Verzögerung festgestellt

Dies ist das Vorgehen im Internet (TCP)

Netzwerkunterstützt:

Router geben den Endsystemen Hinweise:

Durch ein einzelnes Bit, welches im Paketheader von den Routern gesetzt werden kann (TCP/IP ECN, ATM)

Durch Vorgabe einer expliziten Senderate

19
Q

Wie erkennt der Sender Überlast?

Was sind die drei Mechanismen gegen Überlast?

A

Erkennen:

Verlustereignis = Timeout oder drei doppelte ACKs

TCP: Sender verringert seine Rate (CongWin) nach einem Verlustereignis

Drei Mechanismen:

Additive Increase, Multiplicative Decrease (AIMD)

Slow Start

Vorsichtiges Verhalten nach einem Timeout

20
Q

Wie ist die Formel für die Rate bei der Überlastkontrolle?

Erkläre die einzelnen Parameter.

A

Rate = CongWin RTT Byte/s

RTT = Round trip time

CongWin = ist dynamisch, hängt von der wahrgenommenen Netzwerklast ab

21
Q

Wie funktioniert Slow Start?

A

CWnd wird zu Beginn auf 1 gesetzt. Also darf man nur eine Dateneinheit aufeinmal schicken.

Erhält man eine Antwort wird CWnd um eins erhöht. Gilt für jede Antwort, demnach steigt CWnd exponentiell jedes mal wenn man auf seine Dateneinheiten Antworten bekommt.

Dies geht so weiter bis zum ersten Verlustereignis.

22
Q

Wie funktioniert Congestion Avoidance?

A

Man möchte nicht durch Slowstart andauernd das CWnd auf eins zurücksetzten, sondern viel eher durchgängig so viele Daten schicken wie möglich. Dadurch nutzt man Congestion Avoidance.

Beim Beginn: CongWin = CongWin(bei letzter Überlast)/2

Normalerweise wird CongWin um 1/10 MSS/RTT erhöht

Kommen 3 doppelte ACKs –> Fast-Recovery

Tritt ein Timeout auf–> Wechsel in Slow Start und ssthresh wird auf CWnd/2 gesetzt

23
Q

Wie funktioniert Additive Increase, Multiplicative Decrease?

A

Additative Increase: Bin ich bei dem ssthresh angekommen steige ich die zu schickenden Dateneinheiten nur noch um eine Dateneinheit jedes mal, bis es wieder zu einer Überlast kommt, dann setzt Multiplicative Decrease ein.

Multiplicative Decrease: Kommt es zur Überlast durch mehrere gleiche ACK Nummern wird der sstresh halbiert und es wird zur Fast Recovery angesetzt.

Achtung bei einem Time-out wird nicht zu Fast Recovery gesetzt, sondern es wird wieder mit Slow Start gearbeitet.

24
Q

Wie funktioniert Fast Recovery?

A

Fast Recovery tritt auf bei mehreren doppelt gesendeten ACK Nummern.

Wird dies erkannt wird der ssthresh auf CWnd/2 gesetzt

Jede Dateneinheit für die ich keine ACK Nummer erhalten habe wird direkt wieder geschickt zusätzlich zu den weiteren Daten die ich schicke.

Funktioniert das beginnt Additative increasing. Also nach jedem erfolgreichen Datenaustausch eine Dateneinheit mehr bis es erneut zu einem Datenverlust kommt.

25
Q

Wann wird von Slowstart in Congestion Avoidance und wann in Fast recovery gewechselt und andersrum?

A
26
Q

Was ist TCP Fairness und weshalb ist TCP Fair?

A

Wenn K TCP-Sitzungen sich denselben Engpass mit Bandbreite R teilen, dann sollte jede eine durchschnittliche Rate von R/K erhalten.

Warum ist es fair?

Beide laufen in Congestion-Avoidance Modus

Additive Increase führt zu einer Steigung von 1 MSS, wenn der Durchsatz wächst

Multiplicative Decrease reduziert den Durchsatz proportional