RFC 2197 – SMTP Service Extension for Command Pipelining
Überholt: ersetzt durch RFC 2920.
| Status | Draft Standard |
|---|---|
| Veröffentlicht | September 1997 |
| Ersetzt | RFC 1854 |
| Volltext | rfc-editor.org/rfc/rfc2197 |
RFC 2197 definiert eine Erweiterung des SMTP-Dienstes, die als Command Pipelining bezeichnet wird. Diese Erweiterung ermöglicht es einem SMTP-Client, mehrere Befehle in einem einzigen TCP-Sendevorgang zu bündeln, ohne auf die Antwort auf jeden einzelnen Befehl warten zu müssen. Dies ist besonders vorteilhaft in Netzwerken mit hoher Latenz, da es die Wartezeit auf Antworten reduziert und so die Gesamtleistung von SMTP-Transaktionen erheblich verbessert. Der Server signalisiert seine Unterstützung für diese Erweiterung durch das EHLO-Schlüsselwort PIPELINING.
Der Kern der Spezifikation liegt in der korrekten Handhabung von Befehlsgruppen. Bestimmte Befehle wie RSET, MAIL FROM und RCPT TO können beliebig in einer Gruppe erscheinen, während andere wie DATA, VRFY oder QUIT nur als letzter Befehl stehen dürfen. Der Client muss alle Statusantworten zu den gruppierten Befehlen zählen und korrekt zuordnen, wobei mehrzeilige Antworten zu unterstützen sind. Der Server wiederum darf unter keinen Umständen den TCP-Eingangspuffer leeren und sollte Antworten auf gruppierte Befehle puffern, um sie als Einheit zu senden.
Historisch gesehen adressiert RFC 2197 ein praktisches Problem: Viele ältere SMTP-Implementierungen konnten Pipelining nicht korrekt verarbeiten, etwa durch Pufferverluste bei Prozessübergaben oder durch falsche Behandlung fehlgeschlagener Befehle. Mit dieser Erweiterung wird die Fähigkeit zur Nutzung von Pipelining explizit ausgehandelt, sodass Clients sie nur bei unterstützenden Servern einsetzen. Dies ist nach wie vor relevant, da Command Pipelining in modernen SMTP-Kommunikationen ein wesentlicher Bestandteil zur Leistungssteigerung ist.