Zum Hauptinhalt springen

RFC 793 - TRANSMISSION CONTROL PROTOCOL

DARPA INTERNET PROGRAMM
PROTOKOLLSPEZIFIKATION

Veröffentlicht: September 1981
Status: Internet-Standard (STD 7)
Autor: Jon Postel (Information Sciences Institute, USC)
Organisation: DARPA Internet-Programm


Status dieses Memos

Dieses RFC spezifiziert einen Standard für die DARPA-Internet-Community. Hosts im DARPA-Internet werden erwartet, diesen Standard zu übernehmen und zu implementieren.


Zusammenfassung (Abstract)

Das Transmission Control Protocol (TCP) ist für die Verwendung als hochzuverlässiges Host-to-Host-Protokoll zwischen Hosts in paketvermittelten Computerkommunikationsnetzwerken und in zusammengeschalteten Systemen solcher Netzwerke vorgesehen.

Dieses Dokument beschreibt die vom Transmission Control Protocol auszuführenden Funktionen, das Programm, das es implementiert, und seine Schnittstelle zu Programmen oder Benutzern, die seine Dienste benötigen. TCP bietet einen verbindungsorientierten, zuverlässigen Byte-Stream-Dienst.


Inhaltsverzeichnis (Table of Contents)

Vorwort (Preface)

1. Einführung (Introduction)

2. Philosophie

  • 2. Philosophy (Philosophie)
    • 2.1 Elemente des Internetwork-Systems
    • 2.2 Betriebsmodell
    • 2.3 Die Host-Umgebung
    • 2.4 Schnittstellen
    • 2.5 Beziehung zu anderen Protokollen
    • 2.6 Zuverlässige Kommunikation
    • 2.7 Verbindungsaufbau und -abbau
    • 2.8 Datenkommunikation
    • 2.9 Priorität und Sicherheit
    • 2.10 Robustheitsprinzip

3. Funktionale Spezifikation

Anhänge


Schnellreferenz zu Kernkonzepten

TCP-Header-Format

    0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Hauptmerkmale von TCP

MerkmalBeschreibung
VerbindungsorientiertMuss vor der Kommunikation eine Verbindung aufbauen (Dreiwege-Handshake)
Zuverlässige ÜbertragungBestätigungs-, Neuübertragungs- und Sequenzierungsmechanismen
Byte-StreamBehandelt Daten als kontinuierlichen Byte-Strom
FlusskontrolleGleitfenstermechanismus
StaukontrolleVerhindert Netzwerküberlastung
VollduplexGleichzeitige bidirektionale Übertragung

Verbindungszustände

CLOSED → LISTEN → SYN-RECEIVED → ESTABLISHED → FIN-WAIT-1 → ...

Hauptzustände:
- CLOSED: Geschlossen
- LISTEN: Lauschend
- SYN-SENT: SYN gesendet
- SYN-RECEIVED: SYN empfangen
- ESTABLISHED: Verbindung hergestellt
- FIN-WAIT-1: Erste FIN-Wartezeit
- FIN-WAIT-2: Zweite FIN-Wartezeit
- CLOSE-WAIT: Schließwartezeit
- CLOSING: Schließt
- LAST-ACK: Letzte Bestätigung
- TIME-WAIT: Zeitwartezeit

Dreiwege-Handshake

Client                          Server
| |
| SYN (seq=x) |
|------------------------------->|
| |
| SYN-ACK (seq=y, ack=x+1) |
|<-------------------------------|
| |
| ACK (ack=y+1) |
|------------------------------->|
| |
| ESTABLISHED |

TCP vs UDP Vergleich

MerkmalTCPUDP
VerbindungVerbindungsorientiertVerbindungslos
ZuverlässigkeitZuverlässigUnzuverlässig
ReihenfolgeGarantiert ReihenfolgeKeine Garantie
GeschwindigkeitLangsamerSchnell
OverheadHoch (20-60 Byte Header)Niedrig (8 Byte Header)
FlusskontrolleJaNein
StaukontrolleJaNein
AnwendungsfälleHTTP, FTP, EmailDNS, Video-Streaming, Gaming

Verwandte Ressourcen

  • Offizieller Text: RFC 793 (TXT)
  • Offizielle Seite: RFC 793 DataTracker
  • Standard: STD 7
  • Verwandte Protokolle:
    • RFC 791 (IP) - Netzwerkschicht
    • RFC 792 (ICMP) - Kontrollnachrichten
    • RFC 768 (UDP) - Vergleichsprotokoll
    • RFC 2581 (TCP-Staukontrolle)
    • RFC 5681 (TCP-Staukontrolle-Update)
    • RFC 7323 (TCP-Erweiterungen)

Wichtiger Hinweis: TCP ist eines der Kernprotokolle der Internet-Transportschicht. In Kombination mit dem IP-Protokoll bildet es die Grundlage des TCP/IP-Protokollstapels. Es bietet einen zuverlässigen, verbindungsorientierten Byte-Stream-Dienst und ist die Grundlage für viele Anwendungsprotokolle wie HTTP, FTP und SMTP.