RFC 757
Suggested solution to the naming, addressing, and delivery problem for ARPANET message systems
RFC 757 ๐
A Suggested Solution to the Naming, Addressing, and Delivery Problem for ARPAnet Message Systems ๐
Author: Debra P. Deutsch (Debbie ๐) Date: 10 September 1979 Organization: Bolt Beranek and Newman, 50 Moulton Street, Cambridge, Massachusetts 02138, phone (617) 491-1850 ๐
Preface ๐ธ
Okay so, this one is NOT like most RFCs, bestie. It isn't a spec for something that's about to get built ๐ โโ๏ธ. It's a true request for comments on the concepts and ideas inside it, written in the hope that the content, plus any discussion it sparks, helps shape the next generation of computer-based message creation and delivery systems โจ.
A bunch of people helped make this doc what it is ๐ซถ. Debbie especially wants to thank Jerry Burchfiel for his general and technical advice and encouragement ๐, Bob Thomas for his wisdom about the TIP Login database and the design of a netmail database ๐ง , Ted Myer for playing devil's advocate ๐ค, and Charlotte Mooers for her excellent editorial assistance ๐ .
Debbie Deutsch ๐
1. Introduction โจ
The current ARPAnet message handling scheme grew out of rather informal, decentralized beginnings ๐ฑ. Early developers grabbed whatever pre-existing tools they could, like TECO and FTP ๐ ๏ธ, to get their first systems running. Later on, protocols were written down to codify the conventions people were already using ๐. Honestly, these conventions have supported an amazing variety and amount of service ๐คฏ, but they come with a number of shortcomings ๐.
One difficulty is the naming/addressing problem ๐ซ . It's about needing to identify the recipient and to correctly indicate a delivery point for the message. The current paradigm is deficient because it doesn't have a sharp distinction between the recipient's name and the recipient's address, which is the delivery point on the net ๐.
The naming/addressing scheme doesn't let users address their messages with human names. Instead, it forces them to use designations that are way better suited for machine parsing than for human identification ๐ค. Not it ๐ฉ.
Another source of limitations is the delivery system, which is basically just an extension of the File Transfer Protocol ๐ฆ. It's pretty limited, handling only simple transactions: transferring a single message to a single user on the destination host. Being able to bundle messages, and being able to fan out messages at the foreign host, would make the system way more efficient and useful ๐.
An extra drawback of the delivery system is caused, to some extent, by the addressing scheme ๐ตโ๐ซ. A change in address, or an incorrect address, usually makes the delivery system handle the message incorrectly. Some hosts support some variety of a mail forwarding database (MFDB), but that's at best inadequate and spotty when it comes to providing reliable service to the network as a whole ๐ฅฒ. The same username can belong to different people at different hosts, so ambiguities can crop up when messages are incorrectly addressed. That's why even the best MFDBs can't always do their job ๐ซ.
This proposal imagines a system where the identity and address of the recipient are treated as two separate items ๐ฆ. A network database supports a directory service that supplies correct address information for all recipients ๐. The scheme also lets mail delivery be restricted to authorized users of the network, should that be a desirable feature ๐. Main character energy for the whole network ๐.
2. Names and Addresses ๐
Today's ARPAnet naming and addressing scheme (as specified in RFC 733[3]) doesn't tell apart the identity of a user and his addressยน. Both are expressed the same way: USERNAME@HOST. This should always result in a unique handle for that user, but in practice it has proved to be inadequate ๐ญ. Users who change the location of their mailboxes, because of a change in affiliation or just a shift in host usage, also end up with their names changed ๐. If the old host has an MFDB, the problem isn't too bad: mail gets forwarded to the new address, just slightly delayed ๐ฌ. But other, less fortunate users who can't rely on an MFDB have to notify all their correspondents about the change in address/name ๐ฎโ๐จ. Any mail sent to the old address becomes undeliverable ๐. (An excellent discussion of the differences between naming, addressing, and routing is in a paper by John Shoch [1] ๐.)
ยน See, for example, RFC 733's discussion of the semantics of address fields, in which it is specified that the To: field "contains the identity of the primary recipients of the message".
Wanting to use "real" names in the address fields of messages is also blocked by the current system ๐ โโ๏ธ. There's an elaborate setup for using human-compatible versus machine-interpretable information, built up for use in message headersยฒ. Recent developments show that lots of users would feel happiest if the real human name could appear ๐ฅฐ. Machine-interpretable information shouldn't intrude too heavily into the writer's work- and thought-space ๐งโโ๏ธ.
ยฒ See the "Syntax of General Addressee Items" section of RFC 733.
The solution proposed here calls for a total break between the way a recipient is named or identified and the way their location is specified ๐ฅ. Since the ARPAnet is a regulated environment, a unique (and not necessarily human-readable) ID could be assigned to each authorized recipient of network mail ๐ชช. That ID would stay with the user for their entire lifetime on the network, through changes in address and affiliation ๐ซถ.
A network database (which could be derived from the same database that has been proposed to support TIP login) would associate each ID with one or more addresses that say where the mail for that ID may be delivered ๐บ๏ธ. If more than one address were associated with an ID, that would indicate an ordered preference in delivery points. The delivery system would attempt delivery to the first addressee, and if that failed, try the second, and so onยณ. Most IDs would probably have only one address ๐. Each ID would also have some information about the ID's owner attached: name, postal address, affiliation, phone number, etc. ๐
ยณ Multiple addresses might also be used to indicate that multiple deliveries are desired.
Instead of being forced to type some awkward character string to name their correspondent, the writer would only have to supply enough information to let some process figure out the unique identity of the recipient ๐ฏ. That information might be the recipient's name, or anything else found in the database โจ.
Access to this data would also free the writer from needing to know where the recipient is located ๐ง. Once the unique ID is known, the correct delivery location is just a look-up away ๐.
2.1 A distributed database approach ๐
It's clear that if the network database had only one instance, there would be a tremendous contention problem ๐ฑ. All message traffic would have to query that one database, which is extremely undesirable for both reliability and speed ๐ข. It's also clear that requiring each host to maintain a complete local copy of the entire network database would be an undesirable and unnecessary burden on the hosts ๐ฅต.
A better approach is to build some sophistication into the local delivery system and use local mini-databases based on the contents of a distributed network database ๐งฉ. (The distributed database may be redundant and/or partitioned, etc., but it probably isn't resident on the local host.) When a local host queries the network database about an ID (or, in a more costly operation, asks it to supply an ID given enough identification, such as a name), the database may be asked to return all of its information on that ID ๐ฅ. At that point, the local host can enter all or some of that information into a locally maintained database of its own ๐พ. It will always check that database first when looking for a name or address, and only call the network database if it can't find a local entry ๐โโ๏ธ. Depending on the desired level of sophistication of the local message handling programs, additional information may be added to that database, including, for example, nicknames ๐ท๏ธ.
The database might be shared by a cluster of hosts (like the ones at BBN or ISI), or it might be used by only one ๐๏ธ. Hosts that originate small amounts of message traffic might rely on the network database entirely ๐ค.
The structure and maintenance of the local databases is left solely to the local hosts ๐ซก. They may or may not store addresses. It may be desirable to either garbage collect them, or let them grow ๐๏ธ. The local databases might be linked to smaller, more specialized databases owned by individual users or groups ๐ฏ. These individual databases would be the equivalent of address books, where users might note special things about individuals: interests, last time seen, names of associates, etc. ๐ Whether these databases exist and how far they reach is not mandated by this scheme, but the scheme does allow for them ๐ซถ.
The same individual databases may be used by message creation programs to determine the recipient's ID from user-supplied input ๐ง . For example, a user may address a message to someone named Nick. The message creation program may associate "Nick" with an ID and hand that ID off to the delivery system, totally removing the matter of address or formal ID from the user's world ๐ช. Iconic, honestly.
2.2 Delivery ๐
The delivery operation consists of three parts:
- Determining the address to which the message must be sent,
- Sending the message,
- Processing by foreign host.
The first step usually means looking up the correct address(es) for message delivery, given the recipient's ID, in either a local or the network database ๐. If the ID isn't known at the time the message is submitted for delivery, any operation needed to determine that ID (such as a call to either the local or network database) is also performed as part of this step ๐ต๏ธโโ๏ธ.
The second step isn't too different from what happens today ๐. The local host establishes a connection to the foreign host. It is then able to send one or more messages to one or more people. The options are:
- Bulk mail. Several recipients all get the same message.
- Bundled mail. Several messages get sent to the same recipient.
- A combination of the above
- One recipient gets one message.
The foreign host should be able to accept mail for each ID ๐.
The rejection of mail for a given ID by the foreign host would... ๐ (to be continued in part 2 ๐ซฃ)
usually indicate an inconsistency between the sender's local database and the network database. ๐ค When that happens, the local host updates its local database from the network database and tries delivery at the "new" host. (This is mail forwarding ๐ฌ.) If a host taken from the network database turns out to be wrong, there's a problem in the network database, so the right authorities get notified. ๐จ Address changes only spread out from the network database as the out-of-date info gets referenced, which cuts down how big the local database update problem gets. ๐ง
Once the foreign host recognizes the ID(s), the message(s) can be sent over to it. ๐ After a successful transmission, the local host's job is done. โ
Step three is the foreign host processing the message(s), and honestly it's giving mail room ๐ฎ. The foreign host might have to sort bundled or bulk mail it receives. On top of that, the foreign host might do internal or external fan-out functions or other special stuff, depending on what the ID owner wants. ๐
The implementation and design of the functions that can happen in the mail rooms are neither mandated nor restricted by this delivery scheme. ๐ There are way too many to describe here, so only a few examples are mentioned. โจ
Fan-out functions might include putting messages in multiple files, sending copies to one or more other users, or rebroadcasting the messages onto the network. ๐ก (In that last case, the foreign host might evaluate an ID list, kind of like how the ITS mail repeater broadcasts messages addressed to certain mailboxes. ๐) Special functions might include automatic hard-copy creation or reply generation, processing by various daemons, or any other service the host's user population and administration find desirable. ๐ง The implementation of fan-out functions is up to the local host, and so are any additional functions the user population might want from its local "mail room". ๐ Whatever services are available, the mail room will distribute the mail to the correct location for each ID. ๐ซถ
2.2.1 Additional delivery options
It may be desirable to allow mail rooms to accept a username in place of an ID. ๐ But a username is a less reliable way to address someone than an ID, so keep that in mind ๐.
- A username may not be sufficiently unambiguous for getting an ID and host from the network database. ๐ฌ
- Since a recipient's username may change from time to time, there's a chance that the username supplied by the sender will be incorrect [4], or that the host may not recognize it. ๐
Because a recipient's ID does not change with time, errors like those caused by username changes can't happen if IDs are used. โจ Similarities or ambiguities can be discovered before delivery occurs, and the sender can be prompted for additional identifying information about his intended recipient. ๐ธ
- In an even worse case, a correct username can still result in an incorrect delivery when it is paired with an incorrect host or acted upon by a mail forwarding database [5]. ๐ญ
Because unique IDs are unambiguous, the possibility of such a situation is eliminated by the use of unique IDs. ๐
[4] A particularly insidious source of addressing errors stems from the inconsistent use of (human) names and initials to generate usernames. The sender can easily guess his recipient's username incorrectly by using, or failing to use, a combination of initials and last name. (For example, a user wishing to address Jim Miller at BBNA and using the address "Miller@BBNA" will have his message successfully delivered to Duncan Miller at the same site.) ๐
[5] The author has observed a mail forwarding database redirect messages correctly addressed to one JWalker to different JWalker at another host. ๐ซ
2.2.2 Failures
The case in which the network database is found to be incorrect has already been discussed. ๐ It may make sense to mark the entry as "possibly in error" and to notify both the network database and the ID owner [6] when such a situation occurs. In this case, mail delivery to the ID's owner will not occur, but that's not too bad, considering that's what happens today when a host doesn't recognize a username. ๐คทโโ๏ธ
One additional failure mode must be considered: the loss of the network database from the net, even though a well-designed distributed network database should be robust enough to almost rule out this possibility. ๐ฑ
If such a failure should occur, the local databases should be able to handle most of the traffic. ๐ What would be lost is the ability to add new IDs to the network database, the ability to change hosts for an ID, the ability to update local databases, and the ability to query the network database. Basically, there would be a regression to the state we're in today. ๐
A well-administered network database should be backed up frequently. ๐พ Should a catastrophic series of hardware failures remove one or more of the network database's hosts from the net, the database could be moved elsewhere. Such a change would entail notification of all hosts on which mail originates. Software which queries the database should be designed to be able to easily handle such a move. ๐
[6] Such notification would presumably be by hardcopy mail or telephone. ๐
3. Relationship to TIP Login database
There have been a number of references in this note to the TIP Login problem and a database that's been proposed as part of its solution. ๐ A series of working papers [5] written by Bob Thomas, Paul Santos, and Jack Haverty describe an approach to TIP Login. โจ Basically, the method is to build and maintain a distributed TIP Login database, containing information needed to let a new entity called a "login-host" decide whether or not to grant a user access to a given TIP, and whether or not to let the user make various modifications to the database itself. ๐ง
The TIP login database is derived from a "network user data base", which contains information above and beyond what's needed to support TIP login. ๐ This comprehensive database is designed to support applications other than TIP Login, either directly or by means of databases derived from it. ๐
Contained in the TIP Login database are each user's login string, a list of TIPs the user is authorized to access, the user's unique ID, his password, and any other "permissions" (in addition to which TIPs may be accessed). ๐ These permissions may indicate that the user may create, delete, or modify entries in the database, assume other users' roles, and to what extent he may do so. The notion of permissions, as developed by Steve Warshall, is discussed in an NSW memo [2]. ๐ฆ
It seems entirely reasonable to derive a netmail database from the same comprehensive database that's designed to support TIP Login. ๐ The concept of a unique ID is supported by that database. Much of the information required for a netmail database is already included, and the maintenance tools needed to modify it seem well-suited for the purpose. ๐ ๏ธ The concept of permissions extends well to the needs of netmail. Permissions specific to network mail might include, for example, the ability to modify the delivery host list associated with a given user. ๐
The mechanisms needed to maintain the comprehensive network database and its derived databases give us a netmail database very inexpensively. ๐ค This proposal takes advantage of that situation. ๐
4. Relationship to RFC 753
RFC 753 [4] describes an internetwork message delivery system. ๐ Very briefly, the approach is to locate one or more "message processing modules" (or MPMs) on each network. These MPMs pass messages across network boundaries, and they're also capable of making deliveries to users on the local network. ๐ฌ The document also details a proposed message format, along the envelope and letter paradigm. An external "envelope", read by the delivery system, lets the (unread) message be correctly routed and delivered to the proper recipient. ๐ Groups of messages passed between a pair of MPMs are sent together in a "mail bag". ๐
This proposal differs from RFC 753 in that it's primarily intended to operate within a network or a concatenation of networks using a common host-host protocol, e.g. TCP. ๐งต Where RFC 753 addresses the problems of internetwork communication (differing message formats, complex routing, and correct identification of the proper recipient), this note concentrates primarily on what can be done within a single protocol. The two aren't incompatible. ๐ซถ While a general internetwork protocol must provide general methods that can be compatible with different host-host protocols in different networks, a proposal such as this one can capitalize on the capabilities, resources, and policies of a given catenet (catenated network) such as the ARPAnet/PRnet/SATNET etc. โก
4.1 Compatibility
The delivery system described in RFC 753 is compatible with the system outlined here. โ Let's examine this for each of the three basic delivery options performed by the MPM. (In the discussion that follows, "local networks" means a concatenation of networks using a common host-host protocol, e.g. TCP. "Foreign network" means some network which uses a different host-host protocol, e.g. X.25. See Figure 4-1.) ๐บ๏ธ
4.1.1 Outgoing message
4.1.1.1 RFC 753
The sender's process hands a message to the local network MPM. ๐ค The message may be destined to an address on the local network or on a foreign network. In the former case, the MPM performs the local delivery function (see "Incoming message"). In the latter case, the MPM passes the message along to another MPM which is
"closer" to the end user ๐ Okay bestie, so the MPM hands it off to the one that's closer to the person actually reading it. Here's the vibe of the whole Internet setup ๐ฆ
+---------+ +----------+
| | | |
| RCC-NET | | WIDEBAND | .......
| | | NET | . .
+---------+ | | . MPM .
* * +----------+ .......
+---------+ * * * * ....... |
| | +---------+ . . +---------+
| BBN-NET |***| |__. MPM . ..... | |
| | | ARPANET | ....... . .xxxx| TELENET |
+---------+***| |***********. G . | |
+---------+*** ..... +---------+
* * * * ** .......
+--------+ +-------+ ***..... +-------------+ . .
| | | | . . | |--. MPM .
| SATNET | | PRNET | . G .oooo| DIAL-UP NET | .......
| | | | ..... | |
+--------+ +-------+ +-------------+
"Local Nets", TCP based | "Foreign Nets", other
(direct addressing using IP) | host-host protocols
*** = TCP xxx = X.25 ooo = other communications protocol
G = gateway
Figure 4-1: The Internet Environment ๐
4.1.1.2 This proposal โจ
okay so the sender's process figures out the right host for delivery using the recipient's unique ID ๐ If the message is destined to the local network, delivery happens the way we described earlier in this proposal ๐ If the recipient is NOT local, the message may be passed to an MPM for foreign delivery. (A discussion of internet delivery that doesn't presuppose RFC 753 implementation is found later in this note.) ๐ซถ
The environment the MPM operates in doesn't assume the local networks know anything about addressees on foreign networks ๐ญ So there are two possibilities that come up:
- The recipient has an ID known to the local networks. ๐
- In this case, the local networks supply the RFC 753 "address". This can take place in the local networks' MPM or the user's sending or mail creation process. โจ
- The recipient is unknown to the local networks. ๐
- Here the sender must supply "mailbox" information himself, either explicitly or with help of his local host's database. ๐
So yeah, outgoing mail as described in this memo is compatible with RFC 753, with the bonus of taking some of the load off the MPM by handling mail deliveries that are local to local networks. Main character energy ๐
4.1.2 Messages in transit ๐ฆ
Traffic between two MPMs is not affected by this proposal. Literally no changes there ๐
4.1.3 Incoming mail ๐ฌ
The MPM on the networks local to the recipient will have access to the netmail database, which lets it translate "mailboxes" into "addresses" ๐ฅ It can figure out the unique ID of the recipient (if it's not already known), and kick off delivery to that recipient. RFC 753 and this proposal complement each other so well, it's giving perfect couple ๐
5. Implications of an internetwork message environment โจ
The scheme described above is based on the assumption that a unique identifier can be assigned to each registered recipient of mail. Whether or not this uniqueness can be guaranteed in a fairly unregulated internetwork environment is questionable ๐ค It's technically feasible, certainly ๐ The difficulties are more political, because you'd need to get the cooperation of the administrators and user populations of foreign networks. Let's assume cooperation though, and see what might happen in an internet environment ๐ง
5.1 Birthplaces ๐ธ
Each set of local networks would have its own database, for ease in access. It doesn't seem practical to register each ID in every database, though ๐ That would be unnecessary, and would create access and storage problems at the network databases. This is where the concept of a "birthplace", or ID origin, comes in clutch ๐
While an ID doesn't imply where the user is now, it can say something about who issued it ๐ A simple system for finding the address for any ID can be kept up by having the issuing network keep a pointer for each ID it issues. One double indirection would yield the desired address, even if the ID wasn't issued on the local nets. A message originating on the local nets with an ID that's unknown to its database can be handled by figuring out the birthplace of the ID. An inquiry to the birthplace database would return a list of one or more networks on which the ID is registered. An inquiry to any of those would get the requisite information. All that's needed to support this is for the birthplace record (small enough!) to be kept, and for the act of registration at a given net to automatically cause that net to notify the birthplace of the registration. (Conversely, a de-registration would cause a similar notification of the birthplace.) It's giving organized ๐๏ธโจ
5.1.1 ID resolution ๐
Handling ID resolution when the ID isn't known to the local net doesn't seem to have a simpler solution than querying foreign nets until some success is achieved ๐ค
5.1.2 Hosts in an internet environment ๐
Swapping simple host names for internet host names shouldn't cause any difficulty. Easy ๐ฅฐ
5.1.3 Orphans ๐ฅบ
Should a birthplace cease to exist (usually because its network is dismantled), a second birthplace would need to "adopt" the first birthplace's records ๐ Notification of this change could be propagated throughout the internet environment in much the same way as the addition of a new birthplace would be treated. โจ
6. Conclusions ๐
While ARPAnet message systems have been amazingly successful, there's still a ton of room for improvement in the quality and quantity of the services offered ๐ Current protocols are limiting the development of new message systems. This paper talked about a way to provide the underlying support needed to build a new generation of message systems that can be better human-engineered, while also providing more services and greater reliability ๐
Critics may argue the proposal is too radical, too much of a departure from current practice. Honestly, that's fair ๐ Today's message service is extremely straightforward in design, and therefore has comparatively few failure modes. The protocols in use have descended, with relatively few changes, from the first file transfer and message format protocols implemented on the ARPAnet. This makes them well understood; people are aware of both their shortcomings and their usage. Finally, there are people who won't feel comfortable requiring a network database, distrusting its reliability and questioning the possible cost of such a scheme ๐ซ
On the other hand, it's undeniably true that very little more can be done to improve message services while staying within today's practices ๐ New message systems that will be able to transmit facsimile, voice, and other media along with text require us to rethink message formats and do away with delivery protocols that are predicated on the characteristics of ASCII text. The inception of internetwork message delivery causes us to re-evaluate how we handle messages locally. And finally, the USERNAME@HOST naming scheme has proved to be inadequate, while the divorce of recipients' identities from their locations seems like a promising replacement ๐ฆ
The ARPAnet will soon have a distributed database for supporting TIP Login. Only small, incremental costs would be associated with building and maintaining a netmail database at the same time ๐ค It can be argued that TIP Login requires at least the level of reliability required by a message delivery system. If the TIP Login database is successful, a netmail database can work, too. โจ
It's clear we'll be implementing a new set of message format and delivery protocols in the near future, to allow for multi-media messages, internetwork message traffic, and the like ๐ New message composition and delivery systems will be built to meet those specifications and take advantage of the avenues of development they open. If there will ever be an advantageous time to re-evaluate and re-design how messages are addressed and delivered, it is now, when we're about to enter an entirely new cycle of message composition and delivery program implementation. Iconic timing ๐
REFERENCES
[1] John F. Shoch. Inter-Network Naming, Addressing, and Routing. In Proceedings, COMPCON. IEEE Computer Society, Fall, 1979.
[2] Stephen Warshall. On Names and Permissions. Mass. Computer Associates. 1979.
[3] David H. Crocker, John J. Vittal, Kenneth T. Pogran, D. Austin Henderson, Jr. STANDARD FOR THE FORMAT OF ARPA NETWORK TEXT MESSAGES. RFC 733, The Rand Corporation, Bolt Beranek and Newman Inc, Massachussets Institute of Technology, Bolt Beranek and Newman Inc., November, 1977.
[4] Jonathan B. Postel. INTERNET MESSAGE PROTOCOL. RFC 753, Information Sciences Institute, March, 1979.
[5] Robert H. Thomas, Paul J. Santos, and John F. Haverty. TIP Login Notes. Bolt Beranek and Newman. 1979.
Table of Contents
1. Introduction 2
2. Names and Addresses 3
2.1 A distributed database approach 4
2.2 Delivery 5
2.2.1 Additional delivery options 7
2.2.2 Failures 8
3. Relationship to TIP Login database 9
4. Relationship to RFC 753 10
4.1 Compatibility 10
4.1.1 Outgoing message 10
4.1.1.1 RFC 753 10
4.1.1.2 This proposal 11
4.1.2 Messages in transit 12
4.1.3 Incoming mail 12
5. Implications of an internetwork message environment 13
5.1 Birthplaces 13
5.1.1 ID resolution 13
5.1.2 Hosts in an internet environment 13
5.1.3 Orphans 14
6. Conclusions 15
List of Figures
Figure 4-1: The Internet Environment 10
๐ฆ where this page comes from
- ietf: rfc757 1979-09
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms