<?xml version='1.0' encoding='utf-8'?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" consensus="true" docName="draft-intarea-schoen-lowest-address-00" ipr="trust200902" obsoletes="" updates="1122,1812,3021" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.38.1 -->
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** -->

 <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

   <title>The Lowest Address in an IPv4 Subnet</title>
    <seriesInfo name="Internet-Draft" value="draft-intarea-schoen-lowest-address-00"/>
    <author fullname="Seth David Schoen" initials="S.D." surname="Schoen">
      <organization>IPv4 Unicast Extensions Project</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>San Francisco</city>
          <region>CA</region>
          <code/>
          <country>US</country>
        </postal>
        <phone/>
        <email>schoen@loyalty.org</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="John Gilmore" initials="J." surname="Gilmore">
      <organization>IPv4 Unicast Extensions Project</organization>
      <address>
        <postal>
          <street>PO Box 170640-rfc</street>
          <!-- Reorder these if your country does things differently -->

         <city>San Francisco</city>
          <region>CA</region>
          <code>94117-0640</code>
          <country>US</country>
        </postal>
        <phone/>
        <email>gnu@rfc.toad.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="David M. Täht" initials="D." surname="Täht">
      <organization>IPv4 Unicast Extensions Project</organization>
      <address>
        <phone/>
        <email>dave@taht.net</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <date year="2021"/>
    <!-- Meta-data Declarations -->

   <area>intarea</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>template</keyword>
    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

   <abstract>
      <t>With ever-increasing pressure to conserve IP address space on the Internet, it makes sense to consider where relatively minor changes can be made to fielded practice to improve numbering efficiency.  One such change, proposed by this document, is to increase the number of unicast addresses in each existing subnet, by redefining the use of the lowest-numbered (zeroth) host address in each IPv4 subnet as an ordinary unicast host identifier, instead of as a duplicate segment-directed broadcast address.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>This document provides history and rationale to change the interpretation
	      of the lowest address in each IPv4 subnet from an alternative broadcast address
	      to an ordinary assignable host address, and updates requirements for hosts and routers
	      accordingly. The decision taken in 1989 to reserve two forms instead of one for
	      local IPv4 segment broadcasts is no longer necessary because of the
	      obsolescence and disappearance of the software that motivated it. Unreserving the
	      lowest address provides an optional extra IPv4 host address in every subnet,
	      Internet-wide, alleviating some of the pressure of IPv4 address exhaustion.
      </t>
      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
       "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
       document are to be interpreted as described in <xref target="RFC2119" format="default">RFC 2119</xref>.</t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Background and Current Standards</name>
      <t>
    IPv4 has long supported several mechanisms for broadcasting
    communications to every station on a network.  One form of
    broadcast in IPv4 is "segment-directed broadcast" in which a
    broadcast is addressed to every station on a particular network
    (identified by its network number).  
    Current standards reserve a huge number of addresses for this:
    not just one, but two, addresses per subnet, Internet-wide.</t>
      <t>The standard broadcast address on a subnet is the address
    whose "host part" consists of all ones in binary. For example, in
    a 24-bit subnet that starts at 192.168.3.0, the address 192.168.3.255
    is the standard broadcast address. <xref target="RFC1122"/><xref target="RFC0894"/></t>
      <t>
    In addition to the standard broadcast address,
    RFC 1122 (October 1989) acknowledged a then-current non-standard
implementation behavior in "4.2BSD Unix and its derivatives, but
not 4.3BSD", whereby those operating systems "use non-standard
broadcast address forms, substituting 0 for -1". According to
RFC 1122 and its successors, Internet hosts are expected to
"recognize and accept [...] these non-standard broadcast addresses
as the destination address of an incoming datagram", and not
otherwise use them to identify Internet hosts. RFCs
<xref target="RFC1812" format="default">1812</xref>
(sections 4.2.3.1 and 5.3.5), and <xref target="RFC3021" format="default">3021</xref>
(sections 2.2, 3.1, and 3.3) reiterate and further expand on
this requirement.</t>
      <t>
This non-standard broadcast address is the address whose "host part"
consists of all zeroes. (The quantity of zeroes depends, in
present-day terminology, on the applicable subnet mask.) This
address is the lowest expressible address within any particular
numbered network. Following computer science tradition, it may
also be referred to as the "zeroth address" of its respective subnet.
</t>
      <t>
	The address triple syntax used in RFC 1122 looks unusual to modern
	eyes. These triples included the "{ network number, subnet number, host number }".
	The notation also used two's complement binary notation in referring to a
	host number "-1" as containing all binary 1-bits. After the widespread
	adoption of <xref target="RFC4632">CIDR</xref>, network numbers no longer have an "address class"
	definition based on their high-order bits, and there is no distinction
	between a network number and a subnet number (except locally at the router
	where individual subnets are being routed). Instead, following RFC 4632,
	IPv4 network addresses are denoted with a dotted-decimal format containing one
	to four positive 8-bit integers, a slash, and a whole count of the bits in the
	network number portion, the so-called CIDR notation, reportedly devised by Phil Karn.
	So for example 192.1.2.0/28 has a 28-bit network number and a 4-bit host
	number (32 address bits total, minus those 28 bits). All of the bits of
	that particular host number are zero (because the whole fourth dotted number
	is 0), and thus the interpretation of this address would be affected by this
	document. We will use both notations as convenient. Where RFC 1122 and its
	successors use the terms "0 form" and "-1 form", we may refer respectively
	to "all-zeros" and "all-ones" host numbers, since every bit in the binary
	representation of these two host numbers has the value 0 or 1, respectively. 
</t>
      <t>
4.2BSD, the operating system to whose non-standard behavior RFC 1122
required deference, was the first BSD operating system full release to
include TCP/IP support; it was released in 1983. Its successor, 4.3BSD, was
released in 1986, which is why RFC 1122 could already confirm that the
broadcast behavior had been fixed. See <xref target="BSDHIST"/>. RFC 1812 calls
the old behavior
"obsolete" in 1995, and RFC 3021 reiterates that it is "obsolete" in
2000, although both express the idea that the lowest address must continue
to be reserved for historical reasons.</t>
      <t>
All subsequent operating systems used on the Internet implement the
standard all-ones form of the broadcast address and use it by default.
Continuing to reserve the non-standard all-zeroes form wastes one IPv4
address per subnet. No known operating system
generates IP broadcasts in this format today, and documentation
consistently encourages network administrators and software
developers to use the standard form. The IPv4 protocol does not benefit from
having two different broadcast addresses with the same functionality in every
subnet, and the non-standard form has always been reserved primarily for backwards
compatibility with systems that have not existed for decades on the Internet.</t>
      <t>As IPv4 addresses were not perceived as particularly scarce through
the 1980s, the prospect of wasting tens of millions of otherwise
assignable addresses in order to achieve backwards compatibility
with a particular operating system appeared reasonable. Today, those
addresses are clearly valuable and could be put to good use as
identifiers of Internet hosts in a time of IPv4 numbering resource
exhaustion.</t>
      <section>
        <name>Assumptions About the Lowest Host Address by Remote Systems</name>
        <t>In general, under <xref target="RFC4632">CIDR</xref>, only hosts and
routers on a network segment know that segment's netmask with certainty.
Remote parts of the Internet are already expected to not make assumptions
about whether or not a particular address is a broadcast address, since
that determination is already only meaningful for devices connected to
the segment containing that address. This document does not change any
of these things.
Thus, if the behavior of devices on a particular network segment
has been updated in accordance with this memo, the lowest address
on that segment can already be addressed by hosts elsewhere on the
Internet without any changes to their own software.</t>
        <t>
To the extent that software continues to make assumptions about IP network
classes today, it is out of compliance with RFC 4632.
Ever since the adoption of CIDR, it has been unknowable
whether or to what extent the remote network would internally aggregate
or deaggregate routes that were visible elsewhere on the Internet.
Therefore, Internet hosts and routers MUST NOT assume that an IPv4
address on a remote network, other than 0.0.0.0, is invalid, unroutable,
or unaddressable merely because it ends with a particular number of
zeroes. In keeping with the Internet's end-to-end principle, decisions
about possible invalidity of otherwise routable addresses belong as
close to the endpoints as possible.</t>
      </section>
      <section>
        <name>Multicast Addresses; Point-to-Point Links</name>
        <t>
Multicast addresses, as defined by <xref target="RFC1112">RFC 1112</xref>,
do not have a network part and host part, nor do they have a netmask or CIDR
prefix length.  IPv4 multicast addresses, except 224.0.0.0 (which is
"guaranteed not to be assigned to any group" by RFC 1112), could always end
with any number of zeroes, and have never had any form of directed broadcast
address.
</t>
        <t><xref target="RFC3021"/>, section 2.1, standardized that, in a point-to-point
	link using a 31-bit netmask, the all-zero and all-one forms of the host-part
	of the address MUST both be treated as unicast ("host") addresses.</t>
        <t>
	The present document does not change the interpretation of multicast addresses
	or 31-bit subnet addresses in any way.</t>
      </section>
      <section>
        <name>Current Limitations on Subnet-Directed Broadcast Addresses</name>
        <t>
    Sending packets to a subnet-directed broadcast address is still
    generally useful in today's Internet, but only for nodes
    attached directly to that subnet.
    <xref target="RFC2644"/> discouraged routers from forwarding such
    packets, to reduce their use in amplifying denial-of-service
    attacks, so they often cannot be received when sent from distant
    hosts.  Many hosts today ignore ICMP packets sent as
    broadcasts, so a directed broadcast ping is no longer a
    reliable means of enumerating all hosts attached to a network.
    As Informational <xref target="RFC6250"/> notes, "broadcast
    can only be relied on within a link".</t>
      </section>
      <section>
        <name>Comparison to IPv6 Behavior</name>
        <t>In IPv6 there are no reserved per-segment broadcast addresses
	(or, indeed, any broadcast addresses whatsoever). Instead, IPv6 hosts can address all hosts on a network
	segment <xref target="RFC4291">by using the link-local multicast group address
	ff02::1</xref>, which, for example, <xref target="RFC2464">produces a multicast
	Ethernet frame when transmitted over an Ethernet-like link</xref>.
	The lowest address on a subnet is, however, reserved in IPv6 by Section 2.6.1 of
	<xref target="RFC4291">RFC 4291</xref> for the Subnet-Router address (a means
	of addressing "any router" on an indicated subnet).
        </t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Change to Interpretation of the Lowest Address</name>
      <t>The purpose of this document is to designate
	the all-zeros address in each subnet as a unicast address.
	All such addresses are now available for general non-broadcast use, treated
	identically to all host addresses in the subnet besides the "all-ones"
	broadcast address. This document therefore eliminates an element of the
	IPv4 protocol's historical adaptation to 4.2BSD's
	non-standard behavior. All hosts SHOULD continue to recognize and accept only
	the all-ones form of the IPv4 subnet broadcast address.</t>
      <t>Host software that intends to transmit a segment-directed broadcast
packet in an IPv4 network MUST use only the all-ones form as the destination
address of the packet.</t>
      <t>An IPv4 datagram containing a source or destination that is equal to the
all-zeroes form of the local broadcast address SHOULD be treated, by both hosts
and routers, as a normal unicast datagram; it SHOULD NOT be treated as a local
broadcast datagram.</t>
      <t>
Host software SHOULD allow a network interface to be configured with the
lowest address on a subnet. A host with such an address configured MUST
use this assigned address as a source address for datagrams just as it
would with any other assigned interface address, and MUST recognize
a datagram sent to that address as addressed to itself. Host software
SHOULD be capable of generating unicast packets to the lowest address on
a subnet when so requested by an application, and MUST encapsulate such
packets into link-layer unicast frames when transmitted on a link layer
that distinguishes unicast and broadcast.</t>
      <t>
Clients for autoconfiguration mechanisms such as <xref target="RFC2131">DHCP</xref>
SHOULD accept a lease or assignment of the lowest address whenever the
underlying operating system is capable of accepting it. Servers for
these mechanisms SHOULD assign this address when so configured.
The network operator of each subnet retains the discretion to number
hosts on that subnet with, or without, the use of the lowest address,
based on local conditions.</t>
      <section>
        <name>Link-Layer Interaction</name>
        <t>The link layer always indicates to the IP layer whether or not a datagram was transmitted as a broadcast at the link layer. Hosts MUST continue to follow the RFC
1122 rule about link-layer broadcast indications:
</t>
        <blockquote>
   A host SHOULD silently discard a datagram that is received via a
   link-layer broadcast [...] but does not specify
   an IP multicast or broadcast destination address.
</blockquote>
        <t>This rule is, among other things, intended to avoid broadcast storms.
This document now defines the lowest address as a non-broadcast address.
Therefore, a host SHOULD silently discard a datagram received via a link-layer
broadcast whose destination address is the lowest IPv4 address in a subnet.
This is true even if the interface on which the host received that datagram
uses the lowest address as a unicast IPv4 address.</t>
      </section>
      <section numbered="true" toc="default">
        <name>Recommendations</name>
        <t>The considerations presented in this document affect other published
   work.  This section details the updates made to other documents.</t>
        <section numbered="true" toc="default">
          <name>"Requirements for Internet Hosts -- Communication Layers" [RFC1122]</name>
          <t>The new section numbered 3.2.1.3 (h) which was added by RFC 3021 is
   replaced with:</t>
          <blockquote>
            <t>(h)  { &lt;Network-number&gt;, &lt;Subnet-number&gt;, 0 }</t>
            <t>An ordinary unicast ("host") address in the subnet.  May be used
         as either a source or destination address.  If a link-level broadcast
	 packet is received with this address (or any other unicast address) as
	 its destination, it MUST be silently discarded.  Such a packet may be 
	 sent by long-obsolete hosts on the local network.</t>
            <t>In applications using <xref target="RFC4632">CIDR notation</xref>, this
	 address, or any other address in the subnet, may also be used together with
	 a prefix length to refer to the entire subnet.</t>
          </blockquote>
        </section>
        <section numbered="true" toc="default">
          <name>"Requirements for IP Version 4 Routers" [RFC1812]</name>
          <t>The new section (numbered 4.2.2.11 (f)) added by RFC 3021 is replaced by:</t>
          <blockquote>
            <t>(f)  { &lt;Network-prefix&gt;, 0 }</t>
            <t>An ordinary unicast ("host") address in the subnet.  May be
	 used as either a source or destination address. If a link-layer
	 broadcast packet is received with this address (or any other
	 unicast address) as its destination, it MUST be silently
	 discarded.  Such a packet may be sent by long-obsolete hosts
	 on the local network.</t>
            <t>In applications using <xref target="RFC4632">CIDR notation</xref>, this address, or any
	 other address in the subnet, may also be used together with a
	 prefix length to refer to the entire subnet.</t>
          </blockquote>
          <t>The first paragraph on page 49 (which appears after section 4.2.2.11 (e) in the original RFC 1812, or after section 4.2.2.11 (f) in RFC 1812 as modified by RFC 3021) is changed from this original text</t>
          <blockquote>
            <t>
	 IP addresses are not permitted to have the value 0 or -1 for the
	 &lt;Host-number&gt; or &lt;Network-prefix&gt; fields except in the special
	 cases listed above. This implies that each of these fields will be at
	 least two bits long.</t>
            <t>DISCUSSION</t>
            <t>Previous versions of this document also noted that subnet numbers
	 must be neither 0 nor -1, and must be at least two bits in length.
	 In a CIDR world, the subnet number is clearly an extension of the
	 network prefix and cannot be interpreted without the remainder of
	 the prefix.  This restriction of subnet numbers is therefore
	 meaningless in view of CIDR and may be safely ignored.</t>
          </blockquote>
          <t>to this new text</t>
          <blockquote>
            <t>Unicast IP addresses are permitted to have the value 0 for the
    &lt;Host-number&gt; field, and may have the value -1 in the special cases
    listed above.  There is no requirement that the &lt;Host-number&gt; field
    be any particular length.  In some cases using CIDR notation, a host
    may be designated with a /32 suffix (e.g. 192.0.2.34/32), indicating
    that the specific host rather than its subnet is being described.</t>
            <t>DISCUSSION</t>
            <t>Previous versions of this document also noted that subnet numbers
      must be neither 0 nor -1, and must be at least two bits in length.
      Other versions required that &lt;Network-prefix&gt; fields must be neither
      0 nor -1, and must be at least two bits long.</t>
            <t>Now that the Internet has fully transitioned to CIDR routing, there
      are no original classful &lt;Network-number&gt;s to be distinguished from
      &lt;Subnet-numbers&gt;.  Each address only has a &lt;Network-prefix&gt; based
      on its network mask (or equivalently, the CIDR suffix specifying
      how many bits are in the &lt;Network-prefix&gt;).  The former restrictions
      on subnet numbers and their sizes are meaningless in view of CIDR
      and are hereby repealed. For example, a route to 0.0.0.0/6 or even
      0.0.0.0/1 is a viable CIDR route (for the aggregation of the blocks
      0/8, 1/8, 2/8, and 3/8; or for the entire lower half of the IPv4
      address space) and should not be considered invalid. 0.0.0.0/0
      is standardized to mean "all unicast IPv4 addresses", e.g. in
      a default route, by section 5.1 of <xref target="RFC4632"/>,
      which MUST also continue to work.</t>
          </blockquote>
          <t>Sections 4.2.3.1 (2) and (4) are replaced with:</t>
          <blockquote>
            <t>(2) SHOULD silently discard on receipt (i.e., do not even deliver
      to applications in the router) any packet addressed to 0.0.0.0.
      If these packets are not silently
      discarded, they MUST be treated as IP broadcasts (see Section
      [5.3.5]).  There MAY be a configuration option to allow receipt of
      these packets.  This option SHOULD default to discarding them.</t>
            <t>A packet addressed to { &lt;Network-prefix&gt;, 0 } is an ordinary
      unicast packet, and MUST be treated as such.</t>
            <t>(4) SHOULD NOT originate datagrams addressed to 0.0.0.0. SHOULD
      allow for the generation of datagrams addressed to
      {&lt;Network-prefix&gt;, 0 } since that is now defined as an
      ordinary unicast adddress.</t>
          </blockquote>
        </section>
      </section>
      <section numbered="true" toc="default">
        <name>Example</name>
        <t>The only IPv4 broadcast address for 192.168.42.0/24 is 192.168.42.255
	(the all-ones or "-1" host number). 192.168.42.0 (the all-zeroes or "0" host number)
	was formerly a second broadcast address on that subnet, but is now a unicast
	address.</t>
        <t>The fact that the address identifier 192.168.42.0 can refer to both a
	network and a specific host 192.168.42.0 is not unusual. Similarly,
	referring to a subnet as 192.168.42.0/24 and configuring a
	particular interface on that subnet as 192.168.42.0/24 is also not
	unusual. Computer
scientists normally count all sorts of things starting at the zeroth
(lowest) element in a sequence.<xref target="EWD831"/>
For example, the initial element in an array is
likely to be stored at a memory address equal to the memory address
of the array itself.<xref target="ARRAY"/>
Similarly, IPv4 hosts in a subnet MAY be enumerated starting with an
address that matches the address of the subnet itself.</t>
        <t>Similarly, the only IPv4 broadcast address for the subnet
192.168.42.96/28 is
192.168.42.111. The address 192.168.42.96 MAY be assigned to an
individual host on this network.</t>
      </section>
      <section numbered="true" toc="default">
        <name>Compatibility and Interoperability</name>
        <t>Many deployed systems follow older Internet standards in not allowing
the lowest address in a network to be assigned or used as a source
or destination address. Assigning this address to
a host may thus make it unaddressable by some devices on its local
network segment. Network operators considering assigning this
address to a host should investigate their own network environments
to determine whether their interoperability requirements will be met.
Interoperability with these addresses is likely to improve over time,
following the publication of this document.</t>
        <t>Prior standards required hosts and gateways to
ignore, and to refrain from generating, non-broadcast datagrams from
or to the lowest address. So when a single network contains a device
that has been assigned the lowest address as specified by this
document, along with one or more devices that follow the traditional
behavior, the traditional devices will not be able to communicate with
the lowest-address device at all. Other sorts of malfunctions are unlikely,
because the former standards (RFC 1122) required traditional hosts to
drop any unicast packet addressed to the secondary broadcast address
that they implemented at the lowest address.</t>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The behavior change specified by this document could produce security
concerns where two devices, or two different pieces of software on a single
host, or a software application and a human user, follow divergent
interpretations of the lowest address on a network. For example, this could
lead to errors in the specification or enforcement of rules about Internet
hosts' connectivity to one another, or their right to access resources.</t>
      <t>Firewall rules that assume that the lowest address on a subnet cannot
be addressed SHOULD be updated to take into account that it can
be addressed, so as to avoid either unintentionally allowing or
unintentionally forbidding connections involving it. Other security,
monitoring, or logging systems that treat the lowest address as an
unaddressable bogon address SHOULD likewise be updated.</t>
      <t>Host software SHOULD make the distinction between lowest-address
(considered individually) and subnet (considered as a group) clear to
users, where this distinction is relevant and could be a subject of
confusion.</t>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>This document directly builds on prior work by Dave Täht and
      John Gilmore as part of the IPv4 Unicast Extensions Project.</t>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

 <back>
    <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

   <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
     <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC1122" target="https://www.rfc-editor.org/info/rfc1122">
          <front>
            <title>Requirements for Internet Hosts - Communication Layers</title>
            <author initials="R." surname="Braden" fullname="R. Braden" role="editor">
              <organization/>
            </author>
            <date year="1989" month="October"/>
            <abstract>
              <t>This RFC is an official specification for the Internet community.  It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="3"/>
          <seriesInfo name="RFC" value="1122"/>
          <seriesInfo name="DOI" value="10.17487/RFC1122"/>
        </reference>
        <reference anchor="RFC1812" target="https://www.rfc-editor.org/info/rfc1812">
          <front>
            <title>Requirements for IP Version 4 Routers</title>
            <author initials="F." surname="Baker" fullname="F. Baker" role="editor">
              <organization/>
            </author>
            <date year="1995" month="June"/>
            <abstract>
              <t>This memo defines and discusses requirements for devices that perform the network layer forwarding function of the Internet protocol suite. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1812"/>
          <seriesInfo name="DOI" value="10.17487/RFC1812"/>
        </reference>
        <reference anchor="RFC4632" target="https://www.rfc-editor.org/info/rfc4632">
          <front>
            <title>Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan</title>
            <author initials="V." surname="Fuller" fullname="V. Fuller">
              <organization/>
            </author>
            <author initials="T." surname="Li" fullname="T. Li">
              <organization/>
            </author>
            <date year="2006" month="August"/>
            <abstract>
              <t>This memo discusses the strategy for address assignment of the existing 32-bit IPv4 address space with a view toward conserving the address space and limiting the growth rate of global routing state. This document obsoletes the original Classless Inter-domain Routing (CIDR) spec in RFC 1519, with changes made both to clarify the concepts it introduced and, after more than twelve years, to update the Internet community on the results of deploying the technology described.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="122"/>
          <seriesInfo name="RFC" value="4632"/>
          <seriesInfo name="DOI" value="10.17487/RFC4632"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <!-- Here we use entities that we defined at the beginning. -->

<reference anchor="RFC0894" target="https://www.rfc-editor.org/info/rfc894">
          <front>
            <title>A Standard for the Transmission of IP Datagrams over Ethernet Networks</title>
            <author initials="C." surname="Hornig" fullname="C. Hornig">
              <organization/>
            </author>
            <date year="1984" month="April"/>
            <abstract>
              <t>This RFC specifies a standard method of encapsulating Internet    Protocol (IP) datagrams on an Ethernet.  This RFC specifies a    standard protocol for the ARPA-Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="41"/>
          <seriesInfo name="RFC" value="894"/>
          <seriesInfo name="DOI" value="10.17487/RFC0894"/>
        </reference>
        <reference anchor="RFC2131" target="https://www.rfc-editor.org/info/rfc2131">
          <front>
            <title>Dynamic Host Configuration Protocol</title>
            <author initials="R." surname="Droms" fullname="R. Droms">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>The Dynamic Host Configuration Protocol (DHCP) provides a framework for passing configuration information to hosts on a TCPIP network.  DHCP is based on the Bootstrap Protocol (BOOTP), adding the capability of automatic allocation of reusable network addresses and additional configuration options.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2131"/>
          <seriesInfo name="DOI" value="10.17487/RFC2131"/>
        </reference>
        <reference anchor="RFC2644" target="https://www.rfc-editor.org/info/rfc2644">
          <front>
            <title>Changing the Default for Directed Broadcasts in Routers</title>
            <author initials="D." surname="Senie" fullname="D. Senie">
              <organization/>
            </author>
            <date year="1999" month="August"/>
            <abstract>
              <t>This document discusses and defines a number of tests that may be used to describe the performance characteristics of a network interconnecting device.  In addition to defining the tests this document also describes specific formats for reporting the results of the tests.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="34"/>
          <seriesInfo name="RFC" value="2644"/>
          <seriesInfo name="DOI" value="10.17487/RFC2644"/>
        </reference>
        <reference anchor="RFC3021" target="https://www.rfc-editor.org/info/rfc3021">
          <front>
            <title>Using 31-Bit Prefixes on IPv4 Point-to-Point Links</title>
            <author initials="A." surname="Retana" fullname="A. Retana">
              <organization/>
            </author>
            <author initials="R." surname="White" fullname="R. White">
              <organization/>
            </author>
            <author initials="V." surname="Fuller" fullname="V. Fuller">
              <organization/>
            </author>
            <author initials="D." surname="McPherson" fullname="D. McPherson">
              <organization/>
            </author>
            <date year="2000" month="December"/>
            <abstract>
              <t>With ever-increasing pressure to conserve IP address space on the Internet, it makes sense to consider where relatively minor changes can be made to fielded practice to improve numbering efficiency.  One such change, proposed by this document, is to halve the amount of address space assigned to point-to-point links (common throughout the Internet infrastructure) by allowing the use of 31-bit subnet masks in a very limited way.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3021"/>
          <seriesInfo name="DOI" value="10.17487/RFC3021"/>
        </reference>
        <reference anchor="RFC2464" target="https://www.rfc-editor.org/info/rfc2464">
          <front>
            <title>Transmission of IPv6 Packets over Ethernet Networks</title>
            <author initials="M." surname="Crawford" fullname="M. Crawford">
              <organization/>
            </author>
            <date year="1998" month="December"/>
            <abstract>
              <t>This document specifies the frame format for transmission of IPv6 packets and the method of forming IPv6 link-local addresses and statelessly autoconfigured addresses on Ethernet networks.  It also specifies the content of the Source/Target Link-layer Address option used in Router Solicitation, Router Advertisement, Neighbor Solicitation, Neighbor Advertisement and Redirect messages when those messages are transmitted on an Ethernet.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2464"/>
          <seriesInfo name="DOI" value="10.17487/RFC2464"/>
        </reference>
        <reference anchor="RFC6250" target="https://www.rfc-editor.org/info/rfc6250">
          <front>
            <title>Evolution of the IP Model</title>
            <author initials="D." surname="Thaler" fullname="D. Thaler">
              <organization/>
            </author>
            <date year="2011" month="May"/>
            <abstract>
              <t>This RFC attempts to document various aspects of the IP service model and how it has evolved over time.  In particular, it attempts to document the properties of the IP layer as they are seen by upper- layer protocols and applications, especially properties that were (and, at times, still are) incorrectly perceived to exist as well as properties that would cause problems if changed.  The discussion of these properties is organized around evaluating a set of claims, or misconceptions.  Finally, this document provides some guidance to protocol designers and implementers.  This document is not an Internet  Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6250"/>
          <seriesInfo name="DOI" value="10.17487/RFC6250"/>
        </reference>
        <reference anchor="RFC4291" target="https://www.rfc-editor.org/info/rfc4291">
          <front>
            <title>IP Version 6 Addressing Architecture</title>
            <author initials="R." surname="Hinden" fullname="R. Hinden">
              <organization/>
            </author>
            <author initials="S." surname="Deering" fullname="S. Deering">
              <organization/>
            </author>
            <date year="2006" month="February"/>
            <abstract>
              <t>This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol.  The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t>
              <t>This document obsoletes RFC 3513, "IP Version 6 Addressing Architecture".   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4291"/>
          <seriesInfo name="DOI" value="10.17487/RFC4291"/>
        </reference>
        <reference anchor="RFC1112" target="https://www.rfc-editor.org/info/rfc1112">
          <front>
            <title>Host extensions for IP multicasting</title>
            <author initials="S.E." surname="Deering" fullname="S.E. Deering">
              <organization/>
            </author>
            <date year="1989" month="August"/>
            <abstract>
              <t>This memo specifies the extensions required of a host implementation of the Internet Protocol (IP) to support multicasting.  Recommended procedure for IP multicasting in the Internet.  This RFC obsoletes RFCs 998 and 1054.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="5"/>
          <seriesInfo name="RFC" value="1112"/>
          <seriesInfo name="DOI" value="10.17487/RFC1112"/>
        </reference>
        <reference anchor="EWD831" target="https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html">
          <front>
            <title>Why Numbering Should Start at Zero</title>
            <author initials="E.W." surname="Dijkstra" fullname="E.W. Dijkstra"/>
            <date year="1982" month="August"/>
          </front>
        </reference>
        <reference anchor="ARRAY" target="https://en.wikipedia.org/wiki/C_(programming_language)#Array%E2%80%93pointer_interchangeability">
          <front>
            <title>C Programming Language: Array-pointer interchangeability</title>
            <author fullname="Wikipedia"/>
          </front>
        </reference>
        <reference anchor="BSDHIST" target="https://en.wikipedia.org/wiki/History_of_the_Berkeley_Software_Distribution">
          <front>
            <title>History of the Berkeley Software Distribution</title>
            <author fullname="Wikipedia"/>
          </front>
        </reference>
        <!-- A reference written by by an organization not a person. -->

      </references>
    </references>
  </back>
</rfc>
