home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 800s / rfc824.txt < prev    next >
Text File  |  1991-10-16  |  56KB  |  2,380 lines

  1.  
  2.       DOS-26 Rev A                                Virtual Local Network
  3.       RFC 824
  4.  
  5.  
  6.  
  7.                       THE CRONUS VIRTUAL LOCAL NETWORK
  8.  
  9.                             William I. MacGregor
  10.                               Daniel C. Tappan
  11.                         Bolt Beranek and Newman Inc.
  12.  
  13.                                25 August 1982
  14.  
  15.  
  16.       [The purpose of this note is to describe the CRONUS Virtual
  17.       Local Network, especially the addressing related features.
  18.       These features include a method for mapping between Internet
  19.       Addresses and Local Network addresses.  This is a topic of 
  20.       current concern in the ARPA Internet community.  This note is
  21.       intended to stimulate discussion.  This is not a specification
  22.       of an Internet Standard.]
  23.  
  24.  
  25.  
  26.  
  27.       1  Purpose and Scope
  28.  
  29.  
  30.            This note defines the Cronus (1) Virtual Local Network
  31.  
  32.       (VLN), a facility which provides interhost message transport to
  33.  
  34.       the Cronus Distributed Operating System.  The VLN consists of a
  35.  
  36.       'client interface specification' and an 'implementation'; the
  37.  
  38.       client interface is expected to be available on every Cronus
  39.  
  40.       host.  Client processes can send and receive datagrams using
  41.  
  42.       specific, broadcast, or multicast addressing as defined in the
  43.  
  44.       interface specification.
  45.  
  46.  
  47.       _______________
  48.       (1) The Cronus Distributed Operating System is being designed  by
  49.       Bolt  Beranek  and Newman Inc., as a component of the Distributed
  50.       Systems Technology Program  sponsored  by  Rome  Air  Development
  51.       Center.   This work is supported by the DOS Design/Implementation
  52.       contract, F30602-81-C-0132.
  53.  
  54.  
  55.  
  56.                                       1
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.       DOS-26 Rev A                                Virtual Local Network
  65.       RFC 824
  66.  
  67.  
  68.  
  69.            From the viewpoint of other Cronus system software and
  70.  
  71.       application programs, the VLN stands in place of a direct
  72.  
  73.       interface to the physical local network (PLN).  This additional
  74.  
  75.       level of abstraction is defined to meet two major system
  76.  
  77.       objectives:
  78.  
  79.         *  COMPATIBILITY.  The VLN defines a communication facility
  80.            which is compatible with the Internet Protocol (IP)
  81.            developed by DARPA; by implication the VLN is compatible
  82.            with higher-level protocols such as the Transmission Control
  83.            Protocol (TCP) based on IP.
  84.  
  85.         *  SUBSTITUTABILITY.  Cronus software built above the VLN is
  86.            dependent only upon the VLN interface and not its
  87.            implementation.  It is possible to substitute one physical
  88.            local network for another in the VLN implementation,
  89.            provided that the VLN interface semantics are maintained.
  90.  
  91.  
  92.            (This note assumes the reader is familiar with the concepts
  93.  
  94.       and terminology of the DARPA Internet Program; reference [6] is a
  95.  
  96.       compilation of the important protocol specifications and other
  97.  
  98.       documents.  Documents in [6] of special significance here are [5]
  99.  
  100.       and [4].)
  101.  
  102.  
  103.            The compatibility goal is motivated by factors relating to
  104.  
  105.       the Cronus design and its development environment.  A large body
  106.  
  107.       of software has evolved, and continues to evolve, in the internet
  108.  
  109.       community fostered by DARPA.  For example, the compatibility goal
  110.  
  111.  
  112.  
  113.                                       2
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.       DOS-26 Rev A                                Virtual Local Network
  123.       RFC 824
  124.  
  125.  
  126.  
  127.       permits the Cronus design to assimilate existing software
  128.  
  129.       components providing electronic mail, remote terminal access, and
  130.  
  131.       file transfer in a straightforward manner.  In addition to the
  132.  
  133.       roles of such services in the Cronus system, they are needed as
  134.  
  135.       support for the design and development process.  The prototype
  136.  
  137.       Cronus cluster, called the Advanced Development Model (ADM), will
  138.  
  139.       be connected to the ARPANET, and it is important that the ADM
  140.  
  141.       conform to the standards and conventions of the DARPA internet
  142.  
  143.       community.
  144.  
  145.  
  146.            The substitutability goal reflects the belief that different
  147.  
  148.       instances of the Cronus cluster will utilize different physical
  149.  
  150.       local networks.  Substitution may be desirable for reasons of
  151.  
  152.       cost, performance, or other properties of the physical local
  153.  
  154.       network such as mechanical and electrical ruggedness.  The
  155.  
  156.       existence of the VLN interface definition suggests a procedure
  157.  
  158.       for physical local network substitution, namely, re-
  159.  
  160.       implementation of the VLN interface on each Cronus host.  The
  161.  
  162.       implementations will be functionally equivalent but can be
  163.  
  164.       expected to differ along dimensions not specified by the VLN
  165.  
  166.       interface definition.  Since different physical local networks
  167.  
  168.  
  169.  
  170.  
  171.                                       3
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.       DOS-26 Rev A                                Virtual Local Network
  181.       RFC 824
  182.  
  183.  
  184.  
  185.       are often quite similar, the task of "re-implementing" the VLN is
  186.  
  187.       probably much less difficult than building the first
  188.  
  189.       implementation; small modifications to an existing, exemplary
  190.  
  191.       implementation may suffice.
  192.  
  193.  
  194.            The concepts of the Cronus VLN, and in particular the VLN
  195.  
  196.       implementation based on Ethernet described in Section 4, have
  197.  
  198.       significance beyond their application in the Cronus system.  Many
  199.  
  200.       organizations are now beginning to install local networks and
  201.  
  202.       immediately confront the compatibility issue.  For a number of
  203.  
  204.       universities, for example, the compatibility problem is precisely
  205.  
  206.       the interoperability of the Ethernet and the DARPA internet.
  207.  
  208.       Although perhaps less immediate, the substitutability issue will
  209.  
  210.       also be faced by other organizations as local network technology
  211.  
  212.       advances, and the transfer of existing system and application
  213.  
  214.       software to a new physical local network base becomes an economic
  215.  
  216.       necessity.
  217.  
  218.  
  219.            Figure 1 shows the position of the VLN in the lowest layers
  220.  
  221.       of the Cronus protocol hierarchy.  The VLN interface
  222.  
  223.       specification given in the next section is actually a meta-
  224.  
  225.       specification, like the specifications of IP and TCP, in that the
  226.  
  227.  
  228.  
  229.                                       4
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.       DOS-26 Rev A                                Virtual Local Network
  239.       RFC 824
  240.  
  241.  
  242.  
  243.       programming details of the interface are host-dependent and
  244.  
  245.       unspecified.  The precise representation of the VLN data
  246.  
  247.       structures and operations can be expected to vary from machine to
  248.  
  249.       machine, but the functional capabilities of the interface are the
  250.  
  251.       same regardless of the host.
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.                                      .
  259.                                      .
  260.                     |                .                  |
  261.                     |-----------------------------------|
  262.                     | Transmission  |  User      |      |
  263.                     | Control       |  Datagram  | ...  |
  264.                     | Protocol      |  Protocol  |      |
  265.                     |-----------------------------------|
  266.                     |        Internet Protocol          |
  267.                     |              (IP)                 |
  268.                     |-----------------------------------|
  269.                     |      Virtual Local Network        |
  270.                     |             (VLN)                 |
  271.                     |-----------------------------------|
  272.                     |      Physical Local Network       |
  273.                     |       (PLN, e.g. Ethernet)        |
  274.                      -----------------------------------
  275.  
  276.  
  277.                      Figure 1 . Cronus Protocol Layering
  278.  
  279.  
  280.  
  281.            The VLN is completely compatible with the Internet Protocol
  282.  
  283.       as defined in [5], i.e., no changes or extensions to IP are
  284.  
  285.  
  286.  
  287.                                       5
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.       DOS-26 Rev A                                Virtual Local Network
  297.       RFC 824
  298.  
  299.  
  300.  
  301.       required to implement IP above the VLN.  In fact, this was a
  302.  
  303.       requirement on the VLN design; a consequence was the timely
  304.  
  305.       completion of the VLN design and avoidance of the lengthy delays
  306.  
  307.       which often accompany attempts to change or extend a widely-
  308.  
  309.       accepted standard.
  310.  
  311.  
  312.            The following sections define the VLN client interface and
  313.  
  314.       illustrate how the VLN implementation might be organized for an
  315.  
  316.       Ethernet PLN.
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.       2  The VLN-to-Client Interface
  324.  
  325.  
  326.            The VLN layer provides a datagram transport service among
  327.  
  328.       hosts in a Cronus 'cluster', and between these hosts and other
  329.  
  330.       hosts in the DARPA internet.  The hosts belonging to a cluster
  331.  
  332.       are directly attached to the same physical local network, but the
  333.  
  334.       VLN hides the peculiarities of the PLN from other Cronus
  335.  
  336.       software.  Communication with hosts outside the cluster is
  337.  
  338.       achieved through some number of 'internet gateways', shown in
  339.  
  340.       Figure 2, connected to the cluster.  The VLN layer is responsible
  341.  
  342.  
  343.  
  344.  
  345.                                       6
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.       DOS-26 Rev A                                Virtual Local Network
  355.       RFC 824
  356.  
  357.  
  358.  
  359.       for routing datagrams to a gateway if they are addressed to hosts
  360.  
  361.       outside the cluster, and for delivering incoming datagrams to the
  362.  
  363.       appropriate VLN host.  A VLN is viewed as a network in the
  364.  
  365.       internet, and thus has an internet network number.  (2)
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.       _______________
  394.       (2) The PLN could possess its own network number, different  from
  395.       the  network  number  of  the  VLN  it implements, or the network
  396.       numbers could be the same.  Different  numbers  would  complicate
  397.       the  gateways  somewhat,  but  are  consistent  with  the VLN and
  398.       internet models.
  399.  
  400.  
  401.  
  402.  
  403.                                       7
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.       DOS-26 Rev A                                Virtual Local Network
  413.       RFC 824
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.                      to internet
  424.                       network X
  425.                           |
  426.                           |
  427.             -----       -----       -----       -----
  428.            |host1|     |gtwyA|     |host2|     |host3|
  429.             -----       -----       -----       -----
  430.               |           |           |           |
  431.           --------------------------------------------------
  432.                   |           |           |           |
  433.                 -----       -----       -----       -----
  434.                |host4|     |host5|     |gtwyB|     |host6|
  435.                 -----       -----       -----       -----
  436.                                           |
  437.                                           |
  438.                                      to internet
  439.                                       network Y
  440.  
  441.  
  442.                  Figure 2 . A Virtual Local Network Cluster
  443.  
  444.  
  445.  
  446.            The VLN interface will have one client process on each host,
  447.  
  448.       normally the host's IP implementation.  The one "client process"
  449.  
  450.       may, in fact, be composed of several host processes; but the VLN
  451.  
  452.       layer will not distinguish among them, i.e., it performs no
  453.  
  454.       multiplexing/demultiplexing function.  (3)
  455.       _______________
  456.       (3) In the  Cronus  system,  multiplexing/demultiplexing  of  the
  457.       datagram  stream  will be performed above the IP level, primarily
  458.  
  459.  
  460.  
  461.                                       8
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.       DOS-26 Rev A                                Virtual Local Network
  471.       RFC 824
  472.  
  473.  
  474.  
  475.            The structure of messages which pass through the VLN
  476.  
  477.       interface between client processes and the VLN implementation is
  478.  
  479.       identical to the structure of internet datagrams constructed in
  480.  
  481.       accordance with the Internet Protocol.  Any representation for
  482.  
  483.       internet datagrams is also a satisfactory representation for VLN
  484.  
  485.       datagrams, and in practice this representation will vary from
  486.  
  487.       host to host.  The VLN definition merely asserts that there is
  488.  
  489.       ONE well-defined representation for internet datagrams, and thus
  490.  
  491.       VLN datagrams, on any host supporting the VLN interface.  The
  492.  
  493.       argument name "Datagram" in the VLN operation definitions below
  494.  
  495.       refers to this well-defined but host-dependent datagram
  496.  
  497.       representation.
  498.  
  499.  
  500.            The VLN guarantees that a datagram of 576 or fewer octets
  501.  
  502.       (i.e., the Total Length field of its internet header is less than
  503.  
  504.       or equal to 576) can be transferred between any two VLN clients.
  505.  
  506.       Larger datagrams may be transferred between some client pairs.
  507.  
  508.       Clients should generally avoid sending datagrams exceeding 576
  509.  
  510.       octets unless there is clear need to do so, and the sender is
  511.  
  512.       certain that all hosts involved can process the outsize
  513.       _______________
  514.       in conjunction with Cronus object management.
  515.  
  516.  
  517.  
  518.  
  519.                                       9
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.       DOS-26 Rev A                                Virtual Local Network
  529.       RFC 824
  530.  
  531.  
  532.  
  533.       datagrams.
  534.  
  535.  
  536.            The representation of an VLN datagram is unconstrained by
  537.  
  538.       the VLN specification, and the VLN implementor has many
  539.  
  540.       reasonable alternatives.  Perhaps the simplest representation is
  541.  
  542.       a contiguous block of memory locations, either passed by
  543.  
  544.       reference or copied across the VLN-to-client interface.  It may
  545.  
  546.       be beneficial to represent a datagram as a linked list instead,
  547.  
  548.       however, in order to reduce the number of times datagram text is
  549.  
  550.       copied as the datagram passes through the protocol hierarchy at
  551.  
  552.       the sending and receiving hosts.  When a message is passing down
  553.  
  554.       (towards the physical layer) it is successively "wrapped" by the
  555.  
  556.       protocol layers.  Addition of the "wrapper"--header and trailer
  557.  
  558.       fields--can be done without copying the message text if the
  559.  
  560.       header and trailer can be linked into the message representation.
  561.  
  562.       In the particular, when an IP implementation is the client of the
  563.  
  564.       VLN layer a linked structure is also desirable to permit
  565.  
  566.       'reassembly' of datagrams (the merger of several 'fragment'
  567.  
  568.       datagrams into one larger datagram) inside the IP layer without
  569.  
  570.       copying data repeatedly.  If properly designed, one linked list
  571.  
  572.       structure can speed up both wrapping/unwrapping and datagram
  573.  
  574.  
  575.  
  576.  
  577.                                      10
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.       DOS-26 Rev A                                Virtual Local Network
  587.       RFC 824
  588.  
  589.  
  590.  
  591.       reassembly in the IP layer.
  592.  
  593.  
  594.            Although the structure of internet and VLN datagrams is
  595.  
  596.       identical, the VLN-to-client interface places its own
  597.  
  598.       interpretation on internet header fields, and differs from the
  599.  
  600.       IP-to-client interface in significant respects:
  601.  
  602.         1.  The VLN layer utilizes only the Source Address, Destination
  603.             Address, Total Length, and Header Checksum fields in the
  604.             internet datagram; other fields are accurately transmitted
  605.             from the sending to the receiving client.
  606.  
  607.         2.  Internet datagram fragmentation and reassembly is not
  608.             performed in the VLN layer, nor does the VLN layer
  609.             implement any aspect of internet datagram option
  610.             processing.
  611.  
  612.         3.  At the VLN interface, a special interpretation is placed
  613.             upon the Destination Address in the internet header, which
  614.             allows VLN broadcast and multicast addresses to be encoded
  615.             in the internet address structure.
  616.  
  617.         4.  With high probability, duplicate delivery of datagrams sent
  618.             between hosts on the same VLN does not occur.
  619.  
  620.         5.  Between two VLN clients S and R in the same Cronus cluster,
  621.             the sequence of datagrams received by R is a subsequence of
  622.             the sequence sent by S to R; a stronger sequencing property
  623.             holds for broadcast and multicast addressing.
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.                                      11
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.       DOS-26 Rev A                                Virtual Local Network
  645.       RFC 824
  646.  
  647.  
  648.  
  649.       2.1  VLN Addressing
  650.  
  651.  
  652.            In the DARPA internet an 'internet address' is defined to be
  653.  
  654.       a 32 bit quantity which is partitioned into two fields, a network
  655.  
  656.       number and a 'local address'.  VLN addresses share this basic
  657.  
  658.       structure, and are perceived by hosts outside the Cronus system
  659.  
  660.       as ordinary internet addresses.  A sender outside a Cronus
  661.  
  662.       cluster may direct an internet datagram into the cluster by
  663.  
  664.       specifying the VLN network number in the network number field of
  665.  
  666.       the destination address; senders in the cluster may transmit
  667.  
  668.       messages to internet hosts outside the cluster in a similar way.
  669.  
  670.       The VLN in a Cronus cluster, however, attaches special meaning to
  671.  
  672.       the local address field of a VLN address, as explained below.
  673.  
  674.  
  675.            Each network in the internet community is assigned a
  676.  
  677.       'class', either A, B, or C, and a network number in its class.
  678.  
  679.       The partitioning of the 32 bit internet address into network
  680.  
  681.       number and local address fields is a function of the class of the
  682.  
  683.       network number, as follows:
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.                                      12
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.       DOS-26 Rev A                                Virtual Local Network
  703.       RFC 824
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.                                Width of            Width of
  712.                              Network Number      Local Address
  713.  
  714.               Class A            7 bits             24 bits
  715.  
  716.               Class B           14 bits             16 bits
  717.  
  718.               Class C           21 bits              8 bits
  719.  
  720.  
  721.                       Table 1. Internet Address Formats
  722.  
  723.  
  724.       The bits not included in the network number or local address
  725.  
  726.       fields encode the network class, e.g., a 3 bit prefix of 110
  727.  
  728.       designates a class C address (see [4]).
  729.  
  730.  
  731.            The interpretation of the local address field of an internet
  732.  
  733.       address is the responsibility of the network designated in the
  734.  
  735.       network number field.  In the ARPANET (a class A network, with
  736.  
  737.       network number 10) the local address refers to a specific
  738.  
  739.       physical host; this is the most common use of the local address
  740.  
  741.       field.  VLN addresses, in contrast, may refer to all hosts
  742.  
  743.       (broadcast) or groups of hosts (multicast) in a Cronus cluster,
  744.  
  745.       as well as specific hosts inside or outside of the Cluster.
  746.  
  747.       Specific, broadcast, and multicast addresses are all encoded in
  748.  
  749.  
  750.  
  751.                                      13
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.       DOS-26 Rev A                                Virtual Local Network
  761.       RFC 824
  762.  
  763.  
  764.  
  765.       the VLN local address field.  (4)
  766.  
  767.  
  768.            The meaning of the local address field of a VLN address is
  769.  
  770.       defined in the table below.
  771.  
  772.  
  773.  
  774.  
  775.  
  776.               ADDRESS MODES         VLN LOCAL ADDRESS VALUES
  777.  
  778.  
  779.               Specific Host             0     to  1,023
  780.  
  781.               Multicast                 1,024 to 65,534
  782.  
  783.               Broadcast                          65,535
  784.  
  785.  
  786.                       Table 2. VLN Local Address Modes
  787.  
  788.  
  789.       In order to represent the full range of specific, broadcast, and
  790.  
  791.       multicast addresses in the local address field, a VLN network
  792.  
  793.       should be either class A or class B.  If a VLN is a class A
  794.  
  795.       internet network, a VLN local address occupies the low-order 16
  796.  
  797.       bits of the 24 bit internet local address field, and the upper 8
  798.  
  799.       bits of the internet local address are zero.  If a VLN is a class
  800.       _______________
  801.       (4) The ability of hosts outside a  Cronus  cluster  to  transmit
  802.       datagrams  with  VLN broadcast or multicast destination addresses
  803.       into the cluster may be restricted by the cluster gateway(s), for
  804.       reasons of system security.
  805.  
  806.  
  807.  
  808.  
  809.                                      14
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.       DOS-26 Rev A                                Virtual Local Network
  819.       RFC 824
  820.  
  821.  
  822.  
  823.       B network, the internet local address field is fully utilized by
  824.  
  825.       the VLN local address.
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.       2.2  VLN Operations
  833.  
  834.  
  835.            There are seven operations defined at the VLN interface and
  836.  
  837.       available to the VLN client on each host.  An implementation of
  838.  
  839.       the VLN interface has wide lattitude in the presentation of these
  840.  
  841.       operations to the client; for example, the operations may or may
  842.  
  843.       not return error codes.
  844.  
  845.  
  846.            A VLN implementation may define the operations to occur
  847.  
  848.       synchronously or asynchronously with respect to the client's
  849.  
  850.       computation.  We expect that the ResetVLNInterface, MyVLNAddress,
  851.  
  852.       SendVLNDatagram, PurgeMAddresses, AttendMAddress, and
  853.  
  854.       IgnoreMAddress operations will usually be synchronous with
  855.  
  856.       respect to the client, but ReceiveVLNDatagram will usually be
  857.  
  858.       asynchronous, i.e., the client may initiate the operation,
  859.  
  860.       continue to compute, and at some later time be notified that a
  861.  
  862.       datagram is available.  (The alternatives to asynchronous
  863.  
  864.  
  865.  
  866.  
  867.                                      15
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.       DOS-26 Rev A                                Virtual Local Network
  877.       RFC 824
  878.  
  879.  
  880.  
  881.       ReceiveVLNDatagram are A) a blocking receive operation; and B) a
  882.  
  883.       non-blocking but synchronous receive operation, which returns a
  884.  
  885.       failure code immediately if a datagram is not available.  Either
  886.  
  887.       alternative may satisfy particular requirements, but an
  888.  
  889.       asynchronous receive subsumes these and is more generally
  890.  
  891.       useful.) At a minimum, the client must have fully synchronous
  892.  
  893.       access to each of the operations; more elaborate mechanisms may
  894.  
  895.       be provided at the option of the VLN implementation.
  896.  
  897.  
  898.       VLN OPERATIONS
  899.  
  900.  
  901.  
  902.           ResetVLNInterface
  903.  
  904.               The VLN layer for this host is reset (e.g., for the
  905.               Ethernet VLN implementation the operation ClearVPMap is
  906.               performed, and a frame of type "Cronus VLN" and subtype
  907.               "Mapping Update" is broadcast; see Section 4.2).  This
  908.               operation does not affect the set of attended VLN
  909.               multicast addresses.
  910.  
  911.           function MyVLNAddress()
  912.  
  913.               Returns the specific VLN address of this host; this can
  914.               always be done without communication with any other host.
  915.  
  916.           SendVLNDatagram(Datagram)
  917.  
  918.               When this operation completes, the VLN layer has copied
  919.               the Datagram and it is either "in transmission" or
  920.               "delivered", i.e., the transmitting process cannot assume
  921.               that the message has been delivered when SendVLNDatagram
  922.  
  923.  
  924.  
  925.                                      16
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.       DOS-26 Rev A                                Virtual Local Network
  935.       RFC 824
  936.  
  937.  
  938.  
  939.               completes.
  940.  
  941.           ReceiveVLNDatagram(Datagram)
  942.  
  943.               When this operation completes, Datagram is a
  944.               representation of a VLN datagram sent by a VLN client and
  945.               not previously received by the client invoking
  946.               ReceiveVLNDatagram.
  947.  
  948.           PurgeMAddresses()
  949.  
  950.               When this operation completes, no VLN multicast addresses
  951.               are registered with the local VLN component.
  952.  
  953.           function AttendMAddress(MAddress)
  954.  
  955.               If this operation returns True then MAddress, which must
  956.               be a VLN multicast address, is registered as an "alias"
  957.               for this host, and messages addressed to MAddress by VLN
  958.               clients will be delivered to the client on this host.
  959.  
  960.           IgnoreMAddress(MAddress)
  961.  
  962.               When this operation completes, MAddress is not registered
  963.               as a multicast address for the client on this host.
  964.  
  965.  
  966.            Whenever a Cronus host comes up, ResetVLNInterface and
  967.  
  968.       PurgeMAddresses are performed implicitly by the VLN layer before
  969.  
  970.       it will accept a request from the client or incoming traffic from
  971.  
  972.       the PLN.  They may also be invoked by the client during normal
  973.  
  974.       operation.  As described in Section 4.2 below, a VLN component
  975.  
  976.       may depend upon state information obtained dynamically from other
  977.  
  978.       hosts, and there is a possibility that incorrect information
  979.  
  980.  
  981.  
  982.  
  983.                                      17
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.       DOS-26 Rev A                                Virtual Local Network
  993.       RFC 824
  994.  
  995.  
  996.  
  997.       might enter a component's state tables.  (This might happen, for
  998.  
  999.       example, if the PLN address of a Cronus host were changed but its
  1000.  
  1001.       VLN address preserved--the old VLN-to-PLN address mappings held
  1002.  
  1003.       by other hosts would then be incorrect.) A cautious VLN client
  1004.  
  1005.       could call ResetVLNInterface at periodic intervals (every hour,
  1006.  
  1007.       say) to force the VLN component to reconstitute its dynamic
  1008.  
  1009.       tables.
  1010.  
  1011.  
  1012.            A VLN component will place a limit on the number of
  1013.  
  1014.       multicast addresses to which it will simultaneously "attend"; if
  1015.  
  1016.       the client attempts to register more addresses than this,
  1017.  
  1018.       AttendMAddress will return False with no other effect.  The
  1019.  
  1020.       actual limit will vary among VLN components, but it will usually
  1021.  
  1022.       be between 10 and 100 multicast addresses.  Components may
  1023.  
  1024.       implement limits as large as the entire multicast address space
  1025.  
  1026.       (64,511 addresses).
  1027.  
  1028.  
  1029.            The VLN layer does not guarantee any minimum amount of
  1030.  
  1031.       buffering for datagrams, at either the sending or receiving
  1032.  
  1033.       host(s).  It does guarantee, however, that a SendVLNDatagram
  1034.  
  1035.       operation invoked by a VLN client will eventually complete; this
  1036.  
  1037.       implies that datagrams may be lost if buffering is insufficient
  1038.  
  1039.  
  1040.  
  1041.                                      18
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.       DOS-26 Rev A                                Virtual Local Network
  1051.       RFC 824
  1052.  
  1053.  
  1054.  
  1055.       and receiving clients are too slow.  The VLN layer will do its
  1056.  
  1057.       best to discard packets for this reason very infrequently.
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.       2.3  Reliability Guarantees
  1065.  
  1066.  
  1067.            Guarantees are never absolute--there is always some
  1068.  
  1069.       probability, however remote, that a catastrophe will occur and a
  1070.  
  1071.       promise be broken.  Nevertheless, the concept of a guarantee is
  1072.  
  1073.       still valuable, because the improbability of a catastrophic
  1074.  
  1075.       failure influences the design and cost of the recovery mechanisms
  1076.  
  1077.       needed to overcome it.  In this spirit, the word "guarantee" as
  1078.  
  1079.       used here implies only that the alternatives to correct function
  1080.  
  1081.       (i.e., catastrophic failures) are extremely rare events.
  1082.  
  1083.  
  1084.            The VLN does not attempt to guarantee reliable delivery of
  1085.  
  1086.       datagrams, nor does it provide negative acknowlegements of
  1087.  
  1088.       damaged or discarded datagrams.  It does guarantee that received
  1089.  
  1090.       datagrams are accurate representations of transmitted datagrams.
  1091.  
  1092.  
  1093.            The VLN also guarantees that datagrams will not "replicate"
  1094.  
  1095.       during transmission, i.e., for each intended receiver, a given
  1096.  
  1097.  
  1098.  
  1099.                                      19
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.       DOS-26 Rev A                                Virtual Local Network
  1109.       RFC 824
  1110.  
  1111.  
  1112.  
  1113.       datagram is received once or not at all.  (5)
  1114.  
  1115.  
  1116.            Between two VLN clients S and R in the same cluster, the
  1117.  
  1118.       sequence of datagrams received by R is a subsequence of the
  1119.  
  1120.       sequence sent by S to R, i.e., datagrams are received in order,
  1121.  
  1122.       possibly with omissions.
  1123.  
  1124.  
  1125.            A stronger sequencing property holds for broadcast and
  1126.  
  1127.       multicast transmissions.  If receivers R1 and R2 both receive
  1128.  
  1129.       broadcast or multicast datagrams D1 and D2, either they both
  1130.  
  1131.       receive D1 before D2, or they both receive D2 before D1.
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.       3  Desirable Characteristics of a Physical Local Network
  1140.  
  1141.  
  1142.            While it is conceivable that a VLN could be implemented on a
  1143.  
  1144.       long-haul or virtual-circuit-oriented PLN, these networks are
  1145.  
  1146.       generally ill-suited to the task.  The ARPANET, for example, does
  1147.  
  1148.       not support broadcast or multicast addressing modes, nor does it
  1149.       _______________
  1150.       (5) A protocol operating above the  VLN  layer  (e.g.,  TCP)  may
  1151.       employ  a  retransmission strategy; the VLN layer does nothing to
  1152.       filter duplicates arising in this way.
  1153.  
  1154.  
  1155.  
  1156.  
  1157.                                      20
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.       DOS-26 Rev A                                Virtual Local Network
  1167.       RFC 824
  1168.  
  1169.  
  1170.  
  1171.       provide the VLN sequencing guarantees.  If the ARPANET were the
  1172.  
  1173.       base for a VLN implementation, broadcast and multicast would have
  1174.  
  1175.       to be constructed from specific addressing, and a network-wide
  1176.  
  1177.       synchronization mechanism would be required to implement the
  1178.  
  1179.       sequencing guarantees.  Although the compatibility and
  1180.  
  1181.       substitutability benefits might still be achieved, the
  1182.  
  1183.       implementation would be costly, and performance poor.
  1184.  
  1185.  
  1186.            A good implementation base for a Cronus VLN would be a
  1187.  
  1188.       high-bandwidth local network with all or most of these
  1189.  
  1190.       characteristics:
  1191.  
  1192.         1.  The ability to encapsulate a VLN datagram in a single PLN
  1193.             datagram.
  1194.  
  1195.         2.  An efficient broadcast addressing mode.
  1196.  
  1197.         3.  Natural resistance to datagram replication during
  1198.             transmission.
  1199.  
  1200.         4.  Sequencing guarantees like those of the VLN interface.
  1201.  
  1202.         5.  A strong error-detecting code (datagram checksum).
  1203.  
  1204.       Good candidates include Ethernet, the Flexible Intraconnect, and
  1205.  
  1206.       Pronet, among others.
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.                                      21
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.       DOS-26 Rev A                                Virtual Local Network
  1225.       RFC 824
  1226.  
  1227.  
  1228.  
  1229.       4  A VLN Implementation Based on Ethernet
  1230.  
  1231.  
  1232.            The Ethernet local network specification is the result of a
  1233.  
  1234.       collaborative effort by Digital Equipment Corp., Intel Corp., and
  1235.  
  1236.       Xerox Corp.  The Version 1.0 specification [3] was released in
  1237.  
  1238.       September, 1980. Useful background information on the Ethernet
  1239.  
  1240.       internetworking model is supplied in [2].
  1241.  
  1242.  
  1243.            The Ethernet VLN implementation begins with the assumption,
  1244.  
  1245.       in accordance with the model developed in [2], that the addresses
  1246.  
  1247.       of specific Ethernet hosts are arbitrary, 48 bit quantities, not
  1248.  
  1249.       under the control of DOS Design/Implementation Project.  The VLN
  1250.  
  1251.       implementation must, therefore, develop a strategy to map VLN
  1252.  
  1253.       addresses to specific Ethernet addresses.
  1254.  
  1255.  
  1256.            A second important assumption is that the VLN-address-to-
  1257.  
  1258.       Ethernet-address mapping should not be maintained manually in
  1259.  
  1260.       each VLN host.  Manual procedures are too cumbersome and error-
  1261.  
  1262.       prone when a local network may consist of hundreds of hosts, and
  1263.  
  1264.       hosts may join and leave the network frequently.  A protocol is
  1265.  
  1266.       described below which allows hosts to dynamically construct the
  1267.  
  1268.       mapping, beginning only with knowledge of their own VLN and
  1269.  
  1270.  
  1271.  
  1272.  
  1273.                                      22
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.       DOS-26 Rev A                                Virtual Local Network
  1283.       RFC 824
  1284.  
  1285.  
  1286.  
  1287.       Ethernet host addresses.
  1288.  
  1289.  
  1290.            The succeeding sections discuss the VLN implementation based
  1291.  
  1292.       on the Ethernet PLN in detail, as designed for the Cronus
  1293.  
  1294.       prototype currently being assembled by Bolt Beranek and Newman,
  1295.  
  1296.       Inc.
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.       4.1  Datagram Encapsulation
  1303.  
  1304.  
  1305.            An internet datagram is encapsulated in an Ethernet frame by
  1306.  
  1307.       placing the internet datagram in the Ethernet frame data field,
  1308.  
  1309.       and setting the Ethernet type field to "DoD IP".
  1310.  
  1311.  
  1312.            To guarantee agreement by the sending and receiving VLN
  1313.  
  1314.       components on the ordering of internet datagram octets within an
  1315.  
  1316.       encapsulating Ethernet frame, the Ethernet octet ordering is
  1317.  
  1318.       required to be consistent with the IP octet ordering.
  1319.  
  1320.       Specifically, if IP(i) and IP(j) are internet datagram octets and
  1321.  
  1322.       i<j, and EF(k) and EF(l) are the Ethernet frame octets which
  1323.  
  1324.       represent IP(i) and IP(j) once encapsulated, then k<l.  Bit
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.                                      23
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.       DOS-26 Rev A                                Virtual Local Network
  1341.       RFC 824
  1342.  
  1343.  
  1344.  
  1345.       orderings within octets must also be consistent. (6)
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.       4.2  VLN Specific Addressing Mode
  1354.  
  1355.  
  1356.            Each VLN component maintains a virtual-to-physical address
  1357.  
  1358.       map (the VPMap) which translates a 32 bit specific VLN host
  1359.  
  1360.       address (7) in this cluster to a 48 bit Ethernet address.  (8)
  1361.  
  1362.       The VPMap data structure and the operations on it can be
  1363.  
  1364.       efficiently implemented using standard hashing techniques.  Only
  1365.  
  1366.       three operations defined on the VPMap are discussed in this note:
  1367.  
  1368.       ClearVPMap, TranslateVtoP, and StoreVPPair.
  1369.  
  1370.  
  1371.            Each host has an Ethernet host address (EHA) to which its
  1372.  
  1373.       controller will respond, determined by Xerox and the controller
  1374.  
  1375.       manufacturer (see Section 4.5.2).  At host initialization time,
  1376.       _______________
  1377.       (6) See [1] for a lively discussion of the problems arising  from
  1378.       the failure of communicants to agree upon consistent orderings.
  1379.       (7) Since the high-order 22 bits of the address are constant  for
  1380.       all  specific  host addresses in a cluster, only the low-order 10
  1381.       bits of the address are significant.
  1382.       (8) The least significant bit of the first octet of the  Ethernet
  1383.       address  is  always 0, since these are not broadcast or multicast
  1384.       addresses.
  1385.  
  1386.  
  1387.  
  1388.  
  1389.                                      24
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.       DOS-26 Rev A                                Virtual Local Network
  1399.       RFC 824
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.        0                   1                   2                   3
  1406.        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
  1407.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1408.       |                     Destination Address                       |
  1409.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1410.       | Destination Address (contd.)  |        Source Address         |
  1411.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1412.       |                   Source Address (contd.)                     |
  1413.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1414.       |      Type  ("DoD IP")         |
  1415.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1416.  
  1417.                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1418.                                       |Version|  IHL  |Type of Service|
  1419.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1420.       |        Total Length           |        Identification         |
  1421.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1422.       |Flags|     Fragment Offset     |  Time to Live |    Protocol   |
  1423.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1424.       |       Header Checksum         |         Source Address        |
  1425.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1426.       |    Source Address (contd.)    |      Destination Address      |
  1427.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1428.       | Destination Address (contd.)  |
  1429.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1430.  
  1431.                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1432.                                       |                               |
  1433.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
  1434.       .                                                               .
  1435.       .                            Data                               .
  1436.       .                                                               .
  1437.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1438.  
  1439.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1440.       |                     Frame Check Sequence                      |
  1441.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1442.  
  1443.                  Table 3. An Encapsulated Internet Datagram
  1444.  
  1445.  
  1446.  
  1447.                                      25
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.       DOS-26 Rev A                                Virtual Local Network
  1457.       RFC 824
  1458.  
  1459.  
  1460.  
  1461.       the local VLN component establishes a second host address, the
  1462.  
  1463.       multicast host address (MHA), constructed from the host's VLN
  1464.  
  1465.       address.  Represented as a sequence of octets in hexadecimal, the
  1466.  
  1467.       MHA has the form:
  1468.  
  1469.  
  1470.  
  1471.                A  B  C  D  E  F
  1472.  
  1473.               09-00-08-00-hh-hh
  1474.  
  1475.       A is the first octet transmitted, and F the last.  The two octets
  1476.  
  1477.       E and F contain the host local address:
  1478.  
  1479.  
  1480.  
  1481.                   E         F
  1482.  
  1483.               000000hh  hhhhhhhh
  1484.                     ^          ^
  1485.                    MSB        LSB
  1486.  
  1487.  
  1488.            When the VLN client invokes SendVLNDatagram to send a
  1489.  
  1490.       specifically addressed datagram, the local VLN component
  1491.  
  1492.       encapsulates the datagram in an Ethernet frame and transmits it
  1493.  
  1494.       without delay.  The Source Address in the Ethernet frame is the
  1495.  
  1496.       EHA of the sending host.  The Ethernet Destination Address is
  1497.  
  1498.       formed from the destination VLN address in the datagram, and is
  1499.  
  1500.       either:
  1501.  
  1502.  
  1503.  
  1504.  
  1505.                                      26
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.       DOS-26 Rev A                                Virtual Local Network
  1515.       RFC 824
  1516.  
  1517.  
  1518.  
  1519.           - the EHA of the destination host, if the TranslateVtoP
  1520.             operation on the VPMap succeeds,
  1521.  
  1522.         or
  1523.  
  1524.           - the MHA formed from the host number in the destination VLN
  1525.             address, as described above.
  1526.  
  1527.  
  1528.            When a VLN component receives an Ethernet frame with type
  1529.  
  1530.       "DoD IP", it decapsulates the internet datagram and delivers it
  1531.  
  1532.       to its client.  If the frame was addressed to the EHA of the
  1533.  
  1534.       receiving host, no further action is taken, but if the frame was
  1535.  
  1536.       addressed to the MHA of the receiving host the VLN component will
  1537.  
  1538.       broadcast an update for the VPMaps of the other hosts.  This will
  1539.  
  1540.       permit the other hosts to use the EHA of this host for future
  1541.  
  1542.       traffic.  The type field of the Ethernet frame containing the
  1543.  
  1544.       update is "Cronus VLN", and the format of the data octets in the
  1545.  
  1546.       frame is:
  1547.  
  1548.  
  1549.  
  1550.  
  1551.        0                   1                   2                   3
  1552.        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
  1553.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1554.       |   Subtype ("Mapping Update")  |        Host VLN Address       |
  1555.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1556.       |   Host VLN Address (contd.)   |
  1557.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1558.  
  1559.       When a local VLN component receives an Ethernet frame with type
  1560.  
  1561.  
  1562.  
  1563.                                      27
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.       DOS-26 Rev A                                Virtual Local Network
  1573.       RFC 824
  1574.  
  1575.  
  1576.  
  1577.       "Cronus VLN" and subtype "Mapping Update", it performs a
  1578.  
  1579.       StoreVPPair operation using the Ethernet Source Address field and
  1580.  
  1581.       the host VLN address sent as frame data.
  1582.  
  1583.  
  1584.            This multicast mechanism could be extended to perform other
  1585.  
  1586.       address mapping functions, for example, to discover the addresses
  1587.  
  1588.       of a cluster's gateways.  Suppose all gateways register the same
  1589.  
  1590.       Multicast Gateway Address (MGA, analogous to MHA) with their
  1591.  
  1592.       Ethernet controllers; the MGA then becomes a "logical name" for
  1593.  
  1594.       the gateway function in a Cronus cluster.  If a host needs to
  1595.  
  1596.       send a datagram out of the cluster and doesn't know what specific
  1597.  
  1598.       gateway address to use, the host can multicast the datagram to
  1599.  
  1600.       all gateways by sending to MGA.  One or more of the gateways can
  1601.  
  1602.       forward the datagram, and transmit a "Gateway Mapping Update"
  1603.  
  1604.       (containing the gateway's specific Ethernet address) back to the
  1605.  
  1606.       originating host.  Specific gateway addresses could be cached in
  1607.  
  1608.       a structure similar to the VPMap, keyed to the destination
  1609.  
  1610.       network number. (9)
  1611.  
  1612.       _______________
  1613.       (9) Because the Cronus Advanced Development  Model  will  contain
  1614.       only  one  gateway,  a  simpler  mechanism  will  be  implemented
  1615.       initially; the specific Ethernet address of the gateway  will  be
  1616.       "well-known" to all VLN components.
  1617.  
  1618.  
  1619.  
  1620.  
  1621.                                      28
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.       DOS-26 Rev A                                Virtual Local Network
  1631.       RFC 824
  1632.  
  1633.  
  1634.  
  1635.            The approach just outlined suggests that all knowledge of
  1636.  
  1637.       the existence and connectivity of gateways would be isolated in
  1638.  
  1639.       the VLN layer of cluster hosts.  Other mechanisms, e.g., based on
  1640.  
  1641.       the ICMP component of the Internet Protocol, could be used
  1642.  
  1643.       instead to disseminate information about gateways to cluster
  1644.  
  1645.       hosts (see [7]).  These would require, however, specific Ethernet
  1646.  
  1647.       addresses to be visible above the VLN layer, a situation the
  1648.  
  1649.       current design avoids.
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.       4.3  VLN Broadcast and Multicast Addressing Modes
  1657.  
  1658.  
  1659.            A VLN datagram will be transmitted in broadcast mode if the
  1660.  
  1661.       argument to SendVLNDatagram specifies the VLN broadcast address
  1662.  
  1663.       (local address = 65,535, decimal) as the destination.  Broadcast
  1664.  
  1665.       is implemented in the most straightforward way:  the VLN datagram
  1666.  
  1667.       is encapsulated in an Ethernet frame with type "DoD IP", and the
  1668.  
  1669.       frame destination address is set to the Ethernet broadcast
  1670.  
  1671.       address.  The receiving VLN component merely decapsulates and
  1672.  
  1673.       delivers the VLN datagram.
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.                                      29
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.       DOS-26 Rev A                                Virtual Local Network
  1689.       RFC 824
  1690.  
  1691.  
  1692.  
  1693.            The implementation of the VLN multicast addressing mode is
  1694.  
  1695.       more complex, for several reasons.  Typically, each VLN host will
  1696.  
  1697.       define a constant called Max_Attended, equal to the maximum
  1698.  
  1699.       number of VLN multicast addresses which can be simultaneously
  1700.  
  1701.       "attended" by this host.  Max_Attended should not be a function
  1702.  
  1703.       of the particular Ethernet controller(s) the host may be using,
  1704.  
  1705.       but only of the software resources (buffer space and processor
  1706.  
  1707.       time) that the host dedicates to VLN multicast processing.  The
  1708.  
  1709.       protocol below permits a host to attend any number of VLN
  1710.  
  1711.       multicast addresses, from 0 to 64,511 (the entire VLN multicast
  1712.  
  1713.       address space), independent of the controller in use.
  1714.  
  1715.  
  1716.            Understanding of the VLN multicast protocol requires some
  1717.  
  1718.       knowledge of the behavior of existing Ethernet controllers.  The
  1719.  
  1720.       Ethernet specification does not specify whether a controller must
  1721.  
  1722.       perform multicast address recognition, or if it does, how many
  1723.  
  1724.       multicast addresses it must be prepared to recognize.  As a
  1725.  
  1726.       result Ethernet controller designs vary widely in their behavior.
  1727.  
  1728.       For example, the 3COM Model 3C400 controller follows the first
  1729.  
  1730.       pattern and performs no multicast address recognition, instead
  1731.  
  1732.       passing all multicast frames to the host for further processing.
  1733.  
  1734.  
  1735.  
  1736.  
  1737.                                      30
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.       DOS-26 Rev A                                Virtual Local Network
  1747.       RFC 824
  1748.  
  1749.  
  1750.  
  1751.       The Intel Model iSBC 550 controller permits the host to register
  1752.  
  1753.       a maximum of 8 multicast addresses with the controller, and the
  1754.  
  1755.       Interlan Model NM10 controller permits a maximum of 63 registered
  1756.  
  1757.       addresses.
  1758.  
  1759.  
  1760.            It would be possible to implement the VLN multicast mode
  1761.  
  1762.       using only the Ethernet broadcast mechanism.  This would imply,
  1763.  
  1764.       however, that every VLN host would receive and process every VLN
  1765.  
  1766.       multicast, often only to discard the datagram because it is
  1767.  
  1768.       misaddressed.  More efficient operation is possible if at least
  1769.  
  1770.       some Ethernet multicast addresses are used, since Ethernet
  1771.  
  1772.       controllers with multicast recognition can discard misaddressed
  1773.  
  1774.       frames more rapidly than their hosts, reducing both the processor
  1775.  
  1776.       time and buffer space demands upon the host.
  1777.  
  1778.  
  1779.            The protocol specified below satisfies the design
  1780.  
  1781.       constraints and is especially simple.
  1782.  
  1783.  
  1784.            A VLN-wide constant, Min_Attendable, is equal to the
  1785.  
  1786.       smallest number of Ethernet multicast addresses that can be
  1787.  
  1788.       simultaneously attended by any host in the VLN, or 64,511,
  1789.  
  1790.       whichever is smaller.  A network composed of hosts with the Intel
  1791.  
  1792.  
  1793.  
  1794.  
  1795.                                      31
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.       DOS-26 Rev A                                Virtual Local Network
  1805.       RFC 824
  1806.  
  1807.  
  1808.  
  1809.       and Interlan controllers mentioned above, for example, would have
  1810.  
  1811.       Min_Attendable equal to 7; (10) a network composed only of hosts
  1812.  
  1813.       with 3COM Model 3C400 controllers would have Min_Attendable equal
  1814.  
  1815.       to 64,511, since the controller itself does not restrict the
  1816.  
  1817.       number of Ethernet multicast addresses to which a host may
  1818.  
  1819.       attend.  (11)
  1820.  
  1821.  
  1822.            The local address field of a VLN multicast address can be
  1823.  
  1824.       represented in two octets, in hexadecimal:
  1825.  
  1826.  
  1827.              mm-mm
  1828.  
  1829.  
  1830.       From Table 1, mm-mm considered as a decimal integer M is in the
  1831.  
  1832.       range 1,024 to 65,534.  When SendVLNDatagram is invoked with a
  1833.  
  1834.       VLN multicast datagram, there are two cases:
  1835.  
  1836.         1.  (M - 1,023) <= Min_Attendable.  In this case, the datagram
  1837.             is encapsulated in a "DoD IP" Ethernet frame, and multicast
  1838.             with the Ethernet address
  1839.  
  1840.                     09-00-08-00-mm-mm
  1841.  
  1842.             A VLN component which attends VLN multicast addresses in
  1843.       _______________
  1844.       (10) Min_Attendable is 7, rather than 8,  because  one  multicast
  1845.       slot  in  the  controller must be reserved for the host's MHA, as
  1846.       described in Section 4.2.
  1847.       (11) For the Cronus Advanced Development Model, Min_Attendable is
  1848.       currently defined to be 60.
  1849.  
  1850.  
  1851.  
  1852.  
  1853.                                      32
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.       DOS-26 Rev A                                Virtual Local Network
  1863.       RFC 824
  1864.  
  1865.  
  1866.  
  1867.             this range should receive Ethernet multicast addresses in
  1868.             this format, if necessary by registering the addresses with
  1869.             its Ethernet controller.
  1870.  
  1871.         2.  (M - 1,023) > Min_Attendable.  The datagram is encapsulated
  1872.             in a "DoD IP" Ethernet frame, and transmitted to the
  1873.             Ethernet broadcast address.  A VLN component which attends
  1874.             VLN multicast addresses in this range must receive all
  1875.             broadcast frames, and filter them on the basis of frame
  1876.             type and VLN destination address (found in the IP
  1877.             destination address field).
  1878.  
  1879.  
  1880.            There are two drawbacks to this protocol that might induce a
  1881.  
  1882.       more complex design:  1) because Min_Attendable is the "lowest
  1883.  
  1884.       common denominator" for the ability of Ethernet controllers to
  1885.  
  1886.       recognize multicast addresses, some controller capabilities may
  1887.  
  1888.       be wasted; 2) small VLN addresses (less than Max_Attendable +
  1889.  
  1890.       1,024) will probably be handled more efficiently than large VLN
  1891.  
  1892.       multicast addresses.  The second factor complicates the
  1893.  
  1894.       assignment of VLN multicast addresses to functions, since the
  1895.  
  1896.       particular assignment affects multicast performance.
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.                                      33
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.       DOS-26 Rev A                                Virtual Local Network
  1921.       RFC 824
  1922.  
  1923.  
  1924.  
  1925.       4.4  Reliability Guarantees
  1926.  
  1927.  
  1928.            Delivered datagrams are accurate copies of transmitted
  1929.  
  1930.       datagrams because VLN components do not deliver incoming
  1931.  
  1932.       datagrams with invalid Frame Check Sequences.  The 32 bit CRC
  1933.  
  1934.       error detecting code applied to Ethernet frames is very powerful,
  1935.  
  1936.       and the probability of an undetected error occuring "on the wire"
  1937.  
  1938.       is very small.  The probability of an error being introduced
  1939.  
  1940.       before the checksum is computed or after it is checked is
  1941.  
  1942.       comparable to the probability of an error in a disk subsystem
  1943.  
  1944.       before a write operation or after a read; often, but not always,
  1945.  
  1946.       it can be ignored.
  1947.  
  1948.  
  1949.            Datagram duplication does not occur because the VLN layer
  1950.  
  1951.       does not perform datagram retransmissions, the primary source of
  1952.  
  1953.       duplicates in other networks.  Ethernet controllers do perform
  1954.  
  1955.       retransmission as a result of "collisions" on the channel, but
  1956.  
  1957.       the "collision enforcement" or "jam" assures that no controller
  1958.  
  1959.       receives a valid frame if a collision occurs.
  1960.  
  1961.  
  1962.            The sequencing guarantees hold because mutually exclusive
  1963.  
  1964.       access to the transmission medium defines a total ordering on
  1965.  
  1966.  
  1967.  
  1968.  
  1969.                                      34
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.       DOS-26 Rev A                                Virtual Local Network
  1979.       RFC 824
  1980.  
  1981.  
  1982.  
  1983.       Ethernet transmissions, and because a VLN component buffers all
  1984.  
  1985.       datagrams in FIFO order, if it buffers more than one datagram.
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.       4.5  Use of Assigned Numbers
  1993.  
  1994.  
  1995.            On a philosophical note, protocols such as IP and TCP exist
  1996.  
  1997.       to provide communication services to extensible sets of clients;
  1998.  
  1999.       new clients and usages continue to emerge over the life of a
  2000.  
  2001.       protocol.  Because a protocol implementation must have some
  2002.  
  2003.       unambiguous knowledge of the "names" of the clients, sockets,
  2004.  
  2005.       hosts, networks, etc., with which it interacts, a need arises for
  2006.  
  2007.       the continuing administration of the 'assigned numbers' related
  2008.  
  2009.       to the protocol.  Typically the organization which declares a
  2010.  
  2011.       protocol to be a standard also becomes the administrator for its
  2012.  
  2013.       assigned numbers.  The organization will designate an office to
  2014.  
  2015.       assign numbers to the clients, sockets, hosts, networks, etc.,
  2016.  
  2017.       that emerge over time.  The office will also prepare lists of
  2018.  
  2019.       number assignments that are distributed to protocol users; the
  2020.  
  2021.       reference [4] is a list of this kind.
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.                                      35
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.       DOS-26 Rev A                                Virtual Local Network
  2037.       RFC 824
  2038.  
  2039.  
  2040.  
  2041.            There are three organizations responsible for number
  2042.  
  2043.       assignment related to the Ethernet-based VLN implementation:
  2044.  
  2045.       DARPA, Xerox, and the DOS Design/Implementation Project; their
  2046.  
  2047.       respective roles are described below.
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.       4.5.1  DARPA
  2054.  
  2055.  
  2056.            DARPA administers the internet network number and internet
  2057.  
  2058.       protocol number assignments.  The Ethernet-based VLN
  2059.  
  2060.       implementation does not involve DARPA assigned numbers, but any
  2061.  
  2062.       particular 'instance' of a Cronus VLN is expected to have a class
  2063.  
  2064.       A or B internet network number assigned by DARPA.  For example,
  2065.  
  2066.       the prototype Cronus system (the Advanced Development Model)
  2067.  
  2068.       being constructed at Bolt Beranek and Newman, Inc., has class B
  2069.  
  2070.       network number 128.011.xxx.xxx.
  2071.  
  2072.  
  2073.            Protocols built above the VLN will make use of other DARPA
  2074.  
  2075.       assigned numbers, e.g., the Cronus object-operation protocol
  2076.  
  2077.       requires an internet protocol number.
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.                                      36
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.       DOS-26 Rev A                                Virtual Local Network
  2095.       RFC 824
  2096.  
  2097.  
  2098.  
  2099.       4.5.2  The Xerox Ethernet Address Administration Office
  2100.  
  2101.  
  2102.            The Ethernet Address Administration Office at Xerox Corp.
  2103.  
  2104.       administers Ethernet specific and multicast address assignments,
  2105.  
  2106.       and Ethernet frame type assignments.
  2107.  
  2108.  
  2109.            It is the intent of the Xerox internetworking model that
  2110.  
  2111.       every Ethernet host have a distinct specific address, and that
  2112.  
  2113.       the address space be large enough to accomodate a very large
  2114.  
  2115.       population of inexpensive hosts (e.g., personal workstations).
  2116.  
  2117.       They have therefore chosen to delegate the authority to assign
  2118.  
  2119.       specific addresses to the manufacturers of Ethernet controllers,
  2120.  
  2121.       by granting them large blocks of addresses on request.
  2122.  
  2123.       Manufacturers are expected to assign specific addresses from
  2124.  
  2125.       these blocks densely, e.g., sequentially, one per controller, and
  2126.  
  2127.       to consume all of them before requesting another block.
  2128.  
  2129.  
  2130.            The preceding paragraph explains the Xerox address
  2131.  
  2132.       assignment policy not because the DOS Design/Implementation
  2133.  
  2134.       Project intends to manufacture Ethernet controllers (!), but
  2135.  
  2136.       because Xerox has chosen to couple the assignment of specific and
  2137.  
  2138.       multicast Ethernet addresses.  An assigned block is defined by a
  2139.  
  2140.  
  2141.  
  2142.  
  2143.                                      37
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.       DOS-26 Rev A                                Virtual Local Network
  2153.       RFC 824
  2154.  
  2155.  
  2156.  
  2157.       23-bit constant, which specifies the contents of the first three
  2158.  
  2159.       octets of an Ethernet address, except for the broadcast/multicast
  2160.  
  2161.       bit (the least significant bit of the first octet).  The
  2162.  
  2163.       possessor of an assigned block thus has in hand 2**24 specific
  2164.  
  2165.       addresses and 2**24 multicast addresses, to parcel out as
  2166.  
  2167.       necessary.
  2168.  
  2169.  
  2170.            The block assigned for use in the Cronus system is defined
  2171.  
  2172.       by the octets 08-00-08 (hex).  The specific addresses in this
  2173.  
  2174.       block range from 08-00-08-00-00-00 to 08-00-08-FF-FF-FF (hex),
  2175.  
  2176.       and the multicast addresses range from 09-00-08-00-00-00 to 09-
  2177.  
  2178.       00-08-FF-FF-FF (hex).  Only a fraction of the multicast addresses
  2179.  
  2180.       are actually utilized, as explained in Sections 4.2 and 4.3.
  2181.  
  2182.  
  2183.            The Ethernet Address Administration Office has designated a
  2184.  
  2185.       public frame type, "DoD IP", 08-00 (hex), to be used for
  2186.  
  2187.       encapsulated internet protocol datagrams.  The Ethernet VLN
  2188.  
  2189.       implementation uses this frame type exclusively for datagram
  2190.  
  2191.       encapsulation. In addition, the Cronus system uses two private
  2192.  
  2193.       Ethernet frame types, assigned by the Ethernet Address
  2194.  
  2195.       Administration Office:
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.                                      38
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.       DOS-26 Rev A                                Virtual Local Network
  2211.       RFC 824
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.               NAME             TYPE
  2218.  
  2219.               Cronus VLN       80-03
  2220.               Cronus Direct    80-04
  2221.  
  2222.       (The use of the "Cronus Direct" frame type is not described in
  2223.  
  2224.       this note.)
  2225.  
  2226.  
  2227.            The same Ethernet address and frame type assignments will be
  2228.  
  2229.       used by every instance of a Cronus VLN; no further assignments
  2230.  
  2231.       from the Ethernet Address Administration Office are anticipated.
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.       4.5.3  The DOS Design/Implementation Project
  2239.  
  2240.  
  2241.            The DOS Design/Implementation Project assumes responsibility
  2242.  
  2243.       for the assignment of subtypes of the Ethernet frame type "Cronus
  2244.  
  2245.       VLN".  No assignments of subtypes for purposes unrelated to the
  2246.  
  2247.       Cronus system design are expected, nor are assignments to other
  2248.  
  2249.       organizations.  The subtypes currently assigned are:
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.                                      39
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.       DOS-26 Rev A                                Virtual Local Network
  2269.       RFC 824
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.               NAME                 SUBTYPE
  2276.  
  2277.               Mapping Update       00-01
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.                                      40
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325.  
  2326.       DOS-26 Rev A                                Virtual Local Network
  2327.       RFC 824
  2328.  
  2329.  
  2330.  
  2331.                                  REFERENCES
  2332.  
  2333.  
  2334.       [1]
  2335.           "On holy wars and a plea for peace," Danny Cohen, Computer,
  2336.           V 14 N 10, October 1981, pp. 48-54.
  2337.  
  2338.       [2]
  2339.           "48-bit absolute internet and Ethernet host numbers," Yogen
  2340.           K. Dalal and Robert S. Printis, Proc. of the 7th Data
  2341.           Communications Symposium, October 1981.
  2342.  
  2343.       [3]
  2344.           "The Ethernet:  a local area network, data link layer and
  2345.           physical layer specifications," Digital Equipment Corp., Intel
  2346.           Corp., and Xerox Corp., Version 1.0, September 1980.
  2347.  
  2348.       [4]
  2349.           "Assigned numbers," Jon Postel, RFC 790, USC/Information
  2350.           Sciences Institute, September 1981.
  2351.  
  2352.       [5]
  2353.           "Internet Protocol - DARPA internet program protocol
  2354.           specification," Jon Postel, ed., RFC 791, USC/Information
  2355.           Sciences Institute, September 1981.
  2356.  
  2357.       [6]
  2358.           "Internet protocol transition workbook," Network Information
  2359.           Center, SRI International, Menlo Park, California, March 1982.
  2360.  
  2361.       [7]
  2362.           "IP - Local Area Network Addressing Issues," Robert Gurwitz
  2363.           and Robert Hinden, Bolt Beranek and Newman Inc., (draft)
  2364.           August 1982.
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.                                      41
  2376.  
  2377.  
  2378.  
  2379.  
  2380.