Network Working Group J. Saltzer
Request for Comments: 1498 M.I.T. Laboratory for Computer Science
August 1993
On the Naming and Binding of Network Destinations
Saltzer [Page 1]
RFC 1498 On the Naming and Binding of Network Destinations August 1993
Operating systems have a similar potential for confusion concerning names and addresses, since there are file names, unique identifiers, virtual and real memory addresses, page numbers, block numbers, I/O channel addresses, disk track addresses, a seemingly endless list. But most of that potential has long been rendered harmless by recognizing that the concept of binding provides a systematic way to think about naming [2]. (Shoch pointed out this opportunity to exploit the operating system concept; in this paper we make it the central theme.) In operating systems, it was apparent very early that there were too many different kinds of identifiers and therefore one does not get much insight by trying to make a distinction just between names and addresses. It is more profitable instead to look upon all identifiers as examples of a single phenomenon, and ask instead "where is the context in which a binding for this name (or address, or indentifier, or whatever) will be found?", and "to what object, identified by what kind of name, is it therein bound?" This same approach is equally workable in data communications networks.
Saltzer [Page 2]
RFC 1498 On the Naming and Binding of Network Destinations August 1993
1. Service and Users. These are the functions that one uses, and the clients that use them. Examples of services are one that tells the time of day, one that performs accounting, or one that forwards packets. An example of a client is a particular desktop computer.
Saltzer [Page 3]
RFC 1498 On the Naming and Binding of Network Destinations August 1993
1. A given service may run at one or more nodes, and may need to move from one node to another without losing its identity as a service.
Saltzer [Page 4]
RFC 1498 On the Naming and Binding of Network Destinations August 1993
3. Route service, to identify the paths that lead from the requestor's attachment point to the ones found in 2.
Saltzer [Page 5]
RFC 1498 On the Naming and Binding of Network Destinations August 1993
Some Real-World Examples
Saltzer [Page 6]
RFC 1498 On the Naming and Binding of Network Destinations August 1993
For another example, the ARPANET NCP protocol provides character string names that appear, from their mnemonics, to be node names or service names, but in fact they are the names of network attachment points [6]. Thus the character string name RADC-Multics is the name of the network attachment point at ARPANET IMP 18, port 0, so reattaching the node (a Honeywell 68/80 computer) to another network attachment point requires either that the users learn a new name for the service or else a change of tables in all other nodes. Changing tables superficially appears to be what rebinding is all about, but the need to change more than one table is the tip-off that something deeper is going on. What is actually happening is the change of the permanent name of the network attachment point. We can see this more clearly by noting that a parallel attachment of that Honeywell 68/80 to a second ARPANET port would be achievable only by assigning a second character string identity; this requirement emphasizes that the name is really of the attachment point, not the node. Unfortunately, because of their mnemonic value, the ARPANET NCP name mnemonics are often thought of as service names. Thus one expects that that the Rome Air Development Center Multics service is operated on the node reached by the name RADC-Multics. This particular assumption doesn't produce any surprises. But any one of the four Digital PDP-10 computers at Bolt, Beranek and Newman can accept mail for any of the others, as can the groups of PDP-10's at the USC Information Sciences Institute, and at the Massachusetts Institute of Technology. If the node to which ones tries to send mail is down, the customer must realize that the same service is available by asking for a different node, using what appears to be a different service name. The need for a customer to realize that he must give a different name to get the same service comes about because in the ARPANET the name is not of a service that is bound to a node that is bound to an attachment point, but rather it is directly the name of an attachment point.
Saltzer [Page 7]
RFC 1498 On the Naming and Binding of Network Destinations August 1993
Correspondence with Names, Addresses, and Routes
Saltzer [Page 8]
RFC 1498 On the Naming and Binding of Network Destinations August 1993
Acknowledgements
Saltzer [Page 9]
RFC 1498 On the Naming and Binding of Network Destinations August 1993
Security Considerations