home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ien / ien-212 < prev    next >
Text File  |  1988-12-02  |  17KB  |  756 lines

  1.  
  2.  
  3.  
  4.  
  5.                  IP - Local Area Network Addressing Issues
  6.  
  7.  
  8.  
  9.                                  IEN - 212
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.                               Robert Gurwitz
  19.                                Robert Hinden
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                        Bolt Beranek and Newman Inc.
  26.                               10 Moulton St.
  27.                       Cambridge, Massachusetts 02238
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.                               September 1982
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.                                prepared for
  46.                  Defense Advanced Research Projects Agency
  47.                  Information Processing Techniques Office
  48.                            1400 Wilson Boulevard
  49.                          Arlington, Virginia 22209
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.      IP-Local Area Net Addressing                       September 1982
  61.      IEN-212
  62.  
  63.  
  64.  
  65.                              Table of Contents
  66.  
  67.  
  68.  
  69.  
  70.      1   Introduction.......................................... 1
  71.  
  72.      2   IP to Local Network Address Mapping................... 2
  73.  
  74.      3   Broadcast Addressing.................................. 7
  75.  
  76.      Appendix A - Revised Information Reply Message............ 9
  77.  
  78.      References............................................... 11
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.                                     -i-
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.      IP-Local Area Net Addressing                       September 1982
  120.      IEN-212
  121.  
  122.  
  123.  
  124.      1  Introduction
  125.  
  126.  
  127.           This note discusses several issues in Internet Protocol (IP)
  128.  
  129.      addressing  in  local  area  networks, such as Ethernet [1]. Such
  130.  
  131.      networks typically have addressing characteristics  and  features
  132.  
  133.      that  are different from earlier network implementations, such as
  134.  
  135.      the ARPANET.  Specifically, we describe approaches  for  handling
  136.  
  137.      IP  to  local network address mapping and broadcast.  The methods
  138.  
  139.      described below are meant to integrate these  features  of  local
  140.  
  141.      networks  into  the  DARPA internet within the spirit of IP, in a
  142.  
  143.      general  manner  that  is  not  tied  to  a  particular   network
  144.  
  145.      implementation.   The  goal  here  is  to  minimize  the need for
  146.  
  147.      changes to IP, by  adopting  conventions  and  methods  that  use
  148.  
  149.      existing mechanisms.
  150.  
  151.  
  152.           Of course, the approaches described  here  are  not  unique.
  153.  
  154.      Other  methods have been described which are similar in spirit to
  155.  
  156.      that presented here.  The purpose of this note  is  to  stimulate
  157.  
  158.      discussion  of  these  issues,  with  the  goal  of arriving at a
  159.  
  160.      consensus on how to  resolve  these  and  possibly  other  issues
  161.  
  162.      relating to the use of local area networks in the internet.
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.                                     -1-
  172.  
  173.  
  174.  
  175.  
  176.  
  177.      IP-Local Area Net Addressing                       September 1982
  178.      IEN-212
  179.  
  180.  
  181.  
  182.      2  IP to Local Network Address Mapping
  183.  
  184.  
  185.           Ethernet differs from other networks in the internet in that
  186.  
  187.      it  uses  local  addresses  which  are  larger  (48 bits) than IP
  188.  
  189.      addresses (32 bits).  With other networks  having  smaller  local
  190.  
  191.      address  formats,  the  mapping  from local network address to IP
  192.  
  193.      address  is  simple:  embed  the  entire  local  address  in  the
  194.  
  195.      appropriate  class  of  IP  address.  For example, in the ARPANET
  196.  
  197.      which has 24-bit addresses, the mapping to a class A IP  address,
  198.  
  199.      which has 24-bits of local host address, is direct:
  200.  
  201.  
  202.                     Host A on IMP B -> 10.A.B(hi).B(lo)
  203.  
  204.  
  205.      where 10 is the class A network number for the ARPANET, the  host
  206.  
  207.      portion  of  the  local  address  is  an 8-bit value, and the IMP
  208.  
  209.      portion is a 16-bit value whose high order  8  bits  are  usually
  210.  
  211.      zero.   Note that mapping a 24-bit ARPANET address to a non-class
  212.  
  213.      A address, would require some  other  approach,  like  truncation
  214.  
  215.      (say,  dropping  the  high order 8 bits of the IMP part) or table
  216.  
  217.      lookup.
  218.  
  219.  
  220.           A similar, but  more  severe,  problem  occurs  with  48-bit
  221.  
  222.      Ethernet  addresses.  In this case, there may be no simple direct
  223.  
  224.      mapping (like truncation) to the 32-bit  IP  address,  since  the
  225.  
  226.  
  227.  
  228.  
  229.                                     -2-
  230.  
  231.  
  232.  
  233.  
  234.  
  235.      IP-Local Area Net Addressing                       September 1982
  236.      IEN-212
  237.  
  238.  
  239.  
  240.      address  of  an individual Ethernet controller is a unique 48-bit
  241.  
  242.      value  assigned  by  the  manufacturer  that  could   conceivably
  243.  
  244.      conflict with other addresses on the local network if a subset of
  245.  
  246.      the 48-bits is used to  form  the  local  host  part  of  the  IP
  247.  
  248.      address.
  249.  
  250.  
  251.           To solve this potential conflict, we choose a  mapping  that
  252.  
  253.      depends  on  table  lookup.   Each  host  on the local network is
  254.  
  255.      assigned an IP address with a unique local  host  part  for  that
  256.  
  257.      network.   The  IP module in that host "knows" its own IP address
  258.  
  259.      and uses it to send and receive IP datagrams.  Other hosts on the
  260.  
  261.      local network (including gateways), maintain tables which map the
  262.  
  263.      IP addresses of the other  hosts  to  their  corresponding  local
  264.  
  265.      addresses.
  266.  
  267.  
  268.           This table  may  be  "hardwired"  into  the  IP  modules  or
  269.  
  270.      initialized  when  the  host  comes  up.  A better implementation
  271.  
  272.      would be to maintain the table as  a  cache,  whose  entries  are
  273.  
  274.      updated dynamically while the host is active.  To do this, we can
  275.  
  276.      make use of a feature supported  by  many  local  area  networks,
  277.  
  278.      "broadcast  addressing".   This  feature  allows  messages  to be
  279.  
  280.      received by all hosts on the local network, by sending them to  a
  281.  
  282.      specially designated broadcast address (in Ethernet the broadcast
  283.  
  284.  
  285.  
  286.  
  287.                                     -3-
  288.  
  289.  
  290.  
  291.  
  292.  
  293.      IP-Local Area Net Addressing                       September 1982
  294.      IEN-212
  295.  
  296.  
  297.  
  298.      address is "all ones").   To  map  a  given  IP  address  to  its
  299.  
  300.      corresponding  local  address,  the IP address is used to look up
  301.  
  302.      the local address in the mapping table.  If the mapping is found,
  303.  
  304.      the   local   address  is  used  in  the  local  network  header.
  305.  
  306.      Otherwise, if no mapping is found in the table:
  307.  
  308.      1)   Send the datagram which was not in the mapping table to  the
  309.           local  broadcast  address  (see figure 1).  All hosts on the
  310.           network including the correct  one  (the  one  specified  by
  311.           destination  IP  address  in  the datagram) will receive the
  312.           datagram.
  313.  
  314.                              ---------------------
  315.                              | local src addr -A |
  316.                              +--------------------
  317.                              | broadcast address |
  318.                              ---------------------
  319.                              | IP src addr - A   |
  320.                              ---------------------
  321.                              | IP dst addr - B   |
  322.                              ---------------------
  323.                              | Datagram needing  |
  324.                              |     mapping       |
  325.                              ---------------------
  326.  
  327.                        Figure 1 . Broadcast Datagram
  328.  
  329.  
  330.  
  331.      2)   The host on the network that recognizes its  IP  address  in
  332.           the  datagram  and notices that the datagram was received on
  333.           the local network bradcast address sends an ICMP information
  334.           reply  message  to the host that broadcast the request, with
  335.           its local address filled in and its local network address in
  336.           the data portion of the message (see figure 2).  ** It  also
  337.      _______________
  338.      **  Currently,  there  is  no  data  area  defined  in  the  ICMP
  339.      Information Reply message.  We propose to add one for the purpose
  340.      described in the document.  Appendix A  contains  the  format  of
  341.      ICMP Information Reply message with the data area.
  342.  
  343.  
  344.  
  345.                                     -4-
  346.  
  347.  
  348.  
  349.  
  350.  
  351.      IP-Local Area Net Addressing                       September 1982
  352.      IEN-212
  353.  
  354.  
  355.  
  356.           accepts this broadcast datagram since  it  contains  its  IP
  357.           address as the destination.
  358.  
  359.                              ---------------------
  360.                              | local src addr -B |
  361.                              +--------------------
  362.                              | local dst addr -A |
  363.                              ---------------------
  364.                              | IP src addr - B   |
  365.                              ---------------------
  366.                              | IP dst addr - A   |
  367.                              ---------------------
  368.                              | ICMP information  |
  369.                              |      reply        |
  370.                              ---------------------
  371.  
  372.                       Figure 2 . Mapping Reply Format
  373.  
  374.  
  375.  
  376.      3)   When an ICMP information reply is received, an entry is made
  377.           in  the  mapping table, using the local address found in the
  378.           data portion of the message.
  379.  
  380.  
  381.      Finally, there must be some way of invalidating table entries, to
  382.  
  383.      handle cases like a host on the local network changing addresses:
  384.  
  385.           Whenever a host on the local net comes up, it broadcasts  an
  386.           ICMP  information reply with its source IP and local network
  387.           addresses (figure 3). Other hosts on  the  network  can  use
  388.           this information to update their tables.
  389.  
  390.  
  391.      This message contains the notion of an  "IP  broadcast  address".
  392.  
  393.      This  is  simply  a  means  of mapping an IP address to the local
  394.  
  395.      network broadcast address. It has the effect that any  IP  module
  396.  
  397.      on   a  particular  network  should  accept  datagrams  with  the
  398.  
  399.      broadcast address as the IP destination. The IP broadcast address
  400.  
  401.  
  402.  
  403.                                     -5-
  404.  
  405.  
  406.  
  407.  
  408.  
  409.      IP-Local Area Net Addressing                       September 1982
  410.      IEN-212
  411.  
  412.  
  413.  
  414.  
  415.                              ---------------------
  416.                              | local src address |
  417.                              +--------------------
  418.                              | broadcast address |
  419.                              ---------------------
  420.                              | IP src address    |
  421.                              ---------------------
  422.                              | IP broadcast addr |
  423.                              ---------------------
  424.                              | ICMP information  |
  425.                              |      reply        |
  426.                              ---------------------
  427.  
  428.                  Figure 3 . Mapping Initialization Format
  429.  
  430.  
  431.      is discussed further below.  Note that the use  of  this  message
  432.  
  433.      also  lowers the chances of hosts not having the mapping in their
  434.  
  435.      table, and reduces the number of broadcast mapping requests.
  436.  
  437.  
  438.           This approach has several  advantages.   1)  It  is  general
  439.  
  440.      enough  to  work  on  all  local  networks that support broadcast
  441.  
  442.      addressing.  2) It fits into IP without any major changes such as
  443.  
  444.      increasing  the  size  of  the  addresses.  3) Hosts which do not
  445.  
  446.      implement this approach will still get all of their datagrams (at
  447.  
  448.      the  cost  of  high  overhead  for all others on the net).  4) It
  449.  
  450.      allows hosts on the local  network  to  assign  their  own  local
  451.  
  452.      portion  of  their  IP addresses and the mapping between their IP
  453.  
  454.      address and their local network address.
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.                                     -6-
  462.  
  463.  
  464.  
  465.  
  466.  
  467.      IP-Local Area Net Addressing                       September 1982
  468.      IEN-212
  469.  
  470.  
  471.  
  472.           On the negative  side,  it  can  potentially  cause  adverse
  473.  
  474.      network  and  host  performance  when  many  hosts on the net are
  475.  
  476.      coming up, because  of  the  use  of  broadcast  packets.   Also,
  477.  
  478.      performance  can  be degraded by hosts which do not implement the
  479.  
  480.      scheme fully, causing more broadcast packets to be sent. However,
  481.  
  482.      we  expect  the  use  of  broadcast  mapping requests to be a low
  483.  
  484.      frequency occurance.
  485.  
  486.  
  487.  
  488.  
  489.      3  Broadcast Addressing
  490.  
  491.  
  492.           The scheme described above  introduced  the  concept  of  IP
  493.  
  494.      broadcast address.  We believe this is a generally useful notion,
  495.  
  496.      since it allows IP hosts  to  take  advantage  of  an  additional
  497.  
  498.      addressing  capability supported by some local area networks.  We
  499.  
  500.      propose to define the IP broadcast address to be the  IP  address
  501.  
  502.      in  each  class  with  all  its  local  host part bits on. (E.G.,
  503.  
  504.      A.255.255.255 for class A, A.B.255.255 for class B, and A.B.C.255
  505.  
  506.      for  class  C.)  In each case, the address would map to the local
  507.  
  508.      network broadcast address if broadcast addressing was  supported.
  509.  
  510.      On messages coming from other networks, the mapping would be done
  511.  
  512.      in  the  gateway.   If  a  network  did  not  support   broadcast
  513.  
  514.      addressing,  an  ICMP  destination  unreachable  message would be
  515.  
  516.  
  517.  
  518.  
  519.                                     -7-
  520.  
  521.  
  522.  
  523.  
  524.  
  525.      IP-Local Area Net Addressing                       September 1982
  526.      IEN-212
  527.  
  528.  
  529.  
  530.      returned.  The only "cost" of this mechanism is that it  reserves
  531.  
  532.      one IP address from each class.
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.                                     -8-
  578.  
  579.  
  580.  
  581.  
  582.  
  583.      IP-Local Area Net Addressing                       September 1982
  584.      IEN-212
  585.  
  586.  
  587.  
  588.      Appendix A - Revised Information Reply Message
  589.  
  590.  
  591.          0                   1                   2                   3
  592.          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
  593.         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  594.         |     Type      |      Code     |          Checksum             |
  595.         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  596.         |           Identifier          |        Sequence Number        |
  597.         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  598.         |     Data   .....
  599.         +-+-+-+-+-+-
  600.  
  601.      IP Fields:
  602.  
  603.      Addresses
  604.  
  605.           The address of the source in a information  request  message
  606.           will  be  the  destination of the information reply message.
  607.           To  form  a  information  reply  message,  the  source   and
  608.           destination  addresses  are  simply  reversed, the type code
  609.           changed to 16, and the checksum recomputed.
  610.  
  611.      ICMP Fields:
  612.  
  613.      Type
  614.  
  615.           15 for information request message;
  616.           16 for information reply message.
  617.  
  618.      Code
  619.  
  620.           0 for normal information request/reply
  621.           1 for information reply with local network address  in  data
  622.           portion.
  623.  
  624.      Checksum
  625.  
  626.           The checksum is the 16-bit ones's complement  of  the  one's
  627.           complement  sum  of  the ICMP message starting with the ICMP
  628.           Type.  For computing the checksum, the checksum field should
  629.           be zero.  This checksum may be replaced in the future.
  630.  
  631.      Identifier
  632.  
  633.  
  634.  
  635.                                     -9-
  636.  
  637.  
  638.  
  639.  
  640.  
  641.      IP-Local Area Net Addressing                       September 1982
  642.      IEN-212
  643.  
  644.  
  645.  
  646.           If code = 0, an identifier to aid in  matching  request  and
  647.           replies, may be zero.
  648.  
  649.      Sequence Number
  650.  
  651.           If code = 0, a sequence number to aid  in  matching  request
  652.           and replies, may be zero.
  653.  
  654.      Description
  655.  
  656.           Code 0:
  657.                Code 0 may be received from a gateway or a host.
  658.  
  659.                This message may be sent with the source network in the
  660.                IP  header  source  and destination address fields zero
  661.                (which means "this" network).  The replying  IP  module
  662.                should   send   the  reply  with  the  addresses  fully
  663.                specified.  This message is a way for a  host  to  find
  664.                out the number of the network it is on.
  665.  
  666.                The identifier and sequence number may be used  by  the
  667.                echo  sender  to  aid  in matching the replies with the
  668.                requests.  For example, the identifier  might  be  used
  669.                like  a  port  in TCP or UDP to identify a session, and
  670.                the  sequence  number  might  be  incremented  on  each
  671.                request  sent.   The  destination  returns  these  same
  672.                values in the reply.
  673.  
  674.           Code 1:
  675.  
  676.                This message (Information Reply  only)  is  used  by  a
  677.                local area network host to inform another host what its
  678.                local network address in relation to  its  IP  address.
  679.                The  hosts  local  network  address is sent in the data
  680.                portion of the message.
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.                                    -10-
  694.  
  695.  
  696.  
  697.  
  698.  
  699.      IP-Local Area Net Addressing                       September 1982
  700.      IEN-212
  701.  
  702.  
  703.  
  704.      References
  705.  
  706.      [1]  "The Ethernet, A Local Area Network:  Data  Link  Layer  and
  707.           Physical   Layer   Specifications",   Version  1.0,  Digital
  708.           Equipment Corp., Intel, Xerox, Sept. 30, 1980.
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.                                    -11-
  752.  
  753.  
  754.  
  755.  
  756.