Request for Comments: 2524 Neda Communications, Inc.
Category: Informational February 1999
Neda's
Efficient Mail Submission and Delivery (EMSD)
Protocol Specification Version 1.3
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (1999). All Rights Reserved.
IESG Note
The protocol specified in this document may be satisfactory for
limited use in private wireless IP networks. However, it is
unsuitable for general-purpose message transfer or for transfer of
messages over the public Internet, because of limitations that
include the following:
- Lack of congestion control
EMSD is layered on ESRO [RFC2188], which does not provide
congestion control. This makes EMSD completely unsuitable for
end-to-end use across the public Internet. EMSD should be
considered for use in a wireless network only if all EMSD email
exchanged between the wireless network and the public Internet
will transit an EMSD<->SMTP gateway between the two regions.
- Inadequate security
The document specifies only clear-text passwords for
authentication. EMSD should be used across a wireless network
only if sufficiently strong encryption is in use to protect the
clear-text password.
- Lack of character set internationalization
EMSD has no provision for representation of characters outside of
the ASCII repertoire or for language tags.
- Poorly defined gatewaying to and from Internet Mail
Because Internet Mail and EMSD have somewhat different and
conflicting service models and different data models, mapping
between them may provide good service only in limited cases, and
this may cause operational problems.
The IESG therefore recommends that EMSD deployment be limited to
narrow circumstances, i.e., only to communicate with devices that
have inherent limitations on the length and format of a message (no
more than a few hundred bytes of ASCII text), using either:
a. wireless links with adequate link-layer encryption and gatewayed
to the public Internet, or
b. a private IP network that is either very over-provisioned or has
some means of congestion control.
In the near future, the IESG may charter a working group to define an
Internet standards-track protocol for efficient transmission of
electronic mail messages, which will be highly compatible with
existing Internet mail protocols, and which wil be suitable for
operation over the global Internet, including both wireless and wired
links.
ABSTRACT
This document specifies the protocol and format encodings for
Efficient Mail Submission and Delivery (EMSD). EMSD is a messaging
protocol that is highly optimized for submission and delivery of
short Internet mail messages. EMSD is designed to be a companion to
existing Internet mail protocols.
This specification narrowly focuses on submission and delivery of
short mail messages with a clear emphasis on efficiency. EMSD is
designed specifically with wireless network (e.g., CDPD, Wireless-IP,
Mobile-IP) usage in mind. EMSD is designed to be a natural
enhancement to the mainstream of Internet mail protocols when
efficiency in mail submission and mail delivery are important. As
such, EMSD is anticipated to become an initial basis for convergence
of Internet Mail and IP-based Two-Way Paging.
The reliability requirement for message submission and message
delivery in EMSD are the same as existing email protocols. EMSD
protocol accomplishes reliable connectionless mail submission and
delivery services on top of Efficient Short Remote Operations (ESRO)
protocols as specified in RFC-2188 [1].
Most existing Internet mail protocols are not efficient. Most
existing Internet mail protocols are designed with simplicity and
continuity with SMTP traditions as two primary requirements. EMSD is
designed with efficiency as a primary requirement.
The early use of EMSD in the wireless environment is manifested as
IP-based Two-Way Paging services. The efficiency of this protocol
also presents significant benefits for large centrally operated
Internet mail service providers.
Table of Contents
1 PRELIMINARIES 4
1.1 Internet Mail Submission and Delivery . . . . 4
1.2 Relationship Of EMSD To Other Mail Protocols . . . 5
1.3 EMSD Requirements and Goals . . . . . . . 7
1.4 Anticipated Uses Of EMSD . . . . . . . . 8
1.5 Definitions of Terms Used in this Specification . . 9
1.6 Conventions Used In This Specification . . . . 9
1.7 About This Specification . . . . . . . . 10
2 EFFICIENT MAIL SUBMISSION AND DELIVERY OVERVIEW 10
3 EFFICIENT MAIL SUBMISSION AND DELIVERY PROTOCOL 11
3.1 Use Of Lower Layers . . . . . . . . . 13
3.1.1 Use of ESROS . . . . . . . . . 13
3.1.2 Use Of UDP . . . . . . . . . . 13
3.1.3 Encoding Rules . . . . . . . . . 13
3.1.4 Presentation Context . . . . . . . 14
3.2 EMSD-UA Invoked Operations . . . . . . . 14
3.2.1 submit . . . . . . . . . . . 14
3.2.2 deliveryControl . . . . . . . . 17
3.2.3 deliveryVerify . . . . . . . . . 21
3.3 EMSD-SA Invoked Operations . . . . . . . 23
3.3.1 deliver . . . . . . . . . . 23
3.3.2 submissionControl . . . . . . . . 25
3.3.3 submissionVerify . . . . . . . . 28
3.4 EMSD Common Information Objects . . . . . . 30
3.4.1 SecurityElements . . . . . . . . 30
3.4.2 Message Segmentation and Reassembly . . . 30
3.4.3 Common Errors . . . . . . . . . 33
3.4.4 ContentType . . . . . . . . . 35
3.4.5 EMSDMessageId . . . . . . . . . 35
3.4.6 EMSDORAddress . . . . . . . . . 36
3.4.7 EMSDAddress . . . . . . . . . 36
3.4.8 DateTime . . . . . . . . . . 36
3.4.9 AsciiPrintableString . . . . . . . 37
3.4.10 ProtocolVersionNumber . . . . . . . 37
3.5 Submission and Delivery Procedures . . . . . 38
4 DUPLICATE OPERATION DETECTION SUPPORT 40
4.1 Duplicate Operation Detection Support Overview . . 40
4.1.1 Operation Value . . . . . . . . 40
4.1.2 Operation Instance Identifier . . . . . 41
5 EMSD PROCEDURE FOR OPERATIONS 42
5.1 MTS Behavior . . . . . . . . . . . 43
5.1.1 MTS Performer . . . . . . . . . 43
5.1.2 Message-submission . . . . . . . . 44
5.1.3 Delivery-control . . . . . . . . 46
5.1.4 Delivery-verify . . . . . . . . 46
5.1.5 MTS Invoker . . . . . . . . . 46
5.2 UA Behavior . . . . . . . . . . . 49
5.2.1 UA Performer . . . . . . . . . 49
5.2.2 UA Invoker . . . . . . . . . . 52
6 EMSD FORMAT STANDARDS 54
6.1 Format Standard Overview . . . . . . . . 54
6.2 Interpersonal Messages . . . . . . . . 54
6.2.1 Heading fields . . . . . . . . . 55
6.2.2 Body part types . . . . . . . . 61
7 ACKNOWLEDGMENTS 62
8 SECURITY CONSIDERATIONS 62
9 AUTHOR'S ADDRESS 62
A EMSD-P ASN.1 MODULE 63
B EMSD-IPM ASN.1 MODULE 74
C RATIONALE FOR KEY DESIGN DECISIONS 78
C.1 Deviation From The SMTP Model . . . . . . 78
C.1.1 Comparison of SMTP and EMSD Efficiency . . . 78
C.2 Use of ESRO Instead of TCP . . . . . . . 79
C.3 Use Of Remote Procedure Call (RPC) Model . . . . 79
C.4 Use Of ASN.1 . . . . . . . . . . . 80
D FURTHER DEVELOPMENT 81
E REFERENCES 82
F FULL COPYRIGHT STATEMENT 83
1 PRELIMINARIES
Mail in the Internet was not a well-planned enterprise, but instead
arose in more of an "organic" way.
This introductory section is not intended to be a reference model and
concept vocabulary for mail in the Internet. Instead, it only
provides the necessary preliminaries for the concepts and terms that
are essential to this specification.
1.1 Internet Mail Submission and Delivery
For the purposes of this specification, mail submission is the
process of putting mail into the mail transfer system (MTS).
For the purposes of this specification, mail delivery is the process
of the MTS putting mail into a user's final mail-box.
Throughout the Internet, presently most of mail submission and
delivery is done through SMTP.
SMTP was defined as a message *transfer* protocol, that is, a means
to route (if needed) and deliver mail by putting finished (complete)
messages in a mail-box. Originally, users connected to servers from
terminals, and all processing occurred on the server. Now, a split-
MUA (Mail User Agent) model is common, with MUA functionality
occurring on both the user's own system and the server.
In the split-MUA model, getting the messages to the user is
accomplished through access to a mail-box on the server through such
protocols as POP and IMAP. In the split-MUA model, user's access to
its message is a "Message Pull" paradigm where the user is required
to poll his mailbox. Proper message delivery based on a "Message
Push" paradigm is presently not supported. The EMSD protocol
addresses this shortcoming with an emphasis on efficiency.
In the split-MUA model, message submission is often accomplished
through SMTP. SMTP is widely used as a message *submission* protocol.
Widespread use of SMTP for submission is a reality, regardless of
whether this is good or bad. EMSD protocol provides an alternative
mechanism for message submission which emphasizes efficiency.
1.2 Relationship Of EMSD To Other Mail Protocols
Various Internet mail protocols facilitate accomplishment of various
functions in mail processing.
Figure 1, categorizes the capabilities of SMTP, IMAP, POP and EMSD
based on the following functions:
+------------------+------+-------+-----+------+
| Protocols| SMTP | IMAP | POP | EMSD |
|Functions | | | | |
|------------------|------|-------|-----|------|
|Submission | XX | | | XXX |
|------------------|------|-------|-----|------|
|Delivery | XXX | | | XXX |
|------------------|------|-------|-----|------|
|Relay (Routing) | XXX | | | |
|------------------|------|-------|-----|------|
|Retrieval | | XXX | XXX | XX |
|------------------|------|-------|-----|------|
|Mailbox Access | | XXX | X | |
|------------------|------|-------|-----|------|
|Mailbox Synch. | | XXX | | |
+------------------+------+-------+-----+------+
Figure 1: Messaging Protocols vs. Supported Functions
o Mail Submission
o Mail Delivery
o Mail Routing (Relay)
o Mail Retrieval
o Mail-box Access
o Mail-box Synchronization
In Figure 1, the number of "X"es in each box denotes the extent to
which a particular function is supported by a particular protocol.
Figure 1 clearly shows that combinations of these protocols can be
used to complement each other in providing rich functionality to the
user. For example, a user interested in highly mobile messaging
functionalities can use EMSD for "submission and delivery of time
critical and important messages" and use IMAP for comprehensive
access to his/her mail-box.
For mail submission and delivery of short messages EMSD is up to 5
times more efficient than SMTP both in terms of the number of packets
transmitted and in terms of number of bytes transmitted. Even with
PIPELINING and other possible optimizations of SMTP, EMSD is up to 3
times more efficient than SMTP both in terms of the number of packets
transmitted and in terms of number of bytes transmitted. Various
efficiency studies comparing EMSD with SMTP, POP and IMAP are
available. See Section C.1.1 for more information about comparison
of SMTP and EMSD's efficiency.
1.3 EMSD Requirements and Goals
The requirements and goals driving design of EMSD protocol are
enumerated below.
1. Provide for submission of short mail messages with the same level
of functionality (or higher) that the existing Internet mail
protocols provide.
2. Provide for delivery of short mail messages with the same level
of functionality (or higher) that the existing Internet mail
protocols provide.
3. Function as an extension of the existing mainstream Internet
mail.
4. Minimize the number of transmissions.
5. Minimize the number of bytes transmitted.
6. Be quick: minimize latency of message submission and delivery.
7. Provide the same level of reliability (or higher) that the
existing email protocols provide.
8. Accommodate varying sizes of messages: the size of a message may
determine how the system deals with the message, but the system
must accommodate it.
9. Be power efficient and respect mobile platform resources:
including memory and CPU levels, as well as battery power
longevity (i.e. client-light and server-heavy).
10. Highly extendible: different users will demand different
options, so the solution cannot require every feature to be a
part of every message. Likewise, usage will emerge that is not
currently recognized as a requirement. The solution must be
extendible enough to handle new, emerging requirements.
11. Secure: provide the same level of security (or higher) that the
existing email protocols provide. Content confidentiality,
originator/recipient authentication and message integrity must
be available options to users.
12. Easy to implement: Re-use existing technology as much as
possible.
1.4 Anticipated Uses Of EMSD
Any network and network operator which has significant bandwidth and
capacity limitations can benefit from the use of EMSD. Any network
user who must bear high costs for measured network usage can benefit
from the use of EMSD.
Initial uses of EMSD is anticipated to be primarily over IP-based
wireless networks to provide two-way paging services.
EMSD can also function as an adjunct to Mail Access Protocols for
"Mail Notification Services".
Considering:
o that most wireless networks shall converge toward being IP-
based;
o that two-way paging is the main proven application in most
wide-area wireless networks;
o that two-way paging industry and the Internet Email industry can
and should converge based on a set of open protocols that
address the efficiency requirements adequately;
o that existing Internet email protocols are not bandwidth
efficient;
o that existing Internet email protocols do not properly support
the "push" model of delivery of urgent messages,
the EMSD protocol is designed to facilitate the convergence of IP-
based two-way paging and Internet email.
Mail submission and delivery take place at the edges of the network.
More than one mail submission and delivery protocols which address
requirements specific to a particular user's environment are likely
to be developed. Such diversity on the edges of the network is
desirable and with the right protocols, this diversity does not
adversely impact the integrity of the mail transfer system. EMSD is
the initial basis for the mail submission and delivery protocol to be
used when the user's environment demands efficiency.
1.5 Definitions of Terms Used in this Specification
The following informal definitions and acronyms are intended to help
describe EMSD model described in this specification.
Efficient Mail Submission and Delivery Protocol (EMSD-P): The
protocol used to transfer messages between the EMSD - Server
Agent (e.g., a Message Center) and the EMSD - User Agent (e.g., a
Two-Way Pager), see Figure 2.
Message Transfer Agent (MTA)
Message Transfer Service (MTS)
Message Routing Service (MRS): Collection of MTAs responsible for
mail routing.
Message User Agent (MUA)
Efficient Mail Submission Server Agent (EMS-SA): An Application
Process which conforms to this protocol specification and accepts
mail from an EMS-UA and transfers it towards its recipients.
Efficient Mail Delivery Server Agent (EMD-SA): An Application Process
which conforms to this protocol specification and delivers mail
to an EMD-UA.
Efficient Mail Submission and Delivery Server Agent (EMSD-SA): An
Application Process which incorporates both EMS-SA and EMD-SA
capabilities.
Efficient Mail Submission User Agent (EMS-UA): An Application Process
which conforms to this protocol specification and submits mail to
EMS-SA.
Efficient Mail Delivery User Agent (EMD-UA): An Application Process
which conforms to this protocol specification and accepts
delivery of mail from EMD-SA.
Efficient Mail Submission and Delivery User Agent (EMSD-UA): An
Application Process which incorporates both EMS-UA and EMD-UA
capabilities.
1.6 Conventions Used In This Specification
The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
in this specification are to be interpreted as defined in [2].
This specification uses the ES-OPERATION notation defined in
Efficient Short Remote Operations (ESRO) protocols as specified in
RFC-2188 [1].
Operations and information objects are typically described using the
ES-OPERATION and ASN.1 notations in the relevant sections of the
specification.
The complete machine verifiable ASN.1 modules are also compiled in
one place in Appendix A and Appendix B.
1.7 About This Specification
This protocol specification constitutes a point-of-record. It
documents information exchanges and behaviors of existing
implementations. It is a basis for implementation of efficient mail
submission and delivery user agents and servers.
This specification has been developed entirely outside of IETF. It
has had the benefit of review by many outside of IETF. Much has been
learned from existing implementations of this protocol. A number of
deficiencies and areas of improvement have been identified and are
documented in this specification.
This protocol specification is being submitted on October 23, 1998
for timely publication as an Informational RFC.
Future development and enhancements to this protocol may take place
inside of IETF.
2 EFFICIENT MAIL SUBMISSION AND DELIVERY OVERVIEW
This section offers a high level view of the Efficient Mail
Submission and Delivery Protocol and Format Standards (EMSD-P&FS).
The EMSD-P&FS are used to transfer messages between the EMSD - Server
Agent (e.g., a Message Center) and the EMSD - User Agent (e.g., a
Two-Way Pager), see Figure 2.
This specification defines the protocols between an EMSD - User Agent
(EMSD-UA) and an EMSD - Server Agent (EMSD-SA). The EMSD - P&FS
consist of two independent components:
1. EMSD Format Standard (EMSD-FS).
EMSD-FS is a non-textual form of compact encoding of Internet
mail (RFC-822) messages which facilitates efficient transfer of
messages. EMSD-FS is used in conjunction with the EMSD-P but is
not a general replacement for RFC-822. EMSD-FS defines a method
of representation of short interpersonal messages. It defines
the "Content" encoding (Header + Body). Although EMSD-FS
contains end-to-end information its scope is purely point-to-
point. EMSD-FS relies on EMSD-P (see 2 below) for the transfer
of the content to its recipients.
This is described in the section entitled EMSD Format Standards.
2. Efficient Mail Submission and Delivery Protocol (EMSD-P).
EMSD-P is responsible for wrapping an EMSD-FS message (see 1
above) in a point-to-point envelope and submitting or delivering
it. EMSD-P relies on the services of Efficient Short Remote
Operation Services (ESROS) as specified in RFC-2188 [1] for
transporting the point-to-point envelope. Some of the services
of EMSD-P include: message originator authentication and
optional message segmentation and reassembly. The EMSD-P is
expressed in terms of abstract services using the ESROS notation.
This is described in the section entitled Efficient Mail
Submission and Delivery Protocol.
It is important to recognize that EMSD-P and EMSD-FS are not end-to-
end, but focus on the point-to-point transfer of messages. The two
points being EMSD-SA and EMSD-UA. EMSD-P function as elements of the
Internet mail environment, which provide end-to-end (EMSD-User to any
other Messaging Originator or Recipient) services.
Figure 2 illustrates how the EMSD-P&FS defines the communication
between a specific EMSD-UA and a specific EMSD-SA. The Message
Transfer System may include a number of EMSD-SAs. Each EMSD-SA may
have any number of EMSD-UAs with which it communicates.
The Efficient Mail Submission and Delivery Services use the Efficient
Short Remote Operation Services (ESROS). They also use the Duplicate
Operation Detection Support Functions as described in the section
entitled Duplicate Operation Detection Support Functions. These
functions guarantee that an operation is performed no more than once.
3 EFFICIENT MAIL SUBMISSION AND DELIVERY PROTOCOL
EM Submission is the process of transferring a message from EMSD-UA
to EMSD-SA. EM Delivery is the process of transferring a message from
EMSD-SA to EMSD-UA.
The Message-submission service enables an EMSD-UA to submit a message
to the EMSD-SA for transfer and delivery to one or more recipients.
The Message-submission Service comprises of the submit operation --
invoked by the EMSD-UA -- and possibly the submitVerify operation --
invoked by the EMSD-SA.
The Message-delivery service enables the EMSD-SA to deliver a message
to an EMSD-UA. The Message-delivery Service comprises of the deliver
operation -- invoked by the EMSD-SA -- and possibly the deliverVerify
operation -- invoked by the EMSD-UA.
EMSD-UA uses the following services:
o Message-submission
+---------------------------------------------+
| MTS |
| |
| +-------------------------+ |
| | MRS | |
| | +---+ +---+ | |
| | | | | M | | +---+ |
| | | |<-------->| T |<----------->| | |
| | | | | A | | | | | +---+
| | | | +---+ | | E | | | E |
| | | | | | M | | | M |
| | | M | | | S | | EMSD-P&FS | S |
| | | T |<-------------------------->| D |<---------------->| D |
| | | A | | | - | | | - |
| | | | +---+ | | S | | | U |
| | | | | M | | | A | | | A |
| | | |<-------->| T |<----------->| | | +---+
| | | | | A | | | | |
| | +---+ +---+ | +---+ |
| | | |
| +-------------------------+ |
| |
| |
+---------------------------------------------+
Figure 2: Efficient Mail Submission and Delivery Protocol
o Delivery-control (the deliveryControl operation).
EMSD-SA uses the following services:
o Message-delivery
o Submission-control (the submissionControl operation).
This specification expresses information objects using ASN.1 [X.208].
This specification expresses Remote Operations based on the model of
ESROS as specified in Efficient Short Remote Operations (RFC-2188)
[1]. The ES-OPERATION notation of (RFC-2188) is used throughout this
specification to define specific operations.
This specification uses the Duplicate Operation Detection Support
functions as specified in Section 4.
3.1 Use Of Lower Layers
3.1.1 Use of ESROS
ESRO protocol, as specified in (RFC-2188 [1]), provides reliable
connectionless remote operation services on top of UDP [6] with
minimum overhead. ESRO protocol supports segmentation and
reassembly, concatenation and separation.
ESRO Services (2-Way and 3-Way handshake) shall be used by the EMSD-
P.
ESRO Service Access Point (SAP) selectors used by EMSD-P are
enumerated in the protocol.
3.1.2 Use Of UDP
EMSD-P through ESRO MUST use UDP [6] port number 642 (esro-emsdp).
Note that specification of Service Access Points (SAP) for EMSD-P
include the UDP Port Number specification in addition to ESRO SAP
selector specifications. In other words, EMSD-P's use of ESRO SAPs
does not preclude use of the same SAP selectors by other protocols
which use a UDP port other than port 642. Such usage of ESRO is a
design characteristic of ESRO which results into bandwidth efficiency
and is not a scalability limitation.
3.1.3 Encoding Rules
Use of Basic Encoding Rules (BER) [5] is mandatory for both EMSD
Format Standards and EMSD Protocol.
In order to minimize data transfer, the following restrictions shall
be maintained in the formatting of EMSD PDUs:
o Specifically, when ASN.1 Basic Encoding Rules are being used:
A. Only the "Definite" form of Length encoding MUST be used,
B. The "Short" form of Length encoding MUST be used whenever
possible (i.e. when the Length is less than 128), and
C. OCTET STRING and BIT STRING values, and any other native
ASN.1 types which may be encoded as either "Primitive" or
"Constructed", MUST always be encoded as "Primitive" and
MUST never be "Constructed".
3.1.4 Presentation Context
Parameter Encoding Type of "0" MUST be used in ESRO Protocol to
identify Basic Encoding Rules for operation arguments.
3.2 EMSD-UA Invoked Operations
The following operations are invoked by EMSD-UA:
a. submit
b. deliveryControl
c. deliveryVerify
The submit operation uses the duplication detection functional unit
while deliveryControl and deliveryVerify don't use the duplication
detection.
The complete definition of these operations follows.
3.2.1 submit
The submit ES-OPERATION enables an EMSD-UA to submit a message to the
EMSD-SA for transfer and delivery to one or more recipients.
submit ES-OPERATION
ARGUMENT SubmitArgument
RESULT SubmitResult
ERRORS
{
submissionControlViolated,
securityError,
resourceError,
protocolViolation,
messageError
} ::= 33;
Duplicate operation detection is necessary for this operation.
The successful completion of the ES-OPERATION signifies that the
EMSD-SA has accepted responsibility for the message (but not that it
has delivered it to its intended recipients).
The disruption of the ES-OPERATION by an error signifies that the
EMSD-SA cannot assume responsibility for the message.
Arguments
This operation's arguments are:
SubmitArgument ::= SEQUENCE
{
-- Security features
security [0] IMPLICIT SecurityElement OPTIONAL,
-- Segmentation features for efficient transport
segment-info SegmentInfo OPTIONAL,
-- Content type of the message
content-type ContentType,
--
-- THE CONTENT --
--
-- The submission content
content ANY DEFINED BY content-type
};
The fields are:
Security
See Section 3.4.1, "SecurityElements".
Segment-info
See Section 3.4.2, "Message Segmentation and Reassembly".
Content-type
This argument identifies the type of the content of the message. It
identifies the abstract syntax and the encoding rules used.
Content
This argument contains the information the message is intended to
convey to the recipient(s). It shall be generated by the originator
of the message.
Results
This operation's results are:
SubmitResult ::= SEQUENCE
{
-- Permanent identifier for this message.
-- Also contains the message submission time.
-- See comment regarding assignment of message identifiers,
-- at the definition of EMSDLocalMessageId.
message-id EMSDLocalMessageId
};
The fields are:
Message-id
This result contains an EMSD-SA-identifier that uniquely and
unambiguously identifies the message-submission. It shall be
generated by the EMSD-SA.
Errors
See Section 3.4.3.
3.2.2 deliveryControl
The deliveryControl ES-OPERATION enables the EMSD-UA to temporarily
limit the operations that the EMSD-SA may invoke, and the messages
that the EMSD-SA may deliver to the EMSD-UA via the Message delivery
ES-OPERATION.
deliveryControl ES-OPERATION
ARGUMENT DeliveryControlArgument
RESULT DeliveryControlResult
ERRORS
{
securityError,
resourceError,
protocolViolation
} ::= 2;
The duplicate operation detection is not required for this operation.
The EMSD-SA shall hold until a later time, rather than abandon, ES-
OPERATIONS and messages that are presently suspended.
The successful completion of the ES-OPERATION signifies that the
specified controls are now in force.
The ES-OPERATION returns an indication of any ES-OPERATIONS that the
EMSD-SA would invoke, or any message types that the EMSD-SA would
deliver, were it not for the prevailing controls.
Arguments
This operation's arguments are:
DeliveryControlArgument ::= SEQUENCE
{
-- Request an addition of or removal of a set of restrictions
restrict [0] IMPLICIT Restrict DEFAULT update,
-- Which operations are to be placed in the restriction set
permissible-operations [1] IMPLICIT Operations OPTIONAL,
-- What maximum content length should be allowed
permissible-max-content-length
[2] IMPLICIT INTEGER
(0..ub-content-length) OPTIONAL,
-- What is the lowest priority message which may be delivered
permissible-lowest-priority
[3] IMPLICIT ENUMERATED
{
non-urgent (0),
normal (1),
urgent (2)
} OPTIONAL,
-- Security features
security [4] IMPLICIT SecurityElement
OPTIONAL,
-- User Feature selection
user-features [5] IMPLICIT OCTET STRING
OPTIONAL
};
Restrict
This argument indicates whether the controls on ES-OPERATIONS are to
be updated or removed. It may be generated by the EMSD-UA.
This argument may have one of the following values:
o update: The other arguments update the prevailing controls;
o remove: All temporary controls are to be removed
In the absence of this argument, the default update shall be assumed.
Permissible-operations
This argument indicates the ES-OPERATIONS that the EMSD-SA may invoke
on the EMSD-UA. It may be generated by the EMSD-UA.
This argument may have the value allowed or prohibited for each of
the following:
o message-delivery: The EMSD-SA may/may not invoke the deliver
ES-OPERATIONS; and
o Other ES-OPERATIONS are not subject to controls, and may be
invoked at any time.
In the absence of this argument, the ES-OPERATIONS that the EMSD-SA
may invoke on the EMSD-UA are unchanged.
Permissible-max-content-length
This argument contains the content-length, in octets, of the
longest-content message that the EMSD-SA shall deliver to the EMSD-UA
via the deliver ES-OPERATIONS. It may be generated by the EMSD-UA.
In the absence of this argument, the permissible-maximum-content-
length of a message that the EMSD-SA may deliver to the EMSD-UA is
unchanged.
Permissible-lowest-priority
This argument contains the priority of the lowest priority message
that the EMSD-SA shall deliver to the EMSD-UA via the deliver ES-
OPERATIONS. It may be generated by the EMSD-UA.
This argument may have one of the following values of the priority
argument of the submit ES-OPERATIONS: normal, non-urgent or urgent.
In the absence of this argument, the priority of the lowest priority
message that the EMSD-SA shall deliver to the EMSD-UA is unchanged.
Security
See Section 3.4.1, "SecurityElements".
User-features
This argument contains information that allows the EMSD-UA to convey
to MTS the feature set that the user is capable of supporting. This
argument will be defined when the setConfiguration and
getConfiguration operations are defined.
Results
DeliveryControlResult ::= SEQUENCE
{
-- Operation types queued at the EMSD-SA due to existing
-- restrictions.
waiting-operations [0] IMPLICIT Operations DEFAULT { },
-- Types of messages queued at the EMSD-SA due to
-- existing restrictions
waiting-messages [1] IMPLICIT WaitingMessages
DEFAULT { },
-- Content Types of messages queued at the EMSD-SA
waiting-content-types SEQUENCE SIZE (0..ub-content-types) OF
ContentType DEFAULT { }
};
Restrict ::= ENUMERATED
{
update (1),
remove (2)
};
Operations ::= BIT STRING
{
submission (0),
delivery (1)
};
WaitingMessages ::= BIT STRING
{
long-content (0),
low-priority (1)
};
Waiting-operations
This result indicates the ES-OPERATIONS being held by the EMSD-SA,
and that the EMSD-SA would invoke on the EMSD-UA if it were not for
the prevailing controls. It may be generated by the EMSD-SA.
This result may have the value holding or not-holding for each of the
following:
o message-delivery: The EMSD-SA is/is not holding messages, and
would invoke the deliver ES-OPERATIONS on the EMSD-UA if it were
not for the prevailing controls.
In the absence of this result, it may be assumed that the EMSD-SA is
not holding any messages for delivery due to the prevailing controls.
Waiting-messages
This result indicates the kind of messages the EMSD-SA is holding for
delivery to the EMSD-UA, and would deliver via the deliver ES-
OPERATIONS, if it were not for the prevailing controls. It may be
generated by the EMSD-SA.
This result may have one or more of the following values:
o long-content: The EMSD-SA has messages held for delivery to the
EMSD-UA which exceed the permissible maximum-content-length
control currently in force;
o low-priority: The EMSD-SA has messages held for delivery to the
EMSD-UA of a lower priority than the permissible-lowest-priority
control currently in force;
In the absence of this result, it may be assumed that the EMSD-SA is
not holding any messages for delivery to the EMSD-UA due to the
permissible-maximum-content-length, permissible-lowest-priority or
permissible-security context controls currently in force.
Errors
See Section 3.4.3.
3.2.3 deliveryVerify
The deliveryVerify ES-OPERATIONS enables the EMSD-UA to verify
delivery of a message when it receives FAILURE.indication for deliver
ES-OPERATIONS.
deliveryVerify ES-OPERATION
ARGUMENT DeliveryVerifyArgument
RESULT DeliveryVerifyResult
ERRORS
{
verifyError,
resourceError,
protocolViolation
} ::= 5;
The duplicate operation detection is not required for this operation.
Arguments
This operation's arguments are:
DeliveryVerifyArgument ::= SEQUENCE
{
-- Identifier of this message. This is the same identifier that
-- was provided to the originator in the Submission Result.
-- See comment regarding assignment of message identifiers,
-- at the definition of EMSDMessageId.
message-id EMSDMessageId
};
Message-id
This argument contains an EMSD-SA-identifier that distinguishes the
message from all other messages. It shall be generated by the EMSD-
SA, and shall have the same value as the message-submission-
identifier supplied to the originator of the message when the message
was submitted.
Results
DeliveryVerifyResult ::= SEQUENCE
{
status DeliveryStatus
};
DeliveryStatus ::= ENUMERATED
{
no-report-is-sent-out (1),
delivery-report-is-sent-out (2),
non-delivery-report-is-sent-out (3)
};
No-report-is-sent-out
This result indicates that EMSD-SA has received the delivery verify
and no report is sent out (either because it has not been requested
or EMSD-SA has problems and can not send it out).
Delivery-report-is-sent-out
This result indicates that EMSD-SA has received the delivery verify
and has sent the delivery report out.
Non-Delivery-report-is-sent-out
This result indicates that EMSD-SA has received the delivery verify
but it has already sent out a non-Delivery report. This should not
happen in normal cases but a wrong user profile on EMSD-SA side can
result in this outcome.
Errors
See Section 3.4.3.
3.3 EMSD-SA Invoked Operations
This section defines the operations invoked by the EMSD-SA:
a. deliver;
b. submissionControl;
c. submissionVerify.
The deliver operation uses 3-Way handshake service of ESROS. This
operation always uses the duplication detection functional unit.
The submissionControl and submissionVerify operations use 2-Way
handshake service of ESROS without duplication detection.
3.3.1 deliver
The deliver ES-OPERATIONS enables the EMSD-SA to deliver a message to
an EMSD-UA.
deliver ES-OPERATION
ARGUMENT DeliverArgument
RESULT NULL
ERRORS
{
deliveryControlViolated,
securityError,
resourceError,
protocolViolation,
messageError
} ::= 35;
The EMSD-UA MUST not refuse performing the deliver ES-OPERATION
unless the delivery would violate the deliveryControl restrictions
then in force.
Arguments
This operation's arguments are:
DeliverArgument ::= SEQUENCE
{
-- Identifier of this message. This is the same identifier that
-- was provided to the originator in the Submission Result.
-- See comment regarding assignment of message identifiers,
-- at the definition of EMSDMessageId.
message-id EMSDMessageId,
-- Time the message was delivered to the recipient by EMSD-SA
message-delivery-time DateTime,
-- Time EMSD-SA originally took responsibility for processing
-- of this message. This field shall be omitted if the message-id
-- contains an EMSDLocalMessageId, because that field contains
-- the submission time within it.
message-submission-time [0] IMPLICIT DateTime OPTIONAL,
-- Security features
security [1] IMPLICIT SecurityElement OPTIONAL,
-- SegContentTypementation features for efficient transport
segment-info SegmentInfo OPTIONAL,
-- The type of the content
content-type ContentType,
--
-- THE CONTENT --
--
-- The submitted (and now being delivered) content
content ANY DEFINED BY content-type
};
message-id
This argument contains an EMSD-SA-identifier that distinguishes the
message from all other messages. When within the EMSD, it MUST be
generated by the EMSD-SA, and MUST have the same value as the
message-submission-identifier supplied to the originator of the
message when the message was submitted.
Message-delivery-time
This argument contains the Time at which delivery occurs and at which
the EMSD-SA is relinquishing responsibility for the message. It
shall be generated by the EMSD-SA.
Results
This operation returns an empty result as indication of success.
Errors
See Section 3.4.3.
3.3.2 submissionControl
submissionControl ES-OPERATION
ARGUMENT SubmissionControlArgument
RESULT SubmissionControlResult
ERRORS
{
securityError,
resourceError,
protocolViolation
} ::= 4;
The submissionControl ES-OPERATIONS enables the EMSD-SA to
temporarily limit the operations that the EMSD-UA may invoke, and the
messages that the EMSD-UA may submit to the EMSD-SA via the submit
ES-OPERATIONS.
The duplicate operation detection is not required for this operation.
The EMSD-UA should hold until a later time, rather than abandon, ES-
OPERATIONS and messages that are presently suspended.
The successful completion of the ES-OPERATIONS signifies that the
specified controls are now in force. These controls supersede any
previously in force, and remain in effect until the association is
released or the EMSD-SA re-invokes the submissionControl ES-
OPERATIONS.
The ES-OPERATIONS returns an indication of any ES-OPERATIONS that the
EMSD-UA would invoke were it not for the prevailing controls.
Arguments
This operation's arguments are:
SubmissionControlArgument ::= SEQUENCE
{
-- Request an addition of or removal of a set of restrictions
restrict [0] IMPLICIT Restrict DEFAULT update,
-- Which operations are to be placed in the restriction set
permissible-operations [1] IMPLICIT Operations OPTIONAL,
-- What maximum content length should be allowed
permissible-max-content-length
[2] IMPLICIT INTEGER
(0..ub-content-length) OPTIONAL,
-- Security features
security [3] IMPLICIT SecurityElement
OPTIONAL
};
Restrict
This argument indicates whether the controls on ES-OPERATIONS are to
be updated or removed. It may be generated by the EMSD-SA.
This argument may have one of the following values:
o update: The other arguments update the prevailing controls;
o remove: All temporary controls are to be removed
In the absence of this argument, the default update shall be assumed.
Permissible-operations
This argument indicates the ES-OPERATIONS that the EMSD-UA may invoke
on the EMSD-SA. It may be generated by the EMSD-SA.
This argument may have the value allowed or prohibited for each of
the following:
o submit: The EMSD-UA may/may not invoke the submit ES-
OPERATIONS; and
o Other ES-OPERATIONS are not subject to controls, and may be
invoked at any time.
In the absence of this argument, the ES-OPERATIONS that the EMSD-UA
may invoke on the EMSD-SA are unchanged.
Permissible-max-content-length
This argument contains the content-length, in octets, of the
longest-content message that the EMSD-UA shall submit to the EMSD-SA
via the submit ES-OPERATIONS. It may be generated by the EMSD-SA.
In the absence of this argument, the permissible-maximum-content-
length of a message that the EMSD-UA may submit to the EMSD-SA is
unchanged.
Security
See Section 3.4.1, "SecurityElements".
Results
SubmissionControlResult ::= SEQUENCE
{
-- Operation types queued at the EMSD-SA due to existing
-- restrictions.
waiting-operations [0] IMPLICIT Operations DEFAULT { }
};
Waiting-operations
This result indicates the ES-OPERATIONS being held by the EMSD-UA,
and that the EMSD-UA would invoke if it were not for the prevailing
controls. It may be generated by the EMSD-UA.
This result may have the value holding or not-holding for each of the
following:
o submit: The EMSD-UA is/is not holding messages, and would
invoke the submit ES-OPERATIONS if it were not for the
prevailing controls.
In the absence of this result, it may be assumed that the EMSD-UA is
not holding any messages for submission due to the prevailing
controls.
Errors
See Section 3.4.3.
3.3.3 submissionVerify
The submissionVerify ES-OPERATIONS enables the EMSD-SA to verify if
the EMSD-UA has received the result of its submission.
submissionVerify ES-OPERATION
ARGUMENT SubmissionVerifyArgument
RESULT SubmissionVerifyResult
ERRORS
{
submissionVerifyError,
resourceError,
protocolViolation
} ::= 6;
The duplicate operation detection is not required for this operation.
Arguments
This operation's arguments are:
SubmissionVerifyArgument ::= SEQUENCE
-- Identifier of this message. This is the same identifier that
-- was provided to the originator in the Submission Result.
-- See comment regarding assignment of message identifiers,
-- at the definition of EMSDMessageId.
{
message-id EMSDMessageId
};
Message-id
This argument contains an EMSD-SA-identifier that distinguishes the
message from all other messages. It shall be generated by the EMSD-
SA, and shall have the same value as the message-submission-
identifier supplied to the originator of the message when the message
was submitted.
Results
SubmissionVerifyResult ::= SEQUENCE
{
status SubmissionStatus
};
SubmissionStatus::= ENUMERATED
{
send-message (1),
drop-message (2)
};
Send-message
This result indicates that EMSD-SA is supposed to send the message
out.
Drop-message
This result indicates that EMSD-SA is supposed to drop the message.
Errors
See Section 3.4.3.
3.4 EMSD Common Information Objects
3.4.1 SecurityElements
SecurityElement ::= SEQUENCE
{
credentials Credentials,
contentIntegrityCheck ContentIntegrityCheck OPTIONAL
};
Credentials ::= CHOICE
{
simple [0] IMPLICIT SimpleCredentials
-- Strong Credentials are for future study
-- strong [1] IMPLICIT StrongCredentials
-- externalProcedure [2] EXTERNAL
};
SimpleCredentials ::= SEQUENCE
{
eMSDAddress EMSDAddress OPTIONAL,
password [0] IMPLICIT OCTET STRING
SIZE (0..ub-password-length)) OPTIONAL
};
-- StrongCredentials ::= NULL
-- for now.
-- ContentIntegrityCheck is a 16-bit checksum of content
ContentIntegrityCheck ::= INTEGER (0..65535);
3.4.2 Message Segmentation and Reassembly
Small messages can benefit from the efficiencies of connectionless
feature of ESROS (See Efficient Short Remote Operations, RFC-2188
[1]).
Very large messages are transferred using protocols (e.g., SMTP) that
rely on Connection Oriented Transport Service (e.g., TCP).
When a message is too large to fit in a single connectionless PDU but
is not large enough to justify the overhead of connection
establishment, it may be more efficient for the message to be
segmented and reassembled while the connectionless service of ESROS
is used. If the underlying Remote Operation Service is capable of
efficient segmentation/reassembly over connectionless (CL) services,
then use of the segmenting/reassembly mechanism introduced in this
section is not necessary. This feature is accommodated in this layer
by:
SegmentInfo ::= CHOICE
{
first [APPLICATION 2] IMPLICIT FirstSegment,
other [APPLICATION 3] IMPLICIT OtherSegment
};
FirstSegment ::= SEQUENCE
{
sequence-id INTEGER,
number-of-segments INTEGER
-- number-of-segments must not exceed ub-total-number-of-segments
};
OtherSegment ::= SEQUENCE
{
sequence-id INTEGER,
segment-number INTEGER
};
Segmentation and reassembly only applies to Message-submission and
Message-delivery.
The sender of the message is responsible for segmenting the message
content into segments that fit in CL PDUs. The segmented content is
sent in a sequence of message-segments each carrying a segment of the
content. sequence-Id is a unique identifier that is present in all
message-segments. In addition to sequence identifier, the first
message-segment specifies the total number of segments (number-of-
segments). Other message-segments have a segment sequence number
(segment-number). The receiver is responsible for sequencing (based
on segment-number) and reassembling the entire message.
Segmenting over the Connectionless ESRO Service
The sender of the message maps the original message into an ordered
sequence of message-segments. This sequence shall not be interrupted
by other messages over the same ESROS association.
All message-segments in the sequence shall be assigned a sequence
identifier by sender. The sequence identifier shall be incremented
by one by the sender after transmission of a complete message
sequence.
The first message-segment specifies the total number of segments.
All message-segments in the sequence except the first one shall be
sequentially numbered, starting at 1 (first message-segment has
implicit segment number of 0).
Each message-segment is transmitted by issuing a Message-submission
or Message-delivery ES-OPERATIONS. All segments of a segmented
message are identified by the same sequence-id. For a given message,
the receiver should not impose any restriction on the order of
arrival of message-segments.
There is no requirement that any message-segment content be of
maximum length allowed by ESROS for connectionless transmission;
however, no more than ub-total-number-of-segments segments can be
derived from a single message.