Technik · belegte Antwort
Nutzt SMTP TCP oder UDP? Technische Protokollanalyse
SMTP ist ein TCP-Protokoll. Es nutzt das Transmission Control Protocol, damit E-Mail-Nachrichten zuverlässig, in der richtigen Reihenfolge und ohne Datenverlust zugestellt werden. Das ist entscheidend für Kommunikationsprotokolle, bei denen jedes Byte der Nachricht unversehrt ankommen muss.
Warum SMTP TCP benötigt
SMTP benötigt ein verbindungsorientiertes Protokoll, weil die E-Mail-Zustellung keinen Paketverlust verträgt. TCP baut eine Sitzung per Drei-Wege-Handshake auf, ordnet Pakete über Sequenznummern und bestätigt den Empfang mit Acknowledgements. Geht während der Übertragung ein Paket verloren, fordert TCP automatisch eine erneute Übertragung an. UDP ist verbindungslos und garantiert keine Zustellung – und eignet sich daher nicht für das strukturierte Befehl-Antwort-Schema von SMTP-Sitzungen.
Ablauf des SMTP-Handshakes
Über die TCP-Verbindung kann SMTP einen dialogartigen Austausch führen. Nachdem der TCP-Socket geöffnet ist, sendet der Server eine Begrüßung mit 220. Der Client sendet dann EHLO oder HELO, um die Sitzung zu starten. Diese zustandsbehaftete Interaktion setzt sich über die Befehle MAIL FROM und RCPT TO fort. Ohne den zuverlässigen Datenstrom von TCP könnten Server und Client diese Zustandsübergänge nicht synchronisieren und Fehlercodes nicht sinnvoll verarbeiten.
Standard-TCP-Ports für SMTP
SMTP nutzt je nach Anwendungsfall mehrere registrierte TCP-Ports. Port 25 dient dem Relay zwischen Servern. Port 587 ist der Standard für die Einlieferung durch Clients mit STARTTLS. Port 465 wird für implizites TLS verwendet. Alle diese Zuordnungen werden von der IANA verwaltet und nutzen ausdrücklich die TCP-Transportschicht, um die Integrität der Sitzung bei der Übertragung von Headern und Nachrichtentext zu wahren.
Sicherheit und Transportschicht
Moderne SMTP-Implementierungen verpacken den TCP-Datenstrom in TLS, um ihn zu verschlüsseln. Das geschieht entweder über den Befehl STARTTLS auf Port 587 oder über implizites TLS auf Port 465. Da TLS selbst eine zuverlässige Transportschicht für seinen eigenen Handshake und Schlüsselaustausch benötigt, ist die darunterliegende TCP-Verbindung zwingend erforderlich. Mit den kostenlosen Tools von SendHQ können Entwickler ihre DNS-Einstellungen für diese sicheren Verbindungen prüfen.
Vergleich mit UDP-Protokollen
Während SMTP TCP nutzt, verwenden andere E-Mail-bezogene Dienste wie DNS für schnelle Abfragen mit wenig Overhead UDP. Sobald die DNS-Abfrage die IP des Mailservers per UDP aufgelöst hat, wechselt die eigentliche E-Mail-Übertragung jedoch zu TCP. Dieser hybride Ansatz ermöglicht schnelle Lookups und eine zuverlässige Zustellung. UDP steht für Geschwindigkeit und Effizienz, TCP für Genauigkeit und Sitzungsverwaltung.
Häufige Fragen von Teams
Kann SMTP jemals über UDP laufen?
Nein, die SMTP-Spezifikation verlangt einen zuverlässigen, geordneten Datenstrom, den nur TCP bietet. UDP unterstützt die notwendige Sitzungsverwaltung nicht.
Welcher TCP-Port eignet sich am besten für den E-Mail-Versand?
Port 587 ist der empfohlene Port für die Einlieferung von E-Mails, da er STARTTLS für eine sichere Übertragung unterstützt.
Ändert TLS das Transportprotokoll?
Nein, TLS ist eine kryptografische Schicht, die auf TCP aufsetzt. Es verschlüsselt die Daten, nutzt für den eigentlichen Transport der Pakete aber weiterhin TCP.
Warum nutzt DNS UDP, wenn SMTP TCP nutzt?
DNS nutzt UDP für kleine, schnelle Abfragen, um die Latenz zu senken. SMTP nutzt TCP, weil schon der Verlust eines einzigen Pakets eine komplette E-Mail-Nachricht beschädigen könnte.
Primärquellen
- RFC 5321: Simple Mail Transfer Protocol — RFC-Editor
- Service Name and Transport Protocol Port Number Registry — IANA (Portnummern-Registry)
- RFC 3207: SMTP Service Extension for Secure SMTP over Transport Layer Security — RFC-Editor