SMTP on X.25
Procedures for carrying SMTP sessions directly over X.25 virtual circuits.
Ullmann, R., "SMTP on X.25", RFC 1090, DOI 10.17487/RFC1090, February 1989, <https://www.rfc-editor.org/info/rfc1090>.
@misc{rfc1090,
series = {Request for Comments},
number = 1090,
howpublished = {RFC 1090},
publisher = {RFC Editor},
doi = {10.17487/RFC1090},
url = {https://www.rfc-editor.org/info/rfc1090},
author = {R. Ullmann},
title = {{SMTP on X.25}},
pagetotal = 4,
year = 1989,
month = feb,
} RFC text
Contents
Network Working Group R. Ullmann
Request for Comments: 1090 Prime Computer, Inc.
February 1989
SMTP on X.25
1. Status of this Memo
This memo proposes a standard for SMTP on the virtual circuit
facility provided by the X.25 standard of the CCITT.
Distribution of this memo is unlimited.
2. Introduction
The possibility of using the X.25 virtual circuit (ISO level 3)
directly for SMTP is mentioned in RFC 821 ("SIMPLE MAIL TRANSPORT
PROTOCOL"), in appendix D. It suggests that "a reliable end-to-end
protocol such as TCP be used on top of X.25 connections". This was
undoubtedly true considering the general reliability of the PSDNs at
the time (1981). The service is now (in 1989) reliable enough to
allow practical direct use of the virtual circuit service.
The procedures given here have proven to be successful in extensive
production use, involving 24 PSDNs in 22 different countries. The
resulting service is economical even using some of the more expensive
PSDNs. Operation over private X.25 connections and X.25 LANs has
also proven successful.
An X.25 virtual circuit (VC) is opened for each SMTP session. The
full duplex channel provided by the VC is used for the session. The
VC is then closed, normally by the calling side.
3. Protocol ID and Call User Data
The first four octets (bytes) of the Call User Data Field, which are
commonly used as a protocol identifier, or PRID, should be (hex)
C0F70000. (In decimal, 192 247 0 0.)
Implementations should, however, provide the ability to configure the
call user data on a per-address basis, including the protocol ID
field.
4. Data stream
The SMTP data is divided into (streamed into) packets in any way the
sending side prefers. Sequences with the M bit (more data) set are
encouraged, and may be up to 2048 bytes in total length.
It is recommended that SMTP commands and responses be sent as single
packets, or single more-data sequences, if only to facilitate
debugging the protocol. This is not a requirement.
5. Qualified data
Packets with the Q bit set and interrupt packets are not used, and
should be ignored if received.
6. Circuit resets
If a level 3 circuit reset is received, the VC should be cleared, and
the SMTP connection attempted again. The retry may be after some
delay, and may be with different call facilities.
7. Call facilities
Any negotiable features selected by the X.25 call request facilities
field may be used. Implementations should provide the ability to
specify facilities for each called address.
8. Character code
The character code used on X.25 is the full ASCII-8 code, with no
escapes or modifications. Lines are terminated by CRLF (13 10
decimal). Implementations should, if possible, recognize lines
terminated only by LF (10 decimal).
9. Closing the connection
Unlike TCP, X.25 does not provide for synchronous delivery of data in
transit when a clear request is in progress; any packets in transit
are discarded when the VC is cleared. Therefore, on X.25, the SMTP
session layer is closed by the calling side when the Service Closing
message is received, either in response to a QUIT command, or because
the service must shut down.
10. Timeouts
SMTP does not normally provide for timing out a session. On X.25,
the following has proven to be effective:
10.1. call request
If a call accept is not received within 100 seconds, or the
Service Ready message is not received within (another) 120
seconds, the call should be cleared and retried later.
10.2. established
After the protocol session is established, the circuit should
be cleared if no response is received for 10 minutes.
10.3. closing
After the QUIT command is issued, the timeout should be
shortened to 20 seconds. This will sometimes cause an
ungraceful exit, but this will not affect the SMTP transactions
already completed.
10.4. clearing
When the X.25 Clear Request packet has been sent, the VC should
be timed out in accordance with the X.25 protocol
specification.
11. Other features
Other features of X.25, such as permanent virtual circuits and
D bit selection, are not used.
References
[1] Postel, J., "Simple Mail Transfer Protocol", RFC 821, USC
Information Sciences Institute, August 1982.
[2] CCITT Recommendation X.25, "Interface Between Data
Terminal Equipment (DTE) and Data Circuit-Terminating
Equipment (DCE) for Terminals Operating in the Packet
Mode and Connected to Public Data Networks by Dedicated
Circuit", International Telegraph and Telephone Consultative
Committee, Fascicle VIII.3, Geneva, 1976; amended at
Geneva, 1980 and Malaga-Torremolinos, 1984. ("Red Book")
Author's Address
Robert Ullmann 23A-32
Prime Computer, Inc.
Technology Drive
Milford, MA 01757
Phone: +1 508 478 8600 x1736
Email: Ariel@Relay.Prime.COM
ISO Plain Language
On this page
§1One X.25 Circuit per Mail Session
RFC 1090 proposes a standard procedure for SMTP over the virtual-circuit facility of X.25. It revisits an earlier suggestion to use a reliable end-to-end protocol such as TCP over X.25, and says X.25 service was by then reliable enough for practical direct use.
One virtual circuit is opened for each SMTP session. Its full-duplex channel carries the session, and it is normally closed by the calling side. The author reports production use involving 24 public data networks in 22 countries, along with private X.25 connections and X.25 LANs.
Each mail session gets its own two-way X.25 connection. SMTP's commands and replies travel over that connection until it is closed.
§2Call Data, Packets, and Closing
The first four octets of Call User Data should be protocol identifier C0F70000 in hexadecimal, though implementations should allow configuration per address. SMTP data may be split into packets as the sender prefers; sequences with the M bit set, up to 2048 bytes total, are encouraged. Q-bit and interrupt packets are unused and should be ignored.
On an X.25 level 3 reset, the virtual circuit should be cleared and the SMTP connection retried. Because X.25 discards packets in transit when the circuit is cleared, the calling side closes the SMTP session only after receiving the Service Closing message.
The call starts with a code that identifies this as the SMTP application. The client waits for the service's closing message before hanging up, because X.25 can discard data during a clear.
§3Text and Timeouts
The data uses full ASCII-8 with no escapes or modifications. Lines end with CRLF; implementations should, if possible, also recognize LF alone. If call acceptance does not arrive within 100 seconds, or Service Ready within another 120 seconds, the call should be cleared and retried later.
After a session is established, the circuit should be cleared after 10 minutes without a response. After QUIT, the timeout is shortened to 20 seconds; the RFC notes that this can cause an ungraceful exit but does not affect completed SMTP transactions. Permanent virtual circuits and D-bit selection are not used.
The memo sets waiting limits for call setup, an idle session, and shutdown. It also specifies the character encoding and line ending used for SMTP text.