Hongkong

Transport Layer - TCP/UDP


Ideen: M. Metz, A. Grella, A. Grupp, Elektronikschule Tettnang und Cisco Networking Academy

Die Anwenderdaten werden mit Portnummern versehen, je nach Priorität dem TC- oder UD-Protokoll zugeordnet und in einzelne Segmente aufgeteilt bevor sie auf die Reise gehen.

In diesem Artikel lernst Du, wie im Transport Layer diese Aufgaben definiert werden und mit welchen Eigenschaften sie verbunden sind. Du lernst den Aufbau von TCP- und UDP-Header sowie verschiedene Portnummern kennen. Darüber hinaus wird Dir der TCP-Verbindungsauf- und -abbau, die TCP-Übertragung und das TCP-Sliding-Window erklärt.

Aufgaben des Transport Layers und seine Eigenschaften



Transportlayer Multiplexing

Aufgaben des Transportlayers

Segmentierung Die Anwendungs­daten werden in einzelne Segmente aufgeteilt. Die Segmentgröße ist passend für die Verbindung.
Portnummer­vergabe Daten erhalten für die Anwendungszuordnung eine eindeutige Portnummer.
Muliplexing, Demultiplexing Eingehende und ausgehende Daten auf einem Kanal, werden den Anwendungen zugeordnet.
TCP-, UDP Protokoll­zuordnung, je nachdem ob Geschwindigkeit oder Zurver­lässigkeit bei der Übertragung gewünscht ist.

Der TCP- und UDP-Header



Die wichtigsten TCP-Headerinformationen im Überblick:

  • Transmission Control Protocol RFC 793
  • Package Data Unit - PDU: Segmente
  • zuverlässig (connection-based): verlorene Segmente werden neu gesendet
  • Steuerung der Übertragungs­geschwindigkeit und Datenrekonstruktion
  • Bsp.-Protokolle: HTTP, HTTPS, SMTP, FTP, SSH
Byte 1
Byte 2
Byte 3
Byte 4
Source Port
Destination Port
Sequence Number
Acknoledgement Number
Head. l.
reserved
Control Bits
Window
Checksum
Urgent
Options (0 or 32 Bit)
Application Layer Data (size varies)

Die wichtigsten UDP-Headerinformationen im Überblick:

  • User Datagram Protocol RFC 768
  • Package Data Unit - PDU: Datagramme
  • schnell (connection­less + best effort): verlorene Segmente werden nicht ersetzt
  • keine Steuerung der Übertragungs­geschwindigkeit, keine Datenrekonstruktion
  • Bsp.-Protokolle: DNS, VoIP, DHCPv4, TFTP, SNMP
Byte 1
Byte 2
Byte 3
Byte 4
Source Port
Destination Port
Length
Checksum
Application Layer Data (size varies)

Portnummern und Sockets



well kown ports

Portnr. Protokoll Applikation
20, 21 TCP FTP - File Transfer Protocol - Data, Control
22 TCP SSH - Secure Shell
25 TCP SMTP - Simple Mail Transfer Protocol
53 UDP TCP DNS - Domain Name Server
67, 68 UDP DHCP - Dynamic Host Configuration Protocol - Server, Client
69 UDP TFTP - Trivial File Transfer Protocol
80 TCP HTTP - Hyper Text Transfer Protocol
110 TCP POP3 - Post Office Protocol
143 TCP IMAP - Internet Message Access Protocol
161 UDP SNMP - Simple Network Management Protocol
443 TCP HTTPS - Hyper Text Transfer Protocol Secure

Mit Portnummern werden den Datenpaketen eindeutige Nummern für die Identifizierung der Anwendung zugeordnet. Man unterscheidet drei Gruppen von Portnummern:

  • Well known Ports (0 - 1023) sind von der IANA reservierte Ports für Standard­server­dienste.
  • Registrierte Ports (1024 - 49151) können bei der IANA beantragt werden.
  • Private oder dynamische Ports (49152 - 65535) sind temporäre Ports für Client­anwendungen

Bei der Datenübertragung wird jedes Segment mit einer Source-Portnummer und Destination-Portnummer versehen. Bei einem Internet­seiten­aufruf ist die Portzielnummer 80 und die Portquellnummer bspw. 1305.

Dest MAC
Source MAC
S IP
D IP
S Port
D Port
Data
71-BC-29-A4-00-80
83-32-AF-B3-90-E4
10.1.1.1
10.1.1.2
1305
80
Data

Zu jeder Datenübertragung gehören immer die folgenden Adressen:

  • Client IP-Adresse und Portnummer der Client-Anwendung
  • Server IP-Adresse und Portnummer des Server-Prozesses

Die Paare aus IP-Adresse und Portnummer bezeichnet man als Socket:
Quellsocket: 10.1.1.1:1305
Zielsocket: 10.1.1.2:80

Der Befehl netstat zeigt im Terminal unter Windows, Linux oder MAC OS die derzeit aktiven Verbindungen an.

Übung 1 Welche Aussage ist wahr?

Wähle die korrekten Aussagen aus.

Nenne die korrekte Beschreibung des Ports im Transport Layer.
Wähle eine Antwort.

  1. Hafen
  2. Netzwerkdose
  3. Nummer des Routereingangs
  4. Nummer einer Anwendung


Wähle die Portnummer für einen HTTP-Request.
Wähle eine Antwort.

  1. 20
  2. 53
  3. 57
  4. 80

Welche Aussage über eine TCP-Verbindung ist wahr.
Wähle zwei Antworten.

  1. TCP ist vor allem schnell
  2. verlorene Segmente werden nicht erneut gesendet
  3. verlorene Segmente werden erneut gesendet
  4. TCP gilt vor allem als sicher


Bestimme die wahre Aussage über Segmente.
Wähle eine Antwort.

  1. Segmente werden anhand der Portnummer zugeordnet.
  2. Segmente sind identisch zu Frames
  3. Pakete werden in Segmente verpackt
  4. Segmente sind immer gleich groß

Bestimme die well known Ports.
Wähle zwei Antworten.

  1. 0
  2. 1023
  3. 49152
  4. 65535


Ein Anwender sendet eine Email. Wähle das Zielsocket.
Wähle eine Antwort.

  1. 10.1.1.2:80
  2. FF00FF00FF00:143
  3. 10.1.1.2:25
  4. es ist kein passendes Socket vorhanden

TCP-Verbindungsauf- und Abbau Three-Way-Handshake



Verbindungsaufbau - Three-Way-Handshake

Für den Verbindungsaufbau werden die Sequenz Number SEQ, die Acknowledgement Number ACK und das Kontrollbit SYN verwendet.

Verbindungsabbau

Für den Verbindungsabbau werden die Sequenz Number SEQ, die Acknowledgement Number ACK und das Kontrollbit FIN verwendet.

Man beachte: TCP kann durch die Übermittlung von Sequenz­nummern empfangene Daten wieder in die richtige Reihenfolge bringen.

Auch können Verbindungen über das Kontrollbit RST direkt getrennt werden.

TCP - Übertragung PAR - positive acknowledgment and retransmission



Nach dem Verbindungsaufbau wird ein Teil der Segmente übertragen und bestätigt.

Man beachte, dass die Acknowledgment-Nummer immer eins höher ist als das zuletzt empfangene Segment.

Sollte innerhalb einer bestimmten Zeit kein Acknowledgment kommen, wird das Segment erneut versendet.

Kommt es bei der Verbindung zu einem Fehler wird nur das letzte korrekte Segment bestätigt.

Dadurch muss in diesem Fall Segment 3 - 4 nochmals übertragen werden, auch wenn Segment 4 schon ankam.

Abhilfe schafft das selektive Acknowledgement SACK.

Dadurch müssen nur die fehlerhaften Segmente erneut übertragen werden.

Sliding Window Steuerung der Übertragungs­geschwindigkeit



Es werden nicht alle Segmente auf einmal übertragen, sondern immer nur eine maximal festgelegte Anzahl. Hierfür steht das sliding window:

sliding window
1
2
3
4
5
6
7
8
9
10
11
...

1
2

Die Segmente 1-2 wurden gesendet und bestätigt.

3
4
5
6

Die Segmente 3-6 wurden gesendet und noch nicht bestätigt.

7
8
9

Die Segmente 7-9 können noch gesendet werden.

10
11
...

Die Segmente 10, 11, ... können noch nicht gesendet werden.

Tatsächlich wird die Fenstergröße (engl. window) nicht in Segmente angegeben, sondern in Byte. Die maximale Größe beträgt Window=65535 Byte. Ebenso wird maximale Segmentgröße (engl. maximum segment size) beim Verbindungsaufbau festgelegt, bspw. MSS=1460 Byte. Somit ergibt sich die Mindestanzahl an Segmenten im Sliding Window zu:

$$\text{Segmentanzahl}=\frac{Window}{MSS}$$

Übung 2 Welche Aussage ist wahr?

Wähle die korrekten Aussagen zur gegebenen Schaltung aus.

Beim TCP-Verbindungs­aufbau sendet PC A: SEQ=200 SYN=1. Bestimme die Antwort von PC B.
Wähle eine Antwort.

  1. SEQ=300 ACK=201 SYN=0
  2. SEQ=300 ACK=200 SYN=1
  3. SEQ=300 ACK=201 SYN=1
  4. SEQ=300 ACK=199 SYN=1


Beim TCP-Verbindungs­abbau sendet PC A: SEQ=200 FIN=1. Bestimme die Antworten von PC B.
Wähle zwei Antworten.

  1. SEQ=900 ACK=201
  2. SEQ=900 ACK=200
  3. SEQ=900 ACK=201 FIN=1
  4. SEQ=900 ACK=202 FIN=1

Bei einer TCP-Übertragung von 8 Segmenten ist Segment 4 fehlerhaft. Bestimme die Rückantwort.
Wähle eine Antwort.

  1. ACK=4
  2. ACK=5
  3. ACK=8
  4. ACK=3


Bei einer TCP-Übertragung von 12 Segmenten ist Segment 4+5 fehlerhaft. Bestimme die Rückantwort.
Wähle eine Antwort.

  1. ACK=3 SACK=4-5
  2. ACK=4 SACK=5
  3. ACK=3 SACK=4
  4. ACK=4 SACK=6-12

Bei der Übertragung wird window=20000 angegeben und MSS=1600. Bestimme die Mindestanzahl an Segmenten im sliding window.
Wähle eine Antwort.

  1. 7
  2. 12
  3. 13
  4. 20


Bei der Übertragung breträgt die Mindestanzahl an Segmenten im sliding window 41 und MSS=1600. Bestimme die Fenstergröße window.
Wähle eine Antwort.

  1. 20000
  2. 40000
  3. 60000
  4. Die Fenstergröße überschreitet das Maximum.

Übung 3 Transport Layer

  1. Nenne drei Gruppen von Portnummern.
  2. Nenne ein mögliches Socket für eine Webanfrage, Emailabruf und SSH-Verbindung.
  3. Beschreibe den TCP-Verbindungsaufbau.
  4. Berechne die Mindestanzahl an Segmenten im Sliding window mit MSS=1024 und window=65535.
  1. Ordne 6 Applikations­protokolle entsprechenden Portnummern zu.

Wortliste und Satzbausteine



die Segmen­tierung, -en das Auftei­len von Anwender­daten in einzelne Segmente, dabei werden diese u.a. mit Port­nummern versehen
die Port­nummer, -n einzelne Seg­mente erhalten für die Anwendungs­zuordnung eine eindeu­tige Nummer
well known ports, - Port­nummern für Standard Server­dienste
Multi­plexing, - ausgehende Daten ver­schiedener Anwen­dungen werden hinter­einander auf einen Kanal über­tragen
De­multi­plexing, - ein­gehende Daten auf einem Kanal werden auf ver­schiedene Anwen­dungen verteilt
TCP Trans­mission Control Proto­col - zuver­lässig
UDP User Data­gram Proto­col - schnell
con­nection­less verbindungs­los: es gibt keine direkte Ver­bindung zum Em­pfänger der Nachricht
best ef­fort unzuver­lässig: die Auslie­ferung des IP-Pakets wird nicht gewähr­leistet
con­nection-based die Verbin­dung wird auf- und abge­baut und besteht un­unter­brochen während der Über­tragungs­dauer
das Socket, -s ein Paar aus IP-Adres­se und Port­nummer, z.B. 10.1.1.1:80
der TCP-Ver­bin­dungs­aufbau, - Beim sogenan­nten "three-way-handshake" wird mit Hilfe der Sequenz­nummer SEQ, der Bestä­tigungs­nummer ACK und dem Kontroll­bit SYN eine Verbin­dung aufge­baut.
der TCP-Ver­bin­dungsabvbau, - Mit Hilfe der Sequenz­nummer SEQ, der Bestä­tigungs­nummer ACK und dem Kontroll­bit FIN wird die Verbin­dung getrennt.
positive acknow­ledgment and re­trans­mis­sion PAR regelt bei TCP das Ver­senden von Daten und die erneute Über­tragung von fehler­haften Daten
sliding win­dow Die Fenster­größe gibt bei TCP die maximal zuläs­sige Anzahl an versend­baren Seg­menten an, bevor diese vom Em­pfänger bestä­tigt werden müssen.