IP - Local Area Network Addressing Issues
     
     
     
                                 IEN - 212
     
     
     
     
     
     
     
     
                              Robert Gurwitz
                               Robert Hinden
     
     
     
     
     
                       Bolt Beranek and Newman Inc.
                              10 Moulton St.
                      Cambridge, Massachusetts 02238
     
     
     
     
     
     
     
     
                              September 1982
     
     
     
     
     
     
     
     
                               prepared for
                 Defense Advanced Research Projects Agency
                 Information Processing Techniques Office
                           1400 Wilson Boulevard
                         Arlington, Virginia 22209
     
     
     
     
     
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
                             Table of Contents
     
     
     
     
     1   Introduction.......................................... 1
     
     2   IP to Local Network Address Mapping................... 2
     
     3   Broadcast Addressing.................................. 7
     
     Appendix A - Revised Information Reply Message............ 9
     
     References............................................... 11
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
                                    -i-
     
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
     1  Introduction
     
     
          This note discusses several issues in Internet Protocol (IP)
     
     addressing  in  local  area  networks, such as Ethernet [1]. Such
     
     networks typically have addressing characteristics  and  features
     
     that  are different from earlier network implementations, such as
     
     the ARPANET.  Specifically, we describe approaches  for  handling
     
     IP  to  local network address mapping and broadcast.  The methods
     
     described below are meant to integrate these  features  of  local
     
     networks  into  the  DARPA internet within the spirit of IP, in a
     
     general  manner  that  is  not  tied  to  a  particular   network
     
     implementation.   The  goal  here  is  to  minimize  the need for
     
     changes to IP, by  adopting  conventions  and  methods  that  use
     
     existing mechanisms.
     
     
          Of course, the approaches described  here  are  not  unique.
     
     Other  methods have been described which are similar in spirit to
     
     that presented here.  The purpose of this note  is  to  stimulate
     
     discussion  of  these  issues,  with  the  goal  of arriving at a
     
     consensus on how to  resolve  these  and  possibly  other  issues
     
     relating to the use of local area networks in the internet.
     
     
     
     
     
     
     
     
                                    -1-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
     2  IP to Local Network Address Mapping
     
     
          Ethernet differs from other networks in the internet in that
     
     it  uses  local  addresses  which  are  larger  (48 bits) than IP
     
     addresses (32 bits).  With other networks  having  smaller  local
     
     address  formats,  the  mapping  from local network address to IP
     
     address  is  simple:  embed  the  entire  local  address  in  the
     
     appropriate  class  of  IP  address.  For example, in the ARPANET
     
     which has 24-bit addresses, the mapping to a class A IP  address,
     
     which has 24-bits of local host address, is direct:
     
     
                    Host A on IMP B -> 10.A.B(hi).B(lo)
     
     
     where 10 is the class A network number for the ARPANET, the  host
     
     portion  of  the  local  address  is  an 8-bit value, and the IMP
     
     portion is a 16-bit value whose high order  8  bits  are  usually
     
     zero.   Note that mapping a 24-bit ARPANET address to a non-class
     
     A address, would require some  other  approach,  like  truncation
     
     (say,  dropping  the  high order 8 bits of the IMP part) or table
     
     lookup.
     
     
          A similar, but  more  severe,  problem  occurs  with  48-bit
     
     Ethernet  addresses.  In this case, there may be no simple direct
     
     mapping (like truncation) to the 32-bit  IP  address,  since  the
     
     
     
     
                                    -2-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
     address  of  an individual Ethernet controller is a unique 48-bit
     
     value  assigned  by  the  manufacturer  that  could   conceivably
     
     conflict with other addresses on the local network if a subset of
     
     the 48-bits is used to  form  the  local  host  part  of  the  IP
     
     address.
     
     
          To solve this potential conflict, we choose a  mapping  that
     
     depends  on  table  lookup.   Each  host  on the local network is
     
     assigned an IP address with a unique local  host  part  for  that
     
     network.   The  IP module in that host "knows" its own IP address
     
     and uses it to send and receive IP datagrams.  Other hosts on the
     
     local network (including gateways), maintain tables which map the
     
     IP addresses of the other  hosts  to  their  corresponding  local
     
     addresses.
     
     
          This table  may  be  "hardwired"  into  the  IP  modules  or
     
     initialized  when  the  host  comes  up.  A better implementation
     
     would be to maintain the table as  a  cache,  whose  entries  are
     
     updated dynamically while the host is active.  To do this, we can
     
     make use of a feature supported  by  many  local  area  networks,
     
     "broadcast  addressing".   This  feature  allows  messages  to be
     
     received by all hosts on the local network, by sending them to  a
     
     specially designated broadcast address (in Ethernet the broadcast
     
     
     
     
                                    -3-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
     address is "all ones").   To  map  a  given  IP  address  to  its
     
     corresponding  local  address,  the IP address is used to look up
     
     the local address in the mapping table.  If the mapping is found,
     
     the   local   address  is  used  in  the  local  network  header.
     
     Otherwise, if no mapping is found in the table:
     
     1)   Send the datagram which was not in the mapping table to  the
          local  broadcast  address  (see figure 1).  All hosts on the
          network including the correct  one  (the  one  specified  by
          destination  IP  address  in  the datagram) will receive the
          datagram.
     
                             ---------------------
                             | local src addr -A |
                             +--------------------
                             | broadcast address |
                             ---------------------
                             | IP src addr - A   |
                             ---------------------
                             | IP dst addr - B   |
                             ---------------------
                             | Datagram needing  |
                             |     mapping       |
                             ---------------------
     
                       Figure 1 . Broadcast Datagram
     
     
     
     2)   The host on the network that recognizes its  IP  address  in
          the  datagram  and notices that the datagram was received on
          the local network bradcast address sends an ICMP information
          reply  message  to the host that broadcast the request, with
          its local address filled in and its local network address in
          the data portion of the message (see figure 2).  ** It  also
     _______________
     **  Currently,  there  is  no  data  area  defined  in  the  ICMP
     Information Reply message.  We propose to add one for the purpose
     described in the document.  Appendix A  contains  the  format  of
     ICMP Information Reply message with the data area.
     
     
     
                                    -4-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
          accepts this broadcast datagram since  it  contains  its  IP
          address as the destination.
     
                             ---------------------
                             | local src addr -B |
                             +--------------------
                             | local dst addr -A |
                             ---------------------
                             | IP src addr - B   |
                             ---------------------
                             | IP dst addr - A   |
                             ---------------------
                             | ICMP information  |
                             |      reply        |
                             ---------------------
     
                      Figure 2 . Mapping Reply Format
     
     
     
     3)   When an ICMP information reply is received, an entry is made
          in  the  mapping table, using the local address found in the
          data portion of the message.
     
     
     Finally, there must be some way of invalidating table entries, to
     
     handle cases like a host on the local network changing addresses:
     
          Whenever a host on the local net comes up, it broadcasts  an
          ICMP  information reply with its source IP and local network
          addresses (figure 3). Other hosts on  the  network  can  use
          this information to update their tables.
     
     
     This message contains the notion of an  "IP  broadcast  address".
     
     This  is  simply  a  means  of mapping an IP address to the local
     
     network broadcast address. It has the effect that any  IP  module
     
     on   a  particular  network  should  accept  datagrams  with  the
     
     broadcast address as the IP destination. The IP broadcast address
     
     
     
                                    -5-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
     
                             ---------------------
                             | local src address |
                             +--------------------
                             | broadcast address |
                             ---------------------
                             | IP src address    |
                             ---------------------
                             | IP broadcast addr |
                             ---------------------
                             | ICMP information  |
                             |      reply        |
                             ---------------------
     
                 Figure 3 . Mapping Initialization Format
     
     
     is discussed further below.  Note that the use  of  this  message
     
     also  lowers the chances of hosts not having the mapping in their
     
     table, and reduces the number of broadcast mapping requests.
     
     
          This approach has several  advantages.   1)  It  is  general
     
     enough  to  work  on  all  local  networks that support broadcast
     
     addressing.  2) It fits into IP without any major changes such as
     
     increasing  the  size  of  the  addresses.  3) Hosts which do not
     
     implement this approach will still get all of their datagrams (at
     
     the  cost  of  high  overhead  for all others on the net).  4) It
     
     allows hosts on the local  network  to  assign  their  own  local
     
     portion  of  their  IP addresses and the mapping between their IP
     
     address and their local network address.
     
     
     
     
     
     
                                    -6-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
          On the negative  side,  it  can  potentially  cause  adverse
     
     network  and  host  performance  when  many  hosts on the net are
     
     coming up, because  of  the  use  of  broadcast  packets.   Also,
     
     performance  can  be degraded by hosts which do not implement the
     
     scheme fully, causing more broadcast packets to be sent. However,
     
     we  expect  the  use  of  broadcast  mapping requests to be a low
     
     frequency occurance.
     
     
     
     
     3  Broadcast Addressing
     
     
          The scheme described above  introduced  the  concept  of  IP
     
     broadcast address.  We believe this is a generally useful notion,
     
     since it allows IP hosts  to  take  advantage  of  an  additional
     
     addressing  capability supported by some local area networks.  We
     
     propose to define the IP broadcast address to be the  IP  address
     
     in  each  class  with  all  its  local  host part bits on. (E.G.,
     
     A.255.255.255 for class A, A.B.255.255 for class B, and A.B.C.255
     
     for  class  C.)  In each case, the address would map to the local
     
     network broadcast address if broadcast addressing was  supported.
     
     On messages coming from other networks, the mapping would be done
     
     in  the  gateway.   If  a  network  did  not  support   broadcast
     
     addressing,  an  ICMP  destination  unreachable  message would be
     
     
     
     
                                    -7-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
     returned.  The only "cost" of this mechanism is that it  reserves
     
     one IP address from each class.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
                                    -8-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
     Appendix A - Revised Information Reply Message
     
     
         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
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |     Type      |      Code     |          Checksum             |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |           Identifier          |        Sequence Number        |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |     Data   .....
        +-+-+-+-+-+-
     
     IP Fields:
     
     Addresses
     
          The address of the source in a information  request  message
          will  be  the  destination of the information reply message.
          To  form  a  information  reply  message,  the  source   and
          destination  addresses  are  simply  reversed, the type code
          changed to 16, and the checksum recomputed.
     
     ICMP Fields:
     
     Type
     
          15 for information request message;
          16 for information reply message.
     
     Code
     
          0 for normal information request/reply
          1 for information reply with local network address  in  data
          portion.
     
     Checksum
     
          The checksum is the 16-bit ones's complement  of  the  one's
          complement  sum  of  the ICMP message starting with the ICMP
          Type.  For computing the checksum, the checksum field should
          be zero.  This checksum may be replaced in the future.
     
     Identifier
     
     
     
                                    -9-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
          If code = 0, an identifier to aid in  matching  request  and
          replies, may be zero.
     
     Sequence Number
     
          If code = 0, a sequence number to aid  in  matching  request
          and replies, may be zero.
     
     Description
     
          Code 0:
               Code 0 may be received from a gateway or a host.
     
               This message may be sent with the source network in the
               IP  header  source  and destination address fields zero
               (which means "this" network).  The replying  IP  module
               should   send   the  reply  with  the  addresses  fully
               specified.  This message is a way for a  host  to  find
               out the number of the network it is on.
     
               The identifier and sequence number may be used  by  the
               echo  sender  to  aid  in matching the replies with the
               requests.  For example, the identifier  might  be  used
               like  a  port  in TCP or UDP to identify a session, and
               the  sequence  number  might  be  incremented  on  each
               request  sent.   The  destination  returns  these  same
               values in the reply.
     
          Code 1:
     
               This message (Information Reply  only)  is  used  by  a
               local area network host to inform another host what its
               local network address in relation to  its  IP  address.
               The  hosts  local  network  address is sent in the data
               portion of the message.
     
     
     
     
     
     
     
     
     
     
     
     
                                   -10-
     
     

IP-Local Area Net Addressing                       September 1982
     IEN-212
     
     
     
     References
     
     [1]  "The Ethernet, A Local Area Network:  Data  Link  Layer  and
          Physical   Layer   Specifications",   Version  1.0,  Digital
          Equipment Corp., Intel, Xerox, Sept. 30, 1980.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
                                   -11-