Zusammenfassung

  • Das Bestätigungsfeld ist stets im TCP-Header vorhanden, aber nur mit gesetztem ACK signifikant.
  • Sein Wert nennt die nächste erwartete Sequenznummer und bestätigt frühere Positionen kumulativ.
  • Der Dreiwege-Handshake macht den Wechsel sichtbar: Das erste SYN bestätigt nicht, SYN,ACK macht die Nummer aussagekräftig.

Ein Feld kann vorhanden sein, ohne etwas zu behaupten

RFC 793 und RFC 9293 verwenden einen festen TCP-Header. Die 32 Bit für die Bestätigungsnummer stehen im ersten SYN ebenso bereit wie in Daten- und Abschlusssegmenten. Trotzdem darf der Empfänger sie nicht bedingungslos lesen. Ist ACK gesetzt, enthält das Feld die nächste Sequenznummer, die der Sender erwartet. RFC 9293 fasst dies als „Acknowledgment field is significant“ zusammen.

So kann der aktive Eröffner seine eigene Anfangssequenznummer ankündigen, ohne eine Sequenz des Gegenübers vorzutäuschen. Bei gelöschtem ACK bleibt das Feld physisch vorhanden, liefert aber keine Bestätigung. Die Form bleibt konstant; der Verbindungszustand bestimmt die Bedeutung.

Der Handshake zeigt die Umschaltung

Im Grundbeispiel von RFC 9293 trägt das erste Segment SEQ=100 und SYN, ohne ACK. Die Antwort trägt SEQ=300, ACK=101 und SYN,ACK. Das letzte Segment trägt SEQ=101, ACK=301 und ACK. Weil SYN eine Position im Sequenzraum verbraucht, folgt auf die Bestätigung von 100 die erwartete Position 101.

Damit überschreitet derselbe Header eine Bedeutungsgrenze. Im ersten Segment ist die Nummer nicht signifikant; in der Antwort macht ACK sie zum Beleg für den Zustand des Partners. Nach dem Verbindungsaufbau wird die Bestätigung in diesem Zustand immer gesendet.

Eine kumulative Grenze, kein Anwendungsbeleg

Die Nummer bezeichnet die nächste erwartete Position und bestätigt damit alle früheren zusammenhängenden Sequenzpositionen. Sie ist weder eine Liste empfangener Segmente noch eine Authentisierung des Partners oder ein Nachweis, dass eine Anwendung die Daten verarbeitet hat. Das Window-Feld kündigt an, wie viele Datenoktette ab dieser Position akzeptiert werden. Beide Angaben gehören zusammen, doch ACK schaltet die Bedeutung des Bestätigungsfeldes ein.

ACK selbst verbraucht keinen Sequenzraum. Andernfalls müssten die Partner Bestätigungen bestätigen. Gerade deshalb kann ein etabliertes Segment Daten und kumulativen Empfangszustand gemeinsam tragen oder die Empfangsgrenze ohne neue Daten verschieben.

Kontinuität seit 1981

RFC 793 und der heutige Standard RFC 9293 bewahren dieselbe Struktur: ein festes 32-Bit-Feld, durch ACK bedingte Bedeutung, kumulative Bestätigung und keinen Sequenzplatz für ACK. Das ist eine Aussage über Protokollstruktur, nicht über heutige Implementierungen.

Quellen