Transmission Control Protocol/Segment: Unterschied zwischen den Versionen

Aus Foxwiki
Subpages:
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 77: Zeile 77:
Werte werden in der [[Byte-Reihenfolge]] [[Big-Endian]] angegeben
Werte werden in der [[Byte-Reihenfolge]] [[Big-Endian]] angegeben


=== Felder des TCP-Header ===
== Felder des TCP-Header ==
{| class="wikitable options"
{| class="wikitable options"
! Feld !! Funktion !! Größe
! Feld !! Funktion !! Größe
Zeile 136: Zeile 136:
|}
|}


==== TCP-Flags ====
== TCP-Flags ==
{| class="wikitable options"
{| class="wikitable options"
! Feld !! Funktion !! Größe
! Feld !! Funktion !! Größe
Zeile 187: Zeile 187:
|-----
|-----
|}
|}
==== Flags ====
* Sechs 1-Bit-Felder zur Steuerung der Verbindung
* URG
* Urgent: Der Urgent-Pointer wird verwand
* ACK
* Achnowledgement: Die Bestätigung ist gültig
* PSH
* Push: Daten werden beim Empfänger nicht gepuffert
* RST
* Reset: Verbindung wird zurückgesetzt (Ungültiges Segment, Hostabsturz oder Verbindungsablehnung)
* SYN
* Synchronise Sequenze Number: Verbindungsaufbau
* FIN
* Finish: Verbindungsabbau


[[Kategorie:TCP]]
[[Kategorie:TCP]]

Aktuelle Version vom 4. Dezember 2024, 11:20 Uhr

Transmission Control Protocol/Segment

Beschreibung

Teile eine TCP-Segments
Teil Beschreibung
Header Steuerung der Kommunikation
  • Typische Header-Größe: 20 Byte (Ohne Nutzung des Options-Felds)
Payload Nutzlast
  • Zu übertragenden Daten
  • Header und Payload der Anwendungsschicht (HTTP, FTP ...)
TCP-Segment
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Source Port Destinations Port H
e
a
d
e
r
Sequence Number
Acknowledgement Number
Data Offset Reserved Flags Window
Checksum Urgent Pointer
Optionen Padding

Payload

Werte werden in der Byte-Reihenfolge Big-Endian angegeben

Felder des TCP-Header

Feld Funktion Größe
Source Port (Quellport) Gibt die Portnummer auf der Senderseite an 2 Byte
Destinations Port (Zielport) Gibt die Portnummer auf der Empfängerseite an. 2 Byte
Sequence Number Sequenznummer des ersten Daten-Oktett dieses TCP-Segments, dient zur Sortierung Oder die Initialisierungs-Sequenznummer falls das SYN-Flag gesetzt ist 4 Byte
Acknowledgement Number Gibt die Sequenznummer an, die der Absender dieses TCP-Segments als Nächstes erwartet Sie ist nur gültig, falls das ACK-Flag gesetzt ist. 4 Byte
Data Offset Gibt die Länge des TCP-Headers in 32-Bit-Blöcken an (ohne Nutzdaten).
  • Hiermit wird die Startadresse der Nutzdaten angezeigt.
4 Bit
Reserved Ist für zukünftige Verwendungen reserviert.
  • Alle Bit müssen null sein.
4 Bit
Control-Flags Zweiwertige Variablen mit den Zuständen gesetzt und nicht gesetzt.
  • Kennzeichnung für die wichtigen Zustände der Kommunikation und Weiterverarbeitung der Daten.
8 Bit
(Receive) Window Ist die Anzahl der Bytes die der Sender dieses TCP-Segments bereit ist zu empfangen.
  • Beginnend bei dem durch das Acknowledgementfeld indizierten Daten-Oktett.
2 Byte
Checksum Dient zur Erkennung von Übertragungsfehlern.
  • Wird über den TCP-Header, die Daten und einen Pseudo-Header berechnet.
  • Der Header besteht aus Ziel-IP, Quell-IP, TCP-Protokollkennung (0x0006) und der Länge des TCP-Headers inkl. Nutzdaten (in Bytes).
2 Byte
Urgent Pointer Nur gültig, wenn das URG-Flag gesetzt ist.
  • Die Urgent-Daten beginnen sofort nach dem Header
  • Zusammen mit der Sequenz-Nummer gibt dieser Wert die Position des ersten Bytes nach den Urgent-Daten an.
2 Byte
Options Unterschiedlich groß und enthält Zusatzinformationen.
  • Müssen ein Vielfaches von 32 Bit lang sein, ansonsten muss mit Nullbits aufefüllt werden (Padding).
  • Ermöglicht Verbindungsdaten auszuhandeln, die nicht im TCP-Header enthalten sind, wie z. B.  die Maximalgröße des Nutzdatenfeldes.
0–40 Byte

TCP-Flags

Feld Funktion Größe
ECE-Flag (ECN-Echo) Teilt dem Sender mit, dass das Netzwerk überlastet ist und die Senderate reduziert werden muss.
  • Wird für Explicit Congestion Notification (ECN) benötigt
1 Bit
CRW-Flag (Congestion Window Reduced) Teilt dem Empfänger mit das die Senderate reduziert wurde.
  • Wird für Explicit Congestion Notification (ECN) benötigt
1 Bit
URG-Flag (Urgent)
  • Die Daten nach dem Header werden sofort von der Anwendung bearbeitet.
  • Anwendung unterbricht die Datenverarbeitung des aktuellen TCP-Segments und liest alle Bytes nach dem Header bis zu dem Byte, auf das das Urgent-Pointer -Feld zeigt, aus.
  • Kann verwendet werden, um eine Anwendung auf dem Empfänger abzubrechen.
  • In der Regel wird dieses Flag nicht ausgewertet.
1 Bit
ACK-Flag (Acknowledgment) Hat in Verbindung mit der Acknowledgment-Nummer die Aufgabe, den Empfang von TCP-Segmenten bestätigen.
  • Die Acknowledgment-Nummer ist nur gültig, wenn das Flag gesetzt ist.
1 Bit
PSH-Flag (Push) Sowohl der ausgehende, als auch der eingehende Puffer wird übergangen.
  • Hilft den Datenstrom von TCP effizienter zu verarbeiten, indem die empfangende Applikation gezielter aufgeweckt werden kann.
  • RFC 1122 & RFC 793
1 Bit
RST-Flag (Reset) Wird verwendet, wenn eine Verbindung abgebrochen werden soll.
  • z. B.  bei technischen Problemen oder zur Abweisung unerwünschter Verbindungen
  • Oder bei nicht geöffneten Ports, es wird kein ICMP-Paket mit „Port Unreachable“ verschickt.
1 Bit
SYN-Flag (Synchronize) Pakete mit diesem Flag initiieren eine Verbindung.
  • Dient der Synchronisation von Sequenznummern beim Verbindungsaufbau.
  • Server antwortet normalerweise mit SYN+ACK oder RST.
1 Bit
FIN-Flag (Finish) Schlussflag, dient zur Freigabe der Verbindung, zeigt an, dass keine Daten vom Sender kommen.
  • FIN- und SYN-Flags haben Sequenznummern, damit diese in der richtigen Reihenfolge abgearbeitet werden.
1 Bit