Sobes.tech
Junior

Wie funktioniert das TCP-Protokoll?

sobes.tech KI

Antwort von AI

TCP (Transmission Control Protocol) ist ein Transportschichtprotokoll, das eine zuverlässige, verbindungsorientierte Datenübertragung gewährleistet.

Schlüsselaspekte der Funktionsweise:

  1. Drei-Wege-Handshake (Three-way Handshake):

    • Der Client sendet ein SYN-Paket (Synchronize) mit einer initialen Sequenznummer (ISN).
    • Der Server empfängt das SYN, sendet ein SYN-ACK (Synchronize-Acknowledge), das seine ISN und eine Bestätigung (ACK) der ISN des Clients enthält (Bestätigungsnummer = Client ISN + 1).
    • Der Client erhält das SYN-ACK, sendet ein ACK, das die ISN des Servers bestätigt (Bestätigungsnummer = Server ISN + 1).
    • Die Verbindung ist hergestellt, Daten können übertragen werden.
  2. Strombasierte Datenübertragung: Daten werden als kontinuierlicher Byte-Stream übertragen, nicht als einzelne Pakete. TCP segmentiert den Datenstrom in Segmente.

  3. Sequenznummerierung (Sequence Numbers): Jedes Byte im Datenstrom hat eine eindeutige Nummer. Segmente enthalten die Nummer des ersten Bytes, das sie enthalten (Sequenznummer), und die Bestätigungsnummer (acknowledgement number), die auf das nächste erwartete Byte verweist.

  4. Bestätigungen (Acknowledgements - ACK): Der Empfänger sendet ein ACK, um dem Sender mitzuteilen, welche Daten erfolgreich empfangen wurden. Wenn der Sender kein ACK innerhalb einer bestimmten Zeit (Timeout) erhält, sendet er das Segment erneut.

  5. Fehlerkontrolle (Error Control): Prüfsummen (Checksums) werden verwendet, um die Integrität der Daten zu überprüfen. Wenn ein Segment beschädigt ist, wird es verworfen, und der Sender wartet auf einen Timeout oder ein doppeltes ACK, um erneut zu senden.

  6. Flusskontrolle (Flow Control): Mechanismus, der verhindert, dass der Empfängerpuffer überläuft. Der Empfänger informiert den Sender über die Größe seines Empfangsfensters in ACK-Paketen. Der Sender darf nur so viele Daten senden, wie im Fenster angegeben.

  7. Staukontrolle (Congestion Control): Mechanismus zur Bestimmung der verfügbaren Netzkapazität und zur dynamischen Steuerung der Übertragungsgeschwindigkeit, um Überlastung zu vermeiden. Beinhaltet Algorithmen wie Slow Start, Congestion Avoidance, Fast Retransmit und Fast Recovery.

  8. Verbindungsbeendigung: Verwendet in der Regel eine Vier-Wege-Handschlag:

    • Eine Seite sendet ein FIN-Paket (Finish).
    • Die andere Seite sendet ein ACK für das FIN.
    • Die andere Seite sendet ihr eigenes FIN (nach Abschluss der Übertragung ihrer verbleibenden Daten).
    • Die erste Seite sendet ein ACK für dieses FIN.
    • Die Verbindung wird geschlossen.

Struktur des TCP-Segments:

Feld Größe (Bytes) Beschreibung
Quellport 2 Quellport
Zielport 2 Zielport
Sequenznummer 4 Nummer des ersten Bytes im Segment
Bestätigungsnummer 4 Nummer des nächsten erwarteten Bytes
Datenoffset / Header-Länge 4 Bits Länge des TCP-Headers
Reserviert 6 Bits Reserviert
Flags (Steuerbits) 6 Bits URG, ACK, PSH, RST, SYN, FIN
Fenstergröße 2 Größe des Empfangsfensters
Prüfsumme 2 Prüfsumme des Headers und der Daten
Dringender Zeiger 2 Zeigt auf dringende Daten (falls URG gesetzt)
Optionen Variabel Zusätzliche Optionen
Padding Variabel Für die Ausrichtung des Headers
Daten Variabel Übertragene Daten
// Flags (Steuerbits):
// URG: Dringender Zeiger ist relevant
// ACK: Bestätigungsfeld ist relevant
// PSH: Push-Funktion
// RST: Verbindung zurücksetzen
// SYN: Synchronisieren der Sequenznummern
// FIN: Keine weiteren Daten vom Sender