TCP Protokoll: So funktioniert das Transmission Control Protocol


Die einzelnen Komponenten bzw. Felder der Kopfzeile des TCP-Protokolls haben dabei folgende Bedeutung:

Quell-Port (16 Bit): Gibt die Portnummer des Senders an.

Ziel-Port (16 Bit): Gibt die Portnummer des Empfängers an.

Sequenznummer (32 Bit): Die Sequenznummer gibt wahlweise das erste Byte der angehängten Nutzdaten an oder wird im Rahmen des Verbindungsaufbaus bzw. -abbaus mitgeschickt. Sie dient gleichermaßen der Validierung und Sortierung (im Anschluss an die Übertragung) der Segmente.

Bestätigungsnummer (32 Bit): In diesem Feld wird die Bestätigungsnummer angegeben, die der Absender als nächstes erwartet. Voraussetzung für die Gültigkeit ist ein gesetztes ACK-Flag (im Feld „Flags“).

Offset (4 Bit): Das Feld „Offset“ weist die Länge des TCP-Headers in 32-Bit-Blöcken aus, um den Startpunkt der Nutzdaten hervorzuheben. Dieser ist aufgrund des variablen Optionsfelds von Segment zu Segment verschieden.

Reserviert (6 Bit): RFC 793 entsprechend für künftige Nutzung reserviert, bis dato nicht verwendet. Dieses Feld muss immer den Wert „0“ haben.

Flags (6 Bit): Über die sechs möglichen Einzel-Bits im Flags-Feld lassen sich verschiedene TCP-Aktionen aktivieren, um die Kommunikation und Datenverarbeitung zu organisieren. Bei den Flags, die hierfür entweder gesetzt oder nicht gesetzt werden, handelt es sich um folgende:

  • URG: Das „Urgent“-Flag (dt. „dringend“) signalisiert der TCP-Anwendung, dass die Nutzdaten bis zum gesetzten Urgent-Pointer (s. u.) sofort zu verarbeiten sind.
  • ACK: In Kombination mit der Bestätigungsnummer hat das ACK-Flag die Funktion, den Empfang von TCP-Paketen zu quittieren. Ist das Flag nicht gesetzt, ist automatisch auch die Bestätigungsnummer ungültig.
  • PSH: Das „Push“-Flag sorgt dafür, dass ein TCP-Segment sofort bereitgestellt wird, ohne zunächst im Puffer von Sender und Empfänger zu landen.
  • RST: Ist bei der Übertragung ein Fehler aufgetreten, lässt sich die Verwendung durch ein TCP-Paket mit gesetztem RST-Flag („Reset“) zurücksetzen.
  • SYN: Nachrichten mit gesetztem SYN-Flag stellen den ersten Schritt des Drei-Wege-Handshakes dar – initiieren also den Verbindungsaufbau.
  • FIN: Das „Finish“-Flag signalisiert dem Gegenüber, dass ein Kommunikationspartner die Übertragung beendet.

Fenstergröße (16 Bit): In diesem Feld wird dem Kommunikationspartner die Anzahl an Bytes übermittelt, die der Sender bereit ist zu empfangen.

Prüfsumme (16 Bit): Das Transmission Control Protocol kann Übertragungsfehler zuverlässig erkennen. Hierfür wird die Prüfsumme herangezogen, die aus dem Header, den Nutzdaten und dem sogenannten Pseudo-Header berechnet wird.

Urgent-Pointer (16 Bit): Der Urgent-Pointer („Dringend“-Anzeiger) gibt die Position des ersten Bytes nach den dringlich zu behandelnden Nutzdaten an. Folglich ist dieses Feld nur gültig und relevant, wenn das URG-Flag gesetzt ist.

Optionen (0–320 Bit): Sollen TCP-Funktionen bereitgestellt werden, die nicht in den generellen Header gehören, geschieht dies über das Optionsfeld – ein mögliches Beispiel ist die Definition der maximalen Segmentgröße. Die Optionen müssen immer eine Länge des Vielfachen von 32 Bit haben, andernfalls ist die Auffüllung mit Null-Bits (Padding) erforderlich.



Source link

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.