RFC 1090 UNKNOWN EMAIL · X.25

SMTP on X.25

Running SMTP mail transfer directly over X.25 virtual circuits instead of TCP.

On rfc-editor.org ↗
PUBLISHED
February 1989
AUTHORS
R. Ullmann
STREAM
Legacy
PROTOCOL ID (HEX)
C0F70000
MAXIMUM M-BIT SEQUENCE
2048 bytes
CALL TIMEOUTS
100 s accept, 120 s Service Ready
IDLE TIMEOUT
10 minutes
TIMEOUT AFTER QUIT
20 seconds
DOI
10.17487/RFC1090

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
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

AI ELI5

On this page
PROBLEMRFC 821 suggested running a reliable protocol such as TCP on top of X.25, but X.25 networks had become reliable enough to carry SMTP directly.
MECHANISMOne X.25 virtual circuit is opened per SMTP session, with a fixed protocol ID in the call user data, and the SMTP text flows over it with its own timeouts and closing rules.
STATUS TODAYThe author reports the procedures worked in production across 24 PSDNs in 22 countries.

§1SMTP Straight onto X.25

RFC 821 mentioned in its appendix D that SMTP could use the X.25 virtual circuit (ISO level 3) directly, but suggested running a reliable end-to-end protocol such as TCP on top. That was reasonable given how reliable the packet networks (PSDNs) were in 1981. By 1989 the author considers the service reliable enough for direct use.

The procedures are said to have proven successful in extensive production use involving 24 PSDNs in 22 different countries, and also over private X.25 connections and X.25 LANs. A virtual circuit (VC) is opened for each SMTP session, the full duplex channel carries the session, and the VC is closed, normally by the calling side.

Instead of adding an extra helper on top of X.25, the mail just uses X.25's own connection, one call per mail session.

§2Calls, Packets and Closing

The first four octets of the Call User Data field, commonly a protocol identifier, should be hex C0F70000 (decimal 192 247 0 0). Implementations should let this be configured per address. Any negotiable call facilities may be used, and should be specifiable for each called address.

SMTP data may be split into packets however the sender likes, and sequences with the M bit set, up to 2048 bytes in total, are encouraged. Commands and responses are best sent as single packets, though that is not required. Q-bit packets and interrupt packets are not used and should be ignored. On a level 3 circuit reset, the VC should be cleared and the connection retried, possibly after a delay or with different facilities.

X.25 discards packets in transit when a VC is cleared, so the calling side closes the SMTP session only after it receives the Service Closing message, whether in reply to QUIT or because the service must shut down.

Every call starts with a special ID code so the other side knows it is mail. When finished, the caller hangs up only after hearing the goodbye, so nothing gets lost.

§3Character Code

The character code is the full ASCII-8 code, with no escapes or modifications. Lines end with CRLF (13 10 decimal), and implementations should, if possible, also recognize lines ending only with LF (10 decimal).

Letters are sent as plain ASCII, and each line ends with the usual line-break signal.

§4Timeouts

SMTP does not normally time out a session, but on X.25 these values have proven effective. If a call accept is not received within 100 seconds, or the Service Ready message does not arrive within another 120 seconds, the call is cleared and retried later. Once established, the circuit is cleared after 10 minutes with no response. After QUIT, the timeout is shortened to 20 seconds, which can cause an ungraceful exit but does not affect completed SMTP transactions.

Permanent virtual circuits and D bit selection are not used.

If the other side stays silent too long, hang up and try later. After saying goodbye, wait only a short time.

§5References

[1]RFC 821Postel, J., "Simple Mail Transfer Protocol", RFC 821, USC Information Sciences Institute, August 1982.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", Fascicle VIII.3, Geneva, 1976.