Network Working Group | D. Wilson |
Internet-Draft | A. Melnikov, Ed. |
Intended status: Informational | Isode Ltd |
Expires: September 5, 2018 | March 4, 2018 |
Multicast Email (MULE) over ACP 142
draft-melnikov-email-over-pmul-04
ACP 142 defines P_MUL, which is a protocol for reliable multicast in bandwidth constrained and delayed acknowledgement (EMCON) environments running over UDP. This document is a specification of the basic protocol for electronic mail transfer over P_MUL. It also describes how to gateway this basic protocol to/from Simple Mail Transfer Protocol (RFC 5321), including some common SMTP extensions.
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 September 5, 2018.
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.
P_MUL [ACP142A] is a transport protocol for reliable multicast in bandwidth constrained and delayed acknowledgement environments running on top of UDP. The objectives of this protocol are first to take advantage of the bandwidth saving feature of using the multicast service as supported by modern computer networks and second to allow message transfer under EMCON conditions. EMCON (Emission Control) or "Radio Silence" means that, although receiving nodes are able to receive messages, they are not able to acknowledge the receipt of messages.
The objective of this protocol is to take advantage of multicast communication for the transfer of messages between MTAs (Message Transfer Agents) on a single multicast network under normal - which means dialogue oriented - communication condition and under EMCON condition. EMCON condition means that a receiving node is able to receive messages, but it cannot - for a relative long time (hours or even days) - acknowledge the received messages.
This illustrates a simple multicast scenario, where the same message has to be sent from MTA 1 to MTA 2 and to MTA 3.
+-------+ +-------+ | MTA 1 |<-\ /->| MTA 3 | +-------+ +-----+ +-------+ \ +-------+ / +-------+ | MTA A |<--->| G/W |<---------------->| Router|< +-------+ +-----+ +-------+ / +-------+ \ +-------+ | MTA 2 |<-/ \->| MTA 4 | +-------+ +-------+ |< -------------- MULE ---------------->|
Typical MULE Deployment. The gateway (G/W) and Router might or might not be running on the same system.
Figure 1
Using a multicast instead of an unicast communication service in the above MTA configuration only one message transmission from MTA 1 to the Router is required, instead of two as required with unicast. This saves the transmision of one message and thus network bandwidth utilisation. Depending on the network bandwidth (in some radio networks less than 9.6 Kb/s) this saving can be of vital importance. The saving in bandwidth utilisation becomes even greater with every additional receiving MTA.
P_MUL employs a connectionless transport protocol to transmit messages, that guarantees reliable message transfer, even in those cases, when for a certain period of time one or more of the receiving MTAs are not able or allowed to acknowledge completely received messages.
This protocol specification requires fixed multicast groups and a well known knowledge at each participating node(MTA) about the group memberships to one or more multicast groups of each participating node.
This document defines application protocol MULE (Multicast Email) for transferring Internet Mail messages [RFC5322] over ACP 142 P_MUL.
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 [RFC2119].
This document is also using terminology from [RFC5321] and [RFC5598].
MULE is an electronic mail transport of Internet messages [RFC5322] over ACP 142 P_MUL network. It provided service similar to SMTP [RFC5321].
An important feature of MULE is its capability to transport mail across multiple networks, usually referred to as "MULE mail relaying". A network consists of the mutually-ACP142-accessible nodes. Using MULE, a process can transfer mail to another process on the same ACP 142 network or to some other ACP 142 network via a relay or gateway process accessible to both networks.
MULE reuses ESMTP extension framework [RFC5321]. MULE servers MUST support the following ESMTP extensions: DSN [RFC3461], SIZE [RFC1870], 8BITMIME [RFC6152], MT-PRIORITY [RFC6710], DELIVERBY [RFC2852], BINARYMIME and CHUNKING [RFC3030]. (As the message content size can always be determined from the compression wrapper and the size of the envelope, no special handling is needed for binary messages.)
Relaying a message using MULE is performed as follows:
MULE uses BSMTP-like payload which differs from BSMTP [RFC2442]. As with BSMTP, ESMTP capability negotiation is not used, since receiver EMCON restrictions prohibit such real-time interaction. For that reason, there is no point in including EHLO capabilities. "MAIL FROM:" and "RCPT TO:" prefixes can also be eluded in order to save a few bytes.
For each received message, the corresponding BSMTP-like payload is constructed as follows (Lines are terminated using CR LF):
Example of a BSMTP-like payload
<from@example.com> MT-PRIORITY=4 BODY=8BITMIME RET=HDRS ENVID=QQ314159 <to1@example.net> NOTIFY=SUCCESS,FAILURE ORCPT=rfc822;Bob@enterprise.example.net <to2@example.net> NOTIFY=SUCCESS,FAILURE From: from@example.com To: To1 <to1@example.net>, To2 <to2@example.net> Date: 27 Apr 2017 16:17 +0100 Subject: a test MIME-Version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8bit This is worth <poundsign>100
ABNF [RFC5234] for the BSMTP-like payload is:
bsmtp-like-payload = envelope CRLF payload envelope = FROM-line 1*RCPT-line FROM-line = reverse-path [SP mail-parameters] CRLF RCPT-line = forward-path [SP rcpt-parameters] CRLF payload = *OCTET ; Conforms to message syntax as defined in RFC 5322 and extended in MIME OCTET = <any 0-255 octet value> reverse-path = <as defined in RFC 5321> forward-path = <as defined in RFC 5321> mail-parameters = <as defined in RFC 5321> rcpt-parameters = <as defined in RFC 5321>
BSMTP-like payload (Section 3.1) is first compressed using zlibCompress [RFC1951] and the compressed payload is placed in the compressedContent field of the CompressedContentInfo element defined in Section 4.2.6 of [STANAG-4406]. This is then encoded as BER encoding [ITU.X690.2002] of the CompressedData ASN.1 structure. For convenience, the original definition of ASN.1 of the CompressedData structure is included below. The contentType-ShortForm value used by MULE is 25.
The above procedure is similar to how X.400 messages are sent using Annex E of STANAG 4406 Ed 2. This makes it easier to implement MTAs that support both Internet messages and X.400 messages in the same code base.
The Compressed Data Type (CDT) consists of content of any type that is compressed using a specified algorithm. The following object identifier identifies the Compressed Data Type:
id-mmhs-CDT ID ::= { iso(1) identified-organization(3) nato(26) stanags(0) mmhs(4406) object-identifiers(0) id-mcont(4) 2 }
The Compressed Data Type are defined by the following ASN.1 type:
DEFINITIONS ::= BEGIN CompressedData ::= SEQUENCE { compressionAlgorithm CompressionAlgorithmIdentifier, compressedContentInfo CompressedContentInfo } CompressionAlgorithmIdentifier ::= CHOICE { algorithmID-ShortForm [0] AlgorithmID-ShortForm, algorithmID-OID [1] OBJECT IDENTIFIER } AlgorithmID-ShortForm ::= INTEGER { zlibCompress (0) } CompressedContentInfo ::= SEQUENCE { CHOICE { contentType-ShortForm [0] ContentType-ShortForm, contentType-OID [1] OBJECT IDENTIFIER }, compressedContent [0] EXPLICIT OCTET STRING } ContentType-ShortForm ::= INTEGER { unidentified (0), external (1), -- identified by the object-identifier -- of the EXTERNAL content p1 (2), p3 (3), p7 (4) } END
A gateway from Internet Mail to MULE acts as SMTP server on the receiving side and as MULE client on the sending side.
When the content type for a message is an Internet message content type (which may be 7bit, 8bit or binary MIME), this is transported using ACP 142 [ACP142A] as follows:
The set of ACP 142 destinations for the message is derived from the next hop MTAs for each of the recipients.
As MULE doesn't allow next hop MTA to return immediate Response Codes for FROM-line or any of recipients in RCPT-line, MTAs that are compliant with this specification that receive a message that can't be delivered MUST generate a non delivery DSN report [RFC6522] message which includes message/delivery-status body part [RFC3464] and submit it using MULE to the FROM-line return-path address.
TBC: Also need to describe how to handle FROM-line or RCPT-line parameters that we don't understand. Probably, they can be rejected on receipt or be relayed to the final destination/gateway, which can decide what to do with them.
If a message is received by a gateway, through SMTP transfers using the CHUNKING [RFC3030] extension, the message is rebuilt by the receiving MTA into its complete form and is then used as a single MULE message payload. Use of BINARYMIME [RFC3030] extension is conveyed in the FROM-line.
A gateway from MULE to Internet Mail acts as a MULE server on the receiving side and as an SMTP client on the sending side.
Gatewaying from ACP 142 environment to Internet Email is the reverse of the process specified in Section 4.
ESMTP extension parameters to MAIL FROM and RCPT TO SMTP commands obtained from BSMTP-like payload are processed according to specifications of the corresponding ESMTP extensions, including dealing with absence of support for ESMTP extensions that correspond to MAIL FROM/RCPT TO parameters found in the BSMTP-like payload.
Failures to extract or uncompress BSMTP-like payload are handled according to ACP 142.
IANA is requested to create a new registry "Multicast Email SMTP extensions". SMTP extensions registered in the "SMTP Service Extensions" IANA registry can be registered in this new registry. Registration procedure for the new registry is "Specification Required" [RFC8126], but the registration reviewers will be appointed and managed by the editors of this document together with the Independent Submissions Editor. Registration requests should include SMTP extension name, status (see Section 6.1) with an optional note and specification reference. (At IANA's discretion the new registry can instead be represented as an extra column in the existing "SMTP Service Extensions" registry.)
The following table summarizes how different SMTP extensions can be used with MULE. Each extension has one of the following statuses: "Required" (required to be supported by MULE relays, SMTP-to-MULE gateway or MULE-to-SMTP gateway), "Disallowed" (incompatible with MULE), "N/A" (not relevant, because they affect commands other than MAIL FROM and/or RCPT TO, or only defined for SMTP Submission. Such extensions can still be used on the receiving SMTP side of SMTP-to-MULE gateway) "Supported" (can be used with MULE, but requires bilateral agreement between sender and receiver), or "Special". "Special" needs to be accompanied by an explanation.
SMTP Extension Support in MULE:
SMTP Extension Keyword | Reference | Status |
---|---|---|
SIZE | [RFC1870] | Required |
8BITMIME | [RFC6152] | Required |
DSN | [RFC3461] | Required |
MT-PRIORITY | [RFC6710] | Required |
DELIVERBY | [RFC2852] | Required |
BINARYMIME | [RFC3030] | Required |
CHUNKING | [RFC3030] | Special (*) |
ENHANCEDSTATUSCODES | [RFC2034] | Special (**) |
RRVS | [RFC7293] | Supported |
SUBMITTER | [RFC4405] | Supported |
PIPELINING | [RFC2920] | N/A |
STARTTLS | [RFC3207] | N/A |
AUTH | [RFC4954] | Special (***) |
BURL | [RFC4468] | N/A |
NO-SOLICITING | [RFC3865] | N/A |
CHECKPOINT | [RFC1845] | Disallowed |
CONNEG | [RFC4141] | Disallowed |
(*) - SMTP CHUNKING MUST be supported on the receiving SMTP side of a SMTP-to-MULE gateway and MAY be used on the sending side of MULE-to-SMTP gateway. MULE relay doesn't need to do anything special for this extension.
(**) - ENHANCEDSTATUSCODES extension is supported by including relevant status codes in DSN [RFC3461] reports.
(***) - The AUTH parameter to MAIL FROM command is "supported", but the rest of AUTH extension is not applicable to MULE.
Note that the above table is not exhaustive. Future RFCs can define how SMTP Extensions not listed above can be used in MULE.
TBD.
Thank you to Steve Kille for suggestions, comments and corrections on this document. Additional thank you goes to Barry Leiba and Dave Crocker for reviews and comments on this document.
Some text was borrowed from draft-riechmann-multicast-mail-00, thus work of authors of that document is greatefully acknowledged.