* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download A Model for Naming, Addressing, and Routing
Deep packet inspection wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Airborne Networking wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Computer network wikipedia , lookup
Internet protocol suite wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Routing in delay-tolerant networking wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
RESEARCH CONTRIBUTIONS A Model for Naming, Addressing, and Routing BERNARD M. HAUZEUR Montefiore Institute, University of Liege Naming and addressing are areas in which there is still a need for clarificaton. Many definitions for names, addresses, and routes have been proposed, but the exact relations among these concepts are obscure. A taxonomy of names, addresses, and routes is presented. First, we identify names and routes as the essential concepts of communication. Then, addresses are introduced as an intermediate form that eases the process of mapping between names and routes; an original definition of an address is thus proposed. Relations among names, addresses, and routes are explained with the concept of mapping. On this basis, a general model relating names, addresses, and routes is built and then applied recursively throughout a layered architecture, leading to a layered naming and addressing model which may play the same role for naming and addressing features that the OS1 reference model plays for the definition of services and protocols. Finally, the model is particularized to a typical network architecture. The model may also be applied to non-OS1 layered systems; naming, addressing, and routing issues in any network architecture could be a particular instance of this layered model. Categories and Subject Descriptors: C.2.0 [Computer-Communication Networks]: [Computer-Communication Networks]: Network Architecture and Design General Terms: Design, Standardization, Additional routes General; C.2.1 Theory Key Words and Phrases: Addresses, layered architecture, mapping, names, OS1 model, 1. INTRODUCTION J. Shoch suggests that in any communication system there are three distinct abstract concepts: The name of a resource indicates what we seek, an address indicates where it is, a route tells how to get there. [22, p. 721 These definitions have the advantage of being very simple and of giving clarity to the basic concepts. Nevertheless, when going into detail the definition of an This research has been done within the framework of the ESPRIT Project 73, “Broad Site Local (D) Wideband Communication System, )) involving ACEC (B), BTM (B), SG2 (F), STOLLMANN and the University of Liege. Author’s address: Montefiore Institute, University of Liege, Liege, Belgium. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. 0 1986 ACM 0734-2047/86/1000-0293 $00.75 ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986, Pages 293-311. 294 l Bernard M. Hauzeur address is not satisfactory. Ambiguities may arise with regard to its interpretation, and questions are left open. For instance, a group address cannot really indicate where the group is, since a group may spread over many locations; moreover, members may be added or removed, so the “location” of the group changes, whereas the group address does not. Therefore, we may wonder whether a group address is a special form of a name or an address, but then the word “where” must be interpreted in a more subtle sense. In the same way, an absolute address (like an Ethernet address) does not really tell where the entity is, since there is deliberately neither an internal structure in such an address, nor rules to interpret their values. We also know that in Ethernet, Xerox has introduced the concept of factory set addresses [2]. These addresses are 48-bit numbers, and no two controllers in the world may have the same number. Since controllers have their addresses fixed before they are installed on some Ethernet LAN, it is obvious that the address cannot tell “where it is.” Then it seems that such a factory set address is the name of the controller, causing us to wonder whether this is an incorrect use of the term “address.” Where does the address concept lie? However, the fact that the controller directly identifies this (48-bit) “name” on the Ethernet bus fits our intuitive feeling of an address. Moreover, these definitions do not introduce a fourth concept that is a key point in the discussion of naming and addressing problems: the concept of mapping. There are, in fact, two basic needs in distributed systems: On the one hand, we are faced with the necessity of assigning names to applications or resources accessible through the network in order to indicate what we seek (using Shoch’s expression). Since human users operate at this level, such names would most often be human readable. On the other hand, there is the basic need to achieve communication. Thus a physical route (the path from source to destination through communication equipments) must ultimately be determined in one way or another. Names and routes are the essential concepts, and the problem of communication will be solved if we know how to derive the route from a name, or, in other words, how to map a name into a route. This mapping function can be accomplished in one step (i.e., routing by name; cf. Section 5) or in many steps. Addresses are like bridges between names and routes, which decompose the global mapping function into two steps: mapping names into addresses and then addresses into routes. With regard to names and routes, addresses are considered only as an intermediate form, but one that has been revealed in practice as offering the most convenient properties for identifying objects involved in data communications. The design of layered architectures like the Open Systems Interconnection (OSI) model is mainly responsible for such an emphasis on the address concept. Considering addresses as an intermediate form is very helpful when looking at the problems that addresses are intended to solve: Addresses are torn between names and routes; on the one hand, names are most often statically bound to the entity they denote and thus move over the network with the named entity. On the other hand, routes may change with the naturally evolving network configuration and topology, and sometimes with the traffic load as well. Then names ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. A Model For Naming, Addressing, and Routing Fig. 1. Partitioned 295 names. Name of q isA.x.P Name of •l is C.x.2 provide application entities with a transparent network, hiding, in particular, locations and topological parameters on which routes are highly dependent. Addresses would serve as a bridge between both. We believe that many practical naming, addressing, and routing issues are simplified instances of the general naming and addressing principles that are presented in the following sections. These principles provide support for a unified view. 2. NAMES The name is the first fundamental concept implied by communication as soon as more than two entities communicate. We assume the following definition: A nane is a linguistic object that singles out a particular entity from among a collection of entities [26]; it is the collection of entities that defines the naming domain. The correspondence between names and entities is the relation of denoting [12]. A name denotes (identifies) the entity to which it is bound. A name is not always a human-readable string. Any kind of entity (in the broad sense, not limited to the OS1 definition for entity) may have a name. In this paper we are concerned with users, groups of users, services, service agents (servers), hosts, gateways or nodes, networks, roles (e.g., the “central administration”), and so forth. Names may be characterized by three attributes: Structure, time, and number. (1) Structure A primitive or flat name in a specific domain is a name that alone identifies unambiguously a particular entity out of the set of entities composing that domain. It has no internal structure. A partitioned name is a succession of primitive names identifying, respectively, a domain, subdomain, sub-subdomain, and so on, followed by a primitive name identifying the entity inside that sub-sub- . . . -domain. Domains are arranged in a strictly nested structure and must not overlap (Figure 1). ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. 296 - Bernard M. Hauzeur -. .. . . . . . . yellow.. ........ yellow . . ....... . . . . - .. ............... . . . . . . . . . . . . . green.. green .- .. ..,. .I , ,- -_--------~. ;: ---. soft --\ i Fig. 2. Descriptive names. -----------+---hard # -........................-** --- : :. *.............. / blue . ..j Name of q is [color = green;hardness = soft;size or [co/or= green;size = small] Name of q is [color = yellow;hardness = soft;size = small] = small] A descriptive name is a list of attributes that are true for exactly one entity, for example, “Personal name = B. Hauzeur; organizational unit = Montefiore Institute; organization = ULg; Place = Liege; country = Belgium”. In this context, an attribute consists of an attribute type and an attribue value, the latter being a primitive name. Attribute types may be implied in some circumstances, leading to “B. Hauzeur @ Montefiore Institute @ULg @ Liege @Belgium”. A partitioned name is a particular form of descriptive name that has a rigid structure (a rigid set of attributes). Nevertheless, with descriptive names, domains can be arranged in any manner, and names may not be unique for the same entity (see Figure 2). A standard naming convention based on descriptive structures is specified in [l]. (2) Time A static name is a name that permanently denotes the same entity. This is a very usual property of names and is often implied. A dynamic name is a name that is assigned to an entity for only a limited period of time, which is short with respect to the lifetime of the entity. Such names have little interest in practice, since it is obviously not convenient for human users to handle them. However, in Section 4 this concept is extended to addresses. (3) Number Agroup name denotes a defined set of entities. An individual or specific name denotes a single entity. Names are generally ambiguous; their meanings depend on the context. For instance, in the context of entities connected to a network, DECBO may represent an interface process; in the context of a machine offering a time-sharing service, DECBOmay denote the logging server; in the context of mailing processes, DECBO may denote a mail transfer agent; and, for human users, DECBO denotes the ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. A Model For Naming, Addressing, Time Structure 1 Scheme = and Routing 297 Number Function Time List of NAMES Fig. 3. Fundamental diagram. overall computer. Names do not need to be meaningful to all users or to be drawn from a uniform name space [3]. A name, either absolute, partitioned, or descriptive, whose domain covers the global network (i.e., all the accessible entities in some layer) and that is valid for a long period of time is often called a global name or common name [18] or distinguished name [l]. In internetworks, it means that its scope is not limited to a particular host or subnetwork. The term absolute name is often used to mean a global flat name that is also static. For denoting application entities, global static flat names (i.e., absolute names) offer many advantages. First, flat naming is the most human and natural way of denoting. Second, static naming is independent of the communication support. Services, resources, and any kind of application entity keep the same name when they change places. This is an important property when one considers that “changing the name would require [changing] not only some mapping tables, but also user programs, documentation, scribbled notes, advertising copies, etc.” [20]. Finally, absolute names would present the network as “a network of resources rather than a network of computers” [18]. 3. ROUTES AND ROUTING The route is the second fundamental definition is general: concept in communication; A route is a list of names representing the following the path from source to destination PO]. We may already anticipate that addresses are names, in which case a list of addresses is only a particular form of route, and, in fact, this is the most usual form of route. In a layer, when there is no intermediate entity between source and destination through which the packet must transit, the route is reduced to a list of a single element, which is the address of the destination entity. So, on the one hand, a name identifies an entity, and on the other, a route specifies the path to an entity. Communication will become effective if we can map a name into the corresponding route (Figure 3). This function of mapping names (or addresses, in particular) into routes is called routing. In fact the term routing is used with two different meanings: routing as a mapping function, or ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. 298 l Bernard M. Hauzeur routing as the action of forwarding a packet. The first meaning is used in this context. The following short taxonomy of routing functions is based on [22] and [25]. However, a distinction is made between the entity that has to make the routing decision and the one that effectively provides the routing information. Thus, up to four attributes may enable the following classification of routing functions: (1) The place where the routing decision is made. Source routing: The entire route is determined at the source. Hop-by-hop routing: Only the next portion of the route is determined at each step. That is, the mapping of the destination name into a list of names is not performed once by a single entity; each entity along the route determines only the next element. To be complete, one should add the definition of broadcast routing (or receiver routing according to [25]). Packets carry their destination name (or address). Each packet is broadcast through the network and every entity receives it, but only the one that recognizes its name (or address) actually picks up the packet from the network. The route may be reduced to a list of a single element: The destination name or address. In this case, source routing or broadcast routing may lead to the same mechanisms as explained below. One may wonder what these routing concepts are over a single carriersense multiple-access (CSMA) local-area network like Ethernet, for instance, since in such a context these concepts are straightforward. Indeed, the route degenerates to the destination Ethernet addresss (according to the definition, this is the specific information needed to forward a packet from source to destination). Once a packet is transmitted on the Ethernet bus, all stations have simultaneous access to it, and only the one that recognizes its address takes it. This is a broadcast routing scheme, since the source station performs a null routing function. One can also say that this is source routing, since the source entity knows the entire route as soon as it knows the destination address! These basic schemes may be combined into hybrid routing schemes; for instance, the source entity may specify only some intermediate points and let the communication system determine the routes between those points. This is the source routing option in ARPANET [4]. (2) The place where the routing function is performed. The routing function can be centralized, partially distributed, or fully distributed. Indeed, when an entity has to originate either a part of the route (hopby-hop routing) or the complete route (source routing), this entity can perform the routing function locally or ask a remote site for the information. In the first case, the entity has all the information needed to perform the routing function. The routing function is fully distributed. In the second case, either a unique entity or a subset of all the entities (of this same layer) has the capability of performing the function. The routing function is either centralized or partially distributed, respectively. ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. A Model For Naming, Addressing, and Routing 299 Fig. 4. General diagram. (3) The time constant of the information based [22]. upon which the routing function is We distinguish between static, fixed, or deterministic routing in which routing tables do not change for very long periods of time and dynamic or adaptive routing in which the routing information is constantly updated. (4) With adaptive routing, a fourth attribute, the control mechanism, may be defined [ 221. Entities performing the routing function may try to update their routing information in an isolated manner by trying various routes and observing performances. When a few entities are responsible for promulgating the updated information, the control is centralized. Finally, the update process may be distributed among all the entities mutually exchanging the routing table updates. The preceding considerations lead to the diagram presented in Figure 3. It is important to note that this is a formal model linking up concepts. Therefore, the single arrow does not imply that the mapping function is done once and for all by a single entity. Indeed, in the hop-by-hop routing scheme, for instance, many entities contribute to the determination of the complete route. 4. ADDRESSES Into the model of Figure 3, we now introduce an address as an intermediate form between the name and the route; this is shown in Figure 4. The feeling that an address is an intermediate form is based mainly on two facts: (1) the model of Figure 3 is consistent without the introduction of an address; (2) there exist routing schemes that work without the use of addresses (cf. Section 5). It is the introduction of the service accesspoint (SAP) concept and the numerical nature of addresses that elucidate the universal and exclusive use of addresses in layers l-6 of the OS1 architecture. The remaining sections explain how we go from the model of Figure 3 to practical network architectures. We now propose the following definition of an address: An address is an intermediate form between a name and a route; it is oriented to machine processing and used to generate the route. ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. 300 l Bernard M. Hauzeur This definition is the most general. In practice, entities are linked to a communication object through which they can send and receive messages:thus, addresses of entities are chosen such that “they are the name[s] of the communication object/s] these entities are bound to” [20]. This last definition relies on the important concept of binding. In fact, actual information is intended for the entity, but it is always sent via the communication object the entity is bound to [22]. It thus turns out that an address is not only a name, but a particular kind of name that has a special meaning with regard to communications and that is oriented to machine processing (i.e., route generation). But this criterion is not sufficient to determine whether or not a particular kind of name is an address. Indeed, the main difference between pure names (which are not addresses) and addresses is that an address is attached to a communication object but not to an entity. It is only through the concept of binding that an address refers to the entity, whereas the name of an entity directly denotes the entity. The concept of binding is particularly obvious in the telephone network. In fact, the telephone number (a telephone network address) of a person is the “name” of the telephone set this person is bound to. In computer networks, the communication object may be an abstract object like a service access point. This corresponds to the OS1 definition of an (N) address (cf. Section 6.1) [lo]. As a consequence of the binding concept, if the communication object is reattached to another entity, then the address identifies the new entity and not the old one. Service access points in OS1 follow this rule [lo]. Attempts to classify addresses may be done in two ways. If we build a classification of addresses on the basis of experience without prior assumptions, we shall discover a remarkable parallelism with the classification of names and thus be led to consider addresses as a special kind of name. On the other hand, if we consider addresses as names a priori, the three attributes of structure, time, and number should be applicable to addresses. (1) Structure Addresses may be primitive or flat addresses (also called absolute addresses) or partitioned addresses [7], with definitions corresponding to those for names. The term hierarchical address [23, 241 is used only for a kind of partitioned address constructed over the lower layer address (cf. Section 6.2). Pure descriptive addresses can also be imagined. As an example, an XNS internet address [(net number) (host number) (socket number)] [27] is a mix of partitioned (hierarchical in this case) and descriptive structures. Indeed, the host number is flat and intended to identify only a single host in the entire world. The socket number identifies an internet service access point (SAP) inside the specified host. Thus the pair (host number) (socket number) is a partitioned address, and the (net number) is redundant. Moreover, since a host may be connected to several networks, more than one internet address may identify a single internet SAP in that host; this is a feature of a descriptive structure that is brought by the net number. ACM Transactions on Office Infbrmation Systems, Vol. 4. No. 4, October 1986. A Model For Naming, Addressing, and Routing l 301 (2) Time An address may be static or dynamic as in [14]. It is always relative to a certain time scale. A relevant scale would be the lifetime of an entity. If an entity’s address only changes once or twice during its lifetime, then these changes may be put into the category of those that occur when entities are added or retrieved and the address is considered to be static. On the other hand, if the address changes with each power failure, disconnection, maintenance operation, etc., the address is considered to be dynamic. (3) Number An address may refer to a group of entities (e.g., multicast addresses, broadcast addresses), or it may be an individual (or specific) address identifying a single entity. Addresses can be viewed as a rigid way of naming offering many interesting features in comparison with (user-friendly) names directly denoting entities: -Addresses are most often numerical and obey a very specific format; therefore, they are more appropriate to machine processing. For the same reason, they are more easily administered than names and can guarantee more reliable and unambiguous references. However, since an address identifies an entity only indirectly because of the process of binding, the sole use of the address does not guarantee that the adequate destination entity is reached. -Addresses are always recognizable by all the entities of the corresponding layers. This may not be the case for names. -Adequate address structures allow the routing function to be easily distributed (e.g., partitioned address with hop-by-hop routing). -Since addresses are attached to communication equipment and not to entities, the problem of relocation of entities is relegated to the mapping of addresses to names and does not interfere with route generation (mapping routes to addresses). -In layered architectures, addresses are very convenient for relating entities in a layer to others in adjacent layers; this bears a close relationship to the principle of layer independence in the OS1 reference model, which includes the important SAP concept to which addresses are bound [lo]. Because addresses are names, in order to avoid confusion in the following discussion, the term name is used only when we refer to names directly denoting entities and not for names of communication objects to which entities are bound, except when interpretation is clear from the context. 5. MAPPINGS 5.1 General Diagram The introduction of the address concept in the fundamental diagram in Figure 3 has led to the formal diagram represented in Figure 4. Owing to this introduction ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. 302 l Bernard M. Hauzeur of an intermediate a route: form, we can now identify two ways of mapping a name into (a) The name is directly mapped into a route. (b) The name is mapped into an address, and the address is mapped into a route. The mapping function is then decomposed into two stages, which may be performed in different locations. In fact, there are three different mapping functions among three objects (Figure 4): mapping a name into a route (arrow a), mapping a name into an address (arrow b), and mapping an address into a route (arrow b’). Arrow b corresponds to a directory function, and arrows a and b ’ correspond to routing functions. Each of these mapping functions may be distributed among several entities. This has already been explained for routing functions (cf. hop-by-hop routing). In practice, the routing function is very often a fully distributed function, each routing entity (in gateways, routers or relays, depending on the terminology) having its own routing table and interacting with neighboring entities to update it. Similarly, the directory function is often partially distributed; it is performed by a few entities that are called name servers or directory service agents [l, 8, 11, 15, 16, 17, 211. A directory service agent may interact with several others in order to perform the mapping of a single name into an address. The term directory function has a broader meaning beyond just the mapping of a name into an address. This function may be rather complex, especially in the application layer where several stages of mapping can be performed before getting the address. For instance, a group name is mapped into a list of names that may contain other group names [5]. Additional mappings will lead to a list of individual names, which are then mapped into addresses. Let us stress again that if we formally consider this directory function as a whole, it does not mean that it is performed by a single entity in a single place. Names, addresses, routes, and related mappings can take place in any layer, and each layer fulfills a particular function, which thus makes each of these concepts more or less apparent. These points are discussed in detail in Section 6. Note that routes may, of course, be reduced to the destination address, but they are still routes even if the concept is hidden behind the address. Mapping a name (denoting an entity) into an address, and then mapping the address into a route (b, b’) is much more usual than mapping a name directly into a route (a). Indeed, this corresponds to OS1 layering principles. Mapping names into addresses is merely performed at the application level where human operators interact. Nevertheless, the direct mapping of a name (denoting an entity) into a route may be something of a surprise. It is called “routing by name. “?l’his function is much less common than routing on the basis of an address (denoting an access point). However, the classification of routing functions defined in Section 3 is applicable to both. So, let us give an example of “source routing by name.” This example, which is based on [19], is sketched in Figure 5. We assume two subnetworks A and X, of different types, on top of which a kind of network layer has been built. The route, which is completely determined at the source, is composed of subnetwork addresses and ends with a selector (or port number) that allows network entities ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. A Model For Naming, Addressing, and Routing DEST name :;$$., mapping 303 ;$~Tc$E;o route to DEST souRCE -- 4 1 &$ ------------------- A=l - + x ________-my .__a___ I I SUBNET A Fig. 5. SUBNET X Source routing by name. to multiplex incoming packets among several applications. The route, which will appear in packets flowing from SOURCE to DEST, is represented in Figure 5. When receiving such a packet, a network entity takes the next element of the route as pointed out by the “pointer to next step,” increments the pointer (for the next entity), and then uses the element as an immediate destination to which the packet should be sent. So, in Figure 5, the network entity that is serving the entity SOURCE will use subnet address b to forward the packet to the intermediate entity, which will use subnet address y to forward the packet to the rightmost entity, which will use port number 3 to deliver the packet to DEST. More precise and detailed explanations may be found in [19]. What is important to note is that some concepts, such as network layer, network interface, and network ports or service access points (SAPS), are clearly defined. But there is no concept of a networkwide address that unambiguously identifies an SAP, whereas we usually expect such a definition of an address once a network interface and network SAPS have been defined. In fact, a hierarchical address like y.3 may be constructed to identify the entity DEST at SAP 3, but its validity will be limited to subnetwork X; because y has a format proper to a particular type of subnetwork or the value y may well exist on distinct subnetworks in the system, y.3 would be ambiguous. In other words, nothing prevents subnetwork addressing spaces from overlapping. Another example of routing by name is broadcast routing by name. We assume that each network entity may serve several higher level entities through ports. Thus, it maintains a table giving the port number (which is a very local address) corresponding to the name of any local higher level entity. A network entity receiving a request to send a packet will broadcast this packet (which carries only the name of the destination) to all the other network entities, each one having, therefore, the opportunity to check whether the destination name in the packet corresponds to one of their local higher level entities. In fact this approach ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. 304 l Bernard M. Hauzeur is used in multiprocessor machines where (simplifying) the network is the bus, network entities are (the interprocess communication handlers in) kernels on processors, higher level entities are processes, names are process handles, packets are interprocess messages,and port numbers may be compared to queue identifiers. This approach is theoretically feasible in computer networks but not practical for obvious performance reasons. However, it is again proof that the address concept may be useless, even in the case in which concepts of a layer interface and SAPS are present. The above considerations confirm that, from a theoretical point of view, the concepts relevant to communication are names and routes, and that addresses are an intermediate form (denoting the communication object bound to the entity). These considerations have led to the general diagram of Figure 4. 5.2 Variability Mapping names into routes is confronted with two factors of variability: (1) Entities are sometimes relocated. They move from one location to another in the network but keep the same name, however, because names are most often static. New entities are added, old ones retrieved, and names may change. Then other routes may be needed to reach the same entity, routes to new entities may have to be included, etc. (2) The network topology evolves in time. Adding new subnetworks or gateways creates new routes. Subnetworks or gateways may have temporary failures or be congested or flooded, thereby raising the need for alternative routes. Most often in practice, the first stage of mapping (names into addresses) deals with the first factor of variability, and the second stage of mapping (addresses into routes) deals with the second factor. So the address concept not only decomposes the name-into-route mapping into two steps, but also separates the two factors of variability. One can find here an additional justification for the practical usefulness of the address concept. With routing by name, the single name-into-route mapping function should deal with both factors at a time. 5.3 Address Designs Major design issues in addressing can be seen as consequences of the level at which addresses are put between names and routes and, therefore, as consequences of the role assumed by each stage of mapping. Flat addressing schemes like 48-bit Ethernet addresses can be considered closer to name forms, whereas partitioned addressing schemes like internet addresses in the TCP/IP, ISO, or XNS architectures are closer to route forms [4, 7, 13, 271. 6. NAMES, ADDRESSES, AND LAYERING 6.1 Definitions Name, address, and route concepts may apply to any layer of a layered architecture, typically the OS1 reference model. However, in practical implementations each layer fulfills a specific function, which makes some of these concepts useless or completely transparent in that particular layer. It is always a subset of these ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. A Model For Naming, Addressing, and Routing I 305 I LAYERNil lt!!.2!4f~ + I)ENTITY Fig. 6. OS1 layered architecture. LAYER N-l I (N- I)ENTITY concepts and of the relevant mapping functions that are found in each layer. This point is detailed in Section 6.4. For the moment, we shall adhere to the most general context in order to introduce the concepts of names, addresses, and routes in a layer and of relationships between one layer and another. In the OS1 model, each layer is composed of entities (Figure 6). A title identifies an entity regardless of its location and is unchanged if the entity moves in any manner [lo]. A title is the OS1 definition for a static name. A title may have a flat or partitioned structure. A title is unique within the scope of the title domain. Title domains of primary importance are the layers themselves. A service access point (SAP) is an association between two entities in adjacent layers in which the service is offered by the lower entity and can be requested by the upper one. An (N)address identifies a particular (N)service access point (SAP). According to the definition of an address, the (N)address of the (N + 1)entity is the name of the (N)SAP it is bound to. Note that the address is attached to the SAP and not to the entity. If the SAP is reattached to a different entity, the address identifies the new entity but not the old one [lo]. This introduces the binding concept. An (N)address usually refers to an (N + l)entity, which is the entity above the SAP. Nevertheless, the (N)address may also be used to identify the (N)entity under the SAP because this association is unambiguous. Indeed, in the OS1 model, any (N)SAP is always supported by a single (N)entity (but note that a single entity may support several SAPS). Such referencing of (iV)entities by (N)addresses is sometimes used in optional source routing [4], for example, and may be found in routing tables of some hop-by-hop routing procedures. 6.2 Addressing and Subaddressing Addresses denote SAPS that are conceptual attachment points between entities; therefore, addresses offer a very systematic and convenient way of relating entities in a layer with entities in adjacent layers. Addresses also provide for layer-to-layer independence. Indeed, if (N)entities had to deal with (N + 1)entity names instead of (N)addresses, these (iV)entities ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. 306 l Bernard M. Hauzeur GENERAL CONFIGURATION Fig. 7. Service access points configurations. would have to know about the existence of (N + l)entities, which is not the case with (N)addresses. Moreover, addresses provide for flexible addressing techniques in any layer when relating (N)addresses to (N)entities and (N)entities to (N - 1)addresses (see Figure 7). One can see fan-in and fan-out as flexibility in mapping (N)entity names into (N - 1)addresses and mapping (N)addresses into (N)entity names, respectively. Nevertheless, the intermediate step through the (N)entity name is very often skipped in practice, and (N)addresses are mapped into (N - 1)addresses in a single step. Correspondence between (N)addresses and (N - 1)addresses may be hierarchical (subaddressing) or set through mapping tables [lo]). For these reasons, a name is a rather useless concept below the application layer. 6.3 General Model To send a message to a destination entity whose name is known, the name is mapped into an address and then the address is mapped into a route. Since the route definition is a list of names, recursivity from layer to layer is suggested (as can be seen in Figure 4). The resulting expansion is sketched in Figure 8. In fact, the complete model expands into a tree structure whose root corresponds to the name of a destination entity in the application layer, and which ends with the physical routes in the physical layer. Only some depth-first branches are drawn in Figure 8. It is possible to create similar figures with routing-by-name procedures at some stages, if desired. In the following, we concentrate on the OSI-like architectures where each layer supports the concept of an address. As seen in Figure 8, the general diagram of Figure 4 takes place astride layer interfaces. This discrepancy between layer boundaries and the general diagram boundaries may look surprising but is, in fact, very natural. Going from a name, which identifies the entity with which we intend to communicate, to a route, which is used for effective communication, implies that a communication service has been offered-and communication services are offered at layer interfaces. ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. A Model For Naming, Addressing, and Routing 307 DESTINATION (N + 2)NAME lAYERN+Z i -(N+l)ADDRESS ---------- -- (N + 1)ROUTE = {(N + l)NAME, A m--m ..., (N + l)NAME, B LAYERN+I -------- - ____ - _____------_ (N + l)NAME} DEST:’ 4b (N)ADDRESS (N)ROUTE = { (N)NAME, (N)NAME, Y X LAYER N 4 etc.. . .-------------------------- etc. . . ..., 44 _-------------- (N-1)ADDRESS 4 (N-l)ROUTE LAYER N-l Fig. 8. 4 etc.. . _-----------_-----_- = {. . . etc . . .(route to X-1) etc.. . } Layered naming and addressing model. So, (iV)entities perform both the mapping of (iV)addresses into (N)routes (routing) and the mapping of (N)entities’ names (appearing in (N)routes) into (N - 1)addresses. In the figure, the lower layer entity that serves Dest is named Dest-1, the entity that serves A is named A-l, and so on. In this general model (Figure 8), each name, address, route, and related mapping functions may be independently described with attributes selected from the corresponding classifications (cf. Sections 2, 3, 4, or Figure 3). For instance, names may have a flat, partitioned, or descriptive structure, be static or dynamic, individual or group, and so forth. The model does not show which particular (N)entity in an (N)layer is performing the mapping functions or how they are performed; for instance, an (N)route may be constructed by a single (N)entity (if there is a single hop to the destination entity, or in the case of source routing) or by several entities, each one mapping the next step of the route to the destination (N)address (hop-by-hop routing). So, names, addresses, and the address-into-route mapping functions in each layer may be stamped with attributes defined in Sections 2-4, leading to a vast number of theoretical alternatives, of which only a few are sound and even fewer used in practice. 6.4 Practical Model In practice, many intermediate steps in the general model of Figure 8 disappear. As already said, each layer fulfills a particular role that makes some concepts or mapping stages impractical, useless, or completely transparent. An example is given in Figure 9, which represents a typical OS1 architecture. One can observe ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. 308 Bernard M. Hauzeur l DESTINA T/ON APPLICATION NAME LAYERS 5,6,7 1 TRANSPORTADDRESS --------- ___---------__ -_--_-_-- LAYER 4 NETWORK ADDRESS --a _____ - _-_---------____ -___--- LAYER 3c : lNTERNET LAYER 4 INTERNETWORK ROUTE = { ADDRESS, OF 1st IG ------- ADDRESS, OF 2nd IG 4 1 SUBNETADDRESS LAYER 2 Fig. 9. ADDRESS, .. , X 1 DATALINKADDRESS + PHYSICAL ROUTE LAYER 1 4s Typical } etc.. . ---_-----------_--------- 4 PHYSICALADDRESS ------------ ADDRESS OF DEsT.-’ etc.. . SUBNET ROUTE ={ ADDRESS, LAYER 3a,b : SUBNETDEPENDENT LAYERS ---------a-. .. , i ADDRESS } OF WIG-1 4 etc.. . etc.. . -------------------- --------------------NOTE: IG = INTERNET GATEWAY naming and addressing architecture. that this is an instance of the general model of Figure 8 in which many intermediate steps have vanished and the remaining ones have been particularized. In order to derive this practical architecture from the general model of Figure 8, the following considerations have been used: Names are found rather exclusively at the application level and are not used below this layer. Since the application layer is the layer where human interactions take place, names are used at this level to identify application entities. On the other hand, in layers l-6, addresses have many advantages over names (OS1 titles) in relating entities in a layer to others in adjacent layers (cf. Section 6.2). In the presentation, session, and transport layers (layers 6,5, and 4), protocols are end to end; thus the route is reduced to the destination entity address, and the routing function is straightforward. Moreover, in the OS1 architecture, presentation and session addresses are equal to the transport address. Therefore, the application name can be mapped directly to a transport address (Figure 9). In the transport layer (4), just as in the data link layer (2), the route degenerates into a single element and names are not used, the two mapping functions, ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. A Model For Naming, Addressing, and Routing 309 (N)address-into-(N)name and (N)name-into-(N - l)address, merge together into a single mapping function, defined in the OS1 reference model as the correspondence between (N)addresses and (N - 1)addresses. In the transport layer, even when the transport address is mapped into a single network address, fan-out techniques may be used; thus, this mapping function should be identified separately. The same consideration applies to the data link layer. In Figure 9, the decomposition of the network layer (layer 3) into three sublayers is assumed [6]. Sublayer 3a is the subnetwork access sublayer where some intranet routing functions may take place. Sublayer 3b is the subnetwork enhancement sublayer that transposes subnetwork services into some uniform service for use by the internet sublayer. Sublayers 3a and 3b have been merged in the figure into a single subnet sublayer. Sublayer 3c is the internet sublayer that provides the networkwide service on top of the independent subnetworks. The terms network address and internet address are synonyms. Since names (titles) are not used below layer 7, a route is a list of addresses (i.e., a particular kind of a list of names). So, network addresses (internet addresses) are used instead of names to specify the internetwork route (Figure 9). Such internet addresses are adequate since they unambiguously identify internet entities networkwide, as stressed in Section 6.1. Another alternative is to use a concatenation of some local subnet identifier and a subnet address as an element of the route in place of the internet address. Then, in an internet gateway (also called internetwork router or network relay), the local subnet identifier is used to select one of the attached subnetworks, and the subnet address is used to forward the packet over this subnetwork. Our intent is not to particularize the general layering model of Figure 8 for all existing architectures. The above example shows that this procedure is simple. For instance, if we integrate the IEEE 802 type of subnetwork, sublayer 3a would be empty but some routing functions may take place in the data link layer, which should also be decomposed into MAC and LLC sublayers [9]. The model of Figure 9 represents only the relations between names, addresses, and routes in a typical architecture. The complete model is specified when the characteristics (in terms of attributes defined in the classifications) of each name, address, and mapping function are specified for each layer, together with the configuration of entities (fan-in, fan-out, etc.). Little emphasis has been put on the application layer. In fact, this layer may itself be decomposed into sublayers where additional mapping functions (i.e., directory functions and routing functions) may take place. Let us note also that a single application name is directly mapped into an address in Figure 9, which is a simplified view. A more realistic situation may be that the name of a role (e.g., “department of. . .“) is mapped into several names of services, one of which is mapped into several names of service agents, one of which is finally mapped into an address. 7. CONCLUSION We have tried to lay down classification systems and models that encompass all existing naming and addressing schemes and most practical issues. We have also tried to clarify the concepts of names, addresses, and routes. It was mainly the existence of routing schemes that map a name (denoting a proper entity even if ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986. 310 l Bernard M. Hauzeur it is numerically coded) directly into a route that has led us to assume an address as an intermediate form between a name and a route. Names and routes are deemed the fundamental concepts pertinent to communication; a name is essential for singling out a destination entity from a collection of entities, and a route, consisting of a set of names, specifies the path toward that entity. Nevertheless, in practice, an entity is bound to a communication object through which it can send and receive messages. In the telephone example, entities are people and communication objects are the telephone sets. In the OS1 world, entities are formal elements of open systems, and communication objects are SAPS. As entities, communication objects are denoted by names, which now take a special format dedicated to machine processing. This is the address concept. Owing to the process of binding, an address can no longer be used to identify the communication object but only the entity to which it is bound. The diagram of Figure 4 presents the relationships among the three concepts of names, addresses, and routes. Since a route is a list of names, a recursive application of this diagram has led to a general tree-shaped naming and addressing model that is partially represented in Figure 8. The combination of this last model with the classification systems introduced earlier leads to a vast number of theoretical alternatives, out of which a very small number are practical issues. A typical OS1 architecture is then presented. It is shown that this practical architecture is a particular instance of the general tree-shaped model. ACKNOWLEDGMENTS I would like to thank my colleague G. Leduc for his pertinent remarks during the elaboration of this paper, D. Rayner for his comments on a first version, and, more particularly, Professor A. Danthine for pushing me until the concepts were polished. REFERENCES 1. CCITT-ITT CONSULTATIVECOMMIITEE. Directory System-s. Draft recommendations X.dsO to X.ds6. CCITT, Sept. 1985. 2. DALAL, Y., AND PRINTIS, R. 48-bit absolute Internet and Ethernet host numbers. In Proceedings of the 7th Data Communications Symposium (Mexico City, Oct. 26-28). IEEE, New York, 1981, pp. 240-245. (Also in ACM-SZGCOMM 4,11 (1981)J 3. DANTHINE, A. Network interconnection. In Proceedings of ZFIpIWG6.4 Symposium on Local Computer Networks (Florence, Italy, Apr.). North-Holland, Amsterdam, 1982, pp. 289-308. 4. DARPA. Internet protocol-DARPA Internet program protocol specification. RFC 791, Information Sciences Institute, Univ. of Southern California, Los Angeles Calif., Sept. 1981. In Internet Protocol Transition Workbook. ARPANET Network Information Center, SRI Intemational, Menlo Park, Calif., Mar. 1982. 5. DEUTSH, D. Implementing distribution lists in computer-based message systems. In Proceedings of ZFZP/ WG6.5 Conference on Computer Message Services (Nottingham, May). Nottingham Univ., U.K., 1984, pp. l-11. 6. EUROPEANCOMPUTERMANUFACTURERSASSOCIATION. Network layer principles. Tech. Rep. 13, ECMA, Geneva, Switzerland, Sept. 1982. 7. EUROPEAN COMPUTERMANUFACTURERSASSOCIATION. Layer 4 to 1 addressing. Tech. Rep. 20, ECMA, Geneva, Switzerland, Mar. 1984. 8. EUROPEANCOMPUTERMANUFACTURERSASSOCIATION. Directory service standard-first draft. ECMA/TC23/84/110, ECMA, Geneva, Switzerland, Sept. 1984. ACM Transactions on Office Information Systems, Vol. 4, NO. 4, October 1986. A Model For Naming, Addressing, and Routing l 311 9. INSTITUTE OF ELECTRICAL AND ELECTRONICSENGINEERS. Local area networks standards. Drafts IEEE 802.1-802.5, IEEE Project 802 Committee, New York, 1983. 10. INTERNATIONAL ORGANIZATION FOR STANDARDIZATION. Data Processing-Open Systems Interconnection-Basic Reference Model. International Standard IS0 7498, 1981 (Available from American National Standards Institute, New York). (Also in Comput. Networks 5 (1981), 81-118.) 11. INTERNATIONAL ORGANIZATIONFOR STANDARDIZATION. Directory service for OS1 systemsdraft service specification. ISO/TC97/SC16/N1715, Oct. 1983. (Available from American National Standards Institute, New York.) 12. INTERNATIONALORGANIZATIONFORSTANDARDIZATION. Working draft addendum to IS0 7498 on naming and addressing. ISO/TC97/SC16 N1918, June 1984. (Available from American National Standards Institute, New York.) 13. INTERNATIONAL ORGANIZATIONFOR STANDARDIZATION. Addendum to the network service definition covering network layer addressing. Draft Proposal 8348/DAD2, Apr. 1984. (Available from American National Standards Institute, New York.) 14. JANSON, P., AND MUMPRECHT, E. Addressing and routing in a hierarchy of token rings. In Proceedings of IFIP/WG6.4 International Workshop on Ring Technology. CT2 2NF, Univ. of Kent, Canterbury, U.K., Sept 1983, pp. 97-109. 15. MOCKAPERTIS, P. The domain name system. In Proceedings of IFIP/WG6.5 Conference on Computer Message Services (Nottingham, May). Nottingham Univ., U.K., 1984, pp. 59-70. 16. OPPEN,D., AND DALAL, Y. The clearinghouse: A decentralized agent for locating named objects in a distributed environment. OPD-T8103, Xerox Office Product Division, Palo Alto, Calif., Oct. 1981. 17. POSTEL, J. Internet name server. IEN 116, Information Sciences Institute, Univ. of Southern Calif. Los Angeles, Calif., August 1979. In Internet Protocol Transition Workbook, ARPANET Network Information Center, SRI International, Menlo Park, Calif., Mar. 1982. 18. POUZIN, L., AND ZIMIUERMANN,H. A tutorial on protocols. Proc. IEEE 11, 66 (Nov. 1978), 1346-1370. 19. SALTZER,J., REED, D., AND CLARK, D. Source routing for campus-wide internet transport. In Proceedings 20. 21. 22. 23. 24. 25. of IFIP/WG6.4 Symposium on Local Networks for Computer Communications (Zurich, Switzerland Aug.). North-Holland, Amsterdam, 1980, pp. l-23. SALTZER,J. On the naming and binding of network destinations. In Proceedings of IFIP/ WG6.4 Symposium on Local Computer Networks (Florence, Italy, Apr.). North-Holland, Amsterdam, 1982, pp. 311-317. SIRBU, M., AND SUTHERLAND,J. Naming and directory issues in message transfer systems. In Proceedings of IFIPIWG6.5 Conference on Computer Message Services (Nottingham, May). Nottingham Univ., U.K., 1984, pp. 13-35. SHOCH, J. Inter-network naming, addressing, and routing. In Proceedings of IEEE Computer Conference, COMPCON (Washington, D.C., Fall). IEEE, New York, 1978, pp. 72-79. SUNSHINE, C. Addressing problems in multi-network systems. In Proceedings of IEEE INFOCOM 82 (Las Vegas, Mar.). IEEE, New York, 1982, pp. 12-18. TANENBAUM, A. Computer Networks. Prentice-Hall, Englewood Cliffs, N. J., 1981. TSICHRITZIS, D. Message addressing schemes. ACM Trans. Off. Inf. Syst. 2, 1 (Jan. 1984), 58-77. WHITE, J. A user-friendly naming convention for use in communication networks. In Proceedings of IFIPjWG6.5 Conference on Computer Message Services (Nottingham, May). Nottingham Univ., U.K., 1984, pp. 37-57. 27. XEROX CORPORATION. Internet transport protocols. Xerox System Integration Standard XSIS 028112, Xerox Corp., Stamford, Conn., Dec. 1981. 26. Received February 1986; revised May 1986; accepted September 1986 ACM Transactions on Office Information Systems, Vol. 4, No. 4, October 1986.