Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
A PROPOSAL FOR ADDRESSING AND ROUTING IN THE INTERNET
David D. Clark
Laboratory for Computer Science
Massachusetts Institute of Technology
Danny Cohen
USC/Information Sciences Institute
1. Introduction
Within the internet, there is a need for both addressing and routing
information as part of every packet. Using the distinction articulated by
John Shoch (1), we take the address of a packet to be where the packet is
destined, and the route, the specification of how the packet will get there.
Currently, an internet header contains only an address, and the route is
derived implicitly from that address. That addressing/routing strategy is
quite suitable given the current internet topology, but two problems may arise
as the internet continues to grow. First, unless the internet experiment is
truncated artificially, it can be expected to continue, as has the ARPANET,
for some period of time, in which case the number of networks involved may
grow to exceed the size of the field allocated to number them. Second, as the
topology grows more complex, it may not always be possible to deduce the
desired or effective route from the address. This proposal attempts to
address those two problems.
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
2. Addressing of Networks
The current internet header has space to name 256 networks. The
assumption, at least for the time being, is that any network entering the
internet will be assigned one of these numbers. While it is not likely that a
great number of large nets, such as the ARPANET, will join the internet, the
trend toward local area networking suggests that a very large number of small
networks can be expected in the internet in the not too distant future. We
should thus begin to prepare for the day when there are more than 256 networks
participating in the internet.
To cope with this problem, we propose that the top level entity named in
an internet address not be a single network, but, optionally, an aggregate of
networks which we will refer to as a region. Thus, an address now begins with
a region number, perhaps followed by a network number, in turn followed by
network dependent fields. Large networks, such as the ARPANET, will
presumably continue to be a region unto themselves. In fact, all of the
currently existing networks in the internet can be viewed as regions, which
means that no reimplementation is required if the concept of regions is
accepted. However, in the future, as more and more nets enter the internet,
we can, at our discression, lump various networks together into regions. Put
another way, a network can only join the internet by first joining a region.
In fact, the concept of a region was always available to the internet,
although in an informal manner. The structure of a network address was
unspecified except that it began with a fixed size field naming the network.
It was always permissible to use the component of the internet address next
after the network field to identify a subnet of the named network. Making
more explicit this hierarchy of regions and networks is important because, as
2
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
we discussed above, the address is used not only as an address but as a basis
for deriving a default route. We must thus consider how, using the addressing
structure of regions and nets within regions, the address can be used to
generate an effective and unambiguous route.
3. Default Routing
Currently, every gateway in the internet knows how to generate a route to
every network. If the number of networks grows substantially above 100 or
200, the gateways can no longer be expected to understand this much
information. One of the major purposes of the region concept is to control
the amount of information which every gateway must know. This scheme would
imply that an arbitrary gateway now only need to know how to reach every
region, but need not be concerned with routing to the individual network
within a distant region. Only for gateways connected to or completely inside
a particular region would be necessary to understand how to route packets to
all of the networks within the region.
Let us consider an example of how these regions might be used. There are
already two local networks at M.I.T., with more on the way. These might quite
properly be considered as one region. That would imply that a gateway located
in England need not be concerned with the internal structure of the local
networks at M.I.T. If M.I.T. were one region, such a gateway would merely
need to know how to reach M.I.T. Only when the packet has reached a gateway
connecting to one of the nets at M.I.T., would it be necessary to begin to
worry about how to reach the correct local network. It is possible that
deriving the route in this manner will not produce the optimum route; the
packet may arrive at a gateway to M.I.T. which leads to the wrong local
3
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
network, but presumably this is an acceptable inefficiency. (We will return
later to consider what might be done if it is not an acceptable inefficiency.)
More generally, this example suggests that the success of deriving routes from
addresses depends critically on the way networks are grouped together to form
regions. A region containing two networks, one in California and the other in
England, is not structured in such a way that effective routes can be derived
from the network address alone. A naive gateway, routing its packet only to
the region without regard to the particular network for which the packet is
destined, may discover that the packet has been routed to the wrong side of
the world. In fact, it is probable, in most cases, that regions should be
connected. If not, it may be impossible to get a packet from one part of the
region to the other, since the packet will have to leave the region in order
to do so and may encounter a gateway which, not understanding anything about
the network structure of the region, blindly sends the packet back to the part
of the region from which it came. If, however, the appropriate gateways can
be specially trained, there is nothing to prevent a disjoint region, and in
particular circumstances it may be quite appropriate.
4. Source Routing
In the previous section, it was shown that an internet address of the
form <region, network,...> could be used to derive a default route for a
packet, much as a route is now derived by the gateways from the current
internetwork address. Can we presume that this route will always be
sufficient, even if it is not optimal? Unfortunately, in a few cases we
cannot. First, it is easy to imagine circumstances in which the default route
is hopelessly inefficient. A network may be connected by gateways to several
4
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
regions, even though for addressing purposes it is identified as belonging to
one particular region. To send a packet to that region in order to reach the
network may grossly lengthen the path of the packet. As we said before, this
problem can be minimized by proper use of the region mechanism, but we cannot
expect the region mechanism to be perfect. Second, it may be necessary to
route a packet in such a way that it explicitly does not go through certain
networks. For example, speech packets may be hopelessly delayed if they
inadvertantly travel by a network involving a satellite. It may be necessary
to ensure that speech packets travel by some network with lower bandwidth but
better response characteristics.
How can the internet come up with better routing information in those
cases where it is required? In many cases, additional intelligence can be
built into the gateways. What is required is that gateways not immediately
adjacent to a region be prepared to understand the network field as well as
the region field of packets destined to that region. This is analogous to
something which happened in the telephone system, where a central office
originating a phone call will usually examine only the area code in order to
generate a route, but may, if it detects a particular area code, then further
examine the destinations central office to discover if use of a particular
optomized route is applicable. Building this additional routing knowledge
into the gateways is very desirable in general, since it means that it will
apply to all packets. However, we cannot expect all routing information to be
embedded in the gateways. First, in order to solve the problem offered above
of properly routing the speech packet, it would be necessary for the gateways
to base their routing decisions on type of service information. This sounds
like a rather complex decision for the gateways, especially since type of
5
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
service is not well understood. Second, network topology will change with
time, and it is not reasonable to expect that all gateways will be constantly
updated. Thus, we can expect the situation where only the originator of the
packet has sufficient information to specify the proper route.
The solution which has been proposed in the past to cope with this is to
replace the address in the packet whith a route, called a source route since
it is provided by the source of the packet. The disadvantage of having a
route in a packet instead of an address is that the concept of an address is
very useful one. For example, for accounting purposes it may be necessary to
note the source and destination of a packet as it passes through a transit
net. Clearly, it is desirable that the source and destination be uniquely
identified for this purpose, something not easily done if the source and
destination are specified only by a route. Thus, we propose that the address
continue to be the primary piece of information in the packet, but that it be
possible to include, in addition, an optional source route. This new internet
option field will, if present, be used by the gateways instead of the default
route which would normally be derived from the address.
We do not propose, in this report, a specific syntax for the option
field. However, we make the following general observations. The source route
should be structured in such a way that it need not contain more information
than that required to augment the defficiencies in the default route. Thus,
for example, it should be possible to source route a packet into a particular
region, then specify that the default route should be used to get from there
to some other region, and then specify additional explicit source information.
In a later section we propose a particular semantics for source routes.
6
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
5. Migration
What is the relationship between the scheme proposed here and the current
internet header with a fixed size address field? Happily, adoption of the
addressing strategy involving regions together with the optional internet
source route implies no immediate upheaval to packet formats or gateway code.
Currently, every network is a region, and every gateway thus contains code for
doing inter-region routing. Eventually, gateways will want to be modified as
follows. When a region finally is defined which contains more than one
network, then gateways inside that region will need to understand an
additional component of the internet address. Presumably, since different
regions may have a different number of networks, we can expect the size of the
network field to differ between regions. Thus, unless gateway code is
rewritten for different regions, it will be necessary to write code which can
deal, eventually, with a variable size component of the address. The address
itself, however, can reasonably be a fixed size, since it is merely an address
and not a route. In fact, it seems that the field as specified for the
current internet header is sufficient in size, although perhaps marginally so.
Given that certain implementations of this header already exist, I would
suggest that the correct field size in 3.1 be accepted unless strong
complaints are heard from someone in the near future.
The next step in adopting this scheme, after the gateways have learned
that for certain regions they must also look at some additional address bits,
is to arrange that gateways selectively use this additional information, even
when it is for a region for which they are not immediately adjacent. This
facility, discussed above, can be used to provide more efficient routing than
the default which would otherwise result from simplistic use of the address
7
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
information. The technical problem here is not implementation of additional
gateway code for address manipulation, but rather the development of proper
policies for dissemination of routing information so that the appropriate
gateways are correctly informed of the routing decisions to make.
The third and final step in adoption of this scheme is the implementation
in the gateways and hosts of the new internet option which specifies explicit
source routes. Presumably, the general mechanism for dealing with internet
option fields will already exist, so this is not a major upheaval of the code
which parses an internet header. The only issue related to parsing is that,
as the packet flows from gateway to gateway the source route will need to be
modified to indicate which portion has already been used. This can either be
done by physically rewriting the route into the option field, or by providing
a pointer into the field as part of the option. The pointer field has the
advantage that it does not destroy the route, so that it can be used to
backtrack to the source, which is an important feature.
There are two reasons why it is desirable to be able to use a source route
in reverse. First, the recipient of the packet may have no idea how to get
back to the source. Second, and more relevant, if the route has been formed
incorrectly, a gateway may receive a packet and have no idea how to forward
it, because the next component of the route is nonsense. If that intermediate
gateway cannot figure out how to get an error message back to the originating
host, packets sent with malformed routes will appear to fall into black holes.
It is very difficult to debug systems with black holes. Thus, reversability
of routes is very important.
The need for modification implies the option should not be checksummed as
part of an end-to-end checksum. The packet will also contain an address which
8
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
can be used by the eventual recipient to confirm that the packet is indeed
destined for him. The address field can be checksummed, and under certain
circumstances even encrypted.
6. Semantics of Source Routes
We view the internet as being composed of three physical entities:
networks, gateways, and hosts, and one logical entity, a region, which is an
aggregate of networks. The default route algorithm examines the region and,
optionally, the network within this region, and selects from a table the
appropriate network and gateway on that network to which to send the packet.
Thus, if the route followed by a packet were written out in advance, it would
be an alternating concatination of network names and gateway names, finally
terminating with a network name followed by a host name. For symmetry, one
should also precede the source route with the name of the originating host, to
allow the route to be used in reverse. Thus, an initial structure for
internet source routes might look as follows:
H,N,G,N,G,N,G,N,...,G,N,H
where H is a host identifier,
N is a network identifier,
G is a gateway identifier.
Each gateway, on receiving this route, finds his position in the route using
the pointer into the route, updates the pointer to indicate the next gateway
which is to receive the packet, and then routes the packet through the
specified network to the next gateway.
The source route as shown above always specifies the complete route. For
many cases this degree of specificity is not necessary. For example, once a
9
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
packet has been routed part of its way, the default route may then be
effective. This generalization means that instead of specifying the
particular network which is used as we pass from one gateway to the next, a
default route can be used between two particular points in the route. Thus,
we propose a more general form of a source route, as follows:
<source route>:=<source><step>...<destination>
The source route takes the packet from the source to a sequence of
gateways to the destination. The progress from each of these specified points
to the next is a step.
<step>:=<explicit route step>|<default route step>
<explicit route step>:= RNG
If we are concerned with the exact route between one gateway and the
next, we specify the step in this form, naming the particular network that is
to be used. A sequence of explicit route steps can thus connect two gateways
not immediately adjacent.
<default route step>:=<starting net><ending net>G
<starting net>,<ending net>:= RN
If the particular route to the next specified point is not critical, then
the default route step is used. The originating gateway will generate a route
to the network addressed by <ending net>. That net may be any distance away
in the internet; intermediate gateways in this step will again generate the
default route from <ending net> until the specified gateway G is reached,
which will end the step. <starting net> is required so that the route can be
10
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
used in reverse. It must specify the network address of the gateway,
originating this step.
<destination>:= RNH|RNRNH
The destination is in fact the final step and as such can be either
explicit or default. Thus it has two forms, with the interpretation of the
step with the equivalent form.
Note that while the string representing the source route is generated as
a sequence of "forward" steps, there is another grammar that generates the
same strings as a sequence of "reverse" steps. Also, in the <explicit route
step>, the intervening network is identified using a full network address,
including the region. In fact, any shorthand network identifier can be used,
so long as it is unambiguously interpretable by the gateway at each end of the
step.
7. Uniqueness of Names
Hosts will often be attached to more than one network. Thus, hosts may
have more than one internet address. As long as the only routing algorithm is
default routes based on addresses, there will be a strong desire to use these
additional names to generate better routes. While this is fine in the short
run, functions such as accounting will be easier to implement if hosts have a
single unique address. To this end, when the route option is implemented we
expect that it will be appropriate to address a host in only one way, and
specify a route additionally.
11
Internet Notebook Section 2.3.3.15 Clark, Cohen
IEN No. 46 June, 1978
REFERENCES:
(1) Shoch, J.F., "A Note on Inter-Networking Naming, Addressing, and
Routing," Xerox Palo Alto Research Center, Palo Alto, California,
INTERNET Notebook, Note No. 19, Section 2.3.3.5, January 1978.
12