IEN #147
                            PRTN #290
                          Radia Perlman
                            June 1980


Some networks in the catenet are very slow relative to others.
An example is a very large packet radio network, which might be
100 PR hops from end to end.

Distributed throughout the slow net might be several gateways to
a faster net.  It would be desirable to utilize the internet to
quickly route packets through the slow net.  So in the particular
example, rather than delivering a packet through 100 PR hops, it
would be desirable to deliver the packet to the nearest gateway
in the PR net, and have that gateway deliver the packet, through
the internet, to a gateway close to the destination of the

This problem was presented by Dr. Vinton Cerf at the May 1980
Internet meeting.  This paper is an approach to solving the
problem on a specific case basis, and an argument for solving it
that way rather than as a generalized internet routing problem.


The catenet is a network of nets.  Its job is to deliver a packet
as efficiently as possible to the correct net.  It should not
have to worry about the internal structure of a network to the
extent of knowing which hosts are closest to which gateways.

It is reasonable for the catenet to know enough about nets to
take into account their properties when calculating internet
routes.  For instance, according to whatever cost function
gateways are using to calculate catenet distances, one net can be
many times the cost of another.  And if gateways wished to
calculate distances to their neighbor gateways, and if there were
three gateways G1, G2, and G3 on a net N, the link G1-G2 could
have a different cost from the link G1-G3.  However, the catenet
should route to destination networks based solely on the most
efficient internet route to that network, and let the destination
network handle delivery to the host on the network as it sees

                              - 1 -


The previous section does not imply that the internet cannot be
utilized as an express route through a slow net.  What it says is
that it is the job of a local net, rather than the catenet, to
utilize the capability.  And it is not difficult to design this
into a net.

          net S       I           net F
     I                I
     I     A          I
     I     .          I
     I     ...N1--G1S-G1-G1F..
     I                I      .
     I                I      .
     I                I      .
     I                I      .
     I       .N2--G2S-G2-G2F..
     I       .        I
     I       .        I
     I       .B       I
     I                I
We are assuming a slow net with a few gateways to a faster
network.  Call the slow net S, and the fast net F.  Assume two
gateways, both on both S and F.  The addresses of the first
gateway are G1S and G1F, with G1S being G1's local address on net
S.  The addresses of the second gateway are G2S and G2F.  Assume
G1S is connected to node N1 on net S, and G2S is connected to
node N2 on S.  (I am assuming a network like the ARPANET or the
PRnet, in which hosts are not nodes on the net, but are attached
to nodes on the net.)

Node A on net S wishes to communicate with node B on net S.  A
and B are distant in net S, and A is close to G1, and B is close
to G2.

A can communicate with B via A's route to G1, G1's route through
net F to G2, and G2's route to B in S by prepending to the packet
an internet header with a one level source route, and sending the
packet to gateway G1.  The one level source route is the address
on the fast net of the destination gateway, i.e., <net F, host
G2F>.  The destination in the internet header is the internet
address of the destination of the packet, i.e., <net S, B>.  When
G1S receives the packet, it will route it to internet address
F,G2F.  Since that internet address is on net F, G1 will route
the packet through net F to G2.  When G2 receives the packet, it
will advance the source route and forward the packet to internet
address <S,B>.  So the packet travels A=>G1 through S, G1=>G2
through F, and finally G2=>B through S, as desired.

                              - 2 -

The source route is essential because if G1 is given a packet
with an internet address on net S, it will just throw the packet
back into net S directly, because no matter how cheap its link to
G2 is through net F, it cannot be cheaper than 0, which is G1's
distance to net S, because G1 is directly connected to S.

In most network designs, you would want most of net S to be
unburdened with knowledge of the internet, neighboring fast net,
internet headers, etc.  Thus a reasonable design is that nodes on
S have some local net link-link protocol, and some routing
information about links that gets passed around.  The nodes
directly attached to the gateways, N1 and N2, utilize the foreign
net as a "link" between themselves.  To do this, they must
encapsulate local net packets for transmission across this
"link", within internet packets, since the "link" is actually the

N1 adds an internet header to the packet with a one-level source
route being the internet address of the second gateway on the
fast net, and internet destination address <S,N2>, and passes the
packet off to the gateway.  N2 strips off the internet header and
continues the packet along the local net route.  The rest of the
nodes on S can be ignorant of just what mechanism is employed
when N1 and N2 communicate.  All they know is that N1 and N2
report that they can get packets to each other with some
miraculously low cost.  They believe N1 and N2, and find when
they compute routes that many local routes will take advantage of
that high speed link.  N1 and N2 do not have to know very much
about net F.  For N1 to send a packet to N2, all it needs to do
is send its attached gateway the packet with a prepended internet
header with single-level source route <F,G2> and destination
internet address <S,N2>.  N2 must be able to strip off the added
internet header and continue the packet in the local net as if
the N1-N2 link were an ordinary link in that net.  (In IEN #140,
"Mutual Encapsulation of Internetwork Protocols", the authors
give another example of using one net as if it were a link in
another net -- the encapsulation of PUPs in IP datagrams.)

There are some nets in which only hosts are addressable, not
nodes ("imps").  It is important, however, as discussed above, to
have N1 be able to put N2 as the internet destination.  If N1
merely put B (the destination host) as the internet destination,
N2 would not know to strip off the internet header.  Packets
should not arrive looking different depending on what path they
take, so it is at least ineligent to have some packets arriving
at B with internet headers.  Worse yet, B might not know about
internet headers -- it might be a host that only communicates
with other entities on the local net.  And another problem is
that if the route through the net traversed several express hops,
several internet headers would be prepended, one after another,
onto the packet.  So the answer to this problem is that N1 must
be able to have as the internet address N2.  The code in N2 to
strip off internet addresses can be thought of as a virtual host

                              - 3 -

attached to N2, so there should be no problem assigning it an
internet address.


For those of you uninterested in the packet radio net, skip this

Briefly, the packet radio network consists of nodes called PRs,
each of which has a unique ID.  Hosts, terminals, etc., are known
as devices, and can be attached to any PR, and unplugged from a
PR and moved to another PR without impact since device/PR
correspondence is dynamically bound by the network.  Devices also
each have a unique ID.

Routing is calculated by special devices known as stations.  A
route consists of a sequence of IDs, currently all of which would
be PR IDs.  Presumably each PR in the route is in direct radio
connectivity of the next PR along the route.

In the current design, station-station links are assumed to be
ordinary packet radio multihop routes.  Suppose that some of the
stations were directly connected to each other with some sort of
high speed, high bandwidth lines.  The only modifications
necessary to the design of the net to utilize these lines are
   1) a station ID can appear in a route
   2) a PR checks to see if the next ID in the route is its
      directly attached station.  If so, rather than broadcasting
      the packet, it sends the packet to its attached station.
   3) a station attached to other station(s) via high speed lines
      must be able to handle a packet by looking to see the next
      ID in the route and handing the packet to the correct next
      station, or to its attached PR (if the next ID was the
      station's attached PR)
   4) stations would take these high speed lines into account in
      calculating routing in their subnets, and in calculating
      their distance to their neighbor stations in the

Suppose instead that there are gateways (which are devices) to a
faster net interspersed throughout the PRnet.  Assume the
gateways are not in stations.  The modifications necessary to the
PRnet design to utilize them are:
   1) a device ID must be able to appear in a route
   2) a PR must check to see if the next ID in the route is its
      attached device.  If so, the PR must prepend an internet
      header with single level source route being <net F (a
      constant assembled into the PR's program), host X> (where X
      is the next ID in the route (and if the internet local name
      doesn't fit into a PRnet unique ID, use two PRnet IDs, the

                              - 4 -

      next 2 hops, to calculate what to put into X in the
      internet header)), and internet destination <PRnet (a
      constant assembled into the PR's program), ID of following
      hop of route>.
   3) The PR receiving the packet from its attached device should
      strip off the internet header and continue the packet along
      the PRnet route.
   4) Stations must know the gateway IDs so that they can
      recognize them as such when they are reported

Suppose instead that the stations themselves are gateways, in
that they are themselves connected to both nets.  Then there is a
choice of how to treat the design.  It can either be treated as
the standard gateway design just covered, or it can be treated as
the slightly simpler case of direct lines between the stations,
where the "direct lines" are actually routes through the fast
net.  In other words the stations can use the internet as their
"direct link", or the fast net alone.


In this section, I will present some variants of the basic
problem, and show how they are not complications of the basic

The first variant is when there are three nets, S (Slow), M
(Medium), and F (Fast).  There are a few gateways between S and
M.  There are a few gateways between M and F.  There are no
gateways between S and F.

net F
          .                    .
          .                    .
net M     .                    .
      .....                    .....
      .                            .
      .                            .
      .....                        ..
          .                         .
          A                         B

net S

Routing in net M is exactly as described above.  Net M can make
use of the gateway links through net F.  Routing in net S is also
exactly as described above.  Net S can make use of the gateway
links through net M.  S does not know anything about net F.  It
routes packets through net M, and is unaware that M cleverly
makes use of net F.  So a packet between two hosts A and B on S

                              - 5 -

might travel to a nearby S-M gateway, through M to an S-M gateway
near B, and then to B.  The path through M between the two S-M
gateways might travel through net F for some part of the way.
The important thing is that none of the nets needs to know
exactly how the other net routes packets.  The strange thing is
that each time this happens a new internet header will be
prepended to the packet.  So in this example, while the packet is
travelling through net F, there will be two levels of internet
header on the packet.  One might prefer instead to have a
two-level source route on the packet.  The reason I don't think
that would be the right design is that it requires net M to
understand that the packet travelling through its local net is an
internet packet.  I am assuming that while a packet is travelling
through net M it has a local M-net header on it, and as far as
net M is concerned, the internet header, which follows the local
header, is just data.  So entities on M would not be smart enough
to strip off the local header and manipulate the internet header
by adding more levels of source route.

                              - 6 -

net                  I                        net
F1                   I                         F2
        .            I                 .
        .            I                 .
        .            I                 .
        .                              .
    .....                              ...
    .                                    .
    .                                    .
    A                                    B

            net S

The next variant consists of three nets, S (Slow), F1 (fast net
1), and F2 (fast net 2).  Assume a gateway between S and F1, a
gateway between F1 and F2, and a gateway between F2 and S.
Assume these are the only gateways, and the two gateways on S are
distant from each other on S.  Assume a host A on S close to the
S-F1 gateway and a host B on S close to the S-F2 gateway.  S
should route packets between A and B through net F1, then net F2,
and then to B.

S handles this case exactly as all the others.  The route through
S goes first to a node attached to the S-F1 gateway, and that
node prepends an internet header with the source route being the
F2 address of the S-F2 gateway, and the internet destination
being the S node attached to the S-F2 gateway, and gives the
packet to the S-F1 gateway.  The S-F1 gateway routes the packet
as desired.  So net S treats the S-F1 gateway as if it really
were an S-F2 gateway in the original example.


This design does not really utilize the general capabilities of
source routing.  Assuming source routing is implemented, it
provides a convenient method of implementing the catenet as an
express route through a slow net.  However, it is probably
cleaner to look at the solution in a slightly different way.

With source routing, the packet header specifies a full internet
address as an intermediate destination.  In this case, the
intermediate address is always a gateway.  Assuming gateways were
given unique IDs (as opposed to multiple internet addresses), it
would be cleaner to specify a gateway ID rather than a <net, host
ID> pair for a gateway.  An example where it is cleaner is having
three nets, S (slow), F1 (fast net #1), and F2 (fast net #2).
Suppose two gateways, each connected to all three nets.  When net

                              - 7 -

S wishes to utilize the catenet as an express route between the
gateways, S does not care whether the catenet routes the packet
over F1 or F2.  But with source routing, S would have to specify
one or the other.  If instead S could merely give the unique
gateway ID of the desired gateway, the catenet could choose over
which path to send the packet to reach the other gateway.

If the only utilization of source routing is to give a string of
gateway addresses, perhaps source routing should be, instead of a
string of internet addresses, a string of gateway IDs.  In
addition to possible cleanliness, this would save room in the


The catenet should be protected from knowledge of how local
networks route packets.  All the catenet should know is the cost
of each gateway-gateway link, not the mechanism of packet travel
on the link.

Local networks should be mostly protected from knowledge of the
internet.  A network that was not originally designed as part of
the catenet should be able to be connected to the catenet merely
by adding a gateway to that net.

The problem of utilizing faster neighbor nets can be solved in
each net in which the opportunity exists in a not very costly or
complicated manner, by adding sophistication only to the nodes
directly connected to gateways.  The rest of the local network
can be oblivious of what is going on.

                              - 8 -