IEN-183






















                       Logical Addressing

                  Bolt Beranek and Newman Inc.

                          Eric C. Rosen

                            May 1981



























IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



                        Table of Contents




1   Introduction.......................................... 1
2   Translating Logical to Physical Addresses............. 7
2.1   Translation Locus................................... 7
2.2   Translation Methodology............................ 10
3   Organizing the Translation Tables.................... 17
4   Initializing the Translation Tables.................. 23
5   Updating the Translation Tables...................... 30
6   Operational and Implementation Considerations........ 49
7   Network Access Protocol Implications................. 53



































                               -i-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



1  Introduction


        This paper is a slightly modified extract from BBN Report

No.  4473,  "ARPANET Routing Algorithm Improvement, Volume 1," by

Rosen, et al.  It proposes  a  scheme  for  implementing  logical

addressing  in  the  ARPANET.  However, the issues dealt with are

quite similar to the issues raised by the problem of implementing

logical  addressing in the Catenet (several IENs are currently in

preparation in which  we  argued  for  this  assertion  at  great

length.)   It is hoped, therefore, that the discussion will be of

interest to internet workers as well.


        In the current ARPANET, in order for a user  to  transmit

data  to  a particular host, he must know the PHYSICAL ADDRESS of

the host.  That is, he must know which node the host is connected

to,  and  he must know which port on that node is used to connect

that host.  Furthermore, this is the ONLY means  a  user  has  of

identifying  a host.  In many respects, the physical address of a

host computer can be compared to  a  person's  telephone  number.

The  problems  inherent  to  physical  addressing  in  a computer

network are similar to those  we  would  experience  in  ordinary

interpersonal  communication  if a person's telephone number were

the only means we had of identifying him.  Dialing  a  particular

telephone  number allows us to establish a communications channel

to a particular location.  This works well as long as the  person



                               -1-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



with  whom  we  wish  to  communicate  remains at that particular

location.  When the person  changes  his  location,  though,  the

phone  number becomes virtually useless, and the physical address

of a host computer becomes  equally  useless  if  the  computer's

location   within   the  network  changes.   In  the  context  of

interpersonal communication, this gives rise to the calling of  a

"wrong  number".  In the context of computer networking, this can

give rise to the more serious phenomenon of mis-delivery of data.

Furthermore,  when  a computer changes location within a network,

it is quite difficult to carry out  a  procedure  which  reliably

informs  all  users  of  its  new  physical  address.   There are

difficulties in identifying all users, difficulties in contacting

them  once  they are identified, difficulties in making sure that

the information receives  the  proper  level  of  attention  once

contact  is  made, and if all these difficulties are resolved, it

is still difficult to make  the  necessary  changes  to  computer

software  so  that  the new physical address is actually put into

use.


        There  is  another  sort  of  problem  would   occur   in

interpersonal  communication  if  our only means of identifying a

person were by his phone number.  It is very common  for  several

people  to share a phone number.  If we identified people only by

phone numbers, we could not distinguish among several  people  at




                               -2-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



the same location.  This problem arises in computer networking if

several computers share the  same  port.   There  are,  in  fact,

several  reasons  why  it  may  be  desirable  to  allow  several

computers to share the same port.  One reson is simply  the  need

to  get  by  with a less than optimal amount of equipment, either

due to economics or to shortage.  If some administration has  two

computers,  each of which needs to be on the network only part of

the day, but which do not need to be on the network at  the  same

time,  sharing  a  single  port  may  be  the best solution.  The

increasing cost-effectiveness of such devices as  port  expanders

and  local  networks  may also make it more and more desirable to

have several computers sharing the same port.  A related  problem

arises  if  one thinks of a network of computers as consisting of

"logical hosts," rather than physical hosts.  Whereas a  physical

host  would  be  a  particular  piece of hardware, a logical host

would be the instantiation of  a  particular  function.   Thus  a

physical  host  which supported (for example) time-sharing during

the day and batch processing at night could be  regarded  as  two

logical  hosts  which share the port on a time-division basis.  A

related application is the situation in which  the  functionality

of  two  (small)  physical  hosts  is  combined into one (larger)

physical host, which then can be thought of as consisting of  two

logical  hosts.   It could be very useful to have the flexibility

to move logical hosts freely around the network, perhaps changing



                               -3-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



the correspondence between particular logical and physical hosts,

without having to inform all users of the new physical addresses.


        Of  course,  the  reasons  these  problems  in   computer

networking  are  more  serious  than  the  analogous  problems in

interpersonal communication is that telephone numbers are not the

only,  or  even  the  primary, means we have of identifying other

people.  We can identify other people by NAME, and  this  greatly

facilitates  our ability to get in touch with people even as they

change location.  It also enables us to specify the individual we

wish  to  talk  to, in the situation where several people share a

telephone.  Similar advantages would accrue if we could  identify

computers  by  name rather than by physical address.  In order to

get our data to the appropriate computer,  its  physical  address

would  still  have to be determined.  But the user should be able

to tell the network the name of the appropriate computer (perhaps

a  logical  rather  than  a  physical  host), and let the network

itself map the name to  its  physical  address.   For  speed  and

reliability,   the   mapping   function  should  be  accomplished

automatically (i.e., by software) with  minimal  need  for  human

intervention.   Schemes  to  accomplish this are known as LOGICAL

ADDRESSING schemes,  and  the  name  of  a  computer  is  usually

referred  to  as  its  "logical address" (though in fact, logical

addresses are not addresses at all, since they, like  names,  are




                               -4-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



independent of location).


        A  good  logical  addressing  scheme  should  allow  more

flexibility  than may be already apparent.  We have spoken of the

need to be able  to  identify  a  computer  in  a  way  which  is

independent  of  location,  and  of  the  need  to be able to map

several distinct names onto a single physical address.  There  is

also a need to be able to map a single name onto several physical

addresses.   To  carry  out  the   analogy   with   interpersonal

communication,  this  would correspond to the case where a single

person has several  telephones,  with  different  phone  numbers,

possibly  at  different  locations.  This adds reliability to the

communications process, since if the person cannot be reached  at

one  phone  number,  perhaps he can be reached at another.  If he

can be reached at each of the numbers, he now can handle  several

conversations  simultaneously, i.e., he has increased throughput.

In computer networking, this sort  of  application  is  known  as

"multi-homing."  In  multi-homing,  a single computer connects to

the  network  through  several   ports,   usually   (though   not

necessarily) at several different network nodes.  This allows the

computer to remain on the network even though one of  its  access

lines,   ports,   or   home   nodes   fails,  thereby  increasing

reliability.  In  the  case  where  it  is  more  economical  (or

otherwise  more  practical)  to  obtain  several low-speed access




                               -5-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



lines than to obtain a single high speed line,  multi-homing  can

also  allow  a given host computer to obtain higher throughput at

less cost.


        Another sort of application which requires a single  name

to  map  into  several  physical  addresses  can be compared to a

business which has several branch offices, each with a  different

phone number, but whose customers do not care which branch office

they reach.  This can be useful in certain sorts of  internetting

applications.   Suppose,  for example, that an ARPANET user wants

to send a packet to SATNET, but that there  are  several  equally

good gateways between the two networks.  It may be convenient for

the user to simply specify a name  like  "Gateway-to-SATNET"  and

let  the  network  choose  which  of  the several gateways (i.e.,

physical  addresses)  to  use.   A  related  sort   of   possible

application  has  to  do with distributed processing and resource

sharing.  If some particular resource  is  available  at  any  of

several  locations  around  the  network,  it may be desirable to

allow the user to specify the resource by  name,  and  allow  the

network  to  map  that name onto some particular physical address

according to criteria that the user need not be aware of.   (Such

a  service  was  formerly offered by the ARPANET TIPs.  By typing

@N, a user would be connected to a  "Resource-Sharing  Executive"

on  one  of  several  network  TENEX systems.  The user, however,




                               -6-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



would have no way of knowing which system he was actually on.)




2  Translating Logical to Physical Addresses


2.1  Translation Locus


        It should be obvious that any implementation  of  logical

addressing  would  require  the network to maintain a translation

table.  The user would specify a logical address, and the network

would  use  this logical address as an index into the translation

table in order  to  obtain  the  physical  address  (or  list  of

physical  addresses)  to which it corresponds.  The network would

use the physical address internally to determine the  routing  of

user  messages.   The  need to maintain a translation table gives

rise to a multitude of design issues.  The  first  question  that

needs  to  be  answered is, where should the translation table be

located?   Should  every  node  maintain  a  copy  of  the  whole

translation  table,  or  should there be just a few copies of the

table scattered around the network in  strategic  locations?   If

there  are  only  a few copies scattered around the network, then

nodes which do not contain the tables would  have  to  query  the

nodes that do in order to perform the translation function.  This

is less efficient (both in terms of overhead and  response  time)

than   placing  the  table  in  every  node.   Considerations  of




                               -7-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



reliability and survivability also favor  placing  the  table  in

every node.  This eliminates the possibility of finding that, due

to network partition, all copies of  the  translation  table  are

inaccessible.   It eliminates the need to have some nodes serving

as hot or cold standby for the nodes which do  have  the  tables.

This  is  an  important  advantage, since the protocols needed to

implement "standby" tend to  be  slow  and  cumbersome,  or  else

unreliable.   Furthermore, if all nodes maintain identical copies

of the translation table, there is no  need  to  go  through  any

special  initialization  procedure  for creating the table when a

node first comes up.  Typically, a node which is just  coming  up

has  been reloaded from a neighboring node.  If all nodes have an

identical copy of the table, a node coming up can simply have its

table  reloaded  from its neighbor, i.e., can copy its neighbor's

table.  (Under certain unusual conditions this may give rise to a

race  condition, but as we shall see later, it is a race that can

be easily remedied and one that will  not  have  any  bad  effect

other than to slow the reload process.)


        There is, however, a possible disadvantage to having  the

tables  in  every  node.   That is simply the need to have enough

memory in every node to hold the  table.   In  certain  networks,

particularly  commercial ones, the network nodes may be of widely

varying sizes and capabilities, and the smaller  nodes  just  may




                               -8-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



not  be  able  to  hold  the  complete  translation  table.  Such

networks  would  necessarily  have   a   hierarchical   structure

(probably  with  some  form  of hierarchical routing), and a node

would not be able to hold a translation table unless it  were  at

or above a certain level in the hierarchy.


     Strictly speaking, only those nodes which will ever need  to

translate  a  logical  address to a physical address will need to

have a copy of the translation table.  Whether that is all  nodes

or  only  a  subset  of  the  nodes  depends  on  the translation

methodology that we adopt.  We have a  choice  between  requiring

translation  to  be done only at the source node, or requiring it

to be done also at tandem nodes.  In the former  case,  when  the

user  presents  some  data  to  the  network  and  specifies  its

destination with a logical address, the source node looks in  the

translation table, gets the physical address, places the physical

address in the packet header, and sends the packet  on  its  way.

Tandem  nodes  do  not look at the destination logical address at

all, but only at the physical address.  In the other  case,  each

tandem   node   looks  at  the  logical  address,  does  its  own

translation to physical address, and routes the  packet  on  that

basis.   The  packet  header  would  not even have to contain the

physical address.  If we do source  translation  only,  the  only

nodes  which  need  to  contain translation tables are those that




                               -9-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



connect to hosts which use logical addressing.   If  these  nodes

are  only  a  subset of all the nodes, then it may be feasible to

configure  these  nodes  with  more  memory  than   the   others.

Therefore,  we  must  look  at  the advantages of source node vs.

tandem node translation.




2.2  Translation Methodology


        Clearly, in the case where a logical address  maps  to  a

unique  physical  address, source node translation is superior to

tandem node translation.  As long as there is only  one  possible

physical address for that logical address, all nodes will produce

exactly  the  same  mapping.   There  is  thus  no  advantage  to

performing  the  mapping several times, and the scheme which does

it only once is more efficient.  There is, however, one exception

to  this.   When  the  translation  tables need to be updated, we

cannot expect all copies to  be  updated  simultaneously.   There

will  necessarily  be some short interval of time when not all of

the copies of the table around the  network  are  identical,  and

during this interval, tandem node translation may yield different

results than source  node  translation.   It  will  certainly  be

necessary to design some mechanism to deal with this problem, and

we shall propose one shortly for the ARPANET environment.  Tandem

node  translation,  however,  is  not  the right solution to this



                              -10-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



problem.  During the transient period, some copies of  the  table

will be right (up to date) and some wrong (out of date).  But the

copies at the tandem nodes will be no more  likely  to  be  right

than  the  copy  at  the  source node, so tandem node translation

would be as likely to amplify the problem as to reduce  it.   The

solution to this problem lies elsewhere.


        In the case where  a  logical  address  maps  to  several

physical  addresses (multi-homing), tandem node translation might

well  give  different  results  than  source  node   translation.

However,  we  must  now  distinguish  between virtual circuit and

datagram  traffic.   If  virtual  circuit  traffic  is  logically

addressed,  all translation must be performed at the source node.

In  fact,  the  translation  must  be  performed  only  once,  at

connection  set-up time.  This is the only way to ensure that all

traffic on a given circuit is sent to the same physical  address,

which  in  turn  is  the  only  way to provide the sequencing and

duplicate detection that is the RAISON D'ETRE of virtual  circuit

traffic.    (Additional   issues  having  to  do  with  logically

addressed virtual circuit traffic will be discussed later.)  Thus

the only possible advantage of tandem node translation would have

to do with datagram traffic which is destined  to  a  multi-homed

logical  address.  To understand the differences, though, between

source node and tandem node translation, we  must  first  discuss




                              -11-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



the  criteria  which a node uses to pick one physical address out

of the several that are available.  Even though a host is  multi-

homed,  any  particular  packet  for it can go to only one of its

physical addresses; some criterion for choosing the proper one in

each   particular  case  must  therefore  be  available.  Several

possible criteria come readily to mind:


        a)   When   there   are   several   physical    addresses

corresponding  to a given logical address, it may be desirable to

send packets to the physical address  which  is  closest  to  the

source  node, according to some metric of distance.  For example,

if we are interested in minimizing delay, we may want  to  choose

the physical address to which the delay from the source is least.

If SPF routing is used, this information  is  readily  available.

If  we  are interested in minimizing the use of network resources

by a particular packet  (i.e.,  in  maximizing  throughput  while

still  using  only  a  single  path),  we  may want to choose the

physical address which is the  least  number  of  hops  from  the

source.   (For  these  purposes, ties can be broken arbitrarily.)

Again, this information can be made readily available by the  SPF

routing  algorithm (although it is not readily available from the

ARPANET's particular implementation of that  algorithm,  since  a

table  of  hop-counts is not saved).  If either of these criteria

is used, tandem node  translation  can  result  in  better  route




                              -12-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



selection for the logically addressed datagram.  If delay changes

or topology changes take place while a packet is in  transit,  it

may  happen  that  the  "closest" physical address to some tandem

node is different from the physical address that was  closest  to

the source node when the packet first entered the network.  It is

easy to prove that, if SPF routing is used, this cannot result in

looping,  except as a transient phenomenon while a routing update

is traversing the network.  That is no  particular  disadvantage,

since  a  packet may be subject to that sort of transient looping

even when its  destination  physical  address  does  not  change.

However,  it  is  not clear that tandem node translation provides

much of an advantage  either,  especially  when  one  takes  into

account  the  additional  overhead of doing the re-translation at

each  tandem  node.   Doing  translation  at  tandem  nodes  will

necessarily  increase  the  nodal  delay  and  decrease the nodal

throughput.  These negative effects  may  outweigh  the  positive

effects  of  improved  route  selection for those relatively rare

cases in which delay or topology changes  significantly  while  a

packet  is  in  transit.   We  must  remember  that although real

improvements in route selection would only  occur  rarely  (since

delay and topology changes are very infrequent when compared with

average network transit times), re-translation would have  to  be

done  for EVERY logically addressed datagram.  Unfortunately, all

these effects are extremely difficult to quantify with any degree



                              -13-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



of  confidence.   Our  (somewhat  intuitive)  conclusion is that,

under the selection criterion of choosing  the  closest  physical

address,   tandem   node  translation  offers  at  best  a  small

improvement over source node translation, and at worst  a  severe

degradation.


        b) It is possible that some multi-homed hosts  will  want

to  establish an inherent ordering to their ports.  That is, they

may prefer to receive all their traffic on port  A,  unless  that

port  is inaccessible to the source of the traffic, in which case

they prefer to receive all traffic on port B, unless that port is

inaccessible  to  the  source  of the traffic, in which case they

prefer to receive all traffic on  port  C,  etc.   This  sort  of

strategy  may  be appropriate if certain of the host access lines

are charged according to a volume-based tariff, while others  are

not.   It  may also be appropriate if certain of the access lines

can be used more efficiently (i.e., can  be  serviced  with  less

host  CPU  bandwidth)  than  others.  (An example might be a host

which can access the ARPANET through an 1822 line and a VDH line.

It  might  be  desirable to avoid the VDH line, unless absolutely

necessary, since VDH lines tend to be used less efficiently.)  In

either case, the idea would be to reduce cost by favoring certain

ports over others, using  the  more  expensive  ports  only  when

needed  for purposes of reliability or availability.  Thus we may




                              -14-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



want  the  logical  addressing  scheme  to  support  an  inherent

ordering among the several physical addresses which correspond to

a given logical address.  With this scheme, there is no advantage

to  doing  tandem  node  translation.   There  will  be  only one

ordering for the set of physical  addresses  corresponding  to  a

logical  address,  so  tandem  nodes  should always pick the same

physical address as the source node  picked,  and  re-translation

would  simply  be  a  waste  of  resources.   There  are only two

exceptions to this.  The  first  exception  would  arise  in  the

situation   where   a   particular   physical   address   becomes

inaccessible as a packet routed to that address is traversing the

network.   However, since this can happen no matter what criteria

are used for choosing among the physical addresses, we put it off

for later consideration.  The second exception would arise if the

translation tables were  being  updated  while  a  packet  is  in

transit.   Clearly, some procedure to deal with this case must be

devised, since the update which is taking  place  may  invalidate

the  translation  which  was  done  at  the  source.  Tandem node

translation is not the proper solution, however, since  there  is

in  general no reason to believe that the tandem node is more up-

to-date than the source node.  We will return to this issue  when

we discuss the table updating procedures.


        c) Certain multi-homed hosts may have  a  preference  for




                              -15-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



receiving certain kinds of traffic over particular ports.  Thus a

dual-homed host may consider one of its ports more  suitable  for

receiving  batch traffic, and another more suitable for receiving

interactive traffic (perhaps the first port offers a higher speed

but  a  longer  delay  than  the second).  However, if one of the

ports is inaccessible from a particular source  node,  that  node

would send all its traffic (both kinds) to the port which remains

accessible.  With this criterion, we see once again  that  tandem

node translation offers no benefits, since, barring the case of a

port becoming inaccessible while a  packet  is  in  transit,  all

tandem nodes would select the same physical address as the source

node.


        d) Some multi-homed hosts may wish to try to  keep  their

several access lines as equally loaded as possible.  One possible

way to do this would be to establish an inherent ordering to  the

ports  (as  in  b, above), but to make the ordering different for

different source nodes (or hosts).  Clearly, this scheme requires

source node translation; tandem node translation would only serve

to defeat it.  Another possible way to achieve some sort of  load

leveling  would  be  for  each source node to send traffic to the

various physical addresses on a round-robin basis.  This would be

a  very crude form of control, but might work reasonably well for

particular traffic patterns.  This scheme  also  requires  source




                              -16-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



node   translation.   In  fact,  tandem  node  translation  could

actually cause packets to loop endlessly.


        We see then that none of the suggested selection criteria

give  any  very  large  advantage to tandem node translation, and

some of the criteria are actually in conflict with re-translation

at  tandem nodes.  Thus it is not necessary for all notes to hold

the translation tables; only those nodes connected to hosts which

use  logical  addressing  need hold the tables.  Of course, it is

still possible that the tables will be too large to  be  held  in

any  one  node,  in  which  case we would have to use distributed

database techniques to split the tables among several nodes.   We

will not consider that further here, but we will consider it in a

future IEN.




3  Organizing the Translation Tables


        Another issue having to do with the translation tables is

the  way  in which the tables should be organized.  Clearly we do

not want the  entries  in  the  table  to  be  in  random  order,

necessitating  a  lengthy  linear  search each time a translation

must be done.  Basically, there are two possible  ways  to  order

the  table.   We  can sort the table by logical address, and do a

binary search of the table whenever we need to do  a  logical-to-




                              -17-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



physical address translation.  This is a rather efficient form of

searching, but it causes inefficiencies when table  entries  have

to be inserted or deleted, since that would require a potentially

time-consuming expansion or compression of the table.  There are,

however,    ways   of   reducing   the   overhead   involved   in

insertions/deletions.  Deletions could be made "logically", i.e.,

by  marking  an entry deleted, rather than physically compressing

the table.  New entries could be inserted into an overflow  area,

which  itself  would  be  searched linearly whenever a particular

logical address could not be found in  the  main  table.   Actual

compression/expansion  of  the main table would be done only when

the overflow area filled.   Note,  however,  that  this  sort  of

strategy  would  necessarily complicate the search algorithm, and

this might  actually  do  more  harm  than  good,  especially  if

insertions  and  deletions  are rare events.  We shall see later,

when  we  discuss  the  conditions  under  which  insertions  and

deletions  are  required,  that these are indeed rare events.  We

conclude  tentatively  that,  if  a  sorted  table  with   binary

searching  is  used,  the use of an overflow area is probably not

necessary.


        The other possibility for organizing the table is to  use

hashing.   A  good  hashing  algorithm (i.e., one which minimizes

collisions) provides very efficient insertions and very efficient




                              -18-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



searches.   Deletions  are  not quite so efficient, but are still

more efficient, in general, than the table  compression  required

if  binary  searching  is  used.   However,  hashing  has certain

inherent problems which may make it less  suitable.   Choosing  a

hashing   algorithm   which  both  minimizes  collisions  and  is

computationally efficient is not a simple matter.   One  must  be

sure  that  the time needed to perform the hashing is really less

than the average time needed to find an entry in a  sorted  table

by  means of binary searching; otherwise, the efficiency is lost.

Furthermore, the number of collisions generated by  a  particular

hashing  algorithm  will  depend  on exactly which set of logical

addresses are in use.  The set of logical addresses in use during

a network's lifetime will be a slowly changing set, and a hashing

algorithm  which  is  excellent  at  one  time  may   give   poor

performance  at  another.  Hashing algorithms are also subject to

undetected programming bugs in  a  way  in  which  binary  search

algorithms  are  not.   A  bug  which  is inserted into a hashing

algorithm, which, for example, causes all entries  to  hash  into

the same bucket, might go undetected for years, although it would

cause a  significant  performance  degradation  by  reducing  the

efficiency  of the hashing technique to that of linear searching.

A bug in the binary search  algorithm,  however,  would  be  more

likely to come to someone's attention.  Its probable result would

not be performance  degradation,  but  rather,  failure  to  find



                              -19-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



certain  entries.   This would cause inability to deliver traffic

to certain logical addresses, and this would  certainly  come  to

the  users'  attention  very  quickly.  These qualitative reasons

would seem to indicate that binary  searching  is  preferable  to

hashing.   It  would  also  be  useful  to  do  some quantitative

analysis; that may be done at a later stage of our research.


        Someone may wonder why we  have  not  considered  a  much

simpler  method  of  organizing  the  tables.  Logical addresses,

after all, are just numbers (or at  least  are  representable  as

numbers).   If  the  set of logical addresses in use at any given

time is a contiguous set of numbers, then the  addresses  can  be

used  as  indexes directly into a translation table, with no need

either for hashing or for sorting.  The problem, of course,  lies

in  the  requirement  that  the  set  of logical addresses form a

contiguous  set  of  numbers.    Assigning   numbers   to   hosts

contiguously  may not be a problem in itself, but it does cause a

problem as soon as some host is removed from  the  network.   Its

number  (or  numbers, if it has several logical addresses) cannot

be left unused, or the size of the  translation  table  would  be

determined  not  by  the number of logical addresses currently in

use in the network, but rather by the number of logical addresses

that  have ever been in use in the network, a number which may be

much larger, and which in fact has  no  bound.   Yet  it  is  not




                              -20-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



acceptable simply to reassign the same logical addresses as hosts

enter or leave the network.  We all  have  some  experience  with

moving  to  a  new  location, getting a new telephone number, and

finding ourselves  frequently  getting  calls  intended  for  the

person  who  previously  had that number.  Such calls may persist

for years, especially if the  number  previously  belonged  to  a

business.   Receiving  phone  calls  or mail intended for someone

else who happens to have the  same  name  as  we  do  is  also  a

familiar  occurrence.   We  would  expect  analogous  problems if

logical  addresses  are  reassigned  (at  least,  if   they   are

reassigned  without some very long waiting period), especially if

the logical address previously belonged to a large service  host.

When  a  user  tries  to address a host which is no longer on the

network, he should receive  some  indication  of  that  fact;  he

should  NOT  have his data mis-delivered to some other host which

has been assigned the same name.  Thus it is preferable to have a

logical  addressing  scheme  which does not depend on the logical

addresses forming a contiguous set of numbers.


        Whatever means of organizing the table is chosen, it  may

still be useful to maintain a smaller table for use as a "cache."

The  cache  would  contain  the  n  most  recently  used  logical

addresses (where n is some small number), together with a pointer

to the absolute location of that logical  address  entry  in  the




                              -21-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



main  translation table.  When it is necessary to do translation,

the  cache  would  be  searched  before  the  main  table.    The

assumption  is  that  once  one  packet  for a particular logical

address is received from a source host, many  more  will  follow.

Thus  it  pays to optimize the search for that particular logical

address.  Choosing the optimum size for the cache, and the  means

of  searching  it  (linear  or  binary) are issues left for later

resolution.  These issues must be dealt with carefully,  however;

one would not want to find that searching the cache takes as long

or longer than searching the main table.  It is worth emphasizing

that the cache should contain a pointer into the main translation

table, rather than a copy  of  the  list  of  physical  addresses

associated  with  a  particular logical address.  For multi-homed

logical addresses, this is more efficient, since it involves less

copying.   Also,  if  there  are  variables  associated  with the

physical addresses, this enables unique copies of  the  variables

to  be  kept  in  the  main  table.   (Suppose, for example, that

packets are to be sent on a  round-robin  basis  to  the  several

physical   addresses   corresponding  to  a  multi-homed  logical

address.  This requires a variable to  be  associated  with  each

physical  address,  indicating  whether that physical address was

the last one to be sent data.  This variable must be kept in  the

main  table, not the cache, since one cannot rely on a particular

logical address always being present in the cache.)  This  means,



                              -22-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



of  course,  that  the  cache  must be cleared whenever there are

insertions or deletions into the main translation table, but that

should  not  be  very  expensive  as  long as such insertions and

deletions are relatively rare.




4  Initializing the Translation Tables


        We turn now to the issue of  how  the  translation  table

entries  are  to  be  set  up  in the first place.  That is, what

procedure is to  be  used  for  establishing  that  a  particular

logical  address  is  to  map  to  a  particular  set of physical

addresses.  One possibility for the ARPANET,  of  course,  is  to

have all the mappings set up by the Network Control Center (NCC).

This is quite reasonable in certain cases.  If  some  user  wants

his computer to be addressable by some new logical address (i.e.,

by a logical address not previously in use), it  makes  sense  to

have  him  contact  the  NCC  directly.   If  the user has proper

authorization, the NCC can then take action to  set  up  the  new

entry  in  all the translation tables.  A similar procedure would

also be appropriate if some logical  address  is  to  be  totally

removed  from  the translation tables (i.e., that logical address

will no longer be in use in that network).  This procedure  would

also  be appropriate when a particular computer is moved from one

location to another, necessitating a change  in  its  logical-to-



                              -23-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



physical  mapping,  or  if  the functionality of two computers is

combined into one, so that two logical addresses  which  formerly

mapped  to  distinct  physical  addresses  now  map  to  the same

physical address.  What all these cases have in  common  is  that

they  are  relatively infrequent (i.e., occurring on the order of

days, rather than on the order  of  minutes),  and  they  require

considerable    advance    planning.     The   first   of   these

characteristics ensures that NCC personnel will  not  be  swamped

with   translation   table   changes.    The   second   of  these

characteristics makes it feasible to coordinate such  changes  in

advance  with  the NCC.  Unfortunately, not all translation table

changes  have  these  characteristics.   For  example,  we   have

suggested that a good logical addressing scheme should facilitate

port-sharing.  That is, some user might want to unplug one of his

computers  from  the  network  and  use  that  port  for  another

computer.  He should be able to  do  this  without  much  advance

planning,  and  without  having to explicitly coordinate with the

NCC.  As soon as the change is  made,  users  who  are  logically

addressing the first computer should be told that it is no longer

on the network; only the logical address of the  second  computer

should  map to this port.  If this change in the mapping does not

take place immediately, the result can be mis-delivery  of  data,

as  packets  which  are logically addressed to the first computer

get mis-delivered to the second.  A similar situation  arises  if



                              -24-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



some  computer consists of several "logical hosts." Logical hosts

may come and go quite frequently, with  no  advance  planning  at

all.   The  logical  addressing  system  should  be able to adapt

immediately  to  such  changes,  without  any  need   for   human

intervention.   A related situation arises in the case of logical

addresses which  are  multi-homed.   We  have  already  discussed

various possible criteria for choosing among the several physical

addresses associated with a single multi-homed  logical  address.

But  before applying these criteria, any physical addresses which

are "inaccessible" from the source node  must  be  excluded.   If

some  host has two access lines into the network, and one of them

is inaccessible from a particular source node, then  all  traffic

from  that  source  node  should  be directed to the other access

line.  Indeed, this is one of  the  most  important  purposes  of

multi-homing.  This implies that a source node must have some way

of knowing that a  certain  physical  address  is  not  currently

accessible.   There  are  basically  two classes of reasons why a

given physical address might be inaccessible from a source  node.

The  first  is  that there is no path from the source node to the

destination node (either because the network is  partitioned,  or

because  the  destination  node  is  down).   This information is

readily available from the routing tables, and need not  be  kept

in  the  translation  tables.   It  is simple enough to check the

routing  tables  when  choosing  one  from  a  set  of   physical



                              -25-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



addresses.   The  other  reason  why  a physical address might be

inaccessible is that the port itself, or the access line from the

port  to  the  host,  has  failed.   Functionally,  this  is  the

equivalent of unplugging the host from the port.  It  may  happen

quite   frequently,   however,  and  certainly  with  no  advance

planning.  As  long  as  the  node  itself  is  up,  the  routing

algorithm  will give no indication that the port is inaccessible;

this information must somehow get into  the  translation  tables.

Clearly, we do not want to depend on human intervention to ensure

that this sort of change gets made  in  the  translation  tables.

What  is  needed  here  is  a  quick and reliable means of making

changes  in  the  translation  tables,  not  the  cumbersome  and

unreliable method of contacting the NCC.  The same problem arises

when the inaccessible port becomes accessible again.   One  wants

to  be  able  to begin using this port again as soon as possible,

without having to wait until NCC personnel have time to make  the

appropriate  changes  in  the  translation  tables.   So although

certain sorts of changes to the translation tables can be made by

the   NCC,   many  sorts  of  changes  will  occur  suddenly  and

unexpectedly, and need to become effective immediately.   So  the

procedure of having all translation table changes made by the NCC

is not satisfactory.


        There is another sort of problem with having  translation




                              -26-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



table changes made by the NCC.  The problem is that carelessness,

either by the NCC or by host site personnel, can result  in  mis-

delivery  of  data  if changes are made by the NCC.  Suppose, for

example, that a network controller makes a  typographical  error,

associating a logical address with an incorrect physical address.

If there is no further check on the validity of that mapping, one

computer  may  receive data intended for another.  A good logical

addressing  scheme   should   prevent   this   sort   of   simple

typographical  error  from  resulting  in mis-delivery.  The same

situation can occur if one computer is  carelessly  plugged  into

the  wrong  port.  In this case, networks which use only physical

addressing might also mis-deliver data.  However,  with  physical

addressing,  one  must  expect  mis-delivery  if some computer is

plugged into the wrong  port  (i.e.,  given  the  wrong  physical

address)  due  to carelessness.  With logical addressing, this is

not inevitable, and a good scheme should give  better  protection

against carelessness.


        Another possibility for setting up the translation  table

entries is to have each host, as it comes up on the network, tell

the network which logical addresses it wants to be  addressed  by

over   each   of   its  (physical)  ports.   This  would  require

augmentation of the host access protocol to  include  a  "Logical

Address  Declaration"  (LAD)  message.  A given host could put as




                              -27-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



many logical addresses as it wanted in each LAD message.   Multi-

homed  hosts  would  send the same LAD message over each of their

ports.  The  logical  addresses  specified  in  the  LAD  message

received over a given port would all be mapped to that particular

physical address.  Hosts would be allowed to change their logical

addresses  at  any  time by sending a LAD message to the network.

Since a host may wish to add  or  delete  logical  addresses  for

itself  at  any  time, there would have to be two options for the

LAD message -- "add" and "delete."  Whenever  a  particular  port

goes  down  (either  because  the  port  itself fails to function

properly, or because the access line between the network and  the

host  fails, or because the host itself crashes), all mappings of

logical addresses to that port would be cancelled.  When the host

can once again communicate with the network through that port, it

would have to redeclare its logical addresses with a LAD  message

before it could receive any logically addressed traffic.


        Allowing each host to set up its own  logical-to-physical

address  mappings  in  this  manner  has  several advantages over

having all the mappings set up by the NCC.  This procedure allows

sudden  and unplanned mapping changes to take effect immediately,

with no need for advance planning and coordination with the  NCC.

Since  the  mappings  are  cancelled immediately when a port goes

down, this procedure helps to ensure that, if  one  of  a  multi-




                              -28-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



homed host's ports is down, all data which is logically addressed

to that host will  go  to  the  other  ports.   If  one  host  is

unplugged  from  a  given port, and another plugged in its place,

the procedure ensures that the mapping  for  the  first  host  is

cancelled,   while  the  mapping  for  the  second  host  becomes

effective.  When a host goes down, there is  no  assumption  that

the   same   host  will  return  in  the  same  location.   Hence

carelessness on the part  of  site  personnel  or  NCC  personnel

cannot  result  in  mis-delivery of data; data which is logically

addressed to a certain host could only be  delivered  to  a  host

which has declared itself to have that logical address.


        There are, however, two quite serious problems with  this

procedure.  The first problem is that of spoofing.  That is, this

procedure offers no protection against the  situation  where  one

host declares itself to be addressable by a logical address which

is supposed to be the logical address of a different host.   Thus

the  procedure  allows  one  host to "steal" traffic intended for

another, simply by declaring itself  to  have  the  same  logical

address  as  the other.  This sort of spoofing might be done by a

malicious user, who is really  trying  to  steal  someone  else's

data,  or it might happen accidentally, as a result of programmer

or operator error.  In either case, we would like  to  have  some

procedure  which  is  less  prone to spoofing.  The other serious




                              -29-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



problem with this procedure is  that  it  can  easily  cause  the

translation  tables  to  overflow  in  size.   If  every host can

specify an uncontrolled and unlimited number of logical addresses

for  itself,  there  is  no  bound on the size of the translation

tables.  Since only a finite amount of memory will  be  available

for the translation tables, it is clearly not acceptable to allow

each host to specify an arbitray number of logical addresses  for

itself.




5  Updating the Translation Tables


        We have examined two different procedures for setting  up

the  logical-to-physical  address  mappings,  and have found that

they both have problems.  Many of these problems can be resolved,

however,  by  a combination of the two procedures.  Let us define

two characteristics of  a  logical-to-physical  address  mapping,

which we will call "authorized" and "effective." A mapping from a

particular logical address to a particular  physical  address  is

"authorized"  if  a  host  which  connects to the network at that

physical  address  is  allowed  to  use  that  logical   address.

Authorizations  would  change  very  infrequently, and only after

considerable advance  planning.   Hence  it  is  appropriate  for

authorizations  to be determined (i.e., added and deleted) by the

NCC.  A mapping from a particular logical address to a particular



                              -30-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



physical  address  would  be  said  to  be  "effective"  from the

perspective of a  given  source  node  if  (1)  that  mapping  is

authorized,  (2)  that  physical  address is accessible from that

source node, and (3) the host at that physical  address  has,  by

means  of  a  LAD  message,  declared itself to have that logical

address.  When a port goes down, all mappings to it  will  become

ineffective,  until  they  are made effective again by means of a

LAD message.  Logically addressed traffic will not  be  delivered

to  a particular physical address unless the mapping between that

logical address and that physical address is effective.   Changes

in  the  effectiveness  of a mapping will occur automatically, in

real-time, with no need for intervention by NCC personnel.   This

facilitates  multi-homing,  since  if  there  are  two authorized

mappings of a logical address to a physical address, and only one

is  effective,  that  one  can  be  chosen all the time until the

second becomes effective also.  It facilitates sharing  of  ports

(either  by  physical  or  by logical hosts), since each host has

control over the effectiveness (though not the authorization)  of

the  mappings  that affect it.  Carelessness by NCC personnel can

cause the wrong mappings to become authorized, but it  is  rather

unlikely  that  an  incorrectly  authorized  mapping could become

effective --  that  would  require  carefully  planned  malicious

intent.   Therefore,  such carelessness might prevent delivery of

data to some host, but would  not  cause  mis-delivery  of  data.



                              -31-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



Carelessness  by site personnel, such as plugging a host into the

wrong port, would not  cause  mis-delivery  of  data,  since  the

mapping  of  that  host's logical address to that particular port

would not be authorized.  The possibility of spoofing is  greatly

reduced; since host A cannot pretend to be host B unless it is at

a port which is already authorized for host B.  The size  of  the

translation  table  cannot  increase without bound, since that is

determined by the number of authorized mappings,  and  cannot  be

increased  by  LAD  messages.   This  means,  of course, that the

network access protocol must be further modified so that  it  can

provide   positive  and  negative  acknowledgments  for  the  LAD

messages.  For each logical address that  a  host  specifies  for

itself  in  a  LAD  message,  the  network  must  return either a

positive   or   a   negative   acknowledgment.    The    positive

acknowledgment  would indicate that the mapping is authorized and

has become effective.  The negative acknowledgment would indicate

that the mapping is not authorized.


        It must be emphasized that the suggested  procedures  are

not  intended  to provide security in any very strict sense.  For

networks in which security  is  a  very  important  issue  (e.g.,

AUTODIN  II), further study of these issues should be carried out

by security experts.


        It should also be emphasized that these  procedures  will



                              -32-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



allow  the  logical  addressing  scheme  to  continue to function

normally even if the NCC facilities are down.   It  does  require

centralized  intervention  to  add  or delete authorizations, and

this could not be done if the NCC were down.  For a fixed set  of

authorized  mappings,  however,  no  centralized  intervention is

required to determine the effectiveness of  the  mappings.   That

is, the real-time functionality and responsiveness of the logical

addressing scheme does not  depend  in  any  way  on  the  proper

functioning of the NCC.


        We have argued that the authorization of a mapping should

be  determined  by  the  NCC,  and the effectiveness of a mapping

should be determined by  the  network  node  which  contains  the

physical  address  (port)  to  which  the  mapping  is  made,  in

cooperation with the host that is connected  to  that  port.   We

have  also  argued  that  a full translation table (i.e., a table

containing all the effective mappings) should be stored  at  each

network  node  (or  more  precisely,  at  each network node which

serves as an access point for a host which can be either a source

or  a  destination  of logically addressed traffic).  However, we

have not yet discussed the algorithm by which  the  effectiveness

or  ineffectiveness  of  a particular logical-to-physical address

mapping is communicated to all network nodes.   We  turn  now  to

this  issue.   We  will  discuss  two  very different methods for




                              -33-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



building up the translation tables at all nodes.


        The first method is based upon an extension  of  the  SPF

routing algorithm, wherein each logical address is treated like a

stub node.  In this method,  each  node  is  initialized  with  a

partial translation table.  This table contains a list of all the

logical addresses which are  AUTHORIZED  to  map  TO  that  node,

(i.e.,  all  the  logical  addresses which correspond to ports at

that node).  Each of these logical addresses is associated with a

particular  port  or ports at that node.  At initialization time,

each of these logical addresses is treated just as  if  it  is  a

neighboring  node  which  is  down,  and the node sends an update

(similar to a routing update) to all other nodes, indicating that

all  authorized  mappings to itself are ineffective.  When a host

comes  up  over  a  particular  port,  it  declares  its  logical

address(es)  by means of one or more LAD messages.  The node then

checks its table of authorized mappings, and acknowledges to  the

host  (either  positively  or  negatively)  each  logical address

mentioned in the LAD message.   Whenever  a  logical  address  is

positively  acknowledged, it becomes effective, and the node must

broadcast an update to all other nodes declaring that mapping  to

be  effective.  Whenever a host declares (via a LAD message) that

it no longer wants to be  addressable  by  a  particular  logical

address, an update must be generated declaring that mapping to be




                              -34-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



ineffective.  Whenever a port goes down,  all  logical  addresses

mapping  to  it become ineffective, and an update indicating this

must be broadcast.  If the protocol  used  to  disseminate  these

updates  is  the  same  as  the  protocol  used in the ARPANET to

disseminate the updates of the SPF routing  algorithm,  then  all

nodes  will  be  able to build dynamically an up-to-date table of

effective mappings, just as the routing updates  enable  them  to

build an up-to-date topology table.  (The procedure used to build

the topology tables is described in [1].  The  updating  protocol

is  described  in [2] and [3].) In effect, this procedure extends

the routing algorithm to treat the hosts (or more precisely,  the

mappings  of  logical  addresses  to  physical addresses) as stub

nodes, and the ports as lines, except  that  there  is  no  delay

associated with a port, but only an up/down status.


        This procedure is attractive from a conceptual  point  of

view,  but it is not really cost-effective.  That is, it seems to

be too expensive to be practical.  One reason is that it is  hard

to  place  a  bound  on  the  size  of the updates.  The updating

protocol of the ARPANET routing  algorithm  is  quite  efficient,

because  the  updates  are  so small.  The maximum update size is

only 216 bits (from  a  node  with  5  neighbors).   The  logical

addressing  updates might be much longer, since there is no limit

on the number of logical addresses that may map to a given  node.




                              -35-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



The  updates  would  also have to be sent periodically, even when

there in no change in state.  These  features  are  necessary  to

ensure reliability in the face of such events as partitions, node

crashes, updates received out of order, etc.  With no restriction

on  the number of logical addresses which can map to a given node

(and it seems unwise to build in such a restriction), there is no

restriction  on  update size, and hence no bound on the bandwidth

needed for updating, or on the extra delay which may  be  imposed

on data packets due to the need to transmit the updates.


        The updating protocol which  was  designed  for  the  SPF

routing  algorithm  was  designed to get the updates to all nodes

very quickly, and with 100% reliability,  even  in  the  face  of

various  types  of  network  failures.   This  extreme  speed and

reliability is necessary for routing  updates,  since  rapid  and

reliable  updating  of  the routing tables is necessary to ensure

the integrity of the network.  Routing failures, after  all,  can

make  the  network completely unusable, and can be very difficult

to recover from, since most recovery  techniques  depend  on  the

NCC's  ability  to  communicate  with  the  nodes,  which in turn

depends  upon   the   integrity   of   the   routing   algorithm.

Fortunately,  the  protocol  used  for  disseminating the logical

addressing updates does not need all  the  functionality  of  the

updating  protocol  used  for routing, since the integrity of the




                              -36-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



logical addressing  scheme  is  not  quite  as  critical  as  the

integrity  of  the  routing  algorithm.  This enables us to use a

simpler and less expensive method of maintaining the  translation

tables, which we will now discuss.


        In this second method, each node is  initialized  with  a

translation  table  containing ALL the authorized mappings.  This

table would have an entry for every logical address that  can  be

used in the network.  Each logical address would be associated in

the table with all the physical addresses  to  which  it  has  an

authorized  mapping.   Associated  with  each  of  these physical

addresses would be a Boolean  variable  indicating  whether  that

particular  logical-to-physical  address  mapping is effective or

ineffective.  At  initialization  time  a  node  would  mark  all

mappings  to  itself  as  INEFFECTIVE,  and all mappings to other

nodes as EFFECTIVE.  Whenever a host declares itself, via  a  LAD

message, to have a certain logical address, the node looks in the

translation table to see if that mapping is authorized.  (This is

just an ordinary table look-up, indexed off the logical address.)

If not, a negative acknowledgment is sent to the  host.   If  the

mapping  is  authorized,  a positive acknowledgement is sent, and

the entry in the translation table is marked EFFECTIVE.  Whenever

a  port  goes  down,  the node marks all mappings to that port as

INEFFECTIVE.  Of course, this also requires a "reverse" search of




                              -37-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



the  table  (i.e.,  a  search  based  on  a physical, rather than

logical address).  To make this more efficient, when the  initial

reverse  search is done at initialization time, the node can save

a list of pointers into  the  translation  table.   Each  pointer

would correspond to a physical address entry for that node.  If a

separate table of pointers is kept for each port, the  node  will

be able to find in a very efficient manner entries which map to a

particular port.  Using this methodology, each node's translation

table  will correctly indicate, for each of the logical addresses

that map to IT, whether or not that mapping  is  effective.   (Of

course,  these  pointers would have to be adjusted whenever table

insertions or deletions are made.)


        When a source host sends a logically  addressed  datagram

packet  into  the  network,  the  source  node  will  search  the

translation table for  the  correct  mapping.   If  that  logical

address  cannot  be  found,  i.e.,  its use is not authorized, an

error message indicating this fact  should  be  returned  to  the

host,  and  the  packet  discarded.   If  that logical address is

found, but all the corresponding physical  addresses  are  either

marked  INEFFECTIVE,  or  else  are unreachable (according to the

routing algorithm), then the packet should be discarded, and  the

host  informed  of  that fact.  If some of the physical addresses

are both reachable (according to routing) and  marked  EFFECTIVE,




                              -38-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



then  one  should  be  chosen,  according to some set of criteria

(perhaps one of those which  we  discussed  above).   The  chosen

physical  address  should  be  placed in the packet header, along

with the logical address.  The packet should then be forwarded to

its  destination; in doing the forwarding, tandem nodes will look

only  at  the  physical  address.   According  to  the  procedure

described in the previous paragraph, all mappings to REMOTE ports

will be initially marked EFFECTIVE.  To see how such mappings can

get marked INEFFECTIVE, we must see what happens when a logically

addressed packet reaches its destination node.


        When a logically addressed datagram  packet  reaches  its

destination  node,  the node looks up that logical address in its

translation table.  It is possible, of course, that that  logical

address  will  not be found at all, or that it will be found, but

that there will be  no  authorized  mapping  to  this  particular

destination  node.  This would indicate some sort of disagreement

between the translation tables  at  the  source  and  destination

nodes.   There  are  three  possible causes of this disagreement:

(1) NCC error in setting up the translation tables, (2)  deletion

of  the  authorization  for that particular logical address while

the packet was in transit, or (3) a  race  condition,  whereby  a

translation  table  update authorizing the new logical address is

taking place, but the update has  not  reached  that  destination




                              -39-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



node  yet.   In  any  case,  the  data packet should be discarded

without delivery, and an error message should be sent to the  NCC

indicating  receipt  of  a  packet  with  an unauthorized logical

address.  This will alert NCC personnel to a possible error.   If

the  authorization for that logical address was deleted while the

packet was in transit, however, then the NCC need  not  take  any

action;  having the destination node simply discard the packet is

the correct procedure.  If, on the other hand,  that  logical-to-

physical  mapping is really authorized, but the update making the

authorization has not yet reached the destination node,  then  we

want  to  take  the  same  action  as  we would take for a packet

delivered according to an  authorized  but  ineffective  mapping.

This action shall be described in the next paragraph.


        Suppose that, upon looking up the logical address in  the

translation  table,  the destination node does find an authorized

mapping to itself, but that mapping is marked ineffective.   Then

there  are  two  actions  to take.  The first action is to try to

re-address and then re-send the message.   Of  course,  this  can

only  be  done if the destination logical address is multi-homed,

and at least one  of  the  corresponding  physical  addresses  is

effective.   If  this  is  not  the  case,  the  packet  must  be

discarded.  The second action is to send a special  message  back

to  the  source  node of that datagram packet.  We will call this




                              -40-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



message a "DNA message" (for "Destination Not Accessible").   The

DNA  message will specify that the particular logical-to-physical

address mapping used for that packet is not an EFFECTIVE mapping.

The  DNA  message  should  also  be sent in response to datagrams

which  appear  to  have  unauthorized  mappings   (see   previous

paragraph).   For  reliability, each logically addressed datagram

must carry the physical address of its source node (though not of

its  source  host),  so  that  the  DNA message can be physically

addressed to the source node.  It is not enough  for  the  packet

simply  to  carry the logical address of its source host, for two

reasons.  The first reason is that if the source host  is  multi-

homed,  the  destination node will not know which source node the

packet came from, and hence will not know where to send  the  DNA

message.   The  second  reason  has  to do with the fact that one

situation in which DNA messages  may  have  to  be  sent  is  the

situation  in which the translation table at the destination node

has been set up erroneously.  In this case, we  do  not  want  to

have  to rely on the integrity of the translation table to ensure

proper delivery of the DNA message.


        When a source node receives a DNA message indicating that

a  certain logical-to-physical address mapping is ineffective, it

must find the proper entry in its  translation  table,  and  mark

that  mapping  as ineffective.  Henceforth, incoming packets with




                              -41-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



that  particular  logical  address  will  not  be  sent  to  that

particular  physical  address.   If the logical address is multi-

homed, packets will be sent to one or more of the other  physical

addresses,  unless  all the mappings for that logical address are

ineffective.  If this is  the  case,  packets  for  that  logical

address  will  be discarded by the source node, which should also

return some sort of negative acknowledgment to the  source  host.

We  see  then  that the DNA messages provide a feedback mechanism

which enables a source node to tell when a mapping  to  a  remote

port  is ineffective.  The source node has no way to tell whether

this is the case, until it sends a packet to  that  port.   After

sending the packet, it will be explicitly told by the DNA message

if the mapping is ineffective.  If it receives no DNA message, it

assumes that the mapping is effective.  This may mean, of course,

that some  logically  addressed  packets  are  sent  to  a  wrong

physical  address.  However, if there are other possible physical

addresses corresponding to that logical address, and the original

destination  node  has  one  of  those  other  mappings marked as

effective, the packet will be re-addressed and  re-delivered,  so

there  is no data loss.  Note that there are two possible reasons

why  a  given  logical-to-physical  address  mapping   might   be

ineffective:   (1) the physical port might not be operational, or

(2) the host at that physical address  might  not  have  declared

itself  addressable  with  that logical address.  If desired, the



                              -42-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



DNA message can indicate which of these two reasons is applicable

in  the  particular case in hand.  This information can be stored

in the source node's translation table, and passed on  to  source

hosts  which  try  to  use  a  logical  address for which all the

mappings are ineffective.


        This procedure enables all  nodes  to  find  out  when  a

particular  authorized  mapping  is  ineffective.  We also need a

procedure to enable the nodes to find  out  when  an  ineffective

mapping becomes effective again (i.e., a port comes back up, or a

new LAD message is received at some remote site).  A  simple  but

effective  method  is the following.  At periodic intervals (say,

every 5 or 10 minutes) each node will go through its  translation

table  and  mark  ALL the entries which map to REMOTE ports to be

effective.  (Entries which map to  local  ports  will  be  marked

effective   or   ineffective   according  to  procedures  already

discussed.   The  current  procedure  will  not  apply  to   such

entries.)  This  enables  mappings to be used again shortly after

they become effective.  Of course, this  scheme  will  result  in

some packets being sent to the wrong physical address.  When that

happens, however, a DNA message will be  elicited,  causing  that

mapping  to  be  marked  ineffective  again  in that source node.

Furthermore, this scheme does  not  cause  any  unnecessary  data

loss,  since  packets  sent to the wrong physical address will be




                              -43-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



re-addressed and re-delivered, if possible.


        Although this method requires all nodes  to  periodically

mark  all  mappings to remote ports effective, it is important to

understand that it  does  not  require  any  time-synchronization

among  the  various  nodes.  Also, there is no reason why all the

mappings have to be marked  effective  at  the  same  time.   For

example,  if  the translation table contains 600 mappings, rather

than marking all of them effective every 10 minutes,  it  may  be

more efficient to mark one mapping effective each second, thereby

cycling through the table  every  ten  minutes  (though  if  this

method  is  used,  it must take account of table compressions and

expansions  which  may  occur  as  the  NCC   adds   or   deletes

authorizations).


        There is also an issue as to the exact methodology to  be

used  to  send  the  DNA  messages.  The simplest method is for a

destination node to send a DNA message to the source node of each

packet which arrives as the result of an ineffective mapping.  If

this method is used, there is no need to use a reliable transport

protocol in sending the DNA messages.  If, for some reason, a DNA

message fails to get through to the  source  node,  more  packets

will  arrive  at  the  wrong  destination  node, causing more DNA

messages to be sent, until one  of  them  finally  gets  through.

This method, however, might generate a virtually unbounded number



                              -44-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



of DNA messages, particularly in pure datagram networks  with  no

flow  or  congestion  control.   This in turn might contribute to

network congestion.  In order  to  gain  better  control  of  the

throughput  due  to  DNA  messages,  one could implement a scheme

which ensures that only  one  DNA  per  ineffective  mapping  per

source  node  can  be  sent within a certain time interval.  This

scheme would have a significant cost  in  table  space,  however.

Also,  it  would require some sort of reliable transport protocol

(e.g., positive acknowledgments from  the  source  node  when  it

receives the DNA message) to protect against the case where a DNA

message is  lost  in  transit.   This  issue  would  have  to  be

carefully considered before any implementation is done.


        The procedure to follow with virtual circuit  traffic  is

very  similar.   In  the  ARPANET,  a  single  virtual circuit or

"connection"  is  individuated  by  the  source  and  destination

physical  addresses.   The  user  takes  no  part in setting up a

connection; whenever a user sends a packet to the  network  which

is not a datagram, the network checks to see if a connection from

the user's physical address to the destination  physical  address

that  he  specified  is  already  in existence.  If not, the IMPs

automatically run a protocol to set up such a  connection.   With

logical  addressing,  we  would  want to redefine the notion of a

connection so that connections are  individuated  by  source  and




                              -45-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



destination   LOGICAL  address,  rather  than  physical  address.

However, translation would be done only at connection setup time.

Thereafter,  all  virtual  circuit  packets  received  by a given

source node with the same source logical address and  destination

logical  address  would  be  sent  on  the same connection.  If a

destination node  receives  a  connection  setup  message  for  a

logical  address whose mapping is ineffective, it will refuse the

connection, just as  it  would  refuse  a  setup  message  for  a

physical  connection  to  a  dead  port.   When  the  source node

receives the  refusal  message,  it  will  mark  that  particular

logical-to-physical  mapping  as ineffective.  If the destination

logical address is multi-homed, the source node  can  attempt  to

set  up  the  connection  again,  but  with  a different physical

destination address.  If a mapping becomes  ineffective  after  a

connection  has  already  been  set up, the destination node will

take action to reset the connection, also  informing  the  source

node that the mapping is now ineffective.


        Note that logically  addressed  virtual  circuit  packets

need  not  carry in their headers the logical addresses of either

the source or destination hosts, since that  information  can  be

stored  in  the  connections tables at the source and destination

nodes.  Of course, all  packets  sent  on  a  particular  logical

connection  will  go  to  the  same  physical  destination  port.




                              -46-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



However, if the destination node  or  port  goes  down,  and  the

destination    host   is   multi-homed,   the   above   procedure

automatically ensures that a new connection will be opened to one

of  the  ports  which  is not down.  Since the ARPANET connection

protocol is transparent to the user, the  user  need  never  know

that this has happened.


        It is interesting to compare this procedure (based on DNA

messages)  with  the previously discussed procedures (based on an

updating protocol similar  to  that  used  for  the  SPF  routing

algorithm).   The  latter  procedure  would ensure that all nodes

always agree (except during some very short transient period)  on

precisely  which  mappings  are  effective  and  which  are  not.

Mappings would be marked effective  (or  ineffective)  almost  as

soon  as  they  become so.  There would be no need for the source

nodes to probe the destination nodes by sending data  packets  to

possibly  incorrect  physical  addresses.   The  procedure we are

recommending does not have these features.   In  the  recommended

procedure,   different   nodes'   translation  tables  would  not

necessarily be in agreement all the time as to which mappings are

or  are  not  effective,  and  probing  is necessary.  This is an

acceptable situation though, since  the  sort  of  universal  and

immediate  agreement  which  is  necessary  to  ensure the proper

functioning of a routing algorithm just is not needed  to  ensure




                              -47-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



the   proper   functioning  of  the  logical  addressing  scheme.

However, THE  LACK  OF  UNIVERSAL  AGREEMENT  DOES  REQUIRE  THAT

TRANSLATION  BE  DONE  AT  SOURCE NODES RATHER THAN TANDEM NODES,

since the DNA-based procedure, while designed to keep the  tables

at  source  nodes  up-to-date, will not necessarily have the same

effect at tandem nodes.  (That is, DNA messages are sent  to  the

source nodes, NOT to tandem nodes.)


        There is  only  one  situation  in  which  re-translation

should  be  done  at  the  tandem  nodes.   Suppose  a  logically

addressed packet arrives at a tandem node, and that  node,  after

checking  its  routing  table, sees that the physical destination

address of that packet  is  unreachable.   If  the  packet  is  a

virtual  circuit  packet,  or  the tandem node does not implement

logical addressing (i.e., does not contain a translation  table),

the  packet  must  simply  be  discarded.  But if the packet is a

datagram, and the tandem node does have a translation  table,  it

should  re-translate  the  destination  logical  address, and re-

address  the  packet.   This  procedure  can  help   to   prevent

unnecessary  data  loss.   Note that this tandem node translation

would happen only rarely, and only  in  situations  in  which  it

could  not  serve  to  defeat the criteria according to which the

source node translation was done.


        It should be noted that, with the  recommended  procedure



                              -48-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



(unlike  the  alternative),  the size of the translation table at

each node is a function only of  the  number  of  authorizations.

That is, only changes in the authorizations require insertions or

deletions to the table.  This justifies our previous  claim  that

insertions and deletions are relatively rare events.


        It should also  be  pointed  out  that  nothing  in  this

procedure  prevents a computer from being multi-homed to a single

node.




6  Operational and Implementation Considerations


        This procedure requires each network node to  maintain  a

full   table  of  authorized  mappings.   There  are  operational

advantages to requiring all nodes  to  have  precisely  the  same

translation  table;  this simplifies the process whereby one node

can be reloaded from another in case of failure, and reduces  the

amount  of  site-dependent information that must be maintained in

the nodes.  (In  general,  the  more  site-dependent  information

there  is,  the  larger the Mean Time to Repair will be.) We have

not spoken explicitly of the way in which NCC  personnel  add  or

delete  authorizations.   This will require some protocol between

the nodes and the NCC.  This protocol would be  similar  in  some

ways  to  the  protocol  used  to  broadcast  software patches or




                              -49-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



packages to the nodes.  However, since we want to be able to make

incremental  changes  to  the tables (rather than broadcasting an

entire new table each time a change must be made), the node  will

have  to  contain  routines  to add to or delete from the tables.

The node may have  to  inhibit  interrupts  while  modifying  its

table,  so  that no translations are done while the table is in a

state of flux.  Also, no reloads may be done from  a  node  whose

table  is  in  a  state of flux.  These last two restrictions are

needed to prevent race conditions; these restrictions are  easily

implemented.


        When  the  NCC  makes  a   change   to   the   table   of

authorizations,  it  will  want  to receive some sort of positive

feedback, indicating that the change has indeed been  made.   One

method of doing this is to associate a sequence number with every

"add" or "delete" command.  Each node could  periodically  report

to  the NCC the sequence number of the last command that it fully

executed, and an entry could  appear  in  the  log  whenever  the

sequence  number  is other than expected.  If the nodes refuse to

execute commands which are received out of sequence,  this  would

enable  the  NCC  to determine whether each node has received the

correct sequence of commands.


        If memory considerations make it impossible for each node

to  contain a table of ALL authorized mappings, it is possible to



                              -50-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



get by with a shorter  table.   Strictly  speaking,  each  node's

table  need  contain only the logical addresses which map to that

node itself, PLUS those logical addresses which  the  node's  own

local  hosts  are  allowed  to use.  While this smaller table may

take less memory, it would,  however,  increase  the  operational

difficulties of table maintenance.  We have not yet said anything

explicit about the format of a logical address.  We recommend use

of  a 16-bit field for coding the logical addresses.  This should

be enough to prevent  bit-coding  limitations  from  placing  any

restriction on network growth.  The only other information needed

in the translation table is (1) destination node physical address

(8    bits    should    suffice),    (2)    one   bit   for   the

effective/ineffective variable, (3) enough bits to code the  port

numbers,  and  (4)  enough  bits  to code any variables needed to

implement the selection  criteria  used  for  multi-homed  hosts.

This  should  not  take  more  than two or three 16-bit words per

entry.  If space is a problem, it  is  possible  to  shorten  the

tables somewhat by deleting the port numbers.  Strictly speaking,

port numbers are only needed by the destination nodes, and  hence

need  not  appear  in  each node's copy of the translation table.

However, eliminating the  port  numbers  from  the  common  table

increases  the amount of site-specific information in the tables,

which is a disadvantage in itself.





                              -51-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



        It goes without saying that the use of logical addressing

has  implications  for  the  network  access  protocol.   We have

already discussed one aspect  of  the  network  access  protocol,

viz.,  the  need  for the host to send LAD messages to the source

node, and the need for positive and negative  acknowledgments  to

be  returned  to  the host.  A LAD message from a particular port

contains a list of logical addresses, with an indication for each

one  as  to  whether  the  host wants the mapping of that logical

address to that port  to  be  effective  or  not.   When  a  host

declares a mapping to be ineffective, the source node must always

return a positive  acknowledgment,  and  must  mark  the  mapping

ineffective in its translation table.  However, if the mapping is

not authorized (i.e., not in the translation table),  the  source

node  should also return a warning to the source host, since host

error is likely.  When a host declares a mapping to be effective,

the   node   will   return   either   a   positive   or  negative

acknowledgment, depending upon whether the mapping is  authorized

or  not.   When  a  host  declares  an  authorized  mapping to be

effective, the node must mark it so.  The host should be  allowed

to  send  LAD  messages  to the node at any time, and they should

take effect immediately.









                              -52-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



7  Network Access Protocol Implications


        The  use  of  a  logical  addressing  scheme   also   has

implications  on  the part of the network access protocol that is

used for ordinary data transport.  When a source  host  passes  a

message  to  its  source  node,  the message leader must indicate

whether logical or physical addressing is desired  (assuming  the

network  allows  both).   If  logical  addressing is desired, the

destination logical address must be indicated.  The  source  node

must  be  able  to  discard  that  message  (with  an appropriate

negative acknowledgment) if there is  no  effective  mapping  for

that  logical  address.   The  source  host  must also be able to

indicate its own logical address, if it wants to make this  known

to the destination host.  (Since the source host may have several

logical addresses, it must explicitly choose one to be carried to

the  destination  host.)  Again,  the source node must be able to

negatively acknowledge  and  then  discard  the  message  if  the

mapping  from  that logical address to the source host's physical

address is not effective.  Alternatively, one may want to  return

this  sort  of negative acknowledgment only if the source logical

address mapping is unauthorized, and allow the message to be sent

if the mapping is authorized but ineffective.  If this is done, a

particular "logical host" may be allowed to send data, but not to

receive it.




                              -53-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



        When a logically addressed message  is  passed  from  the

destination node to the destination host, the message header must

contain the destination logical address  (since  the  destination

host  may  have  more  than  one logical address), and the source

logical address, if any.   This  implies,  of  course,  that  the

source and destination logical addresses of datagram packets must

be carried across the network in the packet header.  (For virtual

circuit  packets,  the  logical  addresses  can  be  kept  in the

connection blocks in  the  source  and  destination  nodes.)  The

internal  packet  header must also carry the physical destination

node number (for addressing at tandem nodes),  and  the  physical

source  node number (so that DNA messages can be returned without

having to rely on  the  integrity  of  the  translation  tables).

However,  these  physical  node numbers need not be passed to the

destination host.  Note that there is no need  for  the  internal

packet  header to carry source or destination port numbers, since

these are usually determined by the combination of physical  node

number  and  logical address.  In the case where a host is multi-

homed to a single node, the port numbers are not  so  determined,

but  the destination node can make a choice of ports "at the last

minute," either by choosing according  to  one  of  the  criteria

already  discussed,  or  by  choosing  the port with the shortest

queue.





                              -54-

IEN-183                              Bolt Beranek and Newman Inc.
                                                    Eric C. Rosen



[1]  E.C. Rosen, J.G. Herman, I. Richer, J.M. McQuillan, ARPANET
Routing Algorithm  Improvements  --  Third  Semiannual  Technical
Report, BBN Report No. 4088, April 1979, chapter 2.

[2]  J.M. McQuillan,  I.  Richer,  E.C.  Rosen,  D.P.  Bertsekas,
ARPANET  Routing  Algorithm  Improvements  --  Second  Semiannual
Report, BBN Report No. 3940, October 1978, chapter 4.

[3]  E.C. Rosen, "The Updating Protocol of ARPANET's New  Routing
Algorithm," Computer Networks, February 1980, Volume 4, p. 11.








































                              -55-

mirror server hosted at Truenetwork, Russian Federation.