Transmission Control Protocol/Segment
Header
- Ein TCP-Segment besteht aus zwei Teilen
- Header
- Nutzlast
- Header
- enthält für die Steuerung der Kommunikation erforderliche Daten.
- Da das Options-Feld in der Regel nicht genutzt wird, hat ein typischer Header eine Größe von 20 Byte.
- Nutzlast
- enthält die zu übertragenden Daten.
- Die wiederum Protokollinformationen der Anwendungsschicht, wie HTTP oder FTP, entsprechen können.
- Aufbau des Headers
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 |
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).
|
4 Bit |
Reserved | Ist für zukünftige Verwendungen reserviert.
|
4 Bit |
Control-Flags | Zweiwertige Variablen mit den Zuständen gesetzt und nicht gesetzt.
|
8 Bit |
(Receive) Window | Ist die Anzahl der Bytes die der Sender dieses TCP-Segments bereit ist zu empfangen.
|
2 Byte |
Checksum | Dient zur Erkennung von Übertragungsfehlern.
|
2 Byte |
Urgent Pointer | Nur gültig, wenn das URG-Flag gesetzt ist.
|
2 Byte |
Options | Unterschiedlich groß und enthält Zusatzinformationen.
|
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.
|
1 Bit |
CRW-Flag (Congestion Window Reduced) | Teilt dem Empfänger mit das die Senderate reduziert wurde.
|
1 Bit |
URG-Flag (Urgent) |
|
1 Bit |
ACK-Flag (Acknowledgment) | Hat in Verbindung mit der Acknowledgment-Nummer die Aufgabe, den Empfang von TCP-Segmenten bestätigen.
|
1 Bit |
PSH-Flag (Push) | Sowohl der ausgehende, als auch der eingehende Puffer wird übergangen.
|
1 Bit |
RST-Flag (Reset) | Wird verwendet, wenn eine Verbindung abgebrochen werden soll.
|
1 Bit |
SYN-Flag (Synchronize) | Pakete mit diesem Flag initiieren eine Verbindung.
|
1 Bit |
FIN-Flag (Finish) | Schlussflag, dient zur Freigabe der Verbindung, zeigt an, dass keine Daten vom Sender kommen.
|
1 Bit |
Der TCP-Header im Detail
- Sender-Port
16-Bit-Adresse des Quell-Sockets
- Empfänger-Port
16-Bit-Adresse des Ziels (Service) Endpunkte der TCP-Verbindung
- Sequenznummer
32-Bit-Zahl zur Indentifizierung gesendeter Datensegmente
- Quittungsnummer (Achnowledgment Number)
- Gibt an bis zu welchem Byte Daten korrekt empfangen wurden, indem der Empfänger übermittelt, welche Byte als nächstes erwartet wird
- Länge (Data Offset/Header Length)
- Länge des TCP-Kopfes in 32Bit-Worten
- Wegen der variablen Länge des Optionsfeldes notwendig
- Fenstergröße
- Fenstergröße in Byte ab dem bereits bestätigtem Byte
- Flusssteuerung
- wird vom Host je nach Belastung dynamisch festgelegt
- Prüfsumme über
- TCP-Paketkopf
- Daten
- Teile des IP-Paketkopfes (Pseudo-Header)
- IP-Quell- und Ziel-Adresse
- Protokollnummer (06)
- TCP-Segmentlänge
- Die Einbeziehung des Pseudo-Headers in die Prüfsumme hilft durch IP falsch zugeteilte Pakete zu erkennen
- Der TCP-Header im Detail 4
- Urgent-Zeiger
- Ergibt zusammen mit der Sequenznummer einen Zeiger auf das Ende von dringenden Daten, die vor den eigentlichen Nutzdaten stehen
- Wird nur bei gesetztem URG-Flag gelesen
- Optionen
- No-Option
- Maximum Segment Size (MSS)
- Maximale Anzahl von Nutzdaten die ein Host annehmen will oder kann
- Wird bei beim Verbindungsaufbau ausgetauscht
- Der kleinere Wert wird verwandt
- Default ist 536 Byte
- End of Option List
- Füllzeichen
- auf die nächste 32-Bit-Grenze wird mit Nullen aufgefüllt
- Nutzdaten
- Daten höherer Protokolle (z.B. http)
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