IEN-179 March 11th, 1981 Danny Cohen USC / ISI Addressing and Routing ---------------------- There are several approaches to addressing such as hierarchical and flat, but there is only one approach to routing: Take the best (usually the shortest) path. The choice of addressing scheme which is both manageable and may support an efficient routing is the subject of this note. Hierarchical addressing is probably the easiest to manage. The universe is divided into some small number of units, and each of which is assigned an address which is some kind of a string, typically numeric but not necessarily so. If any of these units contains more than one member then the same process is repeated (iterated). The address of the subunit is appended somehow, typically to the end (but sometimes to the front) of the address of the parent unit. This hierarchy is easy to manage such that addresses are uniquely assigned. Typically in an hierarchy each unit is capable of communicating both with its ancestor and with all of its immediate descendants. A default routing can always be easily derived from an hierarchical address. This route consists of going up to a common ancestor (parent) and then down to the destination. Hence, an hierarchical address is always a route from the root (sorry about that). This default routing requires only N-1 communication links which is the minimal connectivity for N nodes. In this situation the default route is also the only existing route, up to trivial changes. In reality, for efficiency reasons, the connectivity is richer than that. Typically, brothers are in direct communication, and a "top" (root) may not exist at all. IEN-179 [Page 2] Because of the connectivity richness the routing process is non-trivial and requires that decisions be made. Routing is the process of chosing a possible communication link, where there is more than one. The other extreme of addressing is the flat space approach where locations have totally random dependency on their addresses, meaning that a fully instantiated table lookup must be used in order to locate an address. The important feature of flat and random addressing is that it can conveniently support mobile users. A simple, however expensive, way for implementing routing when flat addressing is used is by providing all the switches (where routing decisions have to be made) with tables containing all the required information about all the addresses. In the case of flat addressing it is required that all addresses be globally unique. It is not required however that all addresses be known to all the switching nodes, provided that nodes can ask for, and get, information about addresses which were not known to them. In the hierarchical case it is possible either that all addresses be specified in an absolute (complete) mode or in a relative (partial) mode. The former requires that all addresses be fully expanded, and have the same format regardless of where they are specified (e.g., 1-213-822-1511x104), and the latter supports short forms for local addresses, at the possible expense of additional control information for remote addresses. The same address shown before may be specified as 104 from inside ISI as 822-1511x104 from the STN at LA, as 9-822-1511x104 from UCLA, as 213-822-1511x104 from Palo Alto or as 010-1-213-822-1511x104 from London. Similarly, intra-office memos do not require long addresses, and intra-country mail does not require the country name to be specified in the address. Any system which can handle perfectly flat addresses can take advantage of rich communication connectivity and can also handle multi-homing (destination with more than one address). An hierarchical addressing scheme which uses only the default hierarchical routing may have difficulties in handling efficiently rich connectivity and multi-homing. However, between these two extremes there is a wide spectrum of other possibilities. The claim of the rest of this paper is that (i) hierarchical addresses are easier to manage, and (ii) if you can handle flat addresses - you can handle hierarchical addresses even better. IEN-179 [Page 3] Hierarchical addressing is at least as good (in any respect) as flat one because flat addressing is a special case of hierarchical addressing, but not the other way round. Suppose that there is a system which can handle very well flat addressing. Since the only requirement for the flat addressing is that addresses are unique, one can assign unique addresses in any way, for example in a very structured way, like hierarchical. The introduction of hierarchical addresses to the flat addressing scheme should not degrade its performance since the uniqueness was not disturbed. Suppose further that all the addresses are examined at every switch. All addresses which result in the same routing decisions by both the flat addressing scheme and by the hierarchical addressing are marked, and the entries corresponding to them are removed from the flat addressing tables. This causes no degradation of the flat addressing scheme (which was assumed to be a good one to start with) since the hierarchical addressing yields the same routing decision for these addresses. This process repeats at all levels, and only the "GCD" addresses are stored. Hence, after removing these addresses the size of the tables decreases in all switches which probably may yield some performance improvement and increased capacities. In fact, the resulting scheme is now an hierarchical scheme with tables of exceptions which are handled in the best known way. The format of the exception table is discussed later. Note that this results in uneven distribution of knowledge. At different switches different set of destinations are known. For example, all the traffic to the East coast may be treated in the same way when being far away from there, but as the message approaches its destination, it is likely that the granularity of the address examination changes such that more details are used. When leaving Tokyo the only part of the address which was used for the routing was the fact that the message is addressed to the States. After arriving at California, the Boston traffic may be treated separately from the Washington traffic, later the Boston traffic is examined even closer to distinguish the Cambridge from the Lexington traffic, and later the MIT traffic is isolated from the Harvard and the BBN traffic. Upon entering MIT the traffic is sorted further to the appropriate local MIT net, and later to its terminal destination. This scheme allows the switches in Tokyo NOT to know about the internal structure of the addressing in the USA in general and at MIT in particular. It also helps the switches in California to take advantage of special HU (high utilization) trunks to the Boston area, if any. Since this hybrid contains both the flat and the hierarchical addressing, multi homing can be handled as well as by flat addressing. IEN-179 [Page 4] Another variant of this scheme is not to start with full tables of flat addresses (which are impossible to manage) but to treat the system as if it was a pure hierarchical one, but in addition to maintain a table of exception which is dynamically updated. The entries in these exception tables should include both addresses, their granularity level and the associated routing decision. If, for example, addresses always consist of a sequence of bytes (of any size) the granularity level may be measured by the number of bytes which are used. For example, a telephone exchange in Marina del Rey may know that the traffic for 1-213-828X and 1-213-821X is local, all the traffic for addresses 2X and 4X (Europe) should be routed to a certain cable which goes directly to Europe, the traffic to 1-212X be routed to a some cable which goes directly to NY, the traffic to either 1-617-49X or 1-617-253X should be routed to the HU trunk which goes to Cambridge, and similarly the traffic to 1-202-694-3049 should be given to a certain line which is connected to a certain destination, somewhere. All the rest of the traffic should be routed to downtown LA where smarter computers can solve the routing. In the above example the various entries have different levels of granularity, varying from 1 (in the case of Europe) to 11 (in the last example). Such a scheme yields tables of reasonable size, can benefit from any structure and logic/regularity (as opposed to randomness) of the communication subsystem, can handle multihoming, and has the capability to utilize special irregular HU lines and shortcuts. Note that in this scheme the addressing may be highly structured (e.g., in a hierarchical way) but the routing is not necessarily so. The routing is hierarchical only when this is known to be the right thing, or when nothing else is known and the hierarchical routing is used as a default. In summary, this is a way to benefit from the simplicity of hierarchical routing whenever possible, while being able to use the flat-addressing features when needed, on a case-by-case basis, without the need to maintain tables of unreasonable size.