Network Working Group | J. Harris, Ed. |
Internet-Draft | None |
Intended status: Experimental | September 13, 2018 |
Expires: March 17, 2019 |
SMTP Service Extension for Early Pipelining
draft-harris-early-pipe-01
PIPE_CONNECT is an SMTP extension supporting the pipelining of banner, EHLO and one following command or traditionally-pipelined sequence in an SMTP conversation. It permits a reduction in delivery latency by eliminating a nunmber of network round-trips.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 17, 2019.
Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
The SMTP protocol [RFC5321] specifies an interlocked sequence of commands and responses for the start of the conversation between client and server. Later portions of the conversation can use non-interlocked commands when the PIPELINING extession [RFC2920] is used. This memo specifies a way to perform non-interlocked operations early in the SMTP conversation.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
The Early Pipielining extension is defined as follows:
When a client SMTP wishes to employ early pipelining, it first issues the EHLO command to the server SMTP. If the server SMTP responds with code 250 to the EHLO command, and the response includes the EHLO keyword value PIPE_CONNECT, then the server SMTP has indicated that it can accommodate SMTP early pipelining.
Once the client SMTP has confirmed that support exists for the early pipielinng extension, it MAY cache this information for later connections to the same IP address. The cached information:
A client having valid cached information for cleartext use may use that information on subsequent connections to that IP. If such cached information includes this extension:
After a successful STARTTLS negotiation and TLS startup, a client having valid cached information for encrypted use may use that information on connections to that IP. If such cached information includes this extension:
After a successful TLS startup not initiated by a STARTTLS command, a client having valid cached information for encrypted use may use that information on connections to that IP. If such cached information includes this extension:
In all cases the traditional presence and sequencing of commands MUST be used by the client and the checking of responses MUST be done by the client.
The client MAY invalidate cached information at any time. The client MUST compare EHLO response information with cached information and invalidate the cache entry when there is a change for any extension which it uses. It is RECOMMENDED that cache entries also be invalidated after a limited time.
A client noting a change in EHLO response:
If a server SMTP offers this extension to a client at given IP address, it:
A server SHOULD NOT advertise this extension if it is one of many accessed via a single IP address, and the several servers might have different configurations.
Implementations SHOULD provide means for restricting this extension to a limited subset of clients. Operators may wish to restrict its use to more-trusted peers.
If published as an RFC, this draft requests the addition of the following keyword to the SMTP Service Extensions Registry [IANA-SMTP-Extensions]
Textual name: | Early Pipelining |
EHLO keyword value: | PIPE_CONNECT |
Syntax and parameters: | (no parameters) |
Additional SMTP verbs: | none |
MAIL and RCPT parameters: | none |
Behavior: | Permits pipelining of early SMTP commands |
Command length increment: | n/a |
Spammers are known for not respecting the command/response interlocks required by the SMTP protocol, and detecting violations is a common antispam technique. This extension makes such detection have less coverage. Operators may prefer to only advertise and operate support for the extension to known-good clients.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC2920] | Freed, N., "SMTP Service Extension for Command Pipelining", STD 60, RFC 2920, DOI 10.17487/RFC2920, September 2000. |
[RFC5321] | Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, DOI 10.17487/RFC5321, October 2008. |
[IANA-SMTP-Extensions] | Internet Assigned Numbers Authoriity (IANA), "SMTP Service Extensions" |