TCP (Transmission Control Protocol) ist ein verbindungsorientiertes Protokoll der Transportschicht. Es stellt sicher dass Datenpakete vollständig, in der richtigen Reihenfolge und ohne Fehler ankommen. TCP baut vor der Übertragung eine Verbindung auf (3-Way-Handshake: SYN → SYN-ACK → ACK) und bestätigt jedes empfangene Paket.
UDP (User Datagram Protocol) ist ein verbindungsloses Protokoll. Es sendet Pakete ohne Verbindungsaufbau und ohne zu prüfen ob sie ankommen. Das macht UDP deutlich schneller als TCP – aber es gibt keine Garantie dass alle Pakete vollständig und in richtiger Reihenfolge ankommen.
| Eigenschaft | TCP | UDP |
|---|---|---|
| Verbindung | Verbindungsorientiert | Verbindungslos |
| Zuverlässigkeit | Garantiert | Keine Garantie |
| Reihenfolge | Pakete in Reihenfolge | Keine Garantie |
| Fehlerkorrektur | Ja (Retransmission) | Nein |
| Geschwindigkeit | Langsamer | Schneller |
| Overhead | Höher (Header 20 Byte) | Niedriger (Header 8 Byte) |
| Verbindungsaufbau | 3-Way-Handshake | Kein Handshake |
| Broadcast/Multicast | Nicht möglich | Möglich |
Überall wo Vollständigkeit wichtiger ist als Geschwindigkeit.
Überall wo Geschwindigkeit wichtiger ist als Vollständigkeit.
Bevor TCP Daten überträgt, baut es eine Verbindung in drei Schritten auf: Der Client sendet ein SYN-Paket (Synchronize). Der Server antwortet mit SYN-ACK (Synchronize-Acknowledge). Der Client bestätigt mit ACK (Acknowledge). Erst dann beginnt die eigentliche Datenübertragung. Dieser Overhead macht TCP zuverlässiger aber langsamer als UDP.