RFC 1090
SMTP on X.25
RFC 1090: SMTP on X.25 π
okay bestie, the title block first π
- Network Working Group πΈ
- Author: R. Ullmann (Robert Ullmann) at Prime Computer, Inc. π
- Date: February 1989 π
- Status: the memo proposes a standard β¨
- Obsoletes / Updates: the header doesn't list anything it obsoletes or updates π¦
1. Status of this Memo π
so this memo proposes a standard for SMTP running on the virtual circuit facility from the X.25 standard of the CCITT. π Distribution is totally unlimited, so share it with everyone π«Ά
2. Introduction β¨
okay so SMTP is the protocol for sending email, and RFC 821 ("SIMPLE MAIL TRANSPORT PROTOCOL") mentions in appendix D that you could use the X.25 virtual circuit (ISO level 3) directly for it π§ RFC 821 says that "a reliable end-to-end protocol such as TCP be used on top of X.25 connections." π€ That was honestly fair in 1981, because the PSDNs were not that reliable back then. π
But ngl, by 1989 the service is reliable enough for direct use of the virtual circuit, and it's giving real progress π β¨
The procedures here have a proven track record in extensive production use across 24 PSDNs in 22 different countries π They're economical even on some of the pricier PSDNs, which is iconic πΈ Private X.25 connections and X.25 LANs have worked out well too π
Here's the main idea: an X.25 virtual circuit (VC) is opened for each SMTP session. The full duplex channel from the VC carries the session, and then the VC gets closed, normally by the calling side π¦
3. Protocol ID and Call User Data π₯
The first four octets (bytes) of the Call User Data Field are commonly used as a protocol identifier, or PRID, and they should be C0F70000 in hex. That's 192 247 0 0 in decimal π
Implementations should, however, be able to configure the call user data on a per-address basis, including the protocol ID field. Customizable is the vibe πΈ
4. Data stream π
The SMTP data gets divided up (streamed into packets) in whatever way the sending side prefers, no judgement π«Ά Sequences with the M bit (more data) set are encouraged, and they may be up to 2048 bytes in total length. π
It is recommended that SMTP commands and responses each go as single packets, or single more-data sequences, if only to make debugging easier π This is not a requirement, so you do you π
5. Qualified data π«
Packets with the Q bit set and interrupt packets are not used. If you do receive them, they should be ignored. Not your problem, bestie π
6. Circuit resets π
If a level 3 circuit reset is received, the VC should be cleared, and then the SMTP connection should be attempted again. The retry may come after some delay, and it may use different call facilities too. Second chances are giving main character energy β¨
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 on X.25 is the full ASCII-8 code, with no escapes or modifications, so it's totally raw π Lines are terminated by CRLF (13 10 decimal). Implementations should, if possible, recognize lines terminated only by LF (10 decimal). Be flexible, babe π¦
9. Closing the connection π
Okay, this one's important π 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. π
So on X.25, the SMTP session layer is closed by the calling side when the Service Closing message is received. That happens either in response to a QUIT command, or because the service must shut down. β¨
10. Timeouts β°
SMTP doesn't normally provide for timing out a session. On X.25, though, 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. Patience is a whole aesthetic π«
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 it will not affect the SMTP transactions already completed. Messy but still iconic π
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. Follow the spec, obsessed π
11. Other features π
Other X.25 features, such as permanent virtual circuits and D bit selection, are not used. Not every feature needs to be in the group chat π
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
π¦ where this page comes from
- ietf: rfc1090 1989-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms