Die TCP-Timestamps-Option (Typ 8) dient zwei zentralen Funktionen: Protection Against Wrapped Sequences (PAWS) und Round-Trip Time Measurement (RTTM). Sie wird in TCP-Segmenten im SYN/SYN-ACK ausgehandelt und bleibt für die Verbindung aktiv.
PAWS: Schutz vor Sequenznummern-Wraparound
Die TCP-Sequenznummer ist 32 Bit lang (maximal 4,3 Mrd. Byte). Bei einer 10-Gbit/s-Verbindung sind die 4,3 GB nach etwa 3,4 Sekunden verbraucht — alte, verspätete Pakete könnten als gültige neue Daten interpretiert werden (Wraparound). PAWS löst dies, indem jedes Segment einen monoton steigenden Timestamp-Wert (TSval) erhält: Ein Segment mit niedrigerem TSval als dem zuletzt gesehenen wird als alt verworfen, selbst wenn die Sequenznummer wieder im gültigen Bereich liegt. Definiert in RFC 7323.
RTTM: Round-Trip Time Measurement
Jedes Daten-Segment enthält TSval (Absender-Zeitstempel), die Bestätigung trägt den TSecr (Echo des letzten TSval). Der Sender kann aus (Empfangszeit − TSecr) die aktuelle Umlaufzeit berechnen. Genauere RTT-Schätzung verbessert den RTO-Timer (Retransmission Timeout) und die Staukontrolle (Congestion Window).
Timestamps im TCP-Header
Die Option belegt 10 Byte (Kind=8, Länge=10, TSval 4 Byte, TSecr 4 Byte) — reduziert die Nutzlastkapazität jedes TCP-Segments minimal. Bei modernen Verbindungen (Gbit/s) ist der Overhead vernachlässigbar. Linux aktiviert Timestamps standardmäßig (net.ipv4.tcp_timestamps=1). Die virtuelle Timestamp-Uhr muss mindestens 1 Tick pro Sekunde liefern (typisch 1-1000 Hz, abhängig vom Kernel).
Verwandte Grundlagen
TCP, Window Scale, SACK, TCP-Segment, MSS, Netzwerkpaket, Latenz.