IEN 178 April 1981 ADDRESSING PROBLEMS IN MULTI-NETWORK SYSTEMS Carl A. Sunshine University of Southern California Information Sciences Institute 4676 Admiralty Way Marina del Rey, CA 90291 Abstract To allow uers in different networks to communicate with each other, development of powerful yet practical naming, addressing, and routing facilities is essential. Basic procedures for multi-network systems under control of a single organization have begun to be used, but a large set of more sophisticated goals remain to be addressed. This paper describes several of these more advanced problems including extendability, multihoming, network partitioning, mobile hosts, shared access, local site connections, gateway routing, and overcoming differences in heterogeneous systems. Note: There are three figures associated with this document which may be obtained from the author by sending a message to . -1- Introduction The interconnection of multiple computer networks makes it possible for ever wider communities of computer users and applications to interact with each other. A basic set of problems that must be solved in accomplishing such interconnections concerns providing naming, addressing, and routing procedures that are general and convenient yet practical. These problems are particularly difficult when networks of different designs and/or operating under different authorities must be interconnected. Current multi-network systems are fairly small (tens of networks maximum) and largely designed by and under control of a single organization. (We shall call this "homogeneous" internetworking.) Basic interconnection is supported by simple hierarchical addressing and routing procedures employed uniformly throughout the system [1,4,10,13]. Interconnections of different multi-network systems (heterogeneous internetworking) are just beginning to be made, largely by ad hoc means. Thus, while some of the basic problems have been solved, a large set of secondary problems will soon be upon us. These include problems of scale (current methods are impractical for systems with hundreds or thousands of networks); supporting more sophisticated functions such as multihoming, network -2- partitioning, mobile hosts, and shared access; and overcoming the different procedures in heterogeneous systems. This paper describes several of these interesting problems, and discusses potential solutions. The emphasis is on developing a feel for the range of problems and solutions rather than on detailed or formal treatment of any one problem. In many cases it will be clear that further research is needed to clarify the problems or to develop and evaluate better solutions. Hierarchical Methods A basic approach to addressing and routing in large systems is to use hierarchical methods. These methods can be applied at various levels (e.g., within networks and among networks). We give a brief summary of the basic principles involved since these form the background for many of the other problems. As the number of subscribers or "hosts" in a single network increases, it becomes desirable to introduce a number of switches, each serving a subset of the hosts. These switches must maintain routing tables which give the best outgoing link (or set of links) for any destination. The tables are used to forward incoming packets properly toward their destination. In datagram networks, a routing decision based on final destination is made for every packet, while in virtual circuit nets only the initial call request packet -3- requires the full routing decision (subsequent packets of a call are forwarded over fixed routes kept in other tables). If every switch maintained routing information for every destination individually, the routing tables would become very large. A standard approach is to introduce hierarchical addressing, where each host is assigned a particular port on a particular switch, and hence addresses take the form . Then routing may also be done hierarchically by sending all packets destined to a given switch over the same route, ignoring the "low order" portion of the address. Hence each switch need only maintain routes to other switches, greatly reducing the number of different destinations, and hence entries, in the routing tables. Note that hierarchical routing is one major motivation for introducing hierarchical addresses, but these two techniques do not necessarily go together as we shall see below. Another reason for hierarchical addresses is simply to distribute the authority for assigning addresses within a large system [14]. The same techniques may be extended to multi-network systems by adding another level to the addressing hierarchy so that addresses take the form . With hierarchical routing, packets are first routed to the destination network, ignoring the rest of their address, and then routed within the final network as above. This form of -4- hierarchical addressing has been adopted by the public packet switching networks in CCITT Recommendation X.121, and it appears that most public networks intend to use hierarchical routing as well [13,19]. The reduction of routing table size that accompanies hierarchical routing has its price. The resulting routes may not always be optimal. If there are two ways to reach a remote network (as is often the case), one may be better for some hosts within that network and the other for other hosts. But there is by design no way to determine this from a local routing table which carries a single entry for the entire remote network. An even more serious consequence of strict hierarchical routing is discussed in the next section. To avoid these problems, routing decisions may based on more of the address where desirable [5,14]. For example, an internetwork routing table could be augmented with entries for individual switches receiving high traffic in a remote network, while other switches in that network were covered by a single network level entry. This leads to a selective increase in the size of routing tables, and requires the ability to search the tables for variable length portions of addresses and to update tables with varying levels of detail. Network Partitions A network is said to be partitioned when enough links and/or switches fail so that two or more subsets of its hosts -5- are formed which cannot communicate with each other. In an isolated network there is no remedy for this situation until sufficient repairs are made to restore connectivity. But if the partitioned net is part of a multi-network system, there may be paths through other nets which could connect the partitions. Unfortunately, these paths are not used within the strictly hierarchical routing procedures described above. And even if a "local" packet were sent to a neighboring network by a switch, it would likely be routed right back into the same paritition by the other network. This last point indicates another difficulty. Traffic in a remote network destined for the partitioned net will be routed into one or the other partition without consideration of its within-network switch. (Remember that other networks see a single best route to this network considered as a whole.) For some destinations, this will be the wrong partition and the destination will be unreachable by internal routes, leading to failure to deliver packets routed that way from remote nets [14,16]. One solution to this problem is to configure the system with sufficient robustness that partitions occur very rarely, and to simply tolerate the above delivery problems when they occur. This may be satisfactory for commercial systems where loads and outages are fairly predictable. In military systems where numerous disruptions are -6- anticipated, some means of forcing use of any available connectivity is desirable [3]. One approach is to treat the number of networks as dynamic, and turn a partitioned network into two networks, each of which can be an explicit destination. This requires rather complex methods of updating each network's view of the overall topology, and promulgates knowledge of a partition in one network to all other networks [8]. Another approach might be to return a special error message to the neighboring router forcing it to choose another entry point to the failed network. This backup-and-try-alternate method has been implemented for call setup in Telenet [19]. "Fast Track" Routing It is not only in case of catastrophic events like partitioning that use of external routes between two points within the same region may be desirable. If two networks cover the same geographical area, for example a store-and-forward ground net and a broadcast satellite net, performance for some types of traffic may be improved by exiting the ground net near the source, going through the satellite net, and returning to the ground net near the destination. File transfer traffic might obtain higher throughput in this fashion, for example. To accomplish this, it is once again necessary to violate hierarchical routing. Either the network level routing must -7- distinguish between destinations best reached directly within the network and those best reached by going outside, or the within-network level must be made to view paths through other networks as a special kind of internal link that is available [9]. But in the latter case, the network level path status information must be brought into the internal link status maintenance procedures, probably a messy business. Multihoming A subscriber may want to have multiple connections to a communication system for reliability or performance reasons. In the simplest case, several independent physical lines may be managed as one logical data link to obtain greater reliability, higher throughput, or lower cost (due to the idiosyncracies of carrier tariffs). Several such multiline procedures have been developed, for example in Transpac, and in X.75. The subscriber still has a single address, and no further complications are involved. In order to protect against node failures as well as line failures, lines to different switches must be used. In this case the user has two (or more) different addresses. The multiple addresses may be at any level in the address hierarchy: (e.g. two addresses within a network, or connected to two different nets). Multiple lines may also provide better performance by connecting directly to highly used areas -8- of the system and thus avoiding extra hops through the network. In order to obtain these benefits, the ability to use both addresses and to select the optimal address must exist. This may be accomplished by the source explicitly selecting one address. But this requires the source to know that there are multiple addresses for a given destination, to select the best address for performance, and to switch to an alternate after a failure. These admittedly weighty burdens could be aided by a remote directory/routing service. Alternatively, the packet could carry the multiple addresses explicitly, allowing each switch to pick the best of the best routes for each address. This of course adds to packet length and routing processing load. Instead of carrying the multiple addresses, the packet might carry the name (or "logical address") of the destination [14], leaving it for the switches to lookup and select the best address at each point. This would reduce packet complexity, but increase the switch processing demands even further. Thus we have a spectrum from high source effort to high network effort in making use of multiple addresses. In datagram nets it is probably impractical to require complex processing of the address on every packet, so more source effort will probably be required. In virtual circuit nets a -9- greater amount of effort can be expended by the net on the call setup request. Some public nets are already providing call forwarding facilities where a call to one inoperative or busy address will automatically be forwarded to an alternate address. There are problems at the destination as well as the source. To obtain the benefits of multihoming, the destination must be willing to accept traffic on all addresses. In virtual circuit nets, all the traffic for a given call must flow over the same line, so a failure during the call cannot be recovered by using an alternate address. The call must be cleared with possible loss of data, and a new one requested. Even in some datagram nets, higher level protocols are sensitive to the addresses of the local and remote hosts [3]. The source address is used to demultiplex incoming packets to the proper "connection," and packets coming from an alternate address from that used to establish the connection would not be recognized properly. To avoid this problem, the (single) name of the source could be used in the connection tables, but this would have to be carried in the packet. Alternatively, the multiple remote addresses could be stored as part of the connection table so that a packet specifying any one as source would match properly. These multiple addresses would have to be supplied as part of the connection establishment, and might -10- be profitably used in sending traffic if the original address failed. Mobile Hosts Mobile hosts represent a special case of the multiple address problem. Of course all hosts are technically mobile in the sense that they occasionally change their address due to reconfiguration and movement within the user organization, or modifications to the network topology. Hence directory information to associate the name of a host with its current address is available in most systems, either locally or via some remote server. However, the problem of changing addresses becomes qualitatively different when the host is expected to change its network attachment point frequently, even in the midst of previously established connections. Special dynamic routing and addressing procedures have been developed for ground based mobile hosts communicating via packet radio within a single network [6]. As distances are increased and this technology is transferred to airplanes, crossing network boundaries may also be anticipated. One method for "tracking" mobile hosts would be to maintain a specialized database of their current locations (perhaps replicated for reliability), as is done within individual packet radio nets (by the "station"). The mobile hosts would send updates to this database as needed, and users -11- wishing to establish communication could query the database much as any other directory service. However, they should be prepared to receive frequent address change notifications in the course of a connection, either from the mobile host itself, alternate relay points, or the database. Further details of such a scheme may be found in [18]. Assuming traffic reaches them, destinations must still be "desensitized" from the particular source address as discussed above, since this will change. But there is no fixed set of alternates to exchange at connection setup time in this case, so packets probably must carry a unique identifier (name) of the source as well as its current address. For reliability purposes, they should probably also carry the name of the destination in case it is no longer associated with the address they reach. Mobile hosts may have multiple addresses at one moment as well as at different times (e.g., an aircraft may be in contact with two radio nets). Thus it becomes apparent that problems can interact with each other, making solutions more difficult. Sharing Network Access The opposite problem to one host having several access lines to the net is several hosts sharing a single access line. This may be desirable where the number of physiscal interfaces or ports to the network is limited, or to share a -12- long access line among nearby subscribers. Public networks provide multidrop interfaces for terminal traffic (X.28), but not for packet mode traffic (X.25). For packet level devices, the alternative to providing a fixed and hence inefficient frequency or time division multiplexor must be some sort of "intelligent" multiplexor functioning at the packet level of network access protocols. Broadcast networks (e.g., Ethernets and ring nets) inherently provide this capability since every interface hears all traffic. Each interface is responsible for accepting appropriate traffic, and can sometimes be set to intercept traffic for multiple addresses. Another approach is to use a higher level of protocol to provide the necessary demultiplexing. The Arpanet access (Host-IMP) protocol does not allow for shared interfaces, and the limitation of 4 host interfaces on the original IMPs has proved troublesome in some cases. The Internet Protocol (IP) is the next level above particular network access protocols in the ARPA hierarchy [10,11]. IP addresses are sufficiently long to support multiple "logical" hosts at the same physical host port on the Arpanet. The Host-IMP header indicates the same physical host address for all such packets, and the higher level IP module at the destination demultiplexes the packets to the correct logical host. An independent device to perform this function has been developed based on PDP-11/03 -13- hardware. This "port expander" effectively turns each IMP port into 4-8 ports for hosts that use the Internet Protocol [7]. Networks vs. Gateways as Switches In most models of hierarchical routing, networks are assumed to function as "super-switches," just as switching nodes do within one network. This view would be literally true if there were a single internet switching node in each net to which all incoming traffic from other nets was routed, and which then forwarded the traffic to another network or to a local host. Figure X shows a small example of a multi-network system and a routing table at one network/switch. The routing table gives the cost in internet hops and the best neighbor net to use to reach each other network in the system. For efficiency, this internet switching function is usually distributed to processors called "gateways" serving each of the internet links. Instead of being sent through the net to some central point, the internet traffic can be routed immediately at its entry point to the best exit point (either another gateway or the destination host). Figure Y shows the same internet system with internet links labeled, and a routing table at the gateway located on one incoming link. Since the gateway must send packets across its net to a -14- particular outgoing link, the routing table now shows the name of this next link rather than the next net. Another step in this progression leads to a single gateway located in the "middle" of each internet link rather than two separate processors in each net. The gateways take on the identity of their internet link(s). In this configuration, it is more realistic to count the network hops as the cost fucntion rather than the internet links. Hence each gateway is maintaining a distance (in network hops) between gateways, and a best next gateway to use for each destination. In this model, the gateways may be more realistically viewed as the switching nodes, and the networks as the links connecting them. This is essentially the dual of the earlier model as shown in Figure Z. But the destinations in the routing table are networks, not gateways, making this a curious sort of hybrid scheme. Hence it is not clear how to apply the "link state" type of routing procedures used in single networks (e.g., the Arpanet) to this multi-network configuration with gateways as switching nodes. Local Site Connections Many sites start with a single host connected to a long-haul net. As the site develops, a few more hosts are connected, also directly to the long-haul switch. As even more hosts want to join the net at that site, problems result from costly or inefficient use of network access procedures. -15- Some sort of port expander or intelligent multiplexor devices as discussed above become attractive. This addresses the network connection problem, but not the local traffic requirements which are also growing, and may easily exceed traffic to remote sites. The network switch is handling a lot of traffic that never goes any further through the net. In some cases the port expanders may be capable of local switching, forming a rudimentary local net. To handle local traffic more efficiently, an explicit local net may be desirable. A question then arises as to whether this net should be "known" to the rest of the internet system, and connected to it via one or more full-fledged gateways, or whether it should be "invisible" at the internet level with its hosts appearing as if they were directly connected to the long-haul net. In the first case, local hosts have internet addresses on an explicit local net, while in the second they have addresses on the long-haul net. The explicit local net approach has certain advantages stemming from the explicit identification of the group of hosts at a site as a network. If the site is connectected to two or more other nets, then the internet routing mechansims will automatically choose the best path to the local hosts, which have only a single address (on their local net). However, this participation at the internet level can also be a problem. As the number of sites with local nets -16- increases, so will the number of nets and hence the size of the routing tables and updates which must be propagated all over the internet system. If the growth continues at a site so that there are several local nets connected by "local" gateways, should all of these nets and the local topology be known throughout the internet system? At some point treating local nets on a par with long-haul or backbone nets breaks down. The invisible local net approach, on the other hand, avoids problems of proliferating networks at the internet level. Many port expander or local distribution systems can perform an internal switching function, relieving the long-haul net switch of handling local traffic. But sites with connections to two or more nets will have multiple addresses for their hosts (one for each net the hosts appear "directly" connected to), and this causes some difficulties as discussed above under Multihoming. The best solution to this tradeoff is not clear. Adding an additional level to the addressing hierarchy may be a temporary solution, but it, too, will become strained in time. This suggests allowing a variable number of levels in the addressing hierarchy, adding new levels as complexity increases in some area. But this imposes a rigid ordering of levels and hence routing, while in reality "higher" and "lower" may depend on the viewpoint of the user. Further -17- research is needed on how internet systems may grow and still maintain efficient addressing and routing procedures. Multiple Domains Most of the previous discussion has assumed a single compatible "domain" in which network addressing and routing procedures are carried out uniformly. In the real world we have already seen the growth of several large domains with different conventions, including public, mainframe manufacturer, Defense Department, and local networks. It is unrealistic and perhaps impossible that these diverse groups will ever adopt a single addressing scheme, so we must live with the problem of multiple domains for the foreseeable future. One approach is to assume that one domain will make use of another merely as transport medium between its own homogeneous components. The used system appears merely as one of several types of media that the using system can employ via appropriate access protocols. The using system's packets will be "encapsulated" in the used system's protocols. Of course the two domains can make use of each other, achieving coexistence, if not complete interoperation, by "mutual encapsulation" [15]. To achieve full interoperability between heterogeneous systems, each system must recognize the hosts on the other. -18- Two basic choices are possible for crossing domain boundaries: mapping and source routing. In the mapping approach, each domain provides a set of otherwise unused internal addresses which it maps to particular addresses in other domains. Traffic addressed to one of these "pseudo-addresses" is routed to an interface or gateway to the appropriate other domain, at which point the pseudo-address is converted into an address in the other domain. In the simplest case, this requires only bilateral agreements between domains, but it may also be extended across intermediaries with further collaboration. A disadvantage of this approach is that the number of external addresses available is limited to those for which mappings have been previously defined and installed. Typically only a small fraction of remote parties are supported. Another disadvantage is that the same party has different addresses in different domains--the directory of names to addresses has many entries for each name, one for each domain supporting that party. The major advantage is that for those names supported, the users may address remote parties in exactly the same fashion as local ones, with no additional procedures. In source routing [14,17,5], the source specifies a route to reach the destination consisting of the addresses of successive inter-domain gateways, and ending with the final -19- destination. Each address in this list is interpreted within a domain where it is meaningful, and then removed so that the next address is available in the next domain transitted. Using this method, the full range of remote parties is accessable, and the inter-domain gateways do not have to maintain any predefined mappings or perform address conversions. The burden is shifted to the source which must know enough about the overall topology and address formats to construct a successful source route. Of course packet headers become bigger, and packet processing increases to accomodate the variable length source routes. Once again, the "address" of a given party varies from one domain to another, but it is now possible to combine this information--if the directory gives the source route to X from domain A, and a user in domain B knows a route to domain A, he can concatenate them to get a route to X from B (although it may not be an optimal route). It is often useful to collect a return route at the same time the source route is being consumed. This allows the destination to reply. In general the return route is not simply the inverse of the source route. The return addresses are added as the packet enters each domain, while the successive destination addresses are removed as the packet exits each domain (see [17] for a detailed example). The "network independent" transport protocol [2] -20- developed by the British PSS Users Forum is one of the first to explicitly deal with the problem of multiple domains. They suggest essentially a source routing mechanism. There are additional provisions for translating explicitly identified address information transmitted as data between end users. The protocol assumes a route setup procedure as part of call establishment so that the source route need only be carried in the call request packet. The public networks have also provided for a limited form of source routing in the Call User Data field of X.25 call request packets. This field may be used by the destination DTE as additional address information for subsequent steps in a call. This mechanism was used to allow international calls between Canadian and US public networks before the hierarchical X.121 numbering plan was put into effect [12]. The Call User Data field is also beginning to be used in an ad hoc fashion to provide addressing within various private and/or local nets connected to public nets. The Arpa Internet Protocol also supports a source routing option, but addresses within the route are all expected to be IP format addresses [11]. Conclusions We have identified a number of problems that must be considered in going beyond the simple network interconection techniques that are in use today. The significance of these -21- problems is just beginning to be widely percieved. Some preliminary solutions have been proposed, but little practical experience exists. Much work remains to be done in clarifying the problems, and in developing and evaluating solutions. Acknowledgements Many of the concepts presented in this paper have been discussed over several years as part of the ARPA Internet project. Much of the credit for developing and clarifying these ideas belongs to my colleagues at ISI and the other sites engaged in this project. References Note: Several of the references listed below are Internet Experiment Notes, unpublished memos written for the ARPA Internet project. [1] D. R. Boggs, J. F. Shoch, E. A. Taft, and R. M. Metcalfe, "Pup: An Internetwork Architecture," IEEE Trans. on Communications 28, 4, April 1980, pp. 612-623. [2] British Post Office PSS User Forum, A Network Independent Transport Service, February 1980. [3] V. G. Cerf, Internet Addressing and Naming in a Tactical Environment, Internet Experiment Note 110, August 1979. [4] V. G. Cerf and P. T. Kirstein, "Issues in Packet-Network Interconnection," Proc. IEEE 66, 11, November 1978, pp. 1386-1408. [5] D. D. Clark and D. Cohen, A Proposal for Addressing and Routing in the Internet, Internet Experiment Note 46, June 1978. [6] R. E. Kahn, S. A. Gronemeyer, J. Burchfiel, and R. C. Kunzelman, "Advances in Packet Radio Technology," Proc. IEEE 66, 11, November 1978, pp. 1468-1496. -22- [7] H. A. Nelson, J. E. Mathis, and J. M. Lieb, The ARPANET IMP Port Expander, SRI Report 1080-140-1, November 1980. [8] R. Perlman, Flying Packet Radios and Network Partitions, Internet Experiment Note 146, June 1980. [9] R. Perlman, Utilizing Internet Routes as Expressways Through Slow Nets, Internet Experiment Note 147, June 1980. [10] J. B. Postel, "Internetwork Protocol Approaches," IEEE Trans. on Communications 28, 4, April 1980, pp. 604-611. [11] J. B. Postel, C. A. Sunshine, and D. Cohen, "The ARPA Internet Protocol," to appear in Computer Networks, 1981. [12] A. M. Rybczynski, D. F. Weir, and I. M. Cunningham, "Datapac Internetworking for International Services," Proc. 4th Int. Conf. on Computer Communication, September 1978, pp. 47-56. [13] A. M. Rybczinski, J. D. Palframan, and A. Thomas, "Design of the Datapac X.75 Internetworking Capability," Proc. 5th Int. Conf. on Computer Communication, October 1980, pp. 735-740. [14] J. F. Shoch, "Inter-Network Naming, Addressing, and Routing," Proc. 17th IEEE Computer Society Int. Conf., September 1978, pp. 72-79. [15] J. F. Shoch, D. Cohen, and E. A. Taft, "Mutual Encapsulation of Internetwork Protocols," to appear in Computer Networks, 1981. [16] C. A. Sunshine, "Interconnection of Computer Networks," Computer Networks 1, 3, January 1977, pp. 175-195. [17] C. A. Sunshine, "Source Routing in Computer Networks," ACM SIGCOMM Computer Communication Rev. 7, 1, January 1977, pp. 29-33. [18] C. A. Sunshine and J. B. Postel, Addressing Mobile Hosts in the ARPA Internet Environment, Internet Experiment Note 135, March 1980. [19] D. F. Weir, J. B. Holmblad, and A. C. Rothberg, "An X.75 Based Network Architecture," Proc. 5th Int. Conf. on Computer Communication, October 1980, pp. 741-750.