home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc1009 < prev    next >
Text File  |  1991-04-21  |  125KB  |  3,135 lines

  1.  
  2.  
  3. Network Working Group                                          R. Braden
  4. Request for Comments: 1009                                     J. Postel
  5. Obsoletes: 985                                                       ISI
  6.                                                                June 1987
  7.  
  8.                    Requirements for Internet Gateways
  9.  
  10.  
  11. Status of this Memo
  12.  
  13.    This document is a formal statement of the requirements to be met by
  14.    gateways used in the Internet system.  As such, it is an official
  15.    specification for the Internet community.  Distribution of this memo
  16.    is unlimited.
  17.  
  18.    This RFC summarizes the requirements for gateways to be used between
  19.    networks supporting the Internet protocols.  While it was written
  20.    specifically to support National Science Foundation research
  21.    programs, the requirements are stated in a general context and are
  22.    applicable throughout the Internet community.
  23.  
  24.    The purpose of this document is to present guidance for vendors
  25.    offering gateway products that might be used or adapted for use in an
  26.    Internet application.  It enumerates the protocols required and gives
  27.    references to RFCs and other documents describing the current
  28.    specifications.  In a number of cases the specifications are evolving
  29.    and may contain ambiguous or incomplete information.  In these cases
  30.    further discussion giving specific guidance is included in this
  31.    document.  Specific policy issues relevant to the NSF scientific
  32.    networking community are summarized in an Appendix.  As other
  33.    specifications are updated this document will be revised.  Vendors
  34.    are encouraged to maintain contact with the Internet research
  35.    community.
  36.  
  37. 1.  Introduction
  38.  
  39.    The following material is intended as an introduction and background
  40.    for those unfamiliar with the Internet architecture and the Internet
  41.    gateway model.  General background and discussion on the Internet
  42.    architecture and supporting protocol suite can be found in the DDN
  43.    Protocol Handbook [25] and ARPANET Information Brochure [26], see
  44.    also [19, 28, 30, 31].
  45.  
  46.    The Internet protocol architecture was originally developed under
  47.    DARPA sponsorship to meet both military and civilian communication
  48.    requirements [32].  The Internet system presently supports a variety
  49.    of government and government-sponsored operational and research
  50.    activities.  In particular, the National Science Foundation (NSF) is
  51.    building a major extension to the Internet to provide user access to
  52.  
  53.  
  54.  
  55.  
  56. Braden & Postel                                                 [Page 1]
  57.  
  58.  
  59.  
  60. RFC 1009 - Requirements for Internet Gateways                  June 1987
  61.  
  62.  
  63.    national supercomputer centers and other national scientific
  64.    resources, and to provide a computer networking capability to a large
  65.    number of universities and colleges.
  66.  
  67.    In this document there are many terms that may be obscure to one
  68.    unfamiliar with the Internet protocols.  There is not much to be done
  69.    about that but to learn, so dive in.  There are a few terms that are
  70.    much abused in general discussion but are carefully and intentionally
  71.    used in this document.  These few terms are defined here.
  72.  
  73.       Packet      A packet is the unit of transmission on a physical
  74.                   network.
  75.  
  76.       Datagram    A datagram is the unit of transmission in the IP
  77.                   protocol.  To cross a particular network a datagram is
  78.                   encapsulated inside a packet.
  79.  
  80.       Router      A router is a switch that receives data transmission
  81.                   units from input interfaces and, depending on the
  82.                   addresses in those units, routes them to the
  83.                   appropriate output interfaces.  There can be routers
  84.                   at different levels of protocol.  For example,
  85.                   Interface Message Processors (IMPs) are packet-level
  86.                   routers.
  87.  
  88.       Gateway     In the Internet documentation generally, and in this
  89.                   document specifically, a gateway is an IP-level
  90.                   router.  In the Internet community the term has a long
  91.                   history of this usage [32].
  92.  
  93.    1.1.  The DARPA Internet Architecture
  94.  
  95.       1.1.1.  Internet Protocols
  96.  
  97.          The Internet system consists of a number of interconnected
  98.          packet networks supporting communication among host computers
  99.          using the Internet protocols.  These protocols include the
  100.          Internet Protocol (IP), the Internet Control Message Protocol
  101.          (ICMP), the Transmission Control Protocol (TCP), and
  102.          application protocols depending upon them [22].
  103.  
  104.          All Internet protocols use IP as the basic data transport
  105.          mechanism.  IP [1,31] is a datagram, or connectionless,
  106.          internetwork service and includes provision for addressing,
  107.          type-of-service specification, fragmentation and reassembly,
  108.          and security information.  ICMP [2] is considered an integral
  109.  
  110.  
  111.  
  112.  
  113. Braden & Postel                                                 [Page 2]
  114.  
  115.  
  116.  
  117. RFC 1009 - Requirements for Internet Gateways                  June 1987
  118.  
  119.  
  120.          part of IP, although it is architecturally layered upon IP.
  121.          ICMP provides error reporting, flow control and first-hop
  122.          gateway redirection.
  123.  
  124.          Reliable data delivery is provided in the Internet protocol
  125.          suite by transport-level protocols such as the Transmission
  126.          Control Protocol (TCP), which provides end-end retransmission,
  127.          resequencing and connection control.  Transport-level
  128.          connectionless service is provided by the User Datagram
  129.          Protocol (UDP).
  130.  
  131.       1.1.2.  Networks and Gateways
  132.  
  133.          The constituent networks of the Internet system are required
  134.          only to provide packet (connectionless) transport.  This
  135.          requires only delivery of individual packets.  According to the
  136.          IP service specification, datagrams can be delivered out of
  137.          order, be lost or duplicated and/or contain errors.  Reasonable
  138.          performance of the protocols that use IP (e.g., TCP) requires
  139.          an IP datagram loss rate of less than 5%.  In those networks
  140.          providing connection-oriented service, the extra reliability
  141.          provided by virtual circuits enhances the end-end robustness of
  142.          the system, but is not necessary for Internet operation.
  143.  
  144.          Constituent networks may generally be divided into two classes:
  145.  
  146.          *  Local-Area Networks (LANs)
  147.  
  148.             LANs may have a variety of designs, typically based upon
  149.             buss, ring, or star topologies.  In general, a LAN will
  150.             cover a small geographical area (e.g., a single building or
  151.             plant site) and provide high bandwidth with low delays.
  152.  
  153.          *  Wide-Area Networks (WANs)
  154.  
  155.             Geographically-dispersed hosts and LANs are interconnected
  156.             by wide-area networks, also called long-haul networks.
  157.             These networks may have a complex internal structure of
  158.             lines and packet-routers (typified by ARPANET), or they may
  159.             be as simple as point-to-point lines.
  160.  
  161.          In the Internet model, constituent networks are connected
  162.          together by IP datagram forwarders which are called "gateways"
  163.          or "IP routers".  In this document, every use of the term
  164.          "gateway" is equivalent to "IP router".  In current practice,
  165.          gateways are normally realized with packet-switching software
  166.  
  167.  
  168.  
  169.  
  170. Braden & Postel                                                 [Page 3]
  171.  
  172.  
  173.  
  174. RFC 1009 - Requirements for Internet Gateways                  June 1987
  175.  
  176.  
  177.          executing on a general-purpose CPU, but special-purpose
  178.          hardware may also be used (and may be required for future
  179.          higher-throughput gateways).
  180.  
  181.          A gateway is connected to two or more networks, appearing to
  182.          each of these networks as a connected host.  Thus, it has a
  183.          physical interface and an IP address on each of the connected
  184.          networks.  Forwarding an IP datagram generally requires the
  185.          gateway to choose the address of the next-hop gateway or (for
  186.          the final hop) the destination host.  This choice, called
  187.          "routing", depends upon a routing data-base within the gateway.
  188.          This routing data-base should be maintained dynamically to
  189.          reflect the current topology of the Internet system; a gateway
  190.          normally accomplishes this by participating in distributed
  191.          routing and reachability algorithms with other gateways.
  192.          Gateways provide datagram transport only, and they seek to
  193.          minimize the state information necessary to sustain this
  194.          service in the interest of routing flexibility and robustness.
  195.  
  196.          Routing devices may also operate at the network level; in this
  197.          memo we will call such devices MAC routers (informally called
  198.          "level-2 routers", and also called "bridges").  The name
  199.          derives from the fact that MAC routers base their routing
  200.          decision on the addresses in the MAC headers; e.g., in IEEE
  201.          802.3 networks, a MAC router bases its decision on the 48-bit
  202.          addresses in the MAC header.  Network segments which are
  203.          connected by MAC routers share the same IP network number,
  204.          i.e., they logically form a single IP network.
  205.  
  206.          Another variation on the simple model of networks connected
  207.          with gateways sometimes occurs: a set of gateways may be
  208.          interconnected with only serial lines, to effectively form a
  209.          network in which the routing is performed at the internetwork
  210.          (IP) level rather than the network level.
  211.  
  212.       1.1.3.  Autonomous Systems
  213.  
  214.          For technical, managerial, and sometimes political reasons, the
  215.          gateways of the Internet system are grouped into collections
  216.          called "autonomous systems" [35].  The gateways included in a
  217.          single autonomous system (AS) are expected to:
  218.  
  219.             *  Be under the control of a single operations and
  220.                maintenance (O&M) organization;
  221.  
  222.             *  Employ common routing protocols among themselves, to
  223.                maintain their routing data-bases dynamically.
  224.  
  225.  
  226.  
  227. Braden & Postel                                                 [Page 4]
  228.  
  229.  
  230.  
  231. RFC 1009 - Requirements for Internet Gateways                  June 1987
  232.  
  233.  
  234.          A number of different dynamic routing protocols have been
  235.          developed (see Section 4.1); the particular choice of routing
  236.          protocol within a single AS is generically called an interior
  237.          gateway protocol or IGP.
  238.  
  239.          An IP datagram may have to traverse the gateways of two or more
  240.          ASs to reach its destination, and the ASs must provide each
  241.          other with topology information to allow such forwarding.  The
  242.          Exterior Gateway Protocol (EGP) is used for this purpose,
  243.          between gateways of different autonomous systems.
  244.  
  245.       1.1.4.  Addresses and Subnets
  246.  
  247.          An IP datagram carries 32-bit source and destination addresses,
  248.          each of which is partitioned into two parts -- a constituent
  249.          network number and a host number on that network.
  250.          Symbolically:
  251.  
  252.             IP-address ::=  { <Network-number>,  <Host-number> }
  253.  
  254.          To finally deliver the datagram, the last gateway in its path
  255.          must map the host-number (or "rest") part of an IP address into
  256.          the physical address of a host connection to the constituent
  257.          network.
  258.  
  259.          This simple notion has been extended by the concept of
  260.          "subnets", which were introduced in order to allow arbitrary
  261.          complexity of interconnected LAN structures within an
  262.          organization, while insulating the Internet system against
  263.          explosive growth in network numbers and routing complexity.
  264.          Subnets essentially provide a two-level hierarchical routing
  265.          structure for the Internet system.  The subnet extension,
  266.          described in RFC-950 [21], is now a required part of the
  267.          Internet architecture.  The basic idea is to partition the
  268.          <host number> field into two parts: a subnet number, and a true
  269.          host number on that subnet.
  270.  
  271.             IP-address ::=
  272.                     { <Network-number>, <Subnet-number>, <Host-number> }
  273.  
  274.          The interconnected LANs of an organization will be given the
  275.          same network number but different subnet numbers.  The
  276.          distinction between the subnets of such a subnetted network
  277.          must not be visible outside that network.  Thus, wide-area
  278.          routing in the rest of the Internet will be based only upon the
  279.          <Network-number> part of the IP destination address; gateways
  280.          outside the network will lump <Subnet-number> and <Host-number>
  281.  
  282.  
  283.  
  284. Braden & Postel                                                 [Page 5]
  285.  
  286.  
  287.  
  288. RFC 1009 - Requirements for Internet Gateways                  June 1987
  289.  
  290.  
  291.          together to form an uninterpreted "rest" part of the 32-bit IP
  292.          address.  Within the subnetted network, the local gateways must
  293.          route on the basis of an extended network number:
  294.  
  295.             { <Network-number>, <Subnet-number> }.
  296.  
  297.          The bit positions containing this extended network number are
  298.          indicated by a 32-bit mask called the "subnet mask" [21]; it is
  299.          recommended but not required that the <Subnet-number> bits be
  300.          contiguous and fall between the <Network-number> and the
  301.          <Host-number> fields.  No subnet should be assigned the value
  302.          zero or -1 (all one bits).
  303.  
  304.          Flexible use of the available address space will be
  305.          increasingly important in coping with the anticipated growth of
  306.          the Internet.  Thus, we allow a particular subnetted network to
  307.          use more than one subnet mask.  Several campuses with very
  308.          large LAN configurations are also creating nested hierarchies
  309.          of subnets, sub-subnets, etc.
  310.  
  311.          There are special considerations for the gateway when a
  312.          connected network provides a broadcast or multicast capability;
  313.          these will be discussed later.
  314.  
  315.    1.2.  The Internet Gateway Model
  316.  
  317.       There are two basic models for interconnecting local-area networks
  318.       and wide-area (or long-haul) networks in the Internet.  In the
  319.       first, the local-area network is assigned a network number and all
  320.       gateways in the Internet must know how to route to that network.
  321.       In the second, the local-area network shares (a small part of) the
  322.       address space of the wide-area network.  Gateways that support
  323.       this second model are called "address sharing gateways" or
  324.       "transparent gateways".  The focus of this memo is on gateways
  325.       that support the first model, but this is not intended to exclude
  326.       the use of transparent gateways.
  327.  
  328.       1.2.1.  Internet Gateways
  329.  
  330.          An Internet gateway is an IP-level router that performs the
  331.          following functions:
  332.  
  333.             1.  Conforms to specific Internet protocols specified in
  334.                 this document, including the Internet Protocol (IP),
  335.                 Internet Control Message Protocol (ICMP), and others as
  336.                 necessary.  See Section 2 (Protocols Required).
  337.  
  338.             2.  Interfaces to two or more packet networks.  For each
  339.  
  340.  
  341. Braden & Postel                                                 [Page 6]
  342.  
  343.  
  344.  
  345. RFC 1009 - Requirements for Internet Gateways                  June 1987
  346.  
  347.  
  348.                 connected network the gateway must implement the
  349.                 functions required by that network.  These functions
  350.                 typically include:
  351.  
  352.                a.  encapsulating and decapsulating the IP datagrams with
  353.                    the connected network framing (e.g., an Ethernet
  354.                    header and checksum);
  355.  
  356.                b.  sending and receiving IP datagrams up to the maximum
  357.                    size supported by that network, this size is the
  358.                    network's "Maximum Transmission Unit" or "MTU";
  359.  
  360.                c.  translating the IP destination address into an
  361.                    appropriate network-level address for the connected
  362.                    network (e.g., an Ethernet hardware address);
  363.  
  364.                d.  responding to the network flow control and error
  365.                    indication, if any.
  366.  
  367.                See Section 3 (Constituent Network Interface), for
  368.                details on particular constituent network interfaces.
  369.  
  370.             3.  Receives and forwards Internet datagrams.  Important
  371.                 issues are buffer management, congestion control, and
  372.                 fairness.  See Section 4 (Gateway Algorithms).
  373.  
  374.                a.  Recognizes various error conditions and generates
  375.                    ICMP error and information messages as required.
  376.  
  377.                b.  Drops datagrams whose time-to-live fields have
  378.                    reached zero.
  379.  
  380.                c.  Fragments datagrams when necessary to fit into the
  381.                    MTU of the next network.
  382.  
  383.             4.  Chooses a next-hop destination for each IP datagram,
  384.                 based on the information in its routing data-base.  See
  385.                 Section 4 (Gateway Algorithms).
  386.  
  387.             5.  Supports an interior gateway protocol (IGP) to carry out
  388.                 distributed routing and reachability algorithms with the
  389.                 other gateways in the same autonomous system.  In
  390.                 addition, some gateways will need to support the
  391.                 Exterior Gateway Protocol (EGP) to exchange topological
  392.                 information with other autonomous systems.  See
  393.                 Section 4 (Gateway Algorithms).
  394.  
  395.  
  396.  
  397.  
  398. Braden & Postel                                                 [Page 7]
  399.  
  400.  
  401.  
  402. RFC 1009 - Requirements for Internet Gateways                  June 1987
  403.  
  404.  
  405.             6.  Provides system support facilities, including loading,
  406.                 debugging, status reporting, exception reporting and
  407.                 control.  See Section 5 (Operation and Maintenance).
  408.  
  409.       1.2.2.  Embedded Gateways
  410.  
  411.          A gateway may be a stand-alone computer system, dedicated to
  412.          its IP router functions.  Alternatively, it is possible to
  413.          embed gateway functionality within a host operating system
  414.          which supports connections to two or more networks.  The
  415.          best-known example of an operating system with embedded gateway
  416.          code is the Berkeley BSD system.  The embedded gateway feature
  417.          seems to make internetting easy, but it has a number of hidden
  418.          pitfalls:
  419.  
  420.             1.  If a host has only a single constituent-network
  421.                 interface, it should not act as a gateway.
  422.  
  423.                 For example, hosts with embedded gateway code that
  424.                 gratuitously forward broadcast packets or datagrams on
  425.                 the same net often cause packet avalanches.
  426.  
  427.             2.  If a (multihomed) host acts as a gateway, it must
  428.                 implement ALL the relevant gateway requirements
  429.                 contained in this document.
  430.  
  431.                 For example, the routing protocol issues (see Sections
  432.                 2.6 and 4.1) and the control and monitoring problems are
  433.                 as hard and important for embedded gateways as for
  434.                 stand-alone gateways.
  435.  
  436.                    Since Internet gateway requirements and
  437.                    specifications may change independently of operating
  438.                    system changes, an administration that operates an
  439.                    embedded gateway in the Internet is strongly advised
  440.                    to have an ability to maintain and update the gateway
  441.                    code (e.g., this might require gateway code source).
  442.  
  443.             3.  Once a host runs embedded gateway code, it becomes part
  444.                 of the Internet system.  Thus, errors in software or
  445.                 configuration of such a host can hinder communication
  446.                 between other hosts.  As a consequence, the host
  447.                 administrator must lose some autonomy.
  448.  
  449.                 In many circumstances, a host administrator will need to
  450.                 disable gateway coded embedded in the operating system,
  451.                 and any embedded gateway code must be organized so it
  452.                 can be easily disabled.
  453.  
  454.  
  455. Braden & Postel                                                 [Page 8]
  456.  
  457.  
  458.  
  459. RFC 1009 - Requirements for Internet Gateways                  June 1987
  460.  
  461.  
  462.             4.  If a host running embedded gateway code is concurrently
  463.                 used for other services, the O&M (operation and
  464.                 maintenance) requirements for the two modes of use may
  465.                 be in serious conflict.
  466.  
  467.                 For example, gateway O&M will in many cases be performed
  468.                 remotely by an operations center; this may require
  469.                 privileged system access which the host administrator
  470.                 would not normally want to distribute.
  471.  
  472.       1.2.3.  Transparent Gateways
  473.  
  474.          The basic idea of a transparent gateway is that the hosts on
  475.          the local-area network behind such a gateway share the address
  476.          space of the wide-area network in front of the gateway.  In
  477.          certain situations this is a very useful approach and the
  478.          limitations do not present significant drawbacks.
  479.  
  480.          The words "in front" and "behind" indicate one of the
  481.          limitations of this approach: this model of interconnection is
  482.          suitable only for a geographically (and topologically) limited
  483.          stub environment.  It requires that there be some form of
  484.          logical addressing in the network level addressing of the
  485.          wide-area network (that is, all the IP addresses in the local
  486.          environment map to a few (usually one) physical address in the
  487.          wide-area network, in a way consistent with the { IP address
  488.          <-> network address } mapping used throughout the wide-area
  489.          network).
  490.  
  491.          Multihoming is possible on one wide-area network, but may
  492.          present routing problems if the interfaces are geographically
  493.          or topologically separated.  Multihoming on two (or more)
  494.          wide-area networks is a problem due to the confusion of
  495.          addresses.
  496.  
  497.          The behavior that hosts see from other hosts in what is
  498.          apparently the same network may differ if the transparent
  499.          gateway cannot fully emulate the normal wide-area network
  500.          service.  For example, if there were a transparent gateway
  501.          between the ARPANET and an Ethernet, a remote host would not
  502.          receive a Destination Dead message [3] if it sent a datagram to
  503.          an Ethernet host that was powered off.
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512. Braden & Postel                                                 [Page 9]
  513.  
  514.  
  515.  
  516. RFC 1009 - Requirements for Internet Gateways                  June 1987
  517.  
  518.  
  519.    1.3.  Gateway Characteristics
  520.  
  521.       Every Internet gateway must perform the functions listed above.
  522.       However, a vendor will have many choices on power, complexity, and
  523.       features for a particular gateway product.  It may be helpful to
  524.       observe that the Internet system is neither homogeneous nor
  525.       fully-connected.  For reasons of technology and geography, it is
  526.       growing into a global-interconnect system plus a "fringe" of LANs
  527.       around the "edge".
  528.  
  529.          *  The global-interconnect system is comprised of a number of
  530.             wide-area networks to which are attached gateways of several
  531.             ASs; there are relatively few hosts connected directly to
  532.             it.  The global-interconnect system includes the ARPANET,
  533.             the NSFNET "backbone", the various NSF regional and
  534.             consortium networks, other ARPA sponsored networks such as
  535.             the SATNET and the WBNET, and the DCA sponsored MILNET.  It
  536.             is anticipated that additional networks sponsored by these
  537.             and other agencies (such as NASA and DOE) will join the
  538.             global-interconnect system.
  539.  
  540.          *  Most hosts are connected to LANs, and many organizations
  541.             have clusters of LANs interconnected by local gateways.
  542.             Each such cluster is connected by gateways at one or more
  543.             points into the global-interconnect system.  If it is
  544.             connected at only one point, a LAN is known as a "stub"
  545.             network.
  546.  
  547.       Gateways in the global-interconnect system generally require:
  548.  
  549.          *  Advanced routing and forwarding algorithms
  550.  
  551.             These gateways need routing algorithms which are highly
  552.             dynamic and also offer type-of-service routing.  Congestion
  553.             is still not a completely resolved issue [24].  Improvements
  554.             to the current situation will be implemented soon, as the
  555.             research community is actively working on these issues.
  556.  
  557.          *  High availability
  558.  
  559.             These gateways need to be highly reliable, providing 24 hour
  560.             a day, 7 days a week service.  In case of failure, they must
  561.             recover quickly.
  562.  
  563.          *  Advanced O&M features
  564.  
  565.             These gateways will typically be operated remotely from a
  566.             regional or national monitoring center.  In their
  567.  
  568.  
  569. Braden & Postel                                                [Page 10]
  570.  
  571.  
  572.  
  573. RFC 1009 - Requirements for Internet Gateways                  June 1987
  574.  
  575.  
  576.             interconnect role, they will need to provide sophisticated
  577.             means for monitoring and measuring traffic and other events
  578.             and for diagnosing faults.
  579.  
  580.          *  High performance
  581.  
  582.             Although long-haul lines in the Internet today are most
  583.             frequently 56 Kbps, DS1 lines (1.5 Mbps) are of increasing
  584.             importance, and even higher speeds are likely in the future.
  585.             Full-duplex operation is provided at any of these speeds.
  586.  
  587.             The average size of Internet datagrams is rather small, of
  588.             the order of 100 bytes.  At DS1 line speeds, the
  589.             per-datagram processing capability of the gateways, rather
  590.             than the line speed, is likely to be the bottleneck.  To
  591.             fill a DS1 line with average-sized Internet datagrams, a
  592.             gateway would need to pass -- receive, route, and send --
  593.             2,000 datagrams per second per interface.  That is, a
  594.             gateway which supported 3 DS1 lines and and Ethernet
  595.             interface would need to be able to pass a dazzling 2,000
  596.             datagrams per second in each direction on each of the
  597.             interfaces, or a aggregate throughput of 8,000 datagrams per
  598.             second, in order to fully utilize DS1 lines.  This is beyond
  599.             the capability of current gateways.
  600.  
  601.                Note: some vendors count input and output operations
  602.                separately in datagrams per second figures; for these
  603.                vendors, the above example would imply 16,000 datagrams
  604.                per second !
  605.  
  606.       Gateways used in the "LAN fringe" (e.g., campus networks) will
  607.       generally have to meet less stringent requirements for
  608.       performance, availability, and maintenance.  These may be high or
  609.       medium-performance devices, probably competitively procured from
  610.       several different vendors and operated by an internal organization
  611.       (e.g., a campus computing center).  The design of these gateways
  612.       should emphasize low average delay and good burst performance,
  613.       together with delay and type-of-service sensitive resource
  614.       management.  In this environment, there will be less formal O&M,
  615.       more hand-crafted static configurations for special cases, and
  616.       more need for inter-operation with gateways of other vendors.  The
  617.       routing mechanism will need to be very flexible, but need not be
  618.       so highly dynamic as in the global-interconnect system.
  619.  
  620.       It is important to realize that Internet gateways normally operate
  621.       in an unattended mode, but that equipment and software faults can
  622.       have a wide-spread (sometimes global) effect.  In any environment,
  623.  
  624.  
  625.  
  626. Braden & Postel                                                [Page 11]
  627.  
  628.  
  629.  
  630. RFC 1009 - Requirements for Internet Gateways                  June 1987
  631.  
  632.  
  633.       a gateway must be highly robust and able to operate, possibly in a
  634.       degraded state, under conditions of extreme congestion or failure
  635.       of network resources.
  636.  
  637.       Even though the Internet system is not fully-interconnected, many
  638.       parts of the system do need to have redundant connectivity.  A
  639.       rich connectivity allows reliable service despite failures of
  640.       communication lines and gateways, and it can also improve service
  641.       by shortening Internet paths and by providing additional capacity.
  642.       The engineering tradeoff between cost and reliability must be made
  643.       for each component of the Internet system.
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683. Braden & Postel                                                [Page 12]
  684.  
  685.  
  686.  
  687. RFC 1009 - Requirements for Internet Gateways                  June 1987
  688.  
  689.  
  690. 2.  Protocols Required in Gateways
  691.  
  692.    The Internet architecture uses datagram gateways to interconnect
  693.    constituent networks.  This section describes the various protocols
  694.    which a gateway needs to implement.
  695.  
  696.    2.1.  Internet Protocol (IP)
  697.  
  698.       IP is the basic datagram protocol used in the Internet system [19,
  699.       31].  It is described in RFC-791 [1] and also in MIL-STD-1777 [5]
  700.       as clarified by RFC-963 [36] ([1] and [5] are intended to describe
  701.       the same standard, but in quite different words).  The subnet
  702.       extension is described in RFC-950 [21].
  703.  
  704.       With respect to current gateway requirements the following IP
  705.       features can be ignored, although they may be required in the
  706.       future:  Type of Service field, Security option, and Stream ID
  707.       option.  However, if recognized, the interpretation of these
  708.       quantities must conform to the standard specification.
  709.  
  710.       It is important for gateways to implement both the Loose and
  711.       Strict Source Route options.  The Record Route and Timestamp
  712.       options are useful diagnostic tools and must be supported in all
  713.       gateways.
  714.  
  715.       The Internet model requires that a gateway be able to fragment
  716.       datagrams as necessary to match the MTU of the network to which
  717.       they are being forwarded, but reassembly of fragmented datagrams
  718.       is generally left to the destination hosts.  Therefore, a gateway
  719.       will not perform reassembly on datagrams it forwards.
  720.  
  721.       However, a gateway will generally receive some IP datagrams
  722.       addressed to itself; for example, these may be ICMP Request/Reply
  723.       messages, routing update messages (see Sections 2.3 and 2.6), or
  724.       for monitoring and control (see Section 5).  For these datagrams,
  725.       the gateway will be functioning as a destination host, so it must
  726.       implement IP reassembly in case the datagrams have been fragmented
  727.       by some transit gateway.  The destination gateway must have a
  728.       reassembly buffer which is at least as large as the maximum of the
  729.       MTU values for its network interfaces and 576.  Note also that it
  730.       is possible for a particular protocol implemented by a host or
  731.       gateway to require a lower bound on reassembly buffer size which
  732.       is larger than 576.  Finally, a datagram which is addressed to a
  733.       gateway may use any of that gateway's IP addresses as destination
  734.       address, regardless of which interface the datagram enters.
  735.  
  736.       There are five classes of IP addresses:  Class A through
  737.       Class E [23].  Of these, Class D and Class E addresses are
  738.  
  739.  
  740. Braden & Postel                                                [Page 13]
  741.  
  742.  
  743.  
  744. RFC 1009 - Requirements for Internet Gateways                  June 1987
  745.  
  746.  
  747.       reserved for experimental use.  A gateway which is not
  748.       participating in these experiments must ignore all datagrams with
  749.       a Class D or Class E destination IP address.  ICMP Destination
  750.       Unreachable or ICMP Redirect messages must not result from
  751.       receiving such datagrams.
  752.  
  753.       There are certain special cases for IP addresses, defined in the
  754.       latest Assigned Numbers document [23].  These special cases can be
  755.       concisely summarized using the earlier notation for an IP address:
  756.  
  757.          IP-address ::=  { <Network-number>, <Host-number> }
  758.  
  759.             or
  760.  
  761.          IP-address ::=  { <Network-number>, <Subnet-number>,
  762.                                                          <Host-number> }
  763.  
  764.       if we also use the notation "-1" to mean the field contains all 1
  765.       bits.  Some common special cases are as follows:
  766.  
  767.          (a)   {0, 0}
  768.  
  769.             This host on this network.  Can only be used as a source
  770.             address (see note later).
  771.  
  772.          (b)   {0, <Host-number>}
  773.  
  774.             Specified host on this network.  Can only be used as a
  775.             source address.
  776.  
  777.          (c)   { -1, -1}
  778.  
  779.             Limited broadcast.  Can only be used as a destination
  780.             address, and a datagram with this address must never be
  781.             forwarded outside the (sub-)net of the source.
  782.  
  783.          (d)   {<Network-number>, -1}
  784.  
  785.             Directed broadcast to specified network.  Can only be used
  786.             as a destination address.
  787.  
  788.          (e)   {<Network-number>, <Subnet-number>, -1}
  789.  
  790.             Directed broadcast to specified subnet.  Can only be used as
  791.             a destination address.
  792.  
  793.          (f)   {<Network-number>, -1, -1}
  794.  
  795.  
  796.  
  797. Braden & Postel                                                [Page 14]
  798.  
  799.  
  800.  
  801. RFC 1009 - Requirements for Internet Gateways                  June 1987
  802.  
  803.  
  804.             Directed broadcast to all subnets of specified subnetted
  805.             network.  Can only be used as a destination address.
  806.  
  807.          (g)   {127, <any>}
  808.  
  809.             Internal host loopback address.  Should never appear outside
  810.             a host.
  811.  
  812.       The following two are conventional notation for network numbers,
  813.       and do not really represent IP addresses.  They can never be used
  814.       in an IP datagram header as an IP source or destination address.
  815.  
  816.          (h)   {<Network-number>, 0}
  817.  
  818.             Specified network (no host).
  819.  
  820.          (i)   {<Network-number>, <Subnet-number>, 0}
  821.  
  822.             Specified subnet (no host).
  823.  
  824.       Note also that the IP broadcast address, which has primary
  825.       application to Ethernets and similar technologies that support an
  826.       inherent broadcast function, has an all-ones value in the host
  827.       field of the IP address.  Some early implementations chose the
  828.       all-zeros value for this purpose, which is not in conformance with
  829.       the specification [23, 49, 50].
  830.  
  831.    2.2.  Internet Control Message Protocol (ICMP)
  832.  
  833.       ICMP is an auxiliary protocol used to convey advice and error
  834.       messages and is described in RFC-792 [2].
  835.  
  836.       We will discuss issues arising from gateway handling of particular
  837.       ICMP messages.  The ICMP messages are grouped into two classes:
  838.       error messages and information messages.  ICMP error messages are
  839.       never sent about ICMP error messages, nor about broadcast or
  840.       multicast datagrams.
  841.  
  842.          The ICMP error messages are: Destination Unreachable, Redirect,
  843.          Source Quench, Time Exceeded, and Parameter Problem.
  844.  
  845.          The ICMP information messages are: Echo, Information,
  846.          Timestamp, and Address Mask.
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854. Braden & Postel                                                [Page 15]
  855.  
  856.  
  857.  
  858. RFC 1009 - Requirements for Internet Gateways                  June 1987
  859.  
  860.  
  861.       2.2.1.  Destination Unreachable
  862.  
  863.          The distinction between subnets of a subnetted network, which
  864.          depends on the address mask described in RFC-950 [21], must not
  865.          be visible outside that network.  This distinction is important
  866.          in the case of the ICMP Destination Unreachable message.
  867.  
  868.          The ICMP Destination Unreachable message is sent by a gateway
  869.          in response to a datagram which it cannot forward because the
  870.          destination is unreachable or down.  The gateway chooses one of
  871.          the following two types of Destination Unreachable messages to
  872.          send:
  873.  
  874.             *  Net Unreachable
  875.  
  876.             *  Host Unreachable
  877.  
  878.          Net unreachable implies that an intermediate gateway was unable
  879.          to forward a datagram, as its routing data-base gave no next
  880.          hop for the datagram, or all paths were down.  Host Unreachable
  881.          implies that the destination network was reachable, but that a
  882.          gateway on that network was unable to reach the destination
  883.          host.  This might occur if the particular destination network
  884.          was able to determine that the desired host was unreachable or
  885.          down.  It might also occur when the destination host was on a
  886.          subnetted network and no path was available through the subnets
  887.          of this network to the destination.  Gateways should send Host
  888.          Unreachable messages whenever other hosts on the same
  889.          destination network might be reachable; otherwise, the source
  890.          host may erroneously conclude that ALL hosts on the network are
  891.          unreachable, and that may not be the case.
  892.  
  893.       2.2.2.  Redirect
  894.  
  895.          The ICMP Redirect message is sent by a gateway to a host on the
  896.          same network, in order to change the gateway used by the host
  897.          for routing certain datagrams.  A choice of four types of
  898.          Redirect messages is available to specify datagrams destined
  899.          for a particular host or network, and possibly with a
  900.          particular type-of-service.
  901.  
  902.          If the directly-connected network is not subnetted, a gateway
  903.          can normally send a network Redirect which applies to all hosts
  904.          on a specified remote network.  Using a network rather than a
  905.          host Redirect may economize slightly on network traffic and on
  906.          host routing table storage.  However, the saving is not
  907.          significant, and subnets create an ambiguity about the subnet
  908.  
  909.  
  910.  
  911. Braden & Postel                                                [Page 16]
  912.  
  913.  
  914.  
  915. RFC 1009 - Requirements for Internet Gateways                  June 1987
  916.  
  917.  
  918.          mask to be used to interpret a network Redirect.  In a general
  919.          subnet environment, it is difficult to specify precisely the
  920.          cases in which network Redirects can be used.
  921.  
  922.          Therefore, it is recommended that a gateway send only host (or
  923.          host and type-of-service) Redirects.
  924.  
  925.       2.2.3.  Source Quench
  926.  
  927.          All gateways must contain code for sending ICMP Source Quench
  928.          messages when they are forced to drop IP datagrams due to
  929.          congestion.  Although the Source Quench mechanism is known to
  930.          be an imperfect means for Internet congestion control, and
  931.          research towards more effective means is in progress, Source
  932.          Quench is considered to be too valuable to omit from production
  933.          gateways.
  934.  
  935.          There is some argument that the Source Quench should be sent
  936.          before the gateway is forced to drop datagrams [62].  For
  937.          example, a parameter X could be established and set to have
  938.          Source Quench sent when only X buffers remain.  Or, a parameter
  939.          Y could be established and set to have Source Quench sent when
  940.          only Y per cent of the buffers remain.
  941.  
  942.          Two problems for a gateway sending Source Quench are: (1) the
  943.          consumption of bandwidth on the reverse path, and (2) the use
  944.          of gateway CPU time.  To ameliorate these problems, a gateway
  945.          must be prepared to limit the frequency with which it sends
  946.          Source Quench messages.  This may be on the basis of a count
  947.          (e.g., only send a Source Quench for every N dropped datagrams
  948.          overall or per given source host), or on the basis of a time
  949.          (e.g., send a Source Quench to a given source host or overall
  950.          at most once per T millseconds).  The parameters (e.g., N or T)
  951.          must be settable as part of the configuration of the gateway;
  952.          furthermore, there should be some configuration setting which
  953.          disables sending Source Quenches.  These configuration
  954.          parameters, including disabling, should ideally be specifiable
  955.          separately for each network interface.
  956.  
  957.          Note that a gateway itself may receive a Source Quench as the
  958.          result of sending a datagram targeted to another gateway.  Such
  959.          datagrams might be an EGP update, for example.
  960.  
  961.       2.2.4.  Time Exceeded
  962.  
  963.          The ICMP Time Exceeded message may be sent when a gateway
  964.          discards a datagram due to the TTL being reduced to zero.  It
  965.  
  966.  
  967.  
  968. Braden & Postel                                                [Page 17]
  969.  
  970.  
  971.  
  972. RFC 1009 - Requirements for Internet Gateways                  June 1987
  973.  
  974.  
  975.          may also be sent by a gateway if the fragments of a datagram
  976.          addressed to the gateway itself cannot be reassembled before
  977.          the time limit.
  978.  
  979.       2.2.5.  Parameter Problem
  980.  
  981.          The ICMP Parameter Problem message may be sent to the source
  982.          host for any problem not specifically covered by another ICMP
  983.          message.
  984.  
  985.       2.2.6.  Address Mask
  986.  
  987.          Host and gateway implementations are expected to support the
  988.          ICMP Address Mask messages described in RFC-950 [21].
  989.  
  990.       2.2.7.  Timestamp
  991.  
  992.          The ICMP Timestamp message has proven to be useful for
  993.          diagnosing Internet problems.  The preferred form for a
  994.          timestamp value, the "standard value", is in milliseconds since
  995.          midnight GMT.  However, it may be difficult to provide this
  996.          value with millisecond resolution.  For example, many systems
  997.          use clocks which update only at line frequency, 50 or 60 times
  998.          per second.  Therefore, some latitude is allowed in a
  999.          "standard" value:
  1000.  
  1001.             *  The value must be updated at a frequency of at least 30
  1002.                times per second (i.e., at most five low-order bits of
  1003.                the value may be undefined).
  1004.  
  1005.             *  The origin of the value must be within a few minutes of
  1006.                midnight, i.e., the accuracy with which operators
  1007.                customarily set CPU clocks.
  1008.  
  1009.          To meet the second condition for a stand-alone gateway, it will
  1010.          be necessary to query some time server host when the gateway is
  1011.          booted or restarted.  It is recommended that the UDP Time
  1012.          Server Protocol [44] be used for this purpose.  A more advanced
  1013.          implementation would use NTP (Network Time Protocol) [45] to
  1014.          achieve nearly millisecond clock synchronization; however, this
  1015.          is not required.
  1016.  
  1017.          Even if a gateway is unable to establish its time origin, it
  1018.          ought to provide a "non-standard" timestamp value (i.e., with
  1019.          the non-standard bit set), as a time in milliseconds from
  1020.          system startup.
  1021.  
  1022.  
  1023.  
  1024.  
  1025. Braden & Postel                                                [Page 18]
  1026.  
  1027.  
  1028.  
  1029. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1030.  
  1031.  
  1032.          New gateways, especially those expecting to operate at T1 or
  1033.          higher speeds, are expected to have at least millisecond
  1034.          clocks.
  1035.  
  1036.       2.2.8.  Information Request/Reply
  1037.  
  1038.          The Information Request/Reply pair was intended to support
  1039.          self-configuring systems such as diskless workstations, to
  1040.          allow them to discover their IP network numbers at boot time.
  1041.          However, the Reverse ARP (RARP) protocol [15] provides a better
  1042.          mechanism for a host to use to discover its own IP address, and
  1043.          RARP is recommended for this purpose.  Information
  1044.          Request/Reply need not be implemented in a gateway.
  1045.  
  1046.       2.2.9.  Echo Request/Reply
  1047.  
  1048.          A gateway must implement ICMP Echo, since it has proven to be
  1049.          an extremely useful diagnostic tool.  A gateway must be
  1050.          prepared to receive, reassemble, and echo an ICMP Echo Request
  1051.          datagram at least as large as the maximum of 576 and the MTU's
  1052.          of all of the connected networks.  See the discussion of IP
  1053.          reassembly in gateways, Section 2.1.
  1054.  
  1055.          The following rules resolve the question of the use of IP
  1056.          source routes in Echo Request and Reply datagrams.  Suppose a
  1057.          gateway D receives an ICMP Echo Request addressed to itself
  1058.          from host S.
  1059.  
  1060.             1.  If the Echo Request contained no source route, D should
  1061.                 send an Echo Reply back to S using its normal routing
  1062.                 rules.  As a result, the Echo Reply may take a different
  1063.                 path than the Request; however, in any case, the pair
  1064.                 will sample the complete round-trip path which any other
  1065.                 higher-level protocol (e.g., TCP) would use for its data
  1066.                 and ACK segments between S and D.
  1067.  
  1068.             2.  If the Echo Request did contain a source route, D should
  1069.                 send an Echo Reply back to S using as a source route the
  1070.                 return route built up in the source-routing option of
  1071.                 the Echo Request.
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082. Braden & Postel                                                [Page 19]
  1083.  
  1084.  
  1085.  
  1086. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1087.  
  1088.  
  1089.    2.3.  Exterior Gateway Protocol (EGP)
  1090.  
  1091.       EGP is the protocol used to exchange reachability information
  1092.       between Autonomous Systems of gateways, and is defined in
  1093.       RFC-904 [11].  See also RFC-827 [51], RFC-888 [46], and
  1094.       RFC-975 [27] for background information.  The most widely used EGP
  1095.       implementation is described in RFC-911 [13].
  1096.  
  1097.       When a dynamic routing algorithm is operated in the gateways of an
  1098.       Autonomous System (AS), the routing data-base must be coupled to
  1099.       the EGP implementation.  This coupling should ensure that, when a
  1100.       net is determined to be unreachable by the routing algorithm, the
  1101.       net will not be declared reachable to other ASs via EGP.  This
  1102.       requirement is designed to minimize spurious traffic to "black
  1103.       holes" and to ensure fair utilization of the resources on other
  1104.       systems.
  1105.  
  1106.       The present EGP specification defines a model with serious
  1107.       limitations, most importantly a restriction against propagating
  1108.       "third party" EGP information in order to prevent long-lived
  1109.       routing loops [27].  This effectively limits EGP to a two-level
  1110.       hierarchy; the top level is formed by the "core" AS, while the
  1111.       lower level is composed of those ASs which are direct neighbor
  1112.       gateways to the core AS.  In practice, in the current Internet,
  1113.       nearly all of the "core gateways" are connected to the ARPANET,
  1114.       while the lower level is composed of those ASs which are directly
  1115.       gatewayed to the ARPANET or MILNET.
  1116.  
  1117.       RFC-975 [27] suggested one way to generalize EGP to lessen these
  1118.       topology restrictions;  it has not been adopted as an official
  1119.       specification, although its ideas are finding their way into the
  1120.       new EGP developments.  There are efforts underway in the research
  1121.       community to develop an EGP generalization which will remove these
  1122.       restrictions.
  1123.  
  1124.       In EGP, there is no standard interpretation (i.e., metric) for the
  1125.       distance fields in the update messages, so distances are
  1126.       comparable only among gateways of the same AS.  In using EGP data,
  1127.       a gateway should compare the distances among gateways of the same
  1128.       AS and prefer a route to that gateway which has the smallest
  1129.       distance value.
  1130.  
  1131.       The values to be announced in the distance fields for particular
  1132.       networks within the local AS should be a gateway configuration
  1133.       parameter; by suitable choice of these values, it will be possible
  1134.       to arrange primary and backup paths from other AS's.  There are
  1135.       other EGP parameters, such as polling intervals, which also need
  1136.       to be set in the gateway configuration.
  1137.  
  1138.  
  1139. Braden & Postel                                                [Page 20]
  1140.  
  1141.  
  1142.  
  1143. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1144.  
  1145.  
  1146.       When routing updates become large they must be transmitted in
  1147.       parts.  One strategy is to use IP fragmentation, another is to
  1148.       explicitly send the routing information in sections.  The Internet
  1149.       Engineering Task Force is currently preparing a recommendation on
  1150.       this and other EGP engineering issues.
  1151.  
  1152.    2.4.  Address Resolution Protocol (ARP)
  1153.  
  1154.       ARP is an auxiliary protocol used to perform dynamic address
  1155.       translation between LAN hardware addresses and Internet addresses,
  1156.       and is described in RFC-826 [4].
  1157.  
  1158.       ARP depends upon local network broadcast.  In normal ARP usage,
  1159.       the initiating host broadcasts an ARP Request carrying a target IP
  1160.       address; the corresponding target host, recognizing its own IP
  1161.       address, sends back an ARP Reply containing its own hardware
  1162.       interface address.
  1163.  
  1164.       A variation on this procedure, called "proxy ARP", has been used
  1165.       by gateways attached to broadcast LANs [14].  The gateway sends an
  1166.       ARP Reply specifying its interface address in response to an ARP
  1167.       Request for a target IP address which is not on the
  1168.       directly-connected network but for which the gateway offers an
  1169.       appropriate route.  By observing ARP and proxy ARP traffic, a
  1170.       gateway may accumulate a routing data-base [14].
  1171.  
  1172.       Proxy ARP (also known in some quarters as "promiscuous ARP" or
  1173.       "the ARP hack") is useful for routing datagrams from hosts which
  1174.       do not implement the standard Internet routing rules fully -- for
  1175.       example, host implementations which predate the introduction of
  1176.       subnetting.  Proxy ARP for subnetting is discussed in detail in
  1177.       RFC-925 [14].
  1178.  
  1179.       Reverse ARP (RARP) allows a host to map an Ethernet interface
  1180.       address into an IP address [15].  RARP is intended to allow a
  1181.       self-configuring host to learn its own IP address from a server at
  1182.       boot time.
  1183.  
  1184.    2.5.  Constituent Network Access Protocols
  1185.  
  1186.       See Section 3.
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196. Braden & Postel                                                [Page 21]
  1197.  
  1198.  
  1199.  
  1200. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1201.  
  1202.  
  1203.    2.6.  Interior Gateway Protocols
  1204.  
  1205.       Distributed routing algorithms continue to be the subject of
  1206.       research and engineering, and it is likely that advances will be
  1207.       made over the next several years.  A good algorithm needs to
  1208.       respond rapidly to real changes in Internet connectivity, yet be
  1209.       stable and insensitive to transients.  It needs to synchronize the
  1210.       distributed data-base across gateways of its Autonomous System
  1211.       rapidly (to avoid routing loops), while consuming only a small
  1212.       fraction of the available bandwidth.
  1213.  
  1214.       Distributed routing algorithms are commonly broken down into the
  1215.       following three components:
  1216.  
  1217.          A.  An algorithm to assign a "length" to each Internet path.
  1218.  
  1219.             The "length" may be a simple count of hops (1, or infinity
  1220.             if the path is broken), or an administratively-assigned
  1221.             cost, or some dynamically-measured cost (usually an average
  1222.             delay).
  1223.  
  1224.             In order to determine a path length, each gateway must at
  1225.             least test whether each of its neighbors is reachable; for
  1226.             this purpose, there must be a "reachability" or "neighbor
  1227.             up/down" protocol.
  1228.  
  1229.          B.  An algorithm to compute the shortest path(s) to a given
  1230.              destination.
  1231.  
  1232.          C.  A gateway-gateway protocol used to exchange path length and
  1233.              routing information among gateways.
  1234.  
  1235.       The most commonly-used IGPs in Internet gateways are as follows.
  1236.  
  1237.       2.6.1.  Gateway-to-Gateway Protocol (GGP)
  1238.  
  1239.          GGP was designed and implemented by BBN for the first
  1240.          experimental Internet gateways [41].  It is still in use in the
  1241.          BBN LSI/11 gateways, but is regarded as having serious
  1242.          drawbacks [58].  GGP is based upon an algorithm used in the
  1243.          early ARPANET IMPs and later replaced by SPF (see below).
  1244.  
  1245.          GGP is a "min-hop" algorithm, i.e., its length measure is
  1246.          simply the number of network hops between gateway pairs.  It
  1247.          implements a distributed shortest-path algorithm, which
  1248.          requires global convergence of the routing tables after a
  1249.          change in topology or connectivity.  Each gateway sends a GGP
  1250.  
  1251.  
  1252.  
  1253. Braden & Postel                                                [Page 22]
  1254.  
  1255.  
  1256.  
  1257. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1258.  
  1259.  
  1260.          routing update only to its neighbors, but each update includes
  1261.          an entry for every known network, where each entry contains the
  1262.          hop count from the gateway sending the update.
  1263.  
  1264.       2.6.2.  Shortest-Path-First (SPF) Protocols
  1265.  
  1266.          SPF [40] is the name for a class of routing algorithms based on
  1267.          a shortest-path algorithm of Dijkstra.  The current ARPANET
  1268.          routing algorithm is SPF, and the BBN Butterfly gateways also
  1269.          use SPF.  Its characteristics are considered superior to
  1270.          GGP [58].
  1271.  
  1272.          Under SPF, the routing data-base is replicated rather than
  1273.          distributed.  Each gateway will have its own copy of the same
  1274.          data-base, containing the entire Internet topology and the
  1275.          lengths of every path.  Since each gateway has all the routing
  1276.          data and runs a shortest-path algorithm locally, there is no
  1277.          problem of global convergence of a distributed algorithm, as in
  1278.          GGP.  To build this replicated data-base, a gateway sends SPF
  1279.          routing updates to ALL other gateways; these updates only list
  1280.          the distances to each of the gateway's neighbors, making them
  1281.          much smaller than GGP updates.  The algorithm used to
  1282.          distribute SPF routing updates involves reliable flooding.
  1283.  
  1284.       2.6.3.  Routing Information (RIP)
  1285.  
  1286.          RIP is the name often used for a class of routing protocols
  1287.          based upon the Xerox PUP and XNS routing protocols.  These are
  1288.          relatively simple, and are widely available because they are
  1289.          incorporated in the embedded gateway code of Berkeley BSD
  1290.          systems.  Because of this simplicity, RIP protocols have come
  1291.          the closest of any to being an "Open IGP", i.e., a protocol
  1292.          which can be used between different vendors' gateways.
  1293.          Unfortunately, there is no standard, and in fact not even a
  1294.          good document, for RIP.
  1295.  
  1296.          As in GGP, gateways using RIP periodically broadcast their
  1297.          routing data-base to their neighbor gateways, and use a
  1298.          hop-count as the metric.
  1299.  
  1300.          A fixed value of the hop-count (normally 16) is defined to be
  1301.          "infinity", i.e., network unreachable.  A RIP implementation
  1302.          must include measures to avoid both the slow-convergence
  1303.          phenomen called "counting to infinity" and the formation of
  1304.          routing loops.  One such measure is a "hold-down" rule.  This
  1305.          rule establishes a period of time (typically 60 seconds) during
  1306.          which a gateway will ignore new routing information about a
  1307.          given network, once the gateway has learned that network is
  1308.  
  1309.  
  1310. Braden & Postel                                                [Page 23]
  1311.  
  1312.  
  1313.  
  1314. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1315.  
  1316.  
  1317.          unreachable (has hop-count "infinity").  The hold-down period
  1318.          must be settable in the gateway configuration; if gateways with
  1319.          different hold-down periods are using RIP in the same
  1320.          Autonomous System, routing loops are a distinct possibility.
  1321.          In general, the hold-down period is chosen large enough to
  1322.          allow time for unreachable status to propagate to all gateways
  1323.          in the AS.
  1324.  
  1325.       2.6.4.  Hello
  1326.  
  1327.          The "Fuzzball" software for an LSI/11 developed by Dave Mills
  1328.          incorporated an IGP called the "Hello" protocol [39].  This IGP
  1329.          is mentioned here because the Fuzzballs have been widely used
  1330.          in Internet experimentation, and because they have served as a
  1331.          testbed for many new routing ideas.
  1332.  
  1333.    2.7.  Monitoring Protocols
  1334.  
  1335.       See Section 5 of this document.
  1336.  
  1337.    2.8.  Internet Group Management Protocol (IGMP)
  1338.  
  1339.       An extension to the IP protocol has been defined to provide
  1340.       Internet-wide multicasting, i.e., delivery of copies of the same
  1341.       IP datagram to a set of Internet hosts [47, 48].  This delivery is
  1342.       to be performed by processes known as "multicasting agents", which
  1343.       reside either in a host on each net or (preferably) in the
  1344.       gateways.
  1345.  
  1346.       The set of hosts to which a datagram is delivered is called a
  1347.       "host group", and there is a host-agent protocol called IGMP,
  1348.       which a host uses to join, leave, or create a group.  Each host
  1349.       group is distinguished by a Class D IP address.
  1350.  
  1351.       This multicasting mechanism and its IGMP protocol are currently
  1352.       experimental; implementation in vendor gateways would be premature
  1353.       at this time.  A datagram containing a Class D IP address must be
  1354.       dropped, with no ICMP error message.
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367. Braden & Postel                                                [Page 24]
  1368.  
  1369.  
  1370.  
  1371. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1372.  
  1373.  
  1374. 3.  Constituent Network Interface
  1375.  
  1376.    This section discusses the rules used for transmission of IP
  1377.    datagrams on the most common types of constituent networks.  A
  1378.    gateway must be able to send and receive IP datagrams of any size up
  1379.    to the MTU of any constituent network to which it is connected.
  1380.  
  1381.    3.1.  Public data networks via X.25
  1382.  
  1383.       The formats specified for public data networks accessed via X.25
  1384.       are described in RFC-877 [8].  Datagrams are transmitted over
  1385.       standard level-3 virtual circuits as complete packet sequences.
  1386.       Virtual circuits are usually established dynamically as required
  1387.       and time-out after a period of no traffic.  Link-level
  1388.       retransmission, resequencing and flow control are performed by the
  1389.       network for each virtual circuit and by the LAPB link-level
  1390.       protocol.  Note that a single X.25 virtual circuit may be used to
  1391.       multiplex all IP traffic between a pair of hosts.  However,
  1392.       multiple parallel virtual circuits may be used in order to improve
  1393.       the utilization of the subscriber access line, in spite of small
  1394.       X.25 window sizes; this can result in random resequencing.
  1395.  
  1396.       The correspondence between Internet and X.121 addresses is usually
  1397.       established by table-lookup.  It is expected that this will be
  1398.       replaced by some sort of directory procedure in the future.  The
  1399.       table of the hosts on the Public Data Network is in the Assigned
  1400.       Numbers [23].
  1401.  
  1402.       The normal MTU is 576; however, the two DTE's (hosts or gateways)
  1403.       can use X.25 packet size negotiation to increase this value [8].
  1404.  
  1405.    3.2.  ARPANET via 1822 LH, DH, or HDH
  1406.  
  1407.       The formats specified for ARPANET networks using 1822 access are
  1408.       described in BBN Report 1822 [3], which includes the procedures
  1409.       for several subscriber access methods.  The Distant Host (DH)
  1410.       method is used when the host and IMP (the Defense Communication
  1411.       Agency calls it a Packet Switch Node or PSN) are separated by not
  1412.       more than about 2000 feet of cable, while the HDLC Distant Host
  1413.       (HDH) is used for greater distances where a modem is required.
  1414.       Under HDH, retransmission, resequencing and flow control are
  1415.       performed by the network and by the HDLC link-level protocol.
  1416.  
  1417.       The IP encapsulation format is simply to include the IP datagram
  1418.       as the data portion of an 1822 message.  In addition, the
  1419.       high-order 8 bits of the Message Id field (also known as the
  1420.       "link" field") should be set to 155 [23].  The MTU is 1007 octets.
  1421.  
  1422.  
  1423.  
  1424. Braden & Postel                                                [Page 25]
  1425.  
  1426.  
  1427.  
  1428. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1429.  
  1430.  
  1431.       While the ARPANET 1822 protocols are widely used at present, they
  1432.       are expected to be eventually overtaken by the DDN Standard X.25
  1433.       protocol (see Section 3.3).  The original IP address mapping
  1434.       (RFC-796 [38]) is in the process of being replaced by a new
  1435.       interface specification called AHIP-E; see RFC-1005 [61] for the
  1436.       proposal.
  1437.  
  1438.       Gateways connected to ARPANET or MILNET IMPs using 1822 access
  1439.       must incorporate features to avoid host-port blocking (i.e., RFNM
  1440.       counting) and to detect and report as ICMP Unreachable messages
  1441.       the failure of destination hosts or gateways (i.e., convert the
  1442.       1822 error messages to the appropriate ICMP messages).
  1443.  
  1444.       In the development of a network interface it will be useful to
  1445.       review the IMP end-to-end protocol described in RFC-979 [29].
  1446.  
  1447.    3.3.  ARPANET via DDN Standard X.25
  1448.  
  1449.       The formats specified for ARPANET networks via X.25 are described
  1450.       in the Defense Data Network X.25 Host Interface Specification [6],
  1451.       which describes two sets of procedures: the DDN Basic X.25, and
  1452.       the DDN Standard X.25.  Only DDN Standard X.25 provides the
  1453.       functionality required for interoperability assumptions of the
  1454.       Internet protocol.
  1455.  
  1456.       The DDN Standard X.25 procedures are similar to the public data
  1457.       network X.25 procedures, except in the address mappings.
  1458.       Retransmission, resequencing and flow control are performed by the
  1459.       network and by the LAPB link-level protocol.  Multiple parallel
  1460.       virtual circuits may be used in order to improve the utilization
  1461.       of the subscriber access line; this can result in random
  1462.       resequencing.
  1463.  
  1464.       Gateways connected to ARPANET or MILNET using Standard X.25 access
  1465.       must detect and report as ICMP Unreachable messages the failure of
  1466.       destination hosts or gateways (i.e., convert the X.25 diagnostic
  1467.       codes to the appropriate ICMP messages).
  1468.  
  1469.       To achieve compatibility with 1822 interfaces, the effective MTU
  1470.       for a Standard X.25 interface is 1007 octets.
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481. Braden & Postel                                                [Page 26]
  1482.  
  1483.  
  1484.  
  1485. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1486.  
  1487.  
  1488.    3.4.  Ethernet and IEEE 802
  1489.  
  1490.       The formats specified for Ethernet networks are described in
  1491.       RFC-894 [10].  Datagrams are encapsulated as Ethernet packets with
  1492.       48-bit source and destination address fields and a 16-bit type
  1493.       field (the type field values are listed in the Assigned
  1494.       Numbers [23]).  Address translation between Ethernet addresses and
  1495.       Internet addresses is managed by the Address Resolution Protocol,
  1496.       which is required in all Ethernet implementations.  There is no
  1497.       explicit link-level retransmission, resequencing or flow control,
  1498.       although most hardware interfaces will retransmit automatically in
  1499.       case of collisions on the cable.
  1500.  
  1501.       The IEEE 802 networks use a Link Service Access Point (LSAP) field
  1502.       in much the same way the ARPANET uses the "link" field.  Further,
  1503.       there is an extension of the LSAP header called the Sub-Network
  1504.       Access Protocol (SNAP).
  1505.  
  1506.       The 802.2 encapsulation is used on 802.3, 802.4, and 802.5 network
  1507.       by using the SNAP with an organization code indicating that the
  1508.       following 16 bits specify the Ether-Type code [23].
  1509.  
  1510.       Headers:
  1511.  
  1512.          ...--------+--------+--------+
  1513.           MAC Header|      Length     |                  802.{3/4/5} MAC
  1514.          ...--------+--------+--------+
  1515.  
  1516.          +--------+--------+--------+
  1517.          | DSAP=K1| SSAP=K1| control|                          802.2 SAP
  1518.          +--------+--------+--------+
  1519.  
  1520.          +--------+--------+--------+--------+--------+
  1521.          |protocol id or org code=K2|    Ether-Type   |       802.2 SNAP
  1522.          +--------+--------+--------+--------+--------+
  1523.  
  1524.       The total length of the SAP Header and the SNAP header is
  1525.       8-octets, making the 802.2 protocol overhead come out on a 64-bit
  1526.       boundary.
  1527.  
  1528.       K1 is 170.  The IEEE likes to talk about things in bit
  1529.       transmission order and specifies this value as 01010101.  In
  1530.       big-endian order, as used in the Internet specifications, this
  1531.       becomes 10101010 binary, or AA hex, or 170 decimal.  K2 is 0
  1532.       (zero).
  1533.  
  1534.       The use of the IP LSAP (K1 = 6) is reserved for future
  1535.       development.
  1536.  
  1537.  
  1538. Braden & Postel                                                [Page 27]
  1539.  
  1540.  
  1541.  
  1542. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1543.  
  1544.  
  1545.       The assigned values for the Ether-Type field are the same for
  1546.       either this IEEE 802 encapsulation or the basic Ethernet
  1547.       encapsulation [10].
  1548.  
  1549.       In either Ethernets or IEEE 802 nets, the IP datagram is the data
  1550.       portion of the packet immediately following the Ether-Type.
  1551.  
  1552.       The MTU for an Ethernet or its IEEE-standard equivalent (802.3) is
  1553.       1500 octets.
  1554.  
  1555.    3.5.  Serial-Line Protocols
  1556.  
  1557.       In some configurations, gateways may be interconnected with each
  1558.       other by means of serial asynchronous or synchronous lines, with
  1559.       or without modems.  When justified by the expected error rate and
  1560.       other factors, a link-level protocol may be required on the serial
  1561.       line.  While there is no single Internet standard for this
  1562.       protocol, it is suggested that one of the following protocols be
  1563.       used.
  1564.  
  1565.          *  X.25 LAPB  (Synchronous Lines)
  1566.  
  1567.             This is the link-level protocol used for X.25 network
  1568.             access.  It includes HDLC "bit-stuffing" as well as
  1569.             rotating-window flow control and reliable delivery.
  1570.  
  1571.                A gateway must be configurable to play the role of either
  1572.                the DCE or the DTE.
  1573.  
  1574.          *  HDLC Framing  (Synchronous Lines)
  1575.  
  1576.             This is just the bit-stuffing and framing rules of LAPB.  It
  1577.             is the simplest choice, although it provides no flow control
  1578.             or reliable delivery; however, it does provide error
  1579.             detection.
  1580.  
  1581.          *  Xerox Synchronous Point-to-Point  (Synchronous Lines)
  1582.  
  1583.             This Xerox protocol is an elaboration upon HDLC framing that
  1584.             includes negotiation of maximum packet sizes, dial-up or
  1585.             dedicated circuits, and half- or full-duplex operation [12].
  1586.  
  1587.          *  Serial Line Framing Protocol  (Asynchronous Lines)
  1588.  
  1589.             This protocol is included in the MIT PC/IP package for an
  1590.             IBM PC and is defined in Appendix I to the manual for that
  1591.             system [20].
  1592.  
  1593.  
  1594.  
  1595. Braden & Postel                                                [Page 28]
  1596.  
  1597.  
  1598.  
  1599. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1600.  
  1601.  
  1602.       It will be important to make efficient use of the bandwidth
  1603.       available on a serial line between gateways.  For example, it is
  1604.       desirable to provide some form of data compression.  One possible
  1605.       standard compression algorithm, "Thinwire II", is described in
  1606.       RFC-914 [42].  This and similar algorithms are tuned to the
  1607.       particular types of redundancy which occur in IP and TCP headers;
  1608.       however, more work is necessary to define a standard serial-line
  1609.       compression protocol for Internet gateways.  Until a standard has
  1610.       been adopted, each vendor is free to choose a compression
  1611.       algorithm; of course, the result will only be useful on a serial
  1612.       line between two gateways using the same compression algorithm.
  1613.  
  1614.       Another way to ensure maximum use of the bandwidth is to avoid
  1615.       unnecessary retransmissions at the link level.  For some kinds of
  1616.       IP traffic, low delay is more important than reliable delivery.
  1617.       The serial line driver could distinguish such datagrams by their
  1618.       IP TOS field, and place them on a special high-priority,
  1619.       no-retransmission queue.
  1620.  
  1621.       A serial point-to-point line between two gateways may be
  1622.       considered to be a (particularly simple) network, a "null net".
  1623.       Considered in this way, a serial line requires no special
  1624.       considerations in the routing algorithms of the connected
  1625.       gateways, but does need an IP network number.  To avoid the
  1626.       wholesale consumption of Internet routing data-base space by null
  1627.       nets, we strongly recommend that subnetting be used for null net
  1628.       numbering, whenever possible.
  1629.  
  1630.          For example, assume that network 128.203 is to be constructed
  1631.          of gateways joined by null nets; these nets are given (sub-)net
  1632.          numbers 128.203.1, 128.203.2, etc., and the two interfaces on
  1633.          each end of null net 128.203.s might have IP addresses
  1634.          128.203.s.1 and 128.203.s.2.
  1635.  
  1636.       An alternative model of a serial line is that it is not a network,
  1637.       but rather an internal communication path joining two "half
  1638.       gateways".  It is possible to design an IGP and routing algorithm
  1639.       that treats a serial line in this manner [39, 52].
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652. Braden & Postel                                                [Page 29]
  1653.  
  1654.  
  1655.  
  1656. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1657.  
  1658.  
  1659. 4.  Gateway Algorithms
  1660.  
  1661.    Gateways are general packet-switches that forward packets according
  1662.    to the IP address, i.e., they are IP routers.   While it is beyond
  1663.    the scope of this document to specify the details of the mechanisms
  1664.    used in any particular, perhaps proprietary, gateway architecture,
  1665.    there are a number of basic algorithms which must be provided by any
  1666.    acceptable design.
  1667.  
  1668.    4.1.  Routing Algorithm
  1669.  
  1670.       The routing mechanism is fundamental to Internet operation.  In
  1671.       all but trivial network topologies, robust Internet service
  1672.       requires some degree of routing dynamics, whether it be effected
  1673.       by manual or automatic means or by some combination of both.  In
  1674.       particular, if routing changes are made manually, it must be
  1675.       possible to make these routing changes from a remote Network
  1676.       Operation Center (NOC) without taking down the gateway for
  1677.       reconfiguration.  If static routes are used, there must be
  1678.       automatic fallback or rerouting features.
  1679.  
  1680.       Handling unpredictable changes in Internet connectivity must be
  1681.       considered the normal case, so that systems of gateways will
  1682.       normally be expected to have a routing algorithm with the
  1683.       capability of reacting to link and other gateway failures and
  1684.       changing the routing automatically.
  1685.  
  1686.       This document places no restriction on the type of routing
  1687.       algorithm, e.g., node-based, link-based or any other algorithm, or
  1688.       on the routing distance metric, e.g., delay or hop-count.
  1689.       However, the following features are considered necessary for a
  1690.       successful gateway routing algorithm:
  1691.  
  1692.          1.  The algorithm must sense the failure or restoration of a
  1693.              link or other gateway and switch to appropriate paths.  A
  1694.              design objective is to switch paths within an interval less
  1695.              than the typical TCP user time-out (one minute is a safe
  1696.              assumption).
  1697.  
  1698.          2.  The algorithm must suppress routing loops between neighbor
  1699.              gateways and must contain provisions to avoid or suppress
  1700.              routing loops that may form between non-neighbor gateways.
  1701.              A design objective is for no loop to persist for longer
  1702.              than an interval greater than the typical TCP user
  1703.              time-out.
  1704.  
  1705.          3.  The control traffic necessary to operate the routing
  1706.              algorithm must not significantly degrade or disrupt normal
  1707.  
  1708.  
  1709. Braden & Postel                                                [Page 30]
  1710.  
  1711.  
  1712.  
  1713. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1714.  
  1715.  
  1716.              network operation.  Changes in state which might
  1717.              momentarily disrupt normal operation in a local-area must
  1718.              not cause disruption in remote areas of the network.
  1719.  
  1720.          4.  As the size of the network increases, the demand on
  1721.              resources must be controlled in an efficient way.  Table
  1722.              lookups should be hashed, for example, and data-base
  1723.              updates handled piecemeal, with only incremental changes
  1724.              broadcast over a wide-area.
  1725.  
  1726.          5.  The size of the routing data-base must not be allowed to
  1727.              exceed a constant, independent of network topology, times
  1728.              the number of nodes times the mean connectivity (average
  1729.              number of incident links).  An advanced design might not
  1730.              require that the entire routing data-base be kept in any
  1731.              particular gateway, so that discovery and caching
  1732.              techniques would be necessary.
  1733.  
  1734.          6.  Reachability and delay metrics, if used, must not depend on
  1735.              direct connectivity to all other gateways or on the use of
  1736.              network-specific broadcast mechanisms.  Polling procedures
  1737.              (e.g., for consistency checking) must be used only
  1738.              sparingly and in no case introduce an overhead exceeding a
  1739.              constant, independent of network topology, times the
  1740.              longest non-looping path.
  1741.  
  1742.          7.  Default routes (generally intended as a means to reduce the
  1743.              size of the routing data-base) must be used with care,
  1744.              because of the many problems with multiple paths, loops,
  1745.              and mis-configurations which routing defaults have caused.
  1746.  
  1747.              The most common application of defaults is for routing
  1748.              within an Internet region which is connected in a strictly
  1749.              hierarchical fashion and is a stub from the rest of the
  1750.              Internet system.  In this case, the default is used for
  1751.              routing "up" the tree.  Unfortunately, such restricted
  1752.              topology seldom lasts very long, and defaults cease to
  1753.              work.
  1754.  
  1755.              More generally, defaults could be used for initial routing
  1756.              guesses, with final routes to be discovered and cached from
  1757.              external or internal data-bases via the routing algorithm
  1758.              or EGP.
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766. Braden & Postel                                                [Page 31]
  1767.  
  1768.  
  1769.  
  1770. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1771.  
  1772.  
  1773.    4.2.  Subnets and Routing
  1774.  
  1775.       We will call a gateway "subnetted" if at least one of its
  1776.       interfaces is connected to a subnet; the set of gateways directly
  1777.       connected to subnets of the same network will be referred to as a
  1778.       "subnet cluster".  For example, in the following diagram, network
  1779.       2 is subnetted, with subnets 2.1 and 2.2, but network 1 is not;
  1780.       gateways 1, 2, and 3 are subnetted and are members of the same
  1781.       subnet cluster.
  1782.  
  1783.          (Net 1) === [Gwy 1] === (Net 2.1) === [Gwy 2] === (Net 2.2)
  1784.             |                                                   |
  1785.             |                                                   |
  1786.              =================== [Gwy 3] =======================
  1787.  
  1788.       Subnets have the following effects on gateway routing:
  1789.  
  1790.          A.  Non-subnetted gateways are not affected at all.
  1791.  
  1792.          B.  The routing data-base in a subnetted gateway must consider
  1793.              the address mask for subnet entries.
  1794.  
  1795.          C.  Routing updates among the gateways in the same subnet
  1796.              cluster must include entries for the various subnets.  The
  1797.              corresponding address mask(s) may be implicit, but for full
  1798.              generality the mask needs to be given explicitly for each
  1799.              entry.  Note that if the routing data-base included a full
  1800.              32-bit mask for every IP network, the gateway could deal
  1801.              with networks and subnets in a natural way.  This would
  1802.              also handle the case of multiple subnet masks for the same
  1803.              subnetted network.
  1804.  
  1805.          D.  Routing updates from a subnetted gateway to a gateway
  1806.              outside the cluster can contain nets, never subnets.
  1807.  
  1808.          E.  If a subnetted gateway (e.g., gateway 2 above) is unable to
  1809.              forward a datagram from one subnet to another subnet of the
  1810.              same network, then it must return a Host Unreachable, not a
  1811.              Net Unreachable, as discussed in Section 2.2.1.
  1812.  
  1813.       When considering the choice of routing protocol, a gateway builder
  1814.       must consider how that protocol generalizes for subnets.  For some
  1815.       routing protocols it will be possible to use the same procedures
  1816.       in a regular gateway and a subnetted gateway, with only a change
  1817.       of parameters (e.g., address masks).
  1818.  
  1819.       A different subnet address mask must be configurable for each
  1820.  
  1821.  
  1822.  
  1823. Braden & Postel                                                [Page 32]
  1824.  
  1825.  
  1826.  
  1827. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1828.  
  1829.  
  1830.       interface of a given gateway.  This will allow a subnetted gateway
  1831.       to connect to two different subnetted networks, or to connect two
  1832.       subnets of the same network with different masks.
  1833.  
  1834.    4.3   Resource Allocation
  1835.  
  1836.       In order to perform its basic datagram-forwarding functions, a
  1837.       gateway must allocate resources; its packet buffers and CPU time
  1838.       must be allocated to packets it receives from connected networks,
  1839.       while the bandwidth to each of the networks must also be allocated
  1840.       for sending packets.  The choice of allocation strategies will be
  1841.       critical when a particular resource is scarce.  The most obvious
  1842.       allocation strategy, first-come-first-served (FCFS), may not be
  1843.       appropriate under overload conditions, for reasons which we will
  1844.       now explore.
  1845.  
  1846.       A first example is buffer allocation.  It is important for a
  1847.       gateway to allocate buffers fairly among all of its connected
  1848.       networks, even if these networks have widely varying bandwidths.
  1849.       A high-speed interface must not be allowed to starve slower
  1850.       interfaces of buffers.  For example, consider a gateway with a
  1851.       10 Mbps Ethernet connection and two 56 Kbps serial lines.  A buggy
  1852.       host on the Ethernet may spray that gateway interface with packets
  1853.       at high speed.  Without careful algorithm design in the gateway,
  1854.       this could tie up all the gateway buffers in such a way that
  1855.       transit traffic between the serial lines would be completely
  1856.       stopped.
  1857.  
  1858.       Allocation of output bandwidth may also require non-FCFS
  1859.       strategies.  In an advanced gateway design, allocation of output
  1860.       bandwidth may depend upon Type-of-Service bits in the IP headers.
  1861.       A gateway may also want to give priority to datagrams for its own
  1862.       up/down and routing protocols.
  1863.  
  1864.       Finally, Nagle [24] has suggested that gateways implement "fair
  1865.       queueing", i.e., sharing output bandwidth equitably among the
  1866.       current traffic sources.  In his scheme, for each network
  1867.       interface there would be a dynamically-built set of output queues,
  1868.       one per IP source address; these queues would be serviced in a
  1869.       round-robin fashion to share the bandwidth.  If subsequent
  1870.       research shows fair queueing to be desirable, it will be added to
  1871.       a future version of this document as a universal requirement.
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880. Braden & Postel                                                [Page 33]
  1881.  
  1882.  
  1883.  
  1884. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1885.  
  1886.  
  1887.    4.4.  Special Addresses and Filters
  1888.  
  1889.       Section 2.1 contained a list of the 32-bit IP addresses which have
  1890.       special meanings.  They do not in general represent unique IP
  1891.       addresses of Internet hosts, and there are restrictions on their
  1892.       use in IP headers.
  1893.  
  1894.       We can distinguish two classes of these special cases.  The first
  1895.       class (specifically, cases (a), (b), (c), (g), (h), and (i) in
  1896.       section 2.1) contains addresses which should never appear in the
  1897.       destination address field of any IP datagram, so a gateway should
  1898.       never be asked to route to one of these addresses.  However, in
  1899.       the real world of imperfect implementations and configuration
  1900.       errors, such bad destination addresses do occur.  It is the
  1901.       responsibility of a gateway to avoid propagating such erroneous
  1902.       addresses; this is especially important for gateways included in
  1903.       the global interconnect system.  In particular, a gateway which
  1904.       receives a datagram with one of these forbidden addresses should:
  1905.  
  1906.          1.  Avoid inserting that address into its routing database, and
  1907.              avoid including it in routing updates to any other gateway.
  1908.  
  1909.          2.  Avoid forwarding a datagram containing that address as a
  1910.              destination.
  1911.  
  1912.       To enforce these restrictions, it is suggested that a gateway
  1913.       include a configurable filter for datagrams and routing updates.
  1914.       A typical filter entry might consist of a 32-bit mask and value
  1915.       pair.  If the logical AND of the given address with the mask
  1916.       equals the value, a match has been found.  Since filtering will
  1917.       consume gateway resources, it is vital that the gateway
  1918.       configuration be able to control the degree of filtering in use.
  1919.  
  1920.       There is a second class of special case addresses (cases (d), (e),
  1921.       and (f) in section 2.1), the so-called "directed broadcasts".  A
  1922.       directed broadcast is a datagram to be forwarded normally to the
  1923.       specified destination (sub-)net and then broadcast on the final
  1924.       hop.  An Internet gateway is permitted, but not required, to
  1925.       filter out directed broadcasts destined for any of its
  1926.       locally-connected networks.  Hence, it should be possible to
  1927.       configure the filter to block the delivery of directed broadcasts.
  1928.  
  1929.       Finally, it will also be useful for Internet O&M to have a
  1930.       configurable filter on the IP source address.  This will allow a
  1931.       network manager to temporarily block traffic from a particular
  1932.       misbehaving host, for example.
  1933.  
  1934.  
  1935.  
  1936.  
  1937. Braden & Postel                                                [Page 34]
  1938.  
  1939.  
  1940.  
  1941. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1942.  
  1943.  
  1944.    4.5.  Redirects
  1945.  
  1946.       The ICMP Redirect message is specified only for use by a gateway
  1947.       to update the routing table of a host on the same connected net.
  1948.       However, the Redirect message is sometimes used between gateways,
  1949.       due to the following considerations:
  1950.  
  1951.          The routing function in a host is very much like that in a
  1952.          "dumb gateway" (i.e., a gateway having only static routes).  It
  1953.          is desirable to allow the routing tables of a dumb gateway to
  1954.          be changed under the control of a dynamic gateway (i.e., a
  1955.          gateway with full dynamic routing) on the same network.  By
  1956.          analogy, it is natural to let the dynamic gateway send ICMP
  1957.          Redirect messages to dumb gateway.
  1958.  
  1959.       The use of ICMP Redirect between gateways in this fashion may be
  1960.       considered to be part of the IGP (in fact, the totality of the
  1961.       IGP, as far as the dumb gateway is concerned!) in the particular
  1962.       Autonomous System.   Specification of an IGP is outside the scope
  1963.       of this document, so we only note the possibility of using
  1964.       Redirect in this fashion.  Gateways are not required to receive
  1965.       and act upon redirects, and in fact dynamic gateways must ignore
  1966.       them.  We also note that considerable experience shows that dumb
  1967.       gateways often create problems resulting in "black holes"; a full
  1968.       routing gateway is always preferable.
  1969.  
  1970.       Routing table entries established by redirect messages must be
  1971.       removed automatically, either by a time-out or when a use count
  1972.       goes to zero.
  1973.  
  1974.    4.6.  Broadcast and Multicast
  1975.  
  1976.       A host which is connected to a network (generally a LAN) with an
  1977.       intrinsic broadcast capability may want to use this capability to
  1978.       effect multidestination delivery of IP datagrams.  The basic
  1979.       Internet model assumes point-to-point messages, and we must take
  1980.       some care when we incorporate broadcasting.  It is important to
  1981.       note that broadcast addresses may occur at two protocol levels:
  1982.       the local network header and the IP header.
  1983.  
  1984.       Incorrect handling of broadcasting has often been the cause of
  1985.       packet avalanches (sometimes dubbed "meltdown") in LANs.  These
  1986.       avalanches are generally caused by gratuitous datagram-forwarding
  1987.       by hosts, or by hosts sending ICMP error messages when they
  1988.       discard broadcast datagrams.
  1989.  
  1990.       Gateways have a responsibility to prevent avalanches, or datagrams
  1991.       which can trigger avalanches, from escaping into another network.
  1992.  
  1993.  
  1994. Braden & Postel                                                [Page 35]
  1995.  
  1996.  
  1997.  
  1998. RFC 1009 - Requirements for Internet Gateways                  June 1987
  1999.  
  2000.  
  2001.       In general, a gateway must not forward a datagram which arrives
  2002.       via local network broadcast, and must not send an ICMP error
  2003.       message when dropping the datagram.  A discussion of the rules
  2004.       will be found in Appendix A; see also [50].
  2005.  
  2006.       As noted in Section 4.4, a gateway is permitted to filter out
  2007.       directed broadcasts.  Hence, directed broadcasts will only be
  2008.       useful in limited Internet regions (e.g., the within the subnets
  2009.       of a particular campus) in which delivery is supported by the
  2010.       gateway administrators.  Host group multicasting (see Sections 2.8
  2011.       and 4.6) will soon provide a much more efficient mechanism than
  2012.       directed broadcasting.  Gateway algorithms for host group
  2013.       multicasting will be specified in future RFC's.
  2014.  
  2015.    4.7.  Reachability Procedures
  2016.  
  2017.       The architecture must provide a robust mechanism to establish the
  2018.       operational status of each link and node in the network, including
  2019.       the gateways, the links connecting them and, where appropriate,
  2020.       the hosts as well.  Ordinarily, this requires at least a
  2021.       link-level reachability protocol involving a periodic exchange of
  2022.       messages across each link.  This function might be intrinsic to
  2023.       the link-level protocols used (e.g., LAPB).  However, it is in
  2024.       general ill-advised to assume a host or gateway is operating
  2025.       correctly even if its link-level reachability protocol is
  2026.       operating correctly.  Additional confirmation is required in the
  2027.       form of an operating routing algorithm or peer-level reachability
  2028.       protocol (such as used in EGP).
  2029.  
  2030.       Failure and restoration of a link and/or gateway are considered
  2031.       network events and must be reported to the control center.  It is
  2032.       desirable, although not required, that reporting paths not require
  2033.       correct functioning of the routing algorithm itself.
  2034.  
  2035.    4.8.  Time-To-Live
  2036.  
  2037.       The Time-to-Live (TTL) field of the IP header is defined to be a
  2038.       timer limiting the lifetime of a datagram in the Internet.  It is
  2039.       an 8-bit field and the units are seconds.  This would imply that
  2040.       for a maximum TTL of 255 a datagram would time-out after about 4
  2041.       and a quarter minutes.  Another aspect of the definition requires
  2042.       each gateway (or other module) that handles a datagram to
  2043.       decrement the TTL by at least one, even if the elapsed time was
  2044.       much less than a second.  Since this is very often the case, the
  2045.       TTL effectively becomes a hop count limit on how far a datagram
  2046.       can propagate through the Internet.
  2047.  
  2048.  
  2049.  
  2050.  
  2051. Braden & Postel                                                [Page 36]
  2052.  
  2053.  
  2054.  
  2055. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2056.  
  2057.  
  2058.       As the Internet grows, the number of hops needed to get from one
  2059.       edge to the opposite edge increases, i.e., the Internet diameter
  2060.       grows.
  2061.  
  2062.       If a gateway holds a datagram for more than one second, it must
  2063.       decrement the TTL by one for each second.
  2064.  
  2065.       If the TTL is reduced to zero, the datagram must be discarded, and
  2066.       the gateway may send an ICMP Time Exceeded message to the source.
  2067.       A datagram should never be received with a TTL of zero.
  2068.  
  2069.       When it originates a datagram, a gateway is acting in the role of
  2070.       a host and must supply a realistic initial value for the TTL.
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108. Braden & Postel                                                [Page 37]
  2109.  
  2110.  
  2111.  
  2112. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2113.  
  2114.  
  2115. 5.  Operation and Maintenance
  2116.  
  2117.    5.1.  Introduction
  2118.  
  2119.       Facilities to support operation and maintenance (O&M) activities
  2120.       form an essential part of any gateway implementation.  The
  2121.       following kinds of activity are included under gateway O&M:
  2122.  
  2123.          *  Diagnosing hardware problems in the gateway processor, in
  2124.             its network interfaces, or in the connected networks,
  2125.             modems, or communication lines.
  2126.  
  2127.          *  Installing a new version of the gateway software.
  2128.  
  2129.          *  Restarting or rebooting a gateway after a crash.
  2130.  
  2131.          *  Configuring (or reconfiguring) the gateway.
  2132.  
  2133.          *  Detecting and diagnosing Internet problems such as
  2134.             congestion, routing loops, bad IP addresses, black holes,
  2135.             packet avalanches, and misbehaved hosts.
  2136.  
  2137.          *  Changing network topology, either temporarily (e.g., to
  2138.             diagnose a communication line problem) or permanently.
  2139.  
  2140.          *  Monitoring the status and performance of the gateways and
  2141.             the connected networks.
  2142.  
  2143.          *  Collecting traffic statistics for use in (Inter-)network
  2144.             planning.
  2145.  
  2146.       Gateways, packet-switches, and their connected communication lines
  2147.       are often operated as a system by a centralized O&M organization.
  2148.       This organization will maintain a (Inter-)network operation
  2149.       center, or NOC, to carry out its O&M functions.  It is essential
  2150.       that gateways support remote control and monitoring from such a
  2151.       NOC, through an Internet path (since gateways might not be
  2152.       connected to the same network as their NOC).  Furthermore, an IP
  2153.       datagram traversing the Internet will often use gateways under the
  2154.       control of more than one NOC; therefore, Internet problem
  2155.       diagnosis will often involve cooperation of personnel of more than
  2156.       one NOC.  In some cases, the same gateway may need to be monitored
  2157.       by more than one NOC.
  2158.  
  2159.       The tools available for monitoring at a NOC may cover a wide range
  2160.       of sophistication.  Proposals have included multi-window, dynamic
  2161.       displays of the entire gateway system, and the use of AI
  2162.       techniques for automatic problem diagnosis.
  2163.  
  2164.  
  2165. Braden & Postel                                                [Page 38]
  2166.  
  2167.  
  2168.  
  2169. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2170.  
  2171.  
  2172.       Gateway O&M facilities discussed here are only a part of the large
  2173.       and difficult problem of Internet management.  These problems
  2174.       encompass not only multiple management organizations, but also
  2175.       multiple protocol layers.  For example, at the current stage of
  2176.       evolution of the Internet architecture, there is a strong coupling
  2177.       between host TCP implementations and eventual IP-level congestion
  2178.       in the gateway system [9].  Therefore, diagnosis of congestion
  2179.       problems will sometimes require the monitoring of TCP statistics
  2180.       in hosts.  Gateway algorithms also interact with local network
  2181.       performance, especially through handling of broadcast packets and
  2182.       ARP, and again diagnosis will require access to hosts (e.g.,
  2183.       examining ARP caches).  However, consideration of host monitoring
  2184.       is beyond the scope of this RFC.
  2185.  
  2186.       There are currently a number of R&D efforts in progress in the
  2187.       area of Internet management and more specifically gateway O&M.  It
  2188.       is hoped that these will lead quickly to Internet standards for
  2189.       the gateway protocols and facilities required in this area.  This
  2190.       is also an area in which vendor creativity can make a significant
  2191.       contribution.
  2192.  
  2193.    5.2.   Gateway O&M Models
  2194.  
  2195.       There is a range of possible models for performing O&M functions
  2196.       on a gateway.  At one extreme is the local-only model, under which
  2197.       the O&M functions can only be executed locally, e.g., from a
  2198.       terminal plugged into the gateway machine.  At the other extreme,
  2199.       the fully-remote model allows only an absolute minimum of
  2200.       functions to be performed locally (e.g., forcing a boot), with
  2201.       most O&M being done remotely from the NOC.  There intermediate
  2202.       models, e.g., one in which NOC personnel can log into the gateway
  2203.       as a host, using the Telnet protocol, to perform functions which
  2204.       can also be invoked locally.  The local-only model may be adequate
  2205.       in a few gateway installations, but in general remote operation
  2206.       from a NOC will be required, and therefore remote O&M provisions
  2207.       are required for most gateways.
  2208.  
  2209.       Remote O&M functions may be exercised through a control agent
  2210.       (program).  In the direct approach, the gateway would support
  2211.       remote O&M functions directly from the NOC using standard Internet
  2212.       protocols (e.g., UDP or TCP); in the indirect approach, the
  2213.       control agent would support these protocols and control the
  2214.       gateway itself using proprietary protocols.  The direct approach
  2215.       is preferred, although either approach is acceptable.  The use of
  2216.       specialized host hardware and/or software requiring significant
  2217.       additional investment is discouraged; nevertheless, some vendors
  2218.       may elect to provide the control agent as an integrated part of
  2219.       the network in which the gateways are a part.  If this is the
  2220.  
  2221.  
  2222. Braden & Postel                                                [Page 39]
  2223.  
  2224.  
  2225.  
  2226. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2227.  
  2228.  
  2229.       case, it is required that a means be available to operate the
  2230.       control agent from a remote site using Internet protocols and
  2231.       paths and with equivalent functionality with respect to a local
  2232.       agent terminal.
  2233.  
  2234.       It is desirable that a control agent and any other NOC software
  2235.       tools which a vendor provides operate as user programs in a
  2236.       standard operating system.  The use of the standard Internet
  2237.       protocols UDP and TCP for communicating with the gateways should
  2238.       facilitate this.
  2239.  
  2240.       Remote gateway monitoring and (especially) remote gateway control
  2241.       present important access control problems which must be addressed.
  2242.       Care must also be taken to ensure control of the use of gateway
  2243.       resources for these functions.  It is not desirable to let gateway
  2244.       monitoring take more than some limited fraction of the gateway CPU
  2245.       time, for example.  On the other hand, O&M functions must receive
  2246.       priority so they can be exercised when the gateway is congested,
  2247.       i.e., when O&M is most needed.
  2248.  
  2249.       There are no current Internet standards for the control and
  2250.       monitoring protocols, although work is in progress in this area.
  2251.       The Host Monitoring Protocol (HMP) [7] could be used as a model
  2252.       until a standard is developed; however, it is strongly recommended
  2253.       that gateway O&M protocol be built on top of one of the standard
  2254.       Internet end-to-end protocols UDP or TCP. An example of a very
  2255.       simple but effective approach to gateway monitoring is contained
  2256.       in RFC-996 [43].
  2257.  
  2258.    5.3.   Gateway O&M Functions
  2259.  
  2260.       The following O&M functions need to be performed in a gateway:
  2261.  
  2262.          A.  Maintenance -- Hardware Diagnosis
  2263.  
  2264.             Each gateway must operate as a stand-alone device for the
  2265.             purposes of local hardware maintenance.  Means must be
  2266.             available to run diagnostic programs at the gateway site
  2267.             using only on-site tools, which might be only a diskette or
  2268.             tape and local terminal.  It is desirable, although not
  2269.             required, to be able to run diagnostics or dump the gateway
  2270.             via the network in case of fault.  Means should be provided
  2271.             to allow remote control from the NOC of of modems attached
  2272.             to the gateway.  The most important modem control capability
  2273.             is entering and leaving loopback mode, to diagnose line
  2274.             problems.
  2275.  
  2276.  
  2277.  
  2278.  
  2279. Braden & Postel                                                [Page 40]
  2280.  
  2281.  
  2282.  
  2283. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2284.  
  2285.  
  2286.          B.  Control -- Dumping and Rebooting
  2287.  
  2288.             It must be possible to dump and reboot a stand-alone gateway
  2289.             upon command from the NOC.  In addition, a stand-alone
  2290.             gateway must include a watchdog timer that either initiates
  2291.             a reboot automatically or signals a remote control site if
  2292.             not reset periodically by the software.  It is desirable
  2293.             that the boot data involved reside at an Internet host
  2294.             (e.g., the NOC host) and be transmitted via the net;
  2295.             however, the use of local devices at the gateway site is
  2296.             acceptable.
  2297.  
  2298.          C.  Control -- Configuring the Gateway
  2299.  
  2300.             Every gateway will have a number of configuration parameters
  2301.             which must be set (see the next section for examples).  It
  2302.             must be possible to update the parameters without rebooting
  2303.             the gateway; at worst, a restart may be required.
  2304.  
  2305.          D.  Monitoring -- Status and Performance
  2306.  
  2307.             A mechanism must be provided for retrieving status and
  2308.             statistical information from a gateway.  A gateway must
  2309.             supply such information in response to a polling message
  2310.             from the NOC.  In addition, it may be desirable to configure
  2311.             a gateway to transmit status spontaneously and periodically
  2312.             to a NOC (or set of NOCs), for recording and display.
  2313.  
  2314.             Examples of interesting status information include: link
  2315.             status, queue lengths, buffer availability, CPU and memory
  2316.             utilization, the routing data-base, error counts, and packet
  2317.             counts.  Counts should be kept for dropped datagrams,
  2318.             separated by reason.  Counts of ICMP datagrams should be
  2319.             kept by type and categorized into those originating at the
  2320.             gateway, and those destined for the gateway.  It would be
  2321.             useful to maintain many of these statistics by network
  2322.             interface, by source/destination network pair, and/or by
  2323.             source/destination host pair.
  2324.  
  2325.             Note that a great deal of useful monitoring data is often to
  2326.             be found in the routing data-base.  It is therefore useful
  2327.             to be able to tap into this data-base from the NOC.
  2328.  
  2329.          E.  Monitoring -- Error Logging
  2330.  
  2331.             A gateway should be capable of asynchronously sending
  2332.             exception ("trap") reports to one or more specified Internet
  2333.             addresses, one of which will presumably be the NOC host.
  2334.  
  2335.  
  2336. Braden & Postel                                                [Page 41]
  2337.  
  2338.  
  2339.  
  2340. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2341.  
  2342.  
  2343.             There must also be a mechanism to limit the frequency of
  2344.             such trap reports, and the parameters controlling this
  2345.             frequency must be settable in the gateway configuration.
  2346.  
  2347.             Examples of conditions which should result in traps include:
  2348.             datagrams discarded because of TTL expiration (an indicator
  2349.             of possible routing loops); resource shortages; or an
  2350.             interface changing its up/down status.
  2351.  
  2352.    5.4.   Gateway Configuration Parameters
  2353.  
  2354.       Every gateway will have a set of configuration parameters
  2355.       controlling its operation.  It must be possible to set these
  2356.       parameters remotely from the NOC or locally at any time, without
  2357.       taking the gateway down.
  2358.  
  2359.       The following is a partial but representative list of possible
  2360.       configuration parameters for a full-function gateway.  The items
  2361.       marked with "(i)" should be settable independently for each
  2362.       network interface.
  2363.  
  2364.          * (i)  IP (sub-) network address
  2365.  
  2366.          * (i)  Subnet address mask
  2367.  
  2368.          * (i)  MTU of local network
  2369.  
  2370.          * (i)  Hardware interface address
  2371.  
  2372.          * (i)  Broadcast compatibility option (0s or 1s)
  2373.  
  2374.          *      EGP parameters -- neighbors, Autonomous System number,
  2375.                 and polling parameters
  2376.  
  2377.          *      Static and/or default routes, if any
  2378.  
  2379.          *      Enable/Disable Proxy ARP
  2380.  
  2381.          *      Source Quench parameters
  2382.  
  2383.          *      Address filter configuration
  2384.  
  2385.          *      Boot-host address
  2386.  
  2387.          *      IP address of time server host
  2388.  
  2389.          *      IP address(es) of logging host(s)
  2390.  
  2391.  
  2392.  
  2393. Braden & Postel                                                [Page 42]
  2394.  
  2395.  
  2396.  
  2397. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2398.  
  2399.  
  2400.          *      IP address(es) of hosts to receive traps
  2401.  
  2402.          *      IP address(es) of hosts authorized to issue control
  2403.                 commands
  2404.  
  2405.          *      Error level for logging
  2406.  
  2407.          *      Maximum trap frequency
  2408.  
  2409.          *      Hold-down period (if any)
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450. Braden & Postel                                                [Page 43]
  2451.  
  2452.  
  2453.  
  2454. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2455.  
  2456.  
  2457. Appendix A.  Technical Details
  2458.  
  2459.    This Appendix collects a number of technical details and rules
  2460.    concerning datagram forwarding by gateways and datagram handling by
  2461.    hosts, especially in the presence of broadcasting and subnets.
  2462.  
  2463.    A.1.  Rules for Broadcasting
  2464.  
  2465.       The following rules define how to handle broadcasts of packets and
  2466.       datagrams [50]:
  2467.  
  2468.          a.  Hosts (which do not contain embedded gateways) must NEVER
  2469.              forward any datagrams received from a connected network,
  2470.              broadcast or not.
  2471.  
  2472.              When a host receives an IP datagram, if the destination
  2473.              address identifies the host or is an IP broadcast address,
  2474.              the host passes the datagram to its appropriate
  2475.              higher-level protocol module (possibly sending ICMP
  2476.              protocol unreachable, but not if the IP address was a
  2477.              broadcast address).  Any other IP datagram must simply be
  2478.              discarded, without an ICMP error message.  Hosts never send
  2479.              redirects.
  2480.  
  2481.          b.  All packets containing IP datagrams which are sent to the
  2482.              local-network packet broadcast address must contain an IP
  2483.              broadcast address as the destination address in their IP
  2484.              header.  Expressed in another way, a gateway (or host) must
  2485.              not send in a local-network broadcast packet an IP datagram
  2486.              that has a specific IP host address as its destination
  2487.              field.
  2488.  
  2489.          c.  A gateway must never forward an IP datagram that arrives
  2490.              addressed to the IP limited broadcast address {-1,-1}.
  2491.              Furthermore, it must must not send an ICMP error message
  2492.              about discarding such a datagram.
  2493.  
  2494.          d.  A gateway must not forward an IP datagram addressed to
  2495.              network zero, i.e., {0, *}.
  2496.  
  2497.          e.  A gateway may forward a directed broadcast datagram, i.e.,
  2498.              a datagram with the IP destination address:
  2499.  
  2500.             { <Network-number>, -1}.
  2501.  
  2502.              However, it must not send such a directed broadcast out the
  2503.              same interface it came in, if this interface has
  2504.              <Network-number> as its network number.  If the code in the
  2505.  
  2506.  
  2507. Braden & Postel                                                [Page 44]
  2508.  
  2509.  
  2510.  
  2511. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2512.  
  2513.  
  2514.              gateway making this decision does not know what interface
  2515.              the directed-broadcast datagram arrived on, the gateway
  2516.              cannot support directed broadcast to this connected network
  2517.              at all.
  2518.  
  2519.          f.  A gateway is permitted to protect its connected networks by
  2520.              discarding directed broadcast datagrams.
  2521.  
  2522.       A gateway will broadcast an IP datagram on a connected network if
  2523.       it is a directed broadcast destined for that network.  Some
  2524.       gateway-gateway routing protocols (e.g., RIP) also require
  2525.       broadcasting routing updates on the connected networks.  In either
  2526.       case, the datagram must have an IP broadcast address as its
  2527.       destination.
  2528.  
  2529.          Note:  as observed earlier, some host implementations (those
  2530.          based on Berkeley 4.2BSD) use zero rather than -1 in the host
  2531.          field.  To provide compatibility during the period until these
  2532.          systems are fixed or retired, it may be useful for a gateway to
  2533.          be configurable to send either choice of IP broadcast address
  2534.          and accept both if received.
  2535.  
  2536.    A.2.  ICMP Redirects
  2537.  
  2538.       A gateway will generate an ICMP Redirect if and only if the
  2539.       destination IP address is reachable from the gateway (as
  2540.       determined by the routing algorithm) and the next-hop gateway is
  2541.       on the same (sub-)network as the source host.  Redirects must not
  2542.       be sent in response to an IP network or subnet broadcast address
  2543.       or in response to a Class D or Class E IP address.
  2544.  
  2545.       A host must discard an ICMP Redirect if the destination IP address
  2546.       is not its own IP address, or the new target address is not on the
  2547.       same (sub-)network.  An accepted Redirect updates the routing
  2548.       data-base for the old target address.  If there is no route
  2549.       associated with the old target address, the Redirect is ignored.
  2550.       If the old route is associated with a default gateway, a new route
  2551.       associated with the new target address is inserted in the
  2552.       data-base.
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564. Braden & Postel                                                [Page 45]
  2565.  
  2566.  
  2567.  
  2568. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2569.  
  2570.  
  2571. Appendix B.  NSFNET Specific Requirements
  2572.  
  2573.    The following sections discuss certain issues of special concern to
  2574.    the NSF scientific networking community.  These issues have primary
  2575.    relevance in the policy area, but also have ramifications in the
  2576.    technical area.
  2577.  
  2578.    B.1.  Proprietary and Extensibility Issues
  2579.  
  2580.       Although hosts, gateways and networks supporting Internet
  2581.       technology have been in continuous operation for several years,
  2582.       vendors users and operators must understand that not all
  2583.       networking issues are fully resolved.  As a result, when new needs
  2584.       or better solutions are developed for use in the NSF networking
  2585.       community, it may be necessary to field new protocols or augment
  2586.       existing ones.  Normally, these new protocols will be designed to
  2587.       interoperate in all practical respects with existing protocols;
  2588.       however, occasionally it may happen that existing systems must be
  2589.       upgraded to support these new or augmented protocols.
  2590.  
  2591.       NSF systems procurements may favor those vendors who undertake a
  2592.       commitment to remain aware of current Internet technology and be
  2593.       prepared to upgrade their products from time to time as
  2594.       appropriate.  As a result, vendors are strongly urged to consider
  2595.       extensibility and periodic upgrades as fundamental characteristics
  2596.       of their products.  One of the most productive and rewarding ways
  2597.       to do this on a long-term basis is to participate in ongoing
  2598.       Internet research and development programs in partnership with the
  2599.       academic community.
  2600.  
  2601.    B.2.  Interconnection Technology
  2602.  
  2603.       In order to ensure network-level interoperability of different
  2604.       vendor's gateways within the NSFNET context, we specify that a
  2605.       gateway must at a minimum support Ethernet connections and serial
  2606.       line protocol connections.
  2607.  
  2608.       Currently the most important common interconnection technology
  2609.       between Internet systems of different vendors is Ethernet.  Among
  2610.       the reasons for this are the following:
  2611.  
  2612.          1.  Ethernet specifications are well-understood and mature.
  2613.  
  2614.          2.  Ethernet technology is in almost all aspects vendor
  2615.              independent.
  2616.  
  2617.          3.  Ethernet-compatible systems are common and becoming more
  2618.              so.
  2619.  
  2620.  
  2621. Braden & Postel                                                [Page 46]
  2622.  
  2623.  
  2624.  
  2625. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2626.  
  2627.  
  2628.       These advantages combined favor the use of Ethernet technology as
  2629.       the common point of demarcation between NSF network systems
  2630.       supplied by different vendors, regardless of technology.  It is a
  2631.       requirement of NSF gateways that, regardless of the possibly
  2632.       proprietary switching technology used to implement a given
  2633.       vendor-supplied network, its gateways must support an Ethernet
  2634.       attachment to gateways of other vendors.
  2635.  
  2636.       It is expected that future NSF gateway requirements will specify
  2637.       other interconnection technologies.  The most likely candidates
  2638.       are those based on X.25 or IEEE 802, but other technologies
  2639.       including broadband cable, optical fiber, or other media may also
  2640.       be considered.
  2641.  
  2642.    B.3.  Routing Interoperability
  2643.  
  2644.       The Internet does not currently have an "open IGP" standard, i.e.,
  2645.       a common IGP which would allow gateways from different vendors to
  2646.       form a single Autonomous System.  Several approaches to routing
  2647.       interoperability are currently in use among vendors and the NSF
  2648.       networking community.
  2649.  
  2650.       *  Proprietary IGP
  2651.  
  2652.          At least one gateway vendor has implemented a proprietary IGP
  2653.          and uses EGP to interface to the rest of the Internet.
  2654.  
  2655.       *  RIP
  2656.  
  2657.          Although RIP is undocumented and various implementations of it
  2658.          differ in subtle ways, it has been used successfully for
  2659.          interoperation among multiple vendors as an IGP.
  2660.  
  2661.       *  Gateway Daemon
  2662.  
  2663.          The NSF networking community has built a "gateway daemon"
  2664.          program which can mediate among multiple routing protocols to
  2665.          create a mixed-IGP Autonomous System.  In particular, the
  2666.          prototype gateway daemon executes on a 4.3BSD machine acting as
  2667.          a gateway and exchanges routing information with other
  2668.          gateways, speaking both RIP and Hello protocols; in addition,
  2669.          it supports EGP to other Autonomous Systems.
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678. Braden & Postel                                                [Page 47]
  2679.  
  2680.  
  2681.  
  2682. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2683.  
  2684.  
  2685.    B.4.  Multi-Protocol Gateways
  2686.  
  2687.       The present NSF gateway requirements specify only the Internet
  2688.       protocol IP.  However, in a few years the Internet will begin a
  2689.       gradual transition to the functionally-equivalent subset of the
  2690.       ISO protocols [17].  In particular, an increasing percentage of
  2691.       the traffic will use the ISO Connectionless Mode Network Service
  2692.       (CLNS, but commonly called "ISO IP") [33] in place of IP.  It is
  2693.       expected that the ISO suite will eventually become the dominant
  2694.       one; however, it is also expected that requirements to support
  2695.       Internet IP will continue, perhaps indefinitely.
  2696.  
  2697.       To support the transition to ISO protocols and the coexistence
  2698.       stage, it is highly desirable that a gateway design provide for
  2699.       future extensions to support more than one protocol simultaneous,
  2700.       and in particular both IP and CLNS [18].
  2701.  
  2702.       Present NSF gateway requirements do not include protocols above
  2703.       the network layer, such as TCP, unless necessary for network
  2704.       monitoring or control.  Vendors should recognize that future
  2705.       requirements to interwork between Internet and ISO applications,
  2706.       for example, may result in an opportunity to market gateways
  2707.       supporting multiple protocols at all levels up through the
  2708.       application level [16].  It is expected that the network-level NSF
  2709.       gateway requirements summarized in this document will be
  2710.       incorporated in the requirements document for these
  2711.       application-level gateways.
  2712.  
  2713.       Internet gateways function as intermediate systems (IS) with
  2714.       respect to the ISO connectionless network model and incorporate
  2715.       defined packet formats, routing algorithms and related procedures
  2716.       [33, 34].  The ISO ES-IS [37] provides the functions of ARP and
  2717.       ICMP Redirect.
  2718.  
  2719.    B.5.  Access Control and Accounting
  2720.  
  2721.       There are no requirements for NSF gateways at this time to
  2722.       incorporate specific access-control and accounting mechanisms in
  2723.       the design;  however, these important issues are currently under
  2724.       study and will be incorporated into a subsequent edition of this
  2725.       document.  Vendors are encouraged to plan for the introduction of
  2726.       these mechanisms into their products.  While at this time no
  2727.       definitive common model for access control and accounting has
  2728.       emerged, it is possible to outline some general features such a
  2729.       model is likely to have, among them the following:
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735. Braden & Postel                                                [Page 48]
  2736.  
  2737.  
  2738.  
  2739. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2740.  
  2741.  
  2742.          1.  The primary access control and accounting mechanisms will
  2743.              be in the service hosts themselves, not the gateways,
  2744.              packet-switches or workstations.
  2745.  
  2746.          2.  Agents acting on behalf of access control and accounting
  2747.              mechanisms may be necessary in the gateways, to collect
  2748.              data, enforce password protection, or mitigate resource
  2749.              priority and fairness.  However, the architecture and
  2750.              protocols used by these agents may be a local matter and
  2751.              cannot be specified in advance.
  2752.  
  2753.          3.  NSF gateways may be required to incorporate access control
  2754.              and accounting mechanisms based on datagram
  2755.              source/destination address, as well as other fields in the
  2756.              IP header.
  2757.  
  2758.          4.  NSF gateways may be required to enforce policies on access
  2759.              to gateway and communication resources.  These policies may
  2760.              be based upon equity ("fairness") or upon inequity
  2761.              ("priority").
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792. Braden & Postel                                                [Page 49]
  2793.  
  2794.  
  2795.  
  2796. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2797.  
  2798.  
  2799. Acknowledgments
  2800.  
  2801.    An earlier version of this document (RFC-985) [60] was prepared by
  2802.    Dave Mills in behalf of the Gateway Requirements Subcommittee of the
  2803.    NSF Network Technical Advisory Group, in cooperation with the
  2804.    Internet Activities Board, Internet Architecture Task Force, and
  2805.    Internet Engineering Task Force.  This effort was chaired by Dave
  2806.    Mills, and contributed to by many people.
  2807.  
  2808.    The authors of current document have also received assistance from
  2809.    many people in the NSF and ARPA networking community.  We thank you,
  2810.    one and all.
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849. Braden & Postel                                                [Page 50]
  2850.  
  2851.  
  2852.  
  2853. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2854.  
  2855.  
  2856. References and Bibliography
  2857.  
  2858.    Many of these references are  available from the DDN Network
  2859.    Information Center, SRI International, 333 Ravenswood Avenue, Menlo
  2860.    Park, California 94025 (telephone: 800-235-3155).
  2861.  
  2862.    [1]   Postel, J., "Internet Protocol", RFC-791, USC Information
  2863.          Sciences Institute, September 1981.
  2864.  
  2865.    [2]   Postel, J., "Internet Control Message Protocol", RFC-792, USC
  2866.          Information Sciences Institute, September 1981.
  2867.  
  2868.    [3]   BBN, "Interface Message Processor - Specifications for the
  2869.          Interconnection of a Host and an IMP", Report 1822, Bolt
  2870.          Beranek and Newman, December 1981.
  2871.  
  2872.    [4]   Plummer, D., "An Ethernet Address Resolution Protocol",
  2873.          RFC-826, Symbolics, September 1982.
  2874.  
  2875.    [5]   DOD, "Military Standard Internet Protocol", Military Standard
  2876.          MIL-STD-1777, United States Department of Defense, August 1983.
  2877.  
  2878.    [6]   BBN, "Defense Data Network X.25 Host Interface Specification",
  2879.          Report 5476, Bolt Beranek and Newman, December 1983.
  2880.  
  2881.    [7]   Hinden, R., "A Host Monitoring Protocol", RFC-869, BBN
  2882.          Communications, December 1983.
  2883.  
  2884.    [8]   Korb, J.T., "A Standard for the Transmission of IP Datagrams
  2885.          over Public Data Networks", RFC-877, Purdue University,
  2886.          September 1983.
  2887.  
  2888.    [9]   Nagle, J., "Congestion Control in IP/TCP Internetworks",
  2889.          RFC-896, Ford Aerospace, January 1984.
  2890.  
  2891.    [10]  Hornig, C., "A Standard for the Transmission of IP Datagrams
  2892.          over Ethernet Networks", RFC-894, Symbolics, April 1984.
  2893.  
  2894.    [11]  Mills, D.L., "Exterior Gateway Formal Specification", RFC-904,
  2895.          M/A-COM Linkabit, April 1984.
  2896.  
  2897.    [12]  Xerox, "Xerox Synchronous Point-to-Point Protocol", Xerox
  2898.          System Integration Standard 158412, December 1984.
  2899.  
  2900.    [13]  Kirton, P., "EGP Gateway under Berkeley UNIX 4.2", RFC-911, USC
  2901.          Information Sciences Institute, August 1984.
  2902.  
  2903.  
  2904.  
  2905.  
  2906. Braden & Postel                                                [Page 51]
  2907.  
  2908.  
  2909.  
  2910. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2911.  
  2912.  
  2913.    [14]  Postel, J., "Multi-LAN Address Resolution", RFC-925, USC
  2914.          Information Sciences Institute, October 1984.
  2915.  
  2916.    [15]  Finlayson, R., T. Mann, J. Mogul, and M. Theimer, "A Reverse
  2917.          Address Resolution Protocol", RFC-904, Stanford University,
  2918.          June 1984.
  2919.  
  2920.    [16]  NRC, "Transport Protocols for Department of Defense Data
  2921.          Networks", RFC-942, National Research Council, March 1985.
  2922.  
  2923.    [17]  Postel, J., "DOD Statement on NRC Report", RFC-945, USC
  2924.          Information Sciences Institute, April 1985.
  2925.  
  2926.    [18]  ISO, "Addendum to the Network Service Definition Covering
  2927.          Network Layer Addressing", RFC-941, International Standards
  2928.          Organization, April 1985.
  2929.  
  2930.    [19]  Leiner, B., J. Postel, R. Cole and D. Mills, "The DARPA
  2931.          Internet Protocol Suite", Proceedings INFOCOM 85, IEEE,
  2932.          Washington DC, March 1985.  Also in: IEEE Communications
  2933.          Magazine, March 1985.  Also available as ISI-RS-85-153.
  2934.  
  2935.    [20]  Romkey, J., "PC/IP Programmer's Manual", MIT Laboratory for
  2936.          Computer Science, pp. 57-59, April 1986.
  2937.  
  2938.    [21]  Mogul, J., and J. Postel, "Internet Standard Subnetting
  2939.          Procedure", RFC-950, Stanford University, August 1985.
  2940.  
  2941.    [22]  Reynolds, J., and J. Postel, "Official Internet Protocols",
  2942.          RFC-1011, USC Information Sciences Institute, May 1987.
  2943.  
  2944.    [23]  Reynolds, J., and J. Postel, "Assigned Numbers", RFC-1010, USC
  2945.          Information Sciences Institute, May 1987.
  2946.  
  2947.    [24]  Nagle, J., "On Packet Switches with Infinite Storage", RFC-970,
  2948.          Ford Aerospace, December 1985.
  2949.  
  2950.    [25]  SRI, "DDN Protocol Handbook", NIC-50004, NIC-50005, NIC-50006,
  2951.          (three volumes), SRI International, December 1985.
  2952.  
  2953.    [26]  SRI, "ARPANET Information Brochure", NIC-50003, SRI
  2954.          International, December 1985.
  2955.  
  2956.    [27]  Mills, D.L., "Autonomous Confederations", RFC-975, M/A-COM
  2957.          Linkabit, February 1986.
  2958.  
  2959.    [28]  Jacobsen, O., and J. Postel, "Protocol Document Order
  2960.          Information",  RFC-980, SRI International, March 1986.
  2961.  
  2962.  
  2963. Braden & Postel                                                [Page 52]
  2964.  
  2965.  
  2966.  
  2967. RFC 1009 - Requirements for Internet Gateways                  June 1987
  2968.  
  2969.  
  2970.    [29]  Malis, A.G., "PSN End-to-End Functional Specification",
  2971.          RFC-979, BBN Communications, March 1986.
  2972.  
  2973.    [30]  Postel, J, "Internetwork Applications using the DARPA Protocol
  2974.          Suite", Proceedings INFOCOM 85, IEEE, Washington DC,
  2975.          March 1985.  Also available as ISI-RS-85-151.
  2976.  
  2977.    [31]  Postel, J, C. Sunshine, and D. Cohen, "The ARPA Internet
  2978.          Protocol", Computer Networks, Vol. 5, No. 4, July 1981.
  2979.  
  2980.    [32]  Cerf, V., and R. Kahn, "A Protocol for Packet Network
  2981.          Intercommunication", IEEE Transactions on Communication,
  2982.          May 1974.
  2983.  
  2984.    [33]  ISO, "Protocol for Providing the Connectionless-mode Network
  2985.          Service", RFC-994, DIS-8473, International Standards
  2986.          Organization, March 1986.
  2987.  
  2988.    [34]  ANSI, "Draft Network Layer Routing Architecture", ANSI X3S3.3,
  2989.          86-215R, April 1987.
  2990.  
  2991.    [35]  Rosen, E., "Exterior Gateway Protocol (EGP)", RFC-827, Bolt
  2992.          Beranek and Newman, October 1982.
  2993.  
  2994.    [36]  Sidhu, D., "Some Problems with the Specification of the
  2995.          Military Standard Internet Protocol", RFC-963, Iowa State
  2996.          University, November 1985.
  2997.  
  2998.    [37]  ISO, "End System to Intermediate System Routing Exchange
  2999.          Protocol for use in conjunction with ISO 8473", RFC-995,
  3000.          April 1986.
  3001.  
  3002.    [38]  Postel, J., "Address Mappings", RFC-796, USC/Information
  3003.          Sciences Institute, September 1981.
  3004.  
  3005.    [39]  Mills, D., "DCN Local Network Protocols", RFC-891, M/A-COM
  3006.          Linkabit, December 1983.
  3007.  
  3008.    [40]  McQuillan, J. M., I. Richer, and E. C. Rosen, "The New Routing
  3009.          Algorithm for the ARPANET",  IEEE Transactions on
  3010.          Communications, May 1980.
  3011.  
  3012.    [41]  Hinden, R., and A. Sheltzer, "The DARPA Internet Gateway",
  3013.          RFC-823, Bolt Beranek and Newman, September 1982.
  3014.  
  3015.    [42]  Farber, D., G. Delp, and T. Conte, "A Thinwire Protocol for
  3016.          Connecting Personal Computers to the Internet", RFC-914,
  3017.          University of Delaware, September 1984.
  3018.  
  3019.  
  3020. Braden & Postel                                                [Page 53]
  3021.  
  3022.  
  3023.  
  3024. RFC 1009 - Requirements for Internet Gateways                  June 1987
  3025.  
  3026.  
  3027.    [43]  Mills, D., "Statistics Server", RFC-996, University Of
  3028.          Delaware, February 1987.
  3029.  
  3030.    [44]  Postel, J. and K. Harrenstien, "Time Protocol", RFC-868,
  3031.          May 1983.
  3032.  
  3033.    [45]  Mills, D., "Network Time Protocol (NTP)", RFC-958, M/A-Com
  3034.          Linkabit, September 1985.
  3035.  
  3036.    [46]  Seamonson, L., and E. Rosen, "Stub Exterior Gateway Protocol",
  3037.          RFC-888, Bolt Beranek And Newman, January 1984.
  3038.  
  3039.    [47]  Deering, S., and D. Cheriton, "Host Groups: A Multicast
  3040.          Extension to the Internet Protocol", RFC-966, Stanford
  3041.          University, December 1985.
  3042.  
  3043.    [48]  Deering, S., "Host Extensions for IP Multicasting", RFC-988,
  3044.          Stanford University, July 1986.
  3045.  
  3046.    [49]  Mogul, J., "Broadcasting Internet Datagrams", RFC-919, Stanford
  3047.          University, October 1984.
  3048.  
  3049.    [50]  Mogul, J., "Broadcasting Internet Datagrams in the Presence of
  3050.          Subnets", RFC-922, Stanford University, October 1984.
  3051.  
  3052.    [51]  Rosen, E., "Exterior Gateway Protocol", RFC-827, Bolt Beranek
  3053.          and Newman, October 1982.
  3054.  
  3055.    [52]  Rose, M., "Low Tech Connection into the ARPA Internet: The Raw
  3056.          Packet Split Gateway", Technical Report 216, Department of
  3057.          Information and Computer Science, University of California,
  3058.          Irvine, February 1984.
  3059.  
  3060.    [53]  Rosen, E., "Issues in Buffer Management", IEN-182, Bolt Beranek
  3061.          and Newman, May 1981.
  3062.  
  3063.    [54]  Rosen, E., "Logical Addressing", IEN-183, Bolt Beranek and
  3064.          Newman, May 1981.
  3065.  
  3066.    [55]  Rosen, E., "Issues in Internetting - Part 1: Modelling the
  3067.          Internet", IEN-184, Bolt Beranek and Newman, May 1981.
  3068.  
  3069.    [56]  Rosen, E., "Issues in Internetting - Part 2: Accessing the
  3070.          Internet", IEN-187, Bolt Beranek and Newman, June 1981.
  3071.  
  3072.    [57]  Rosen, E., "Issues in Internetting - Part 3: Addressing",
  3073.          IEN-188, Bolt Beranek and Newman, June 1981.
  3074.  
  3075.  
  3076.  
  3077. Braden & Postel                                                [Page 54]
  3078.  
  3079.  
  3080.  
  3081. RFC 1009 - Requirements for Internet Gateways                  June 1987
  3082.  
  3083.  
  3084.    [58]  Rosen, E., "Issues in Internetting - Part 4: Routing", IEN-189,
  3085.          Bolt Beranek and Newman, June 1981.
  3086.  
  3087.    [59]  Sunshine, C., "Comments on Rosen's Memos", IEN-191, USC
  3088.          Information Sciences Institute, July 1981.
  3089.  
  3090.    [60]  NTAG, "Requirements for Internet Gateways -- Draft", RFC-985,
  3091.          Network Technical Advisory Group, National Science Foundation,
  3092.          May 1986.
  3093.  
  3094.    [61]  Khanna, A., and Malis, A., "The ARPANET AHIP-E Host Access
  3095.          Protocol (Enhanced AHIP)", RFC-1005, BBN Communications,
  3096.          May 1987
  3097.  
  3098.    [62]  Nagle, J., "Congestion Control in IP/TCP Internetworks", ACM
  3099.          Computer Communications Review, Vol.14, no.4, October 1984.
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134. Braden & Postel                                                [Page 55]
  3135.