IEN-122 Danny Cohen
I S I
31 October 1979
Halloween
On Addressing and Related Issues.
(or: Fuel for a Discussion)
---------------------------------
This note is about addressing of hosts on local nets.
THE AXIOM-A1
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
example.
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
loaded.
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
them.
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 THEOREMS T1, T2 and T3
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.
THE POSTULATE-P1
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.
THE INNER STRUCTURE OF GATEWAYS
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 !!
CONCLUSION
Local networks, regardless of the number of connections which they have
to the INE, should NOT be treated as Networks with NID's.
AFTERTHOUGHTS
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
"Cambridge".
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
phenomena.
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
A COMMENT ABOUT MULTIPLE-ADDRESSING.
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.