<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict='yes'?>
<?rfc iprnotified='no'?>
<rfc category="info" docName="draft-templin-dtn-numid-02.txt"
     ipr="trust200902" updates="">
  <front>
    <title abbrev="DTN Numeric Node IDs">Delay Tolerant Network (DTN) Numeric
    Node IDs</title>

    <author fullname="Fred L. Templin" initials="F. L." role="editor"
            surname="Templin">
      <organization>Boeing Research &amp; Technology</organization>

      <address>
        <postal>
          <street>P.O. Box 3707</street>

          <city>Seattle</city>

          <region>WA</region>

          <code>98124</code>

          <country>USA</country>
        </postal>

        <email>fltemplin@acm.org</email>
      </address>
    </author>

    <author fullname="Scott Burleigh" initials="S." surname="Burleigh">
      <organization>JPL, Calif. Inst. Of Technology</organization>

      <address>
        <postal>
          <street>4800 Oak Grove Dr.</street>

          <city>Pasadena</city>

          <region>CA</region>

          <code>91109-8099</code>

          <country>USA</country>
        </postal>

        <phone>+1 818 393 3353</phone>

        <email>Scott.Burleigh@jpl.nasa.gov</email>
      </address>
    </author>

    <date day="7" month="July" year="2016"/>

    <keyword>I-D</keyword>

    <keyword>Internet-Draft</keyword>

    <abstract>
      <t>The Delay Tolerant Network (DTN) Bundle Protocol (BP) uses Uniform
      Resource Identifiers (URIs) as the basis for Endpoint and Node IDs. IDs
      that are encoded as long alphanumeric strings can consume precious
      bandwidth over constrained links, leading to a desire for a concise
      numeric ID format. This document discusses design alternatives for DTN
      numeric node IDs.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>The Delay Tolerant Network (DTN) Bundle Protocol (BP) <xref
      target="I-D.ietf-dtn-bpbis"/> uses Uniform Resource Identifiers (URIs)
      <xref target="RFC3968"/> as the basis for Endpoint IDs (EIDs) in the
      following format:</t>

      <t>&lt; scheme name &gt; : &lt; scheme-specific part, or "SSP" &gt;</t>

      <t>When the scheme name is "dtn", the SSP is an alphanumeric EID string
      up to 1023 octets in length. Since each Bundle may include several such
      EIDs, this could result in substantial bandwidth consumption over
      constrained links simply to transport EIDs, leading to a desire for a
      concise numeric format.</t>

      <t>When the scheme name is "ipn", the SSP is a numeric node number
      (between 1 and 2^64 - 1) followed by a numeric service number (between 0
      and 2^64 - 1) <xref target="RFC6260"/>. Values for these fields are
      registered with the Internet Assigned Numbers Authority (IANA) and/or
      delegated to independent registries such as the Space Assigned Numbers
      Authority (SANA) <xref target="RFC7116"/>.</t>

      <t>This document discusses the "ipn" scheme, and presents candidate
      requirements for alternate DTN numeric node ID schemes.</t>
    </section>

    <section anchor="alternate" title="Numeric Node ID Alternatives">
      <t/>

      <section title="IPN Naming Scheme">
        <t><xref target="RFC6260"/> and <xref target="RFC7116"/> define a
        numeric naming scheme used to form EIDs that in native representation
        take the form of Uniform Record Identifiers with scheme name
        &ldquo;ipn&rdquo;. The native representation of an "ipn" EID is:
        &ldquo;ipn:&lt;node_number&gt;.&lt;service_number&gt;&rdquo;.</t>

        <t>More formally, the &ldquo;ipn&rdquo; scheme is defined in the
        Augmented Backus-Naur Form (ABNF) notation of <xref
        target="RFC5234"/>, including the core ABNF syntax rule for DIGIT
        defined by that specification. Details are:</t>

        <t><list style="symbols">
            <t>ipn-uri = "ipn:" ipn-hier-part</t>

            <t>ipn-hier-part = node-nbr nbr-delim service-nbr ; a
            path-rootless</t>

            <t>node-nbr = 1*DIGIT</t>

            <t>nbr-delim = "."</t>

            <t>service-nbr = 1*DIGIT.</t>
          </list></t>

        <t>Because the encoded representation of an ipn-scheme URI&rsquo;s
        ipn-hier-part is so compact, EIDs expressed in this scheme are
        suitable for resource-constrained links, however administrative
        entities that are first to claim the lower node numbers for assignment
        to their nodes may have a permanent performance advantage. In
        particular, <xref target="RFC7116"/> specifies the initial ipn EID
        assignments shown below:</t>

        <t><figure>
            <artwork><![CDATA[    +--------------------+---------------------------+---------------+
    |              Value | Description               | Reference     |
    +--------------------+---------------------------+---------------+
    |                  0 | Reserved                  | This document |
    |       1--(2**14)-1 | Unassigned                | This document |
    | (2**14)--(2**21)-1 | Allocated to CCSDS (SANA) | This document |
    | (2**21)--(2**28)-1 | Private/Experimental Use  | This document |
    | (2**28)--(2**42)-1 | Unassigned                | This document |
    |          >=(2**42) | Reserved                  | This document |
    +--------------------+---------------------------+---------------+]]></artwork>
          </figure></t>

        <t>Using octet-based encodings such as CBOR <xref
        target="I-D.burleigh-dtn-rs-cbor"/>, this means that EIDs allocated to
        CCSDS can be represented in 2-3 octets, Private/Experimental Use EIDs
        can be represented in 3-4 octets and Unassigned/Reserved EIDs require
        4 or more octets. This means that in a first-come, first-served
        assignment policy the earliest adopters will receive EIDs that can be
        represented in fewer octets than those received by latecomers.The
        "ipn" scheme further does not address all of the requirements that
        would be expected of addressing schemes such as those defined for the
        Internet Protocol, but it is necessary to consider which (if any) of
        the additional requirements would be applicable to DTN. The following
        section therefore discusses requirements for alternate numeric naming
        schemes for DTN, if indeed an alternate scheme is even necessary.</t>
      </section>

      <section title="Alternate Numeric Naming Schemes">
        <t>It is clear that the "ipn" scheme is already operational; hence, if
        one or more new scheme names are needed they would require a new
        scheme name. Some of the questions that must be taken into
        consideration in designing an alternate numeric naming scheme
        include:</t>

        <t><list style="hanging">
            <t hangText="Q1 (Fixed vs Variable-length):">Should an alternate
            scheme include a fixed-length EID format, or variable-length to
            allow efficient codings for early adopters?</t>

            <t
            hangText="Q2: (Pseudo-Random vs. Consecutive Assignments):">Should
            an alternate scheme delegate EIDs in a (pseudo) random fashion to
            ensure fairness, or as consecutive values beginning with low
            numbers and growing proportionally to the number of
            allocations?</t>

            <t hangText="Q3 (Maximum EID Length):">"ipn" specifies a maximum
            EID length of 64 bits. Should an alternate scheme adopt the same
            maximum length?</t>

            <t hangText="Q4 (Unicast EIDs):">Should an alternate scheme
            include a range of EIDs that correspond to singleton DTN
            nodes?</t>

            <t hangText="Q5 (Multicast EIDs):">Should an alternate scheme
            include a range of EIDs that correspond to groups of DTN nodes for
            which all nodes in the group receive the bundle? If so, should the
            multicast EIDs be part of the same naming scheme as unicast EIDs,
            or should they be part of a different scheme?</t>

            <t hangText="Q6 (Private-use EIDs):">Should an alternate scheme
            include a range of EIDs that can be administratively assigned
            within the local DTN, even though the same EIDs may be assigned in
            other DTNs? If so, should the private-use EIDs be assigned from
            low-numbered values so that efficient coding compression can be
            employed?</t>

            <t hangText="Q7 (Universal EIDs):">Should an alternate scheme
            include a range of EIDs that are guaranteed to be unique on a
            universal basis, e.g., in case one or more DTNs merge to form a
            larger DTN?</t>

            <t
            hangText="Q8 (Block Allocations vs. Individual Allocations):">Should
            an alternate scheme allow for "block allocations" of EIDs, or only
            individual allocations (i.e., one EID at a time)? If block
            allocations are supported, should the blocks include contiguous
            EID values, or (pseudo) random values?</t>
          </list>It is further worth considering that any DTN numeric naming
        scheme (or schemes) would entail compromises that might not be a
        best-fit for all applications. For example, the IPv6 addressing
        architecture <xref target="RFC4291"/> specifies a fixed 16-octet
        address length which might present considerable overhead for
        transporting addresses across slow links. In the end, any new DTN
        numeric naming scheme would need to be analyzed according to specific
        use cases.</t>
      </section>
    </section>

    <section anchor="iana" title="IANA Considerations">
      <t>This document introduces no IANA considerations.</t>
    </section>

    <section anchor="secure" title="Security Considerations">
      <t><xref target="I-D.ietf-dtn-bpsec"/> documents the Bundle Protocol
      Security (BPsec) specification..</t>
    </section>

    <section anchor="ack" title="Acknowledgements">
      <t>TBD</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.I-D.ietf-dtn-bpbis"?>

      <?rfc include="reference.I-D.ietf-dtn-bpsec"?>

      <?rfc ?>

      <?rfc ?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.3968"?>

      <?rfc include="reference.RFC.5234"?>

      <?rfc include="reference.RFC.6260"?>

      <?rfc include="reference.RFC.7116"?>

      <?rfc include="reference.I-D.burleigh-dtn-rs-cbor"?>

      <?rfc include="reference.RFC.4291"?>
    </references>
  </back>
</rfc>
