IEN-122                                                     Danny Cohen
                                                                I  S  I
                                                        31 October 1979

                   On Addressing and Related Issues.
                      (or: Fuel for a Discussion)

This note is about addressing of hosts on local nets.


According to our current model a local net  (LN)  is  an  InterNetworkly
(like  "internationally")  known  network,  having an 8-bit Net-ID (NID)
assigned by the czar, registered in the official registry, etc., etc.

Furthermore, we have Axiom-A1 which states that:

          (A1): All Gateways know how to get to ALL Networks.

Here,  both "Gateway" and "Network" are spelled with capital letters  to
indicate  that  they  are part of the global InterNetwork Environment as
opposed to some trivial network or gateway, like the  hidden  ones,  for

An interesting question is: "Is every local network a Network?".

Now the answer seems to be "yes".   I beg to differ.

I cannot escape the feeling that if we hold to  this  practice  we  will
soon  find that slow nets, like the ARPANET, cannot keep up with all the
inter-Gateways traffic needed for all Gateways to  know  all  about  all
Networks,  or  at  least about their existence and how to get there.  In
addition the storage capacity to keep this information and the cycles to
process  it  may  also exceed any reasonable estimate.  In addition, the
8-bit field may turn out to be too small for the NID.

This fear is based on the experience with  the  ARPANET  routing  update
which was frequent when the net was lightly loaded,  hence least needed,
and less frequent when it was needed the most,  when the net was heavily

Also,  so far we have 31 NID's assigned (according to page 2 of IEN-117,
August 79) and this does not even include the 10 telephone lines each of
which has to be treated as a Network, according to Dave Clark; the 3 (at
least)  LN's  at  ISI,  at Lincoln, SRI, LLL, LBL, CMU and more.  In the
very near future every installation will have an  LN  (DECNETS  and  the
like) and probably so will any medium and big computer system.

                                                                  Page 2

If every PDP-10 (and bigger) computer has a  local  net  to  communicate
with its devices, file systems and the like, and if local nets have NIDs
then we may need LOTS of bits in LOTS of tables, and lots of  cycles  to
process  them,  if we ever manage to get enough bandwidth to communicate

I propose the following:

    *  Let NID='377 be an escape-code, and NID=0 mean "this-Net".

    *  Let networks which have only one connection to the IN-environment
       (e.g., one Gateway only) be defined as Ln's.  Note, net, not Net.

    *  Let Ln-addresses be 24 bit wide.  The value 24 is used  here  for
       convenience only.  Obviously it may assume any other value, as is
       needed for any particular network.

    *  Let Ln's not have  NID's!!!  and  their  gateways  considered  as
       gateways (not Gateways); and

    *  Use source-routing to get to the hosts on these Ln's.

Hence, if there is a local net at site-X,  which  is  connected  to  the
IN-environment via IMP-Y on the ARPANET, then the addresses of processes
on this net should be:

         <NID=ARPANET> <IMP=Y> <HOST/LINK=Local-gateway>
         <NID='377> <the 24-bit address of that process>

Note that this is a 64-bit address !!

In comparison, now we have only 32-bit addresses, such as:

         <NID=X> <the 24-bit address of that process>

However,  for sites on Networks with only  16-bit addressing  (e.g., the
ARPANet and WBnet) it is  most advantegous to have local nets with 8-bit
addressing  only,  since  this allows packing of the entire address in a
single IP-address without the need for source-routing.

For example,  the IP-address of host-123   on  the  local-net  which  is
connected  to  the INE via the gateway which is on interface-3 of IMP-22
could be:

          <NID=ARPANet> <IMP=22> <HOST=3> <Ln=123>

The main idea is that if all the communication to X has to pass  through
"g"  then  there  is  absolutely  no point in propagating to the outside
world any information about the  structure  of  the  environment  inside
(i.e., "inwards" or "beyond") of "g".

                                                                  Page 3

If CMU, for example, has 5 local nets, all of which are connected to the
world  via  the  same IMP, then there is absolutely no point in treating
them as Networks with NID's, and polluting the  world  with  information
about  them, how to get to them etc., since the only way to get there is
to get first to the ARPANET and then to the CMU-IMP.

Proliferation of information which is not needed may be very costly,  in
storage, in cycles, and in bandwidth.

I don't believe that the fact that  someone  adds  a  local  network  in
Timbaktoo has to be propagated to all the Gateways.

In summary: Let's adopt the policy of  non-proliferation  of  NID's  and
let's use source routing.


The following three theorems have been proven experimentally and require
no more discussion:

         (T1): Any fixed size field will be found to be too small.

         (T2): Any fixed number of fields will be found to be too small.

         (T3): You can fool T1, or T2, but not both.

It is important to understand that T1 is not the only  reason  to  avoid
Networks  proliferation.   By having a very-very long NID field (say 100
bits) T1 may be fooled for some time.


Addressing hosts and processes which have several  physical  connections
with the INE (the InterNetwork Environment, or "Catenet") is a messy and
nasty problem.

This problem may be stated as:  "What is the  address  of  X  if  it  is
connected with the INE both as HOST-m on NET-i and as HOST-n on NET-j?".

If X is a network,  say NET-k,  then there are Gateways in between,  and
according  to  Axiom-A1 there  is  no problem in addressing it as NET-k,
since all the Gateways anywhere know how to get to it.

But if X is a host,  or any other  non-network  type  of  process,  then
there is a problem with its dual-homing (or better: multiple-homing).

If the choice between the multiple  addresses  is left  to  any  process
which  tries  to  communicate  with  X  then  we  have to admit that our
communication system is  not  capable  of  solving  ALL  the  addressing
issues,  and  push this problem "up" into hosts.  It goes without saying
that this does not mean that people (like senders of text messages) have
to remember these multiple addresses, and that programs and tables could
be used for it.

                                                                  Page 4

Here is where Postulate-P1 is defined.

          (P1): Every process should have only one IN-address.

This  is  possible  to  achieve  by  simply  defining  any  process,  or
collection of processes, as a Network.  For example, if hosts (which are
not Gateways) and local networks which have more than one connection  to
the  INE,  are  defined as Networks, with their own NID's, then Axiom-A1
guarantees that Postulate-P1 is always true.

Note how  nicely  this  alleviates  the  problem  of  handling  multiple
addressing,  source routing, the mess required to handle variable length
addresses, and more.


After establishing both Axiom-A1 and Postulate-P1 the  addressing  issue
is  totally  under  control.   There  may  be  a  slight difficulty with
handling the number of Networks which are required, but T1 can always be
fooled by assigning a very long field for the NID and by  assuming  that
the bandwidth, the storage and  the  cycles  are  avilable  at  all  the
Gateways to handle all the information about ALL these Networks.

Next, consider a process P which is  inside  the  Gateway  G(i,j)  which
connects NET-i with NET-j.  Such a process may deal with access control,
checks and balance, routing, or any of many other possible issues.

What is the address of this process?

G(i,j) is both HOST-m on NET-i and HOST-n on NET-j, just like X above.

Since our Postulate-P1 does not allow multiple homing, we cannot let the
address of this process be

            either  <NET=i><HOST=m><P>  or  <NET=j><HOST=m><P>

Hence, we must define the inside the Gateway to be another Network.

The new Network is obviously connected both to NET-i and to NET-j.   But
how?  Simply, as shown in <**> below:

          <**> Via  two  Gateways,  each  of  which is itself
               a Network with an InterNetworkly known NID.

               How is each of  these  Networks  connected  to
               its own neighboring Networks? Simply, as shown
               in <**> above.

Well, this does not seem to jibe perfectly with  the  notion  of  finite
length NID-fields...   By the way,  I suspect that you did not trace the
above explanation to its logical termination.  Did you?

There are several tacks one may take here to  mend  this  situation.   I
dare say that un-adopting Postulate-P1 is one of the better ones.

                                                                  Page 5

Let's do it, hence we accept  that  the  multiple-homing  issue  is  not
necessarily always solved completely by the Gateways.

There is a lot to be said about multiple-addressing but this is left for
yet another note.

Once this heresy is introduced -- even Local Networks with more than one
connection to INE may be treated as Ln's without NID's !!


Local networks, regardless of the number of connections which they  have
to the INE, should NOT be treated as Networks with NID's.


The network forefathers demonstrated remarkable foresight by  allocating
an  8-bit  field  for  HOSTs  on  the ARPANet.  The notions of that many
hosts, that many IMPs and several computers connected to a single IMP at
one location were ahead of their time.

Since then the scenario developed in several directions.  First,  it  is
not  THE network any more.  Many networks, of different technologies are
in existence.  Second, on many occasions there is more than one computer
at the same location.

The concept of HOST is gradually and  implicitly  replaced  by  the  new
concept of SITE.  Here "site" is some combination of an organization and
a certain location, like "ISI", "MIT" or "BBN", but not  like  "DoD"  or

The association of processes, people, files, devices is not per-host, as
it  used to be, but more and more per-site.  This is especially apparent
when text messages ("mail") are discussed.  It is typically expressed by
statements  like:  "I  know that he is at MIT, but have no idea on which
machine there, and don't even care to know!".

I suspect  (but  am  not  quite  sure)  that  the  similarities  between
local-networking  and  Networking  (a  la ARPANet, WBCNet and PRNet) are
deeper than just a lucky coincidence, but less than a  deep  fundamental

Treating local networks with all the "glory" which  is  associated  with
"real"  (or  "global")  networks -- may be misleading and may cause more
artifacts than what we bargain for.

                                        Let's think about it......

                                                                  Page 6


Without suggesting anything to the INE,  following are some examples  of
the handling of multiple-addressing in Telephonia.

My addresses, at ISI,  are 1-213-822-1511 thru 1-213-822-1519 (plus some
non-contigious numbers).   However,  no one  outside  of ISI has to know
these numbers, since all the communication which is addressed to the one
of them is automatically re-routed to the rest, if so needed.

I have one address at ISI, and another at home.   The re-routing between
them  takes  place  outside the "pure" communication system,  unless its
definition is augmented to include the human operators, secretaries, and
the like.

If I am not around  someone probably can provide the sought information.
This multi-address (of the information!) is the choice  of  whom-to-ask.
It is very difficult to stretch the definition of  communication  sytems
to include that.

These examples show that in Telephonia  the multiple-addressing issue is
handled at several levels. Maybe the same is true for internetting, too.