Network Working Group                                           G. Parr
Request For Comments: 1029                         University of Ulster
                                                              May 1988


       A MORE FAULT TOLERANT APPROACH TO ADDRESS RESOLUTION FOR
                   A MULTI-LAN SYSTEM OF ETHERNETS

STATUS OF THIS MEMO

  This memo discusses an extension to a Bridge Protocol to detect and
  disclose changes in neighbouring host address parameters in a Multi-
  LAN system of Ethernets.  The problem is one which is appearing more
  and more regularly as the interconnected systems grow larger on
  Campuses and in Commercial Institutions.  This RFC suggests a
  protocol enhancement for the Internet community, and requests
  discussion and suggestions for improvements.  Distribution of this
  memo is unlimited.

ABSTRACT

  Executing a protocol P, a sending host S decides, through P's routing
  mechanism, that it wants to transmit to a target host T located
  somewhere on a connected piece of 10Mbit Ethernet cable which
  conforms to IEEE 802.3.  To actually transmit the Ethernet packet, a
  48 bit Ethernet/hardware address must be generated.  The addresses
  assigned to hosts within protocol P are not always compatible with
  the corresponding Ethernet address (being different address space
  byte orderings or values).  A protocol is presented which allows
  dynamic distribution of the information required to build tables that
  translate a host's address in protocol P's address space into a 48
  bit Ethernet address.  An extension is incorporated to allow such a
  protocol to be flexible enough to exist in a Transparent Bridge, or
  generic Host.  The capability of the Bridge to detect host reboot
  conditions in a multi-LAN environment is also discussed, emphasising
  particularly the effect on channel bandwidth.  To illustrate the
  operation of the protocol mechanisms, the Internet Protocol (IP) is
  used as a benchmark [6], [8].  Part 1 presents an introduction to
  Address Resolution, whilst Part 2 discusses a reboot detection
  process.

DEFINITIONS:

     CATENET: a group of IP networks linked together
     IP     : Internet Protocol






Parr                                                            [Page 1]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


                                PART 1

INTRODUCTION

  In the Ethernet, while all packets are broadcast, the hardware
  interface selects only those with either the explicit hardware
  broadcast address or the individual hardware address of this
  interface.  Packets which do not have one of these two addresses are
  rejected by the interface and do not get passed to the host software.
  This saves a great deal of otherwise wasted effort by the host
  software having to examine packets and reject them.  If the interface
  hardware selected packets to pass to the host software by means of
  the protocol address, there would be no need for any translation from
  protocol to Ethernet address.  Although it is very important to
  minimize the number of packets which each host must examine, so
  reducing especially needless inspections, use of the hardware
  broadcast address should be confined to those situations where it is
  uniquely beneficial.  Perhaps if one were designing a new local
  network one could eliminate the need for an address translation, but
  in the real world of existing networks it fills a very important
  purpose.  A rare use of the broadcast hardware address, which avoids
  putting any processing load on the other hosts of the Ethernet, is
  where hosts obtain the information they need to use the specific and
  individual hardware addresses to exchange most of their packets.

REASONING BEHIND ADDRESS RESOLUTION

  The process of converting from the logical host address to the
  physical Ethernet address has been termed ADDRESS RESOLUTION, and has
  prompted research into a method which can be easily interfaced,
  whilst at the same time remaining portable.

  The Ethernet requires 48 bit addresses on the physical cable [11] due
  to the fact that the manufacturers of the LAN interface controllers
  assign a unique 48 bit address during production.  Of course, Network
  Managers do not want to be bothered using this address to identify
  the destination at the higher-level.  Rather, they would prefer to
  assign their logical names to the hosts within their supervision, and
  allow some lower level protocol to perform a resolving operation.
  Most of these logical protocol addresses are not 48 bits long, nor do
  they necessarily have any relationship to the 48 bit address space.

  For example, IP addresses have a 32 bit address space [6], thus
  giving rise to the need to distribute dynamically the correspondences
  between a <PROTOCOLTYPE,PROTOCOL-ADDRESS> pair, and a 48 bit Ethernet
  address.





Parr                                                            [Page 2]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


EXAMPLE ARP OPERATION

  Here is a review of the operation of ARP as defined in RFC-826 [5].
  Let hosts X and Y exist on the same Ethernet cable.  They have
  physical Ethernet addresses EA(X), and EA(Y), and DoD Internet
  addresses IPA(X), and IPA(Y).  Let the Ethernet type of Internet be
  ET(IP).  Host X begins an application, and sooner or later wishes to
  communicate an Internet packet to host Y.  Host X has knowledge of
  the Internet address of Y, i.e., (IPA(Y)), and informs the lower
  level that it wishes to talk to IPA(Y).  The lower-level subsequently
  consults the ARP Module (ARM) to convert <ET(IP),IPA(Y)> into a 48
  bit Ethernet address but because X has not talked to Y previously, it
  does not have this information in its Translation Cache (TC).  It
  discards (or queues) the Internet packet, and creates a new Address
  Resolution packet with:

      PACKET FIELD             VALUE ASSIGNED

       HRDTYP                   ETHERNET

       PROTYP                   ET(IP)

       HRDLEN                   length (EA(X))

       PROTLEN                  length (IPA(X))

       ARPOPC                   REQUEST

       SOURCE HWR               EA(X)

       SOURCE PROT              IPA(X)

       TARGET HWR               don't know

       TARGET PROT              IPA(Y)

  It then broadcasts this packet to all hosts on the connecting cable.
  Host Y picks up this packet and determines that it understands the
  hardware type (Ethernet), that it speaks the indicated protocol
  (Internet), and that the packet is for it, that is, TARGET PROTOCOL
  ADDRESS = IPA(Y).  Replacing any previous entry, it enters the
  information that <ET(IP),IPA(X) translates to EA(X).  It then learns
  that this is an ARREQ packet, so it swaps fields, placing EA(Y) in
  the new sender Ethernet address field SOURCE HARDWARE ADDRESS, EA(X)
  as TARGET HARDWARE ADDRESS, IPA(X) as TARGET PROTOCOL ADDRESS, IPA(Y)
  as SOURCE PROTOCOL ADDRESS, and sets the opcode to REPLY.  The packet
  is then sent with direct routing address information to EA(X).  Thus,
  Y now knows how to send to X, but X still doesn't know EA(Y).



Parr                                                            [Page 3]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  When X receives the ARREP packet from Y, it gets the address
  information into its translation cache ET(IP),IPA(Y)>-->EA(Y),
  notices that it is a REPLY, and discards the packet (i.e., disposes
  of the dynamic packet buffer).  However, if the original Internet
  Module packet had been queued, it could have been accessed and given
  the full addressing information from the translation cache.
  Alternatively, had it been discarded, the higher level would have
  succeeded on a subsequent attempt, and the Internet packet would be
  transmitted immediately.

OBTAINING GREATER NETWORKING RANGE

  There are many benefits to be gained in dividing a large multiuser
  network into smaller, more manageable networks.  These include : Data
  Security; Overall Network Reliability; Performance Enhancement; not
  to mention the most obvious: Greater Networking Range.  In some
  network technologies, cable length may be stipulated not to exceed a
  certain range due to electrical limitations.  By installing a Bridge,
  this restriction is effectively eliminated.  An important
  consideration is the effect the induced Bridge delays will have on
  the protocol timeouts in operation on each LAN/Subnet.  Careful
  analysis of upper bounds on timeouts would have to be made in order
  to gain full benefit from the increased range.  In the case of
  Ethernet the following system parameters exist [11], [12]:

       - the bus bandwidth is 10Mbit/s

       - the maximum node-to-node cable length is 1500 m

       - the maximum point-to-point link cable length is 1000 m

       - the maximum number of repeaters between two nodes is two

       - the worst case end-to-end bus propagation delay is 22.5 us

       - the jam time after collision is 32bit

       - the minimum interframe time is 9.6 us

       - the slot size is 512 bit = 51.2 us

  Once a decision has being taken to subnet, the resulting subLANs may
  be connected by including a Bridge to link them together and
  providing a protocol which makes the collection of subnets appear as
  a single network.  The basic idea of the Bridge providing 'repeater'
  facilities would not suffice in this application.  Moreover, the
  Bridge would have to have further 'intelligence' to enable it to
  select those packets which are destined for remote networks based on



Parr                                                            [Page 4]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  the protocol address of the target host.  Thereby preventing it from
  forwarding packets needlessly that will not be accepted.  If this
  procedure was not adhered to, the channel bandwidth on the remote
  networks would be inundated with packets, causing local valid traffic
  to backoff and the efficiency of the respective networks to rapidly
  decrease.

  One problem fundamental to the operation of the Bridge is how it
  discovers on which LAN a particular host is interfaced.  If there are
  only two LANs in the system, each will have a dedicated cache at the
  Bridge, and when a packet is received at the particular interface,
  the source host's address parameters are entered in the respective
  LAN cache.  However, when we consider a Multi-LAN environment, the
  procedure becomes more complicated.

  ___
   |
   |-----h3
   |                                            E4
   |-----hq                            |-----------------------|
   |                _                             |        |
   |-----hx        | | B1                         |        |
   |---------------| |                            |        |
   |-----h1        |_|                            |        |
   |                |     h19                     |        |      ______
   |                |    |                       | |        -----|______|  B4
   |                |    |                       | | B3              |
   |-----he       |-------------------| E2       |_|                 |
   |                    |                         |                  |
   |-----h5             |                         |                  |
   |                    |                         |                  |
   |                   ---                ---     |                  |
  ---                  | |                 |-------                  |
  E1                   | | B2              |                         |
                       | |-----------------|                         |
                       ---                 |                         |
                                           |          |---------------------
                                          ---                              |
                                           E3                              |
                                                                           |
                     FIGURE 1.  A MULTI-LAN TOPOLOGY


  In the normal set-up, whenever B3 or B4 would receive a packet on E4,
  they would both update the caches on their E4 interface.  In
  addition, a method must be provided to permit B4 to distinguish
  between packets arriving on E4 from E1, E2, E3, and those which
  actually originated on E4.



Parr                                                            [Page 5]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  This is so that packets can be categorized as being of remote or
  local source and processed accordingly.  The most obvious solution is
  for each Bridge to act as an AGENT and plug in its address as the
  source of any packets it cascades to a remote network, instead of the
  packet being cascaded with its original source address.  At Bridge
  boot, it may issue a broadcast request for all locally connected
  hosts/devices to return their local network protocol addresses.  On
  subsequent receipt of this information, the Bridge could then update
  the cache for each of its interfaces so that it would now have a base
  from which to perform future operations.

  The alternative to this automatic procedure is to permit manual
  intervention in the Bridge software which could be activated by the
  network manager in order to key in the addresses of the hosts
  connected to each LAN interface.

  Thus, having provided a means for the Bridge to obtain the original
  state of the LAN addresses when it boots, how then does the Bridge
  distinguish the arrival of a new host on the locally connected system
  from transmissions which were sent from a remote source and cascaded
  by an adjacent Bridge?  Two approaches are currently under
  consideration to solve this problem, namely Explicit Subnets, and
  Transparent Subnets [4], [7], [9], [14].

  In the Explicit Subnet approach, the location of the host in the
  system is important.  The address of the host in the protocol suite
  will reflect which subnet the host is interfaced to.  Consequently
  the protocol address space is divided into a three level hierarchy of
  <network,subnet,host>.  Within the Internet there are five addressing
  divisions in operation [10], classes A, B, C, D, and E.  Classes D
  and E relate to an addressing technique that will be used for
  management of multi-casting groups and will not be discussed here.
  With such a structure, it is possible to provide an address mask at
  each interface so that received packets may have their source address
  fields examined and compared with the address mask of this LAN.  In
  so doing, the component which is being verified is actually the
  subnet address.  If the masking operation is successful the source
  must exist on this LAN, otherwise it must be remote.

  With the Transparent scheme, the first time a newly booted host
  'speaks' it will be looking for addressing information (probably
  using BOOTSTRAP [1], RARP [2] or ARP [5]).  Accordingly, the Bridge
  will detect these respective requests and be in a position to perform
  operations on the address parameters.  The current approach in
  Transparent Subnetting is that before any such requests can be
  cascaded by the Bridge to an adjacent LAN, that Bridge will place its
  interface address parameters into the source address fields, thus
  acting as the AGENT.  Therefore, this Bridge will 'see' either



Parr                                                            [Page 6]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  packets arriving from the remote Bridge address, or local packets.
  By virtue of the RARP/ARP operation, which hosts perform when they
  first come up, any hi-level packets received on to the network not
  having the bridge address, and not having a mapping in the cache for
  that LAN, can be considered as being remote.

  Currently, there is a move toward the Transparent subnet proposal
  originally described by Postel [7].  This has been due mainly to
  practical problems of incompatible implementations from different
  vendors, and the restrictions that the Explicit address space place
  on the adaptability of the system to change (class C addresses are
  not flexible enough for the Explicit scheme).  It is also the opinion
  of the Author of this paper that the Agent technique adopted by the
  Bridges could have shortcomings in a dynamic environment which would
  be detrimental to its operation; for example, where the bridges
  themselves relocate or crash, or in the management of the "Agent For
  Who" cache at the bridge.  Insofar as Loop Resolution and
  SelfStabilization after failure are Bridge problems that need to be
  addressed, it is strongly felt their satisfactory solution will be
  supported by elimination of the Agent technique [13].

BRIDGE OPERATIONS

  Referring to figure 1, assume that at some stage during its
  processing [E1H3] wishes to communicate with [E2H19].  [E1H3] obtains
  knowledge of the Internet address of [E2H19] from its translation
  cache, but will not require the knowledge that [E2H19] exists on a
  completely different subnet.  [E1H3] calls its Internet Module to
  transmit the packet.  As detailed, the usual procedure of passing
  control to its ARM is performed in an attempt to obtain a
  translation.  If we assume that [E1H3], and [E2H19] have not talked
  before, the ARM in [E1H3] will not be able to resolve the addresses
  on the first attempt.

  In such a case, an ARREQ packet is assembled and broadcast to all
  hosts on the network [E1].  The packet traverses the cable and is
  eventually picked up by the (B1) Bridge Address Resolution Module
  (BARM), whereupon it determines whether or not it should intervene in
  the request.  If the target is determined as remote (i.e., having no
  match in the local cache), the BARM examines its Global Translation
  Cache (GTC) to determine if it has an entry for <protocol,[E2H19]>.
  Should a mapping be obtained at the Bridge, there is no need for the
  broadcast REQUEST packet to be cascaded on to the remote network
  [E2].  It is therefore assumed that the entries in the GTC reflect
  the most current addressing information.  A match thus obtained, the
  original ARREQ packet buffer is adapted as required and returned
  directly to [E1H3] via the Bridges hardware interface IFE1.




Parr                                                            [Page 7]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  On the other hand, should the Bridges' GTC have no information on
  [E2H19], the BARM would have to perform the following steps:

     1.  drop the current ARREQ from [E1H3],

     2.  create its own ARREQ using the Bridge source addresses
         and copy the target_internet_addr from the original
         [E1H3] ARREQ packet,

     3.  broadcast the ARREQ on network E2 via network interface
         IFE2, and go into a timeout awaiting a REPLY.

  Should this timeout period expire, a number of retries will be
  permitted under control of the BARM.  Alternatively, if a REPLY is
  received within the timeout interval, then the BARM will update its
  GTC.  The ARM of [E1H3] next will attempt to transmit another ARREQ,
  but this time a mapping will be obtained at the BARM'S GTC, and the
  appropriate REPLY will be returned.

  Part 1 has described the state of the art of the behaviour of Address
  Resolution.  Part 2 now extends the study to the more serious problem
  of rebooting hosts in a multi-LAN system of Ethernets, and the
  effects such changes have on the integrity of state information held
  in ARP caches and routing tables.

                                PART 2

THE CAPTURE OF REBOOTS

  Because Address Resolution packets are broadcast, all hosts on the
  connecting cable including the Transparent Bridge will pick them up
  and determine what they are.  Referring to figure 1, it may well be
  the case that a host on E1 wishes to communicate with a fellow host
  on the same physical ether.  Hence, if Hx wishes to talk to Hw on the
  same ether, but has not done so previously, it will broadcast an
  Address Resolution packet in the normal fashion.  The Bridge will
  also 'see' the packet as it passes by, and will act as described
  above, unless that is, there is some method of preventing it doing
  so; there is no point in the Bridge invoking its ARM, and wasting
  processing time if the problem is going to be resolved locally.

  It may occur however, that H1 wants to communicate with H5.  If
  however, H5 has not talked with anyone before (i.e., it has been
  "dormant"), H1 will issue an ARREQ.  The Bridge will not know that H5
  is local because it won't have been entered in the local address
  cache from previous conversations.  To avoid broadcasting an ARREQ to
  all networks/subnets, one way around this problem is to set up the
  contents of the local cache at Bridge startup time.  Therefore, the



Parr                                                            [Page 8]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  Bridge will already know not to intervene.  Thus, if the Bridge (with
  2 nets) finds that a particular IP destination address is not in the
  local cache of interface 1, it would have to examine its GTC and scan
  it for a mapping.  Should no mapping be obtained at interface 2, one
  of two possibilities exist:

       1. the target host doesn't exist locally

       2. the caches are corrupt (the eventuality of this should
          be negligible!)

  If it is assumed that each of the translation caches contains have
  the most recent addressing information regarding its own domain of
  the network then, in this example, if the Bridge does not get a
  mapping at the GTC it would appear that the host must exist remotely
  from E1, and E2.

  Such a conclusion would ignore cases in which a host unplugs from a
  particular hardware interface and plugs into another hardware
  interface, or where logical names are reassigned to different
  interfaces due to host user change.  Either of these events could
  happen had the host being accessed on E2, which would mean that a
  REBOOT has taken place.

  Anticipating these possiblities local caches are essential.  In
  normal operation, the Bridge will process and forward IP packets
  received from one network, and destined for another.  If the Bridge
  picks up an ARREQ, it will first look for a mapping in its GTC before
  discarding the original ARREQ, and transmitting its own to the remote
  network.  In any case, the Bridge will always examine the local cache
  entries at the receiving interface, so that it may determine if the
  target address is local or remote.  When the Bridge first scans the
  local cache, it does so with the source IP address as the key.  If no
  mapping is retrieved, it then scans the GTC with the same key.
  Should a mapping now be obtained, it remains for the Bridge to insert
  the source IP into the local cache, where it has either been
  previously deleted or corrupted.

  However, if the source IP exists in the respective local cache, the
  validity of the source Ethernet address should also be verified by
  examining the respective entry in the GTC.  A scan of the GTC is then
  performed with <protocol,source_prot_addr> as the key.  If a mapping
  is retrieved, the respective <et_addr> should be checked against the
  source Ethernet address in the packet header.  If the addresses do
  not match, then we have uncovered a Hardware Reboot condition (i.e.,
  a change in Ethernet ID).  On the other hand, should the scan of the
  GTC with <protocol,source_prot_addr> fail to obtain a mapping, then
  the Bridge would scan the GTC with the current Ethernet address in



Parr                                                            [Page 9]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  the packet header.  If this obtains a mapping, then a Protocol Reboot
  condition (i.e., change in logical ID) has been detected.

  In the next section, the implications of these forms of 'Reboot' are
  discussed.

REBOOT SCENARIO

  In normal operation, packets will uneventfully traverse each subnet
  either as complete Internet packets, broadcast ARREQ's, or direct
  ARREP's.  The Bridge attached to each subnet will 'hear', and 'see'
  all packets as they travel past its connected interfaces.  Because of
  the existence of the local caches at each interface, the Bridge can
  decide whether or not to intervene.  In general circumstances, each
  host on the Catenet will have a translation cache containing
  <protocol,source_prot_addr,source_et_addr> entries for all packets it
  has observed.  Most of these entries will have been due to processing
  ARREQ packets, which were broadcast, and by receiving REPLY packets.
  In accordance with the foregoing , the Bridge will have a cache
  attached to each subnet interface containing entries for protocol
  addresses.

  Within the Bridge's Global Translation Cache (GTC) will be entries of
  all <protocol,source_prot_addr,source_hrd_addr> triplets relating to
  valid hosts which have been recognised.  If we assume that we have
  just connected up a Catenet such as that illustrated in figure 1,
  then at power-up no stations will have knowledge about their
  neighbours.  If the Bridges are to remain transparent, the
  translation caches at each host will be totally empty.  The only
  addressing details that will be in existence will be the protocol
  addresses stored in the local caches of the Bridges.

  The hosts subsequently begin to run applications and will want to
  communicate with one another.  The first ARREQ is broadcast on the
  respective subnet and all hosts, including the Bridge's interface to
  the subnet, will pick it up and store the details.  If, for example,
  Hx issues an ARREQ for Hq, the Bridge will not intervene since there
  is no need (providing no reboot has occurred at Hq).  However, if Hx
  wishes to talk with Hz, B1 will determine that the target IP in the
  respective ARREQ does not exist in the local cache of IFE1, so it
  will examine the GTC, with the <protocol,target_prot_addr> of Hw as
  the key.

  It is assumed that there will be a timeout mechanism in operation at
  the source of any packet.  In addition, the Bridge may also place the
  target address in a 'search list' of currently sought hosts, so as to
  prevent ARREQs from different sources being cascaded for the same
  target.  Under these conditions, Hx may re-issue its original ARREQ,



Parr                                                           [Page 10]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  but will be ignored until the host Hw has replied to the ARREQ
  transmitted by the Bridge.

NORMAL RUNNING STATE

  Assuming that a few ARP's have been issued, IP packets will start
  traversing the Catenet with full addressing information.  Again, the
  Bridges will 'see' all the packets.  If we extend the situation one
  step further, and assume that several conversations have taken place
  across the Catenet, there will be entries in the translation caches
  of the hosts concerned, regarding the
  <protocol,target_prot_addr,target_hrd_addr> triplets of those hosts
  with which the conversations took place.  The Bridges also, will have
  details in their GTC's for packets which they cascaded.

  If a host is relocated, any connections initiated by that host will
  still work, provided that its own translation cache is cleared when
  it does physically move.  However, any connections subsequently
  initiated to it by other hosts on the Catenet will have no particular
  reason to know to discard their old translation for that host.
  Ideally, 48 bit Ethernet addresses will be unique and fixed for all
  time.

RECOGNITION OF THESE REBOOT CONDITIONS

  With reference to figure 1, assume that for some reason a fault
  occurs on the hardware interface of <E1He>.  The result of this is
  that a new interface is installed with a newly acquired hardware
  address.  When <E1He> is powered up, the previous contents of its
  translation cache are cleared and it has no recollection of local, or
  remote host addresses.  Accordingly, <E1He> begins to issue ARREQ's
  to hosts it requires.  Whenever <E1He> transmits its first ARREQ, it
  could be termed a 'HELLO PACKET', since everyone on the subnet can
  pick up the packet, and store the relevant information in their
  translation caches.  Within hosts, a mapping will be found on the old
  <protocol,source_prot_addr> pair, and the current <et_addr> of the
  packet header will replace whatever is entered in the translation
  cache.

  At this point it would be easy for each host with an entry to
  recognise the Hardware Reboot situation and inform the subnet with a
  respective broadcast reboot packet.  But allowing such a procedure
  would be extremly inefficient on the broadcast medium, and would
  drastically outweigh any improvements in performance which might be
  obtained in the long term.  In any case, given the fact that the
  ARREQ is broadcast, all stations on the subnet will recognise the
  reboot.  The important point to consider is the effect such a reboot
  will have on subsequent conversations which are initiated remotely.



Parr                                                           [Page 11]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  Can redundant transmissions be thwarted before they tie up processing
  time on hosts en-route to the rebooted target?  How these
  difficulties are resolved is critical to the level of performance
  obtained in a Catenet configuration.  Since it is not optimal for
  hosts to inform the system of a reboot, it is left to the Bridge.
  Whenever the Bridge receives a packet, be it IP, or ARP, it examines
  the source address parameters in the packet header, in the hope of
  detecting any incompatibilities between them and the entries in its
  caches.  There are three distinct possibilities, namely, a difference
  in the 48 bit hardware address only, a difference in the protocol
  address, and two completely new addresses.  If an incompatibility is
  discovered, a "REBOOT" packet is constructed and issued on all remote
  interfaces containing the appropiate information, allowing Bridges to
  update their GTC's and generic hosts their ARP caches.

  The structure of the Reboot packet is as depicted in figure 2.

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | P A C K E T     O P C O D E   |REB OPC|      S O U R C E      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |        H A R D W A R E            A D D R E S S               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       S O U R C E   P R O T O C O L     A D D R E S S         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     M U L T I C A S T   T A R G E T    H A R D W A R E        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    A D D R E S S      |   M U L T I C A S T     T A R G E T   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   P R O T O C O L     |
  +-+-+-+-+-+-+-+-+-+-+-+-+

         ---------> NEXT FOLLOWS A VARIANT FIELD ON REBOOT  OPCODE

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  O L D         S O U R C E        H A R D W A R E             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  A D D R E S S        |
  +-+-+-+-+-+-+-+-+-+-+-+-+

   OR

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  O L D     S O U R C E    P R O T O C O L      A D D R E S S  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         FIGURE 2. REBOOT PACKET



Parr                                                           [Page 12]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  The following definitions apply:

       PACKET FIELD              VALUE

       OPCODE                    REBOOT

       REBOOT OPCODE             HARDWARE

       REBOOT OPCODE             PROTOCOL

  The format is then as follows:

       48 bit broadcast Ethernet address for the destination,

       48 bit Ethernet address of source Bridge,

       16 bit Protocol type = PACKET OPCODE - REBOOT.


  For completeness and error checking it may be an advantage to have a
  field which specifies the length of addresses in the Ethernet and
  protocol address spaces.  Thus, the Reboot packet structure contains
  the following:

  FIELD          FIELD SIZE                    DESCRIPTION

  HRDLEN          4 bit             byte length of Ethernet address

  PROTLEN         4 bit             byte length of Protocol address


  SOURCE
  PROTOCOL
  ADDRESS        32 bit            current protocol address of host

  TARGET
  PROTOCOL
  ADDRESS        32 bit           broadcast target protocol address

  REBOOT
  OPCODE          4 bit            will be either PROTOCOL or HARDWARE


  if   PROTOCOL       32 bit         old protocol address

  else HARDWARE       48 bit         old hardware  address





Parr                                                           [Page 13]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  As shown, depending on the REBOOT-OPCODE, the structure will continue
  with either the 48 bit old hardware address or the 32 bit old
  protocol address.  The choice of a variant packet structure is for
  reasons of curtailing the size of the packet to the fields that are
  truely necessary in each situation.  From this Reboot packet
  structure, the process of generating such a packet can be considered.
  When the Bridge algorithm detects a reboot, it should create a reboot
  packet structure containing the relevant addressing information and
  subsequently multicast it on the interface(s) which access(es) the
  remote subnet(s).  The decision as to which interface(s) is/are
  local, and which is/are remote, can be resolved automatically
  whenever a packet is received.  With respect to this packet transfer
  the receive interface at the Bridge becomes local, and all others are
  tagged as remote.

  Thus, hosts on the subnet remote from the reboot are informed of the
  situation immediately as it is detected by the Bridge.  In the
  Catenet configuration illustrated in fig 1, this will have the effect
  of updating the Translation Cache within each host, whenever it
  receives the packet.  If for example, <E4Hw> reboots under hardware,
  B3 will detect this occurance.  There is no reason for the subnets
  E1, E2, E3 to be aware of this episode.  In normal operation, B3 will
  recognise the reboot from the first ARREQ issued from <E4Hw>.  With
  this reboot detection facility, B3 will be in a position to inform
  the hosts on E1, E2, and E3.  B3 can then create and issue the Reboot
  packet via its interface with E3.  When B3 picks it up, it will
  update its own caches and subsequently cascade the packet onto E2,
  where it will be passed on to E1 via B1.

ARGUMENTS FOR REBOOT PACKETS

  It is envisaged that introducing Reboot packets, will serve to
  enhance the bandwidth achievable within a Catenet system.  Problems
  of addressing 'dead' hosts will no longer exist in a correctly
  functioning configuration.  Translation Caches will have on hand the
  most recent addressing information available, which should also serve
  to enhance the performance of the routing strategy in operation.
  Multiple, redundant processing of packets destined for 'dead' hosts
  will be avoided.  Weighing this against the processing involved with
  a single multicast of Reboot packets, it is expected that the latter
  will be is the most economically viable in relation to the long-term
  traffic presented to the system.

CONCLUSION

  It appears that reboots are becoming increasingly common on internet
  networks.  Many sites use Personal Computers (PC) as terminals and
  the typical way to finish a session is to switch them off!  With the



Parr                                                           [Page 14]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  increasing popularity of multitasking Operating Systems on these
  types of machines, problems are more likely to occur, particularly
  when the PCs are diskless, or participating in a distributed file
  system of some kind.  Given the importance of correct addressing in
  communications networks running Ethernet, it is anticipated the
  reboot mechanism described will serve to improve the correctness and
  validity of the protocol/network address mappings which may be stored
  in the translation caches.  To this degree, simulation is expected to
  show that the volume of invalid traffic will decrease, to the benefit
  of hosts, Bridges and servers alike.  Likewise, ratification of the
  routing policy is anticipated and since redundant/obsolete packets
  will be thwarted, the efficient utilization of available channel
  bandwidth across the catenet is also expected to improve.  Thus,
  effectively increasing Catenet throughput for 'valid' packets, and
  therefore enhancing the level of service provided to the end users.

  It is obvious that the proposed scheme implies the alteration of the
  packet processing code in Bridges/Gateways.  The point to remember is
  the increased favour with which larger, more complex Multi-LAN
  systems of Ethernets are being received.  The recent adaption of
  extra telephone cables to serve as the transmission media for the
  Ethernet can only result in installation costs being reduced, therein
  making the Ethernet more attractive within large corporate buildings,
  etc.  It is sensible to suggest that the probability of host address
  re-assignment shall increase in proportion to the number of physical
  systems attached, component failure rate (for whatever reason),
  relocation of resources, and the size and turnover of the workforce
  (i.e., people moving from one room to another).  Simulation
  experiments are currently being developed to analyse the resultant
  traffic patterns under this scheme, and it is hoped to highlight
  thresholds where adoption of the scheme becomes a necessity.

  In addition, the Author is currently extending the boundaries of this
  problem to encompass the reboot, or relocation of Bridges themselves.
  Involved with this are the phenomena of loop resolution, load sharing
  and duplicate packet suppression.  It is envisaged that a Self-
  Stabilizationg Bridge Protocol will result that will be more "light-
  weight" than those adhering to the Spanning Tree Algorithm.

  The Author would appreciate feedback/comments on this RFC.  My
  network address is: CBAD13%[email protected].

ACKNOWLEDGEMENTS

  The Author acknowledges with gratitute the help and comments
  contributed by Mr. Piotr Bielkowitz (Supervisor) of the Computing
  Science Department, and the time devoted my Mr. Raymond Robinson for
  painstakingly preparing the first draft of this paper on 'Pagemaker'.



Parr                                                           [Page 15]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


  Thanks are due also to Dr. M. W. A. Smith of Information Systems for
  his assistance.  Finally, this work was supported under a grant from
  the Department of Education for Northern Ireland of which the Author
  is extremely grateful.

REFERENCES

  [1]  Croft, Bill, and John Gilmore, "Bootstrap Protocol", RFC-951,
       Stanford University, September 1985.

  [2]  Finlayson, Mann, Mogul, and Theimer, "A Reverse Address
       Resolution Protocol", RFC-903, Computer Science Dept, Stanford
       University, June 1984.

  [3]  Lorimer, Alan, and Jim Reid, "ARP Information Communique",
       Computer Science Dept, Strathclyde University, 1987.

  [4]  Mogul, Jeffrey, "Internet Subnets", RFC-917, Computer Science
       Dept, Stanford University, October 1984.

  [5]  Plummer, David, "An Ethernet Address Resolution Protocol", RFC-
       826, MIT, November 1982.

  [6]  Postel, Jon, "DARPA Internet Program Protocol Specification",
       RFC-791, USC/Information Sciences Institute, September 1981.

  [7]  Postel, Jon, "Multi-LAN Address Resolution", RFC-925,
       USC/Information Sciences Institute, October 1984.

  [8]  Postel, Jon, Carl Sunshine, and Danny Cohen, "The ARPA Internet
       Protocol", Computer Networks, no. 5, pp. 261-271, 1981.

  [9]  Postel, Jon, and Jeff Mogul, "Internet Standard Subnetting
       Procedure", RFC-950, USC/Information Sciences Institute and
       Stanford University, August 1985.

  [10] Reynolds, Joyce, and Jon Postel, "Assigned Numbers", RFC-1010,
       USC/Information Sciences Institute, May 1987.

  [11] "The Ethernet: a local area network, data link layer and
       physical layer specification", Version 1.0 DEC, Intel and Xerox
       Corporations, USA 30 September 1980).

  [12] Hughes, H.D., and L. Li, "Simulation model of an Ethernet",
       Computer Performance, Vol 3, no. 4, December 1982.

  [13] Parr, Gerald P., "Address Resolution For An Intelligent
       Filtering Bridge Running On A Subnetted Ethernet System", ACM



Parr                                                           [Page 16]

RFC 1029           Fault Tolerant ARP for Multi-LANs            May 1988


       SIGCOMM Computer Communication Review, (July/August 1987), vol.
       17, no. 3.

  [14] Smoot, Carl-Mitchell, and John S. Quarterman, "Using ARP to
       Implement Transparent Subnet Gateways", RFC-1027, Texas Internet
       Consulting, October 1987.













































Parr                                                           [Page 17]