Transmission Control Protocol
TCP (Transmission Control Protocol) ist ein Netzwerkprotokoll, das definiert, auf welche Art und Weise Daten zwischen Netzwerkkomponenten ausgetauscht werden sollen.
Beschreibung
Was ist TCP
- Ist ein zuverlässiges, verbindungsorientiertes, paketvermitteltes (nicht paketvermittelnd) Transportprotokoll.
- TCP ermöglicht die Übertragung eines Datenstroms.
- Im Unterschied zum verbindungslosen User Datagram Protokoll (UDP) stellt TCP eine Verbindung zwischen zwei Endpunkten (Sockets) einer Netzverbindung her.
- Auf dieser Verbindung können in beide Richtungen Daten übertragen werden.
Vorteile
- Netzwerküberlastungskontrolle.
- Zuverlässige Datenübertragung:
- erkennt verlorene Segmente, doppelte Segmente und fehlerhafte Segmente.
Allgemeines
TCP ist im Prinzip eine Ende-zu-Ende-Verbindung in Vollduplex.
- Kann auch als zwei Halbduplexverbindungen betrachtet werden (Informationsfluss in beide Richtungen (allerdings nicht gleichzeitig)).
- Die Daten in Gegenrichtung können zusätzliche Steuerungsinformationen enthalten.
- Anwendungen, die TCP häufig nutzen, sind zum Beispiel Webbrowser und Webserver.
TCP-Software
- Übernimmt Verbindungsverwaltung sowie die Datenübertragung.
- Netz-Protokollstack des Betriebssystems.
- Anwendungsprogramme nutzen Sockets.
Software-Schnitstelle
- bei Windows in extra einzubindenden Programmbibliotheken („Winsock.dll“ bzw. „wsock32.dll“).
- Linux und andere unixoide Betriebssysteme enthalten einen Socketlayer im Betriebssystemkern (Zugriff über Systemaufrufe).
Entwicklung
- Entwickelt von Robert E. Kahn und Vinton G. Cerf als Forschungsarbeit.
- Beginn 1973, erste Standardisierung 1981 als RFC 793.
- Danach gab es viele Erweiterungen, diese werden bis heute in RFCs spezifiziert.
Header
Allgemeines
- Das TCP-Segment besteht immer aus zwei Teilen: dem Header und der Nutzlast.
- Die Nutzlast enthält die zu übertragenden Daten.
- Die wiederum Protokollinformationen der Anwendungsschicht, wie HTTP oder FTP, entsprechen können.
- Der 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.
Felder des TCP-Header
Feld | Funktion | Größe |
---|---|---|
Source Port (Quellport) |
|
2 Byte |
Destinations Port (Zielport) |
|
2 Byte |
Sequence Number |
|
4 Byte |
Acknowledgement Number |
|
4 Byte |
Data Offset |
|
4 Bit |
Reserved |
|
4 Bit |
Control-Flags |
|
8 Bit |
(Receive) Window |
|
2 Byte |
Checksum |
|
2 Byte |
Urgent Pointer |
|
2 Byte |
Options |
|
0–40 Byte |
TCP-Flags
Feld | Funktion | Größe |
---|---|---|
ECE-Flag (ECN-Echo) |
|
1 Bit |
CRW-Flag (Congestion Window Reduced) |
|
1 Bit |
URG-Flag (Urgent) |
|
1 Bit |
ACK-Flag (Acknowledgment) |
|
1 Bit |
PSH-Flag (Push) |
|
1 Bit |
RST-Flag (Reset) |
|
1 Bit |
SYN-Flag (Synchronize) |
|
1 Bit |
FIN-Flag (Finish) |
|
1 Bit |
Installation
Konfiguration
Dateien
Dokumentation
RFC
- RFC 793 (1981)
- RFC 7323 (2014)
Man-Pages
Info-Pages
Links
Intern
Weblinks
Testfragen
Testfrage 1
Antwort1
Testfrage 2
Antwort2
Testfrage 3
Antwort3
Testfrage 4
Antwort4
Testfrage 5
Antwort5