<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" category="info" consensus="true" docName="draft-irtf-icnrg-terminology-08" number="8793" obsoletes="" updates="" submissionType="IRTF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">

  <front>
    <title abbrev="ICN Terminology">Information-Centric Networking (ICN):
    Content-Centric Networking (CCNx) and Named Data Networking (NDN)
    Terminology</title>
    <seriesInfo name="RFC" value="8793"/>
    <author fullname="Bastiaan Wissingh" initials="B." surname="Wissingh">
      <organization>TNO</organization>
      <address>
        <email>bastiaan.wissingh@tno.nl</email>
      </address>
    </author>
    <author fullname="Christopher A. Wood" initials="C." surname="Wood">
      <organization>University of California Irvine</organization>
      <address>
        <email>caw@heapingbits.net</email>
      </address>
    </author>
    <author fullname="Alex Afanasyev" initials="A." surname="Afanasyev">
      <organization>Florida International University</organization>
      <address>
        <email>aa@cs.fiu.edu</email>
      </address>
    </author>
    <author fullname="Lixia Zhang" initials="L." surname="Zhang">
      <organization>UCLA</organization>
      <address>
        <email>lixia@cs.ucla.edu</email>
      </address>
    </author>
    <author fullname="David Oran" initials="D." surname="Oran">
      <organization>Network Systems Research &amp; Design</organization>
      <address>
        <email>daveoran@orandom.net</email>
      </address>
    </author>
    <author fullname="Christian Tschudin" initials="C." surname="Tschudin">
      <organization>University of Basel</organization>
      <address>
        <email>christian.tschudin@unibas.ch</email>
      </address>
    </author>
    <date month="June" year="2020"/>
    <area>IRTF</area>
    <workgroup>Information-Centric Networking</workgroup>

<keyword>content routing</keyword>
<keyword>content caching</keyword>
<keyword>content distribution networks</keyword>
<keyword>data-centric security</keyword>

    <abstract>
      <t>Information-Centric Networking (ICN) is a novel paradigm where network communications are accomplished by requesting named content instead of sending packets to destination addresses. Named Data Networking (NDN) and Content-Centric Networking (CCNx) are two prominent ICN architectures. This document provides an overview of the terminology and definitions that have been used in describing concepts in these two implementations of ICN. While there are other ICN architectures, they are not part of the NDN and CCNx concepts and as such are out of scope for this document. This document is a product of the Information-Centric Networking Research Group (ICNRG).
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Information-centric networking (ICN) is an architecture to evolve the
      Internet infrastructure from the existing host-centric design to a
      data-centric architecture, where accessing data by name becomes the
      essential network primitive. The goal is to let applications refer to
      data independently of their location or means of transportation, which
      enables native multicast delivery, ubiquitous in-network caching, and
      replication of data objects. </t>
      <t>As the work on this topic continues to evolve, many new terms are
      emerging. The goal of this document is to collect the key terms with a
      corresponding definition as they are used in the CCNx and NDN
      projects. Among the important documents for these projects are <xref
      target="RFC8569"/>, <xref target="RFC8609"/>, and <xref
      target="NDNTLV"/>. Other ICN projects such as <xref target="NETINF"
      format="default"/>, <xref target="PSIRP" format="default"/>, or <xref
      target="MOBILITY-FIRST" format="default"/> are not covered and may be
      the subject of other documents.</t>
      <t>In this document, to help provide context for the individual defined terms, we first sketch the bigger picture of an ICN network by
      introducing the basic concepts and identifying the major components of
      the architecture in <xref target="a-sketch-of-the-big-picture-of-icn"
      format="default"/>; after which, in <xref target="terms-by-category"
      format="default"/>, ICN-related terms are listed by different
      categories. Readers should be aware that in this organization, some terms
      may be used in other definitions before they themselves are defined.</t>
      <t>While this terminology document describes both confidentiality and
      integrity-related terms, it should be noted that ICN architectures like
      NDN and CCNx generally do not provide data confidentiality, which is
      treated in these architectures as an application-layer concern.</t>
      <t>This document represents the consensus of the Information-Centric
      Networking Research Group (ICNRG). It has been reviewed extensively by
      the Research Group (RG) members active in the specific areas of work
      covered by the document. It is not an IETF product and is not intended
      for standardization in the IETF.</t>
    </section>
    <section anchor="a-sketch-of-the-big-picture-of-icn" numbered="true" toc="default">
      <name>A Sketch of the Big Picture of ICN</name>
      <t>In networking terms, an ICN is a delivery infrastructure for named
      data. For other complementing views, see <xref
      target="semantics-and-usage" format="default"/>.</t>
      <figure anchor="fig_i-d-protocol">
        <name>Request-Reply Protocol of ICN Networking.</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
requestor         zero or more           data sources or
(node)          forwarding nodes         replica nodes
  |                 | ... |                  |...|
  |   Interest(n)   |     |   Interest(n)    |   |
  | --------------> |     | ---------------> |   |
  |                 |     | -------------------> |
  |                 |     |                  |   |
  |                 |     |  Data([n],c,[s]) |   |
  |                 |     | <--------------- |   |
  |                 |     | <------------------- |
  | Data([n],c,[s]) |     |                  |   |
  | <-------------- |     |                  |   |

      Legend: n=name, c=content, s=signature]]></artwork>
      </figure>
      <t>The following list describes the basic ICN concepts needed to discuss
      the implementation of this service abstraction.</t>
      <t><strong>Request-Reply Protocol (Interest and Data
      Packet):</strong></t>
      <ul empty="true" spacing="normal">
        <li>An ICN's lookup service is implemented by defining two types of
        network packet formats: <xref target="interest_packet"
        format="none">Interest packets</xref> that request content by name and
        <xref target="data_packet" format="none">Data packets</xref> that
        carry the requested content. The returned Data packet must match the
        request's parameters (e.g., having a partially or fully matching
        name). If the request is ambiguous and several Data packets would
        satisfy the request, the ICN network returns only one matching Data
        packet (thus achieving flow balance between Interest and Data packets
        over individual Layer 2 interfaces).</li>
      </ul>
      <t><strong>Packet and Content Names:</strong></t>
      <ul empty="true" spacing="normal">
        <li>Without a strong cryptographic binding between the name of a <xref
        target="data_packet" format="none">Data packet</xref> and its content, Data
        packet names would be useless for fetching specific content. In ICN,
        verification of a Data packet's name-to-content binding is achieved
        through cryptographic means either by (1) a cryptographic signature
        that explicitly binds an application-chosen name to a Data packet's
        content or by (2) relying on an implicit name (cryptographic hash of
        the Data packet with or without application-chosen name) that the data
        consumer obtained through other means.</li>
      </ul>

      <t><strong>Data Authenticity and Encryption:</strong></t>
      <ul empty="true" spacing="normal">
        <li>Any data consumer or network element can (in principle) validate
        the authenticity of a <xref target="data_packet" format="none">Data
        packet</xref> by verifying its cryptographic name-to-content
        binding. Note that data authenticity is distinct from data
        trustworthiness, though the two concepts are related.  A packet is
        authentic if it has a valid name-to-content binding, but it may still
        be unwise to "trust" the content for any particular purpose.</li>
      </ul>
      <t><strong>Trust:</strong></t>
      <ul empty="true" spacing="normal">
        <li>Data authenticity is distinct from data trustworthiness, though
        the two concepts are related. A packet is authentic if it has a valid
        name-to-content binding. A packet is trustworthy, i.e., it comes from
        a reputable or trusted origin, if this binding is valid in the context
        of a trust model. The trust model provides assurance that the name
        used for a given piece of content is appropriate for the value of the
        content. <xref target="security-considerations" format="default"/>
        discusses this further.</li>
      </ul>
      <t><strong>Segmenting and Versioning:</strong></t>
      <ul empty="true" spacing="normal">
        <li>An ICN network will be engineered for some packet size limit. As
        application-level data objects will often be considerably larger,
        objects must be segmented into multiple <xref target="data_packet"
        format="none">Data packets</xref>. The names for these Data packets
        can, for example, be constructed by choosing one application-level
        object name to which a different suffix is added for each segment. The
        same method can be used to handle different versions of an
        application-level object by including a version number in the name of
        the overall object.</li>
      </ul>
      <t><strong>Packet and Frame:</strong></t>
      <ul empty="true" spacing="normal">
        <li>NDN and CCNx introduce Protocol Data Units (PDUs), which typically
        are larger than the maximum transmission unit of the underlying
        networking technology. We refer to PDUs as packets and the
        (potentially fragmented) packet parts that traverse MTU-bound Layer 2
        interfaces as frames. Handling Layer 2 technologies that lead to
        fragmentation of ICN packets is done inside the ICN network and is not
        visible at the service interface.</li>
      </ul>
      <t><strong>ICN Node:</strong></t>
      <ul empty="true" spacing="normal">
        <li>A node within an ICN network can fulfill the role of a data
        producer, a data consumer, and/or a forwarder for <xref
        target="interest_packet" format="none">Interest</xref> and <xref
        target="data_packet" format="none">Data packets</xref>. When a
        forwarder has connectivity to neighbor nodes, it performs Interest and
        Data packet forwarding in real time. It can also behave as a store and
        forward node carrying an Interest or Data packet for some time before
        forwarding it to the next node. An ICN node may also run routing
        protocols to assist its Interest forwarding decisions.</li>
      </ul>
      <t><strong>Forwarding Plane:</strong></t>
      <ul empty="true" spacing="normal">
        <li>The canonical way of implementing packet forwarding in an ICN
        network relies on three data structures that capture a node's state: a
        Forwarding Interest Base (FIB), a Pending Interest Table (PIT), and a
        <xref target="content_store" format="none">Content Store</xref>
        (CS). It also utilizes Interest forwarding strategies, which take
        input from both FIB and measurements to make Interest forwarding
        decisions. When a node receives an <xref target="interest_packet"
        format="none">Interest packet</xref>, it checks its CS and PIT to find
        a matching entry; if no match is found, the node records the Interest
        in its PIT and forwards the Interest to the next hop(s) towards the
        requested content, based on the information in its FIB.</li>
      </ul>

    </section>
    <section anchor="terms-by-category" numbered="true" toc="default">
      <name>Terms by Category</name>
      <section anchor="generic-terms" numbered="true" toc="default">
        <name>Generic Terms</name>
        <t><strong>Information-Centric Networking (ICN):</strong></t>
        <ul empty="true" spacing="normal">
          <li>A networking architecture that retrieves <xref
	  target="data_packet" format="none">Data packets</xref> in
          response to <xref target="interest_packet" format="none">Interest packets</xref>. Content-Centric Networking (CCNx 1.x)
          and Named Data Networking (NDN) are two realizations (designs) of an
          ICN architecture.</li>
        </ul>
        <t><strong>Data Packet Immutability:</strong></t>
        <ul empty="true" spacing="normal">
          <li>After a <xref target="data_packet" format="none">Data
          packet</xref> is created, the cryptographic signature binding the
          name to the content ensures that if either the content or the name
          changes, that change will be detected and the packet discarded. If
          the content carried in a Data packet is intended to be mutable,
          versioning of the name should be used so that each version uniquely
          identifies an immutable instance of the content. This allows
          disambiguation of various versions of content such that coordination
          among the various instances in a distributed system can be
          achieved.</li>
        </ul>
      </section>
      <section anchor="terms-related-to-icn-nodes" numbered="true" toc="default">
        <name>Terms Related to ICN Nodes</name>
        <t><strong>ICN Interface:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A generalization of the network interface that can represent a
          physical network interface (ethernet, Wi-Fi, bluetooth adapter,
          etc.), an overlay inter-node channel (IP/UDP tunnel, etc.), or an
          intra-node inter-process communication (IPC) channel to an
          application (unix socket, shared memory, intents, etc.).</li>
        </ul>

        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: face.</li>
            </ul>
          </li>
        </ul>
        <t><strong>ICN Consumer:</strong></t>
        <ul empty="true" spacing="normal">
          <li>An ICN entity that requests <xref target="data_packet"
          format="none">Data packets</xref> by generating and sending out
          <xref target="interest_packet" format="none">Interest packets</xref>
          towards local (using intra-node interfaces) or remote (using
          inter-node interfaces) ICN Forwarders.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: consumer, information consumer, data consumer, consumer of the content.</li>
            </ul>
          </li>
        </ul>
        <t><strong>ICN Producer:</strong></t>
        <ul empty="true" spacing="normal">
          <li>An ICN entity that creates <xref target="data_packet"
          format="none">Data packets</xref> and makes them available for
          retrieval.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: producer, publisher, information publisher, data publisher, data producer.</li>
            </ul>
          </li>
        </ul>
        <t><strong>ICN Forwarder:</strong></t>
        <ul empty="true" spacing="normal">
          <li>An ICN entity that implements stateful forwarding.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: ICN router.</li>
            </ul>
          </li>
        </ul>
        <t><strong>ICN Data Node:</strong></t>
        <ul empty="true" spacing="normal">
          <li>An ICN entity that temporarily stores and potentially carries an
          Interest or <xref target="data_packet" format="none">Data
          packet</xref> before forwarding it to next ICN entity. Note that
          such ICN data nodes do not have all the properties of data nodes as
          employed in the Delay Tolerant Networking (DTN) <xref
          target="RFC4838" format="default"></xref> specifications.</li>
        </ul>
      </section>

      <section anchor="terms-related-to-the-forwarding-plane" numbered="true" toc="default">
        <name>Terms Related to the Forwarding Plane</name>
        <t><strong>Stateful Forwarding:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A forwarding process that records incoming <xref
          target="interest_packet" format="none">Interest packets</xref> in
          the PIT and uses the recorded information to forward the retrieved
          <xref target="data_packet" format="none">Data packets</xref> back to
          the consumer(s). The recorded information can also be used to
          measure data-plane performance, e.g., to adjust interest
          forwarding-strategy decisions.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: ICN Data plane, ICN Forwarding.</li>
            </ul>
          </li>
        </ul>
        <t anchor="forwarding_strategy"><strong>Forwarding Strategy:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A module of the ICN stateful forwarding (ICN data) plane that
          implements a decision on where/how to forward the incoming <xref
          target="interest_packet" format="none">Interest packet</xref>. The forwarding strategy
          can take input from the Forwarding Information Base (FIB), measured
          data-plane performance parameters, and/or use other mechanisms to
          make the decision.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: Interest forwarding strategy.</li>
            </ul>
          </li>
        </ul>
  
        <t><strong>Upstream (forwarding):</strong></t>
        <ul empty="true" spacing="normal">
          <li>Forwarding packets in the direction of Interests (i.e., Interests are forwarded upstream): consumer, router, router, ..., producer.</li>
        </ul>
        <t><strong>Downstream (forwarding):</strong></t>
        <ul empty="true" spacing="normal">
          <li>Forwarding packets in the opposite direction of Interest
          forwarding (i.e., Data and <xref target="interest_nack"
          format="none">Interest Nacks</xref> are forwarded downstream):
          producer, router, ..., consumer(s).</li>
        </ul>
        <t><strong>Interest Forwarding:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of forwarding <xref target="interest_packet"
          format="none">Interest packets</xref> using the <xref target="name"
          format="none">Names</xref> carried in the Interests. In case of
          stateful forwarding, this also involves creating an entry in the
          PIT. The forwarding decision is made by the <xref
          target="forwarding_strategy" format="none">Forwarding
          Strategy</xref>.</li>
        </ul>
        <t><strong>Interest Aggregation:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of combining multiple <xref target="interest_packet"
          format="none">Interest packets</xref> with the same <xref
          target="name" format="none">Name</xref> and additional restrictions
          for the same Data into a single PIT entry.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: Interest collapsing.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Data Forwarding:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of forwarding the incoming <xref target="data_packet" format="none">Data packet</xref> to the
          interface(s) recorded in the corresponding PIT entry (entries) and
          removing the corresponding PIT entry (entries).</li>
        </ul>
        <t><strong>Satisfying an Interest:</strong></t>
        <ul empty="true" spacing="normal">
          <li>An overall process of returning content that satisfies the
          constraints imposed by the Interest, most notably a match in the
          provided <xref target="name" format="none">Name</xref>.</li>
        </ul>
        <t><strong>Interest Match in FIB (longest prefix match):</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of finding a FIB entry with the longest <xref
	  target="name" format="none">Name</xref> (in terms
          of <xref target="name_component" format="none">Name components</xref>) that is a prefix of the specified Name. See
          <xref target="terms-related-to-name-types" format="default"/> for
          terms related to name prefixes.</li>
        </ul>
        <t><strong>Interest Match in PIT (exact match):</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of finding a PIT entry that stores the same <xref
	  target="name" format="none">Name</xref> as
          specified in the Interest (including Interest restrictions, if
          any).</li>
        </ul>
        <t><strong>Data Match in PIT (all match):</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of finding (a set of) PIT entries that can be
	  satisfied with the specified <xref target="data_packet" format="none">Data packet</xref>.</li>
        </ul>
        <t><strong>Interest Match in CS (any match):</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of finding an entry in a router's <xref
	  target="content_store" format="none">Content Store</xref> that
          can satisfy the specified Interest.</li>
        </ul>
        <t><strong>Pending Interest Table (PIT):</strong></t>
        <ul empty="true" spacing="normal">
          <li>A database that records received and not-yet-satisfied Interests
          with the interfaces from where they were received. The PIT can also
          store interfaces to where Interests were forwarded, and information
          to assess data-plane performance. Interests for the same Data are
          aggregated into a single PIT entry.</li>
        </ul>
        <t><strong>Forwarding Information Base (FIB):</strong></t>
        <ul empty="true" spacing="normal">
          <li>A database that contains a set of prefixes, each prefix
          associated with one or more faces that can be used to retrieve <xref
          target="data_packet" format="none">Data packets</xref> with <xref target="name"
          format="none">Names</xref> under the corresponding prefix. The list
          of faces for each prefix can be ranked, and each face may be
          associated with additional information to facilitate
          forwarding-strategy decisions.</li>
        </ul>
        <t anchor="content_store"><strong>Content Store (CS):</strong></t>
        <ul empty="true" spacing="normal">
          <li>A database in an ICN router that provides caching.</li>
        </ul>
        <t><strong>In-Network Storage:</strong></t>
        <ul empty="true" spacing="normal">
          <li>An optional process of storing a <xref target="data_packet"
          format="none">Data packet</xref> within the network (opportunistic
          caches, dedicated on/off path caches, and managed in-network storage
          systems), so it can satisfy an incoming Interest for this Data
          packet. The in-network storages can optionally advertise the stored
          Data packets in the routing plane.</li>
        </ul>
        <t><strong>Opportunistic Caching:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of temporarily storing a forwarded <xref
	  target="data_packet" format="none">Data packet</xref> in the
          router's memory (RAM or disk), so it can be used to satisfy future
          Interests for the same Data, if any.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: on-path in-network caching.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Managed Caching:</strong></t>
        <ul empty="true" spacing="normal">

      <li>The process of achieving the temporary, permanent, or scheduled
      storage of a selected (set of) <xref target="data_packet" format="none">Data packet(s)</xref>.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: off-path in-network storage.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Managed In-Network Storage:</strong></t>
        <ul empty="true" spacing="normal">
          <li>An entity acting as an ICN publisher that implements managed caching.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: repository, repo.</li>
            </ul>
          </li>
        </ul>
        <t><strong>ICN Routing Plane:</strong></t>
        <ul empty="true" spacing="normal">
          <li>An ICN protocol or a set of ICN protocols to exchange
          information about <xref target="name" format="none">Name</xref> space reachability.</li>
        </ul>
        <t><strong>ICN Routing Information Base (RIB):</strong></t>
        <ul empty="true" spacing="normal">
          <li>A database that contains a set of prefix-face mappings that are produced by running one or multiple routing protocols. The RIB is used to populate the FIB.</li>
        </ul>
      </section>
      <section anchor="terms-related-to-packet-types" numbered="true" toc="default">
        <name>Terms Related to Packet Types</name>
        <t anchor="interest_packet"><strong>Interest Packet:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A network-level packet that expresses the request for a <xref
          target="data_packet" format="none">Data packet</xref> using either
          an exact name or a name prefix. An Interest packet may optionally
          carry a set of additional restrictions (e.g., Interest
          selectors). An Interest may be associated with additional
          information to facilitate forwarding and can include Interest
          lifetime, hop limit, forwarding hints, labels, etc. In different ICN
          designs, the set of additional associated information may vary.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: Interest, Interest message, information request.</li>
            </ul>
          </li>
        </ul>
        <t anchor="interest_nack"><strong>Interest Nack:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A packet that contains the <xref target="interest_packet"
          format="none">Interest packet</xref> and optional annotation, which is sent
          by the ICN router to the interface(s) the Interest was received
          from. An Interest Nack is used to inform downstream ICN nodes about
          the inability to forward the included Interest packet. The
          annotation can describe the reason.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: network NACK, Interest return.</li>
            </ul>
          </li>
        </ul>
        <t anchor="data_packet"><strong>Data Packet:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A network-level packet that carries payload, uniquely identified
          by a name, that is directly secured through cryptographic signature
          mechanisms.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: data, data object, content object, content object packet, data message, named data object, named data.</li>
            </ul>
          </li>
        </ul>
        <t anchor="link"><strong>Link:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A type of <xref target="data_packet" format="none">Data
          packet</xref> whose body contains the <xref target="name"
          format="none">Name</xref> of another Data packet. This inner Name is
          often a <xref target="full_name" format="none">Full Name</xref>,
          i.e., it specifies the Packet ID of the corresponding Data packet,
          but this is not a requirement.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: pointer.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Manifest:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A type of <xref target="data_packet" format="none">Data packet</xref> that contains <xref target="full_name" format="none">Full Name</xref> <xref
	  target="link" format="none">Links</xref> to one or
          more Data Packets. Manifests group collections of related Data
          packets under a single Name. Manifests allow both large Data objects
          to be conveniently split into individual Content Objects under one
          name, and to represent sets of related Content Objects as a form of
          "directory". Manifests have the additional benefit of amortizing the
          signature verification cost for each Data packet referenced by the
          inner <xref target="link" format="none">Links</xref>. Manifests typically contain additional metadata, e.g.,
          the size (in bytes) of each linked Data packet and the cryptographic
          hash digest of all Data contained in the linked Data packets.</li>
        </ul>
      </section>
      <section anchor="terms-related-to-name-types" numbered="true" toc="default">
        <name>Terms Related to Name Types</name>
        <t anchor="name"><strong>Name:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A <xref target="data_packet" format="none">Data packet</xref>
          identifier. An ICN name is hierarchical (a sequence of name
          components) and usually is semantically meaningful, making it
          expressive, flexible, and application-specific (akin to an HTTP
          URL). A Name may encode information about application context,
          semantics, locations (topological, geographical, hyperbolic, etc.),
          a service name, etc.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: data name, interest name, content name.</li>
            </ul>
          </li>
        </ul>
        <t anchor="name_component"><strong>Name component:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A sequence of bytes and optionally a numeric type representing a single label in the hierarchical structured name.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: name segment (as in CCNx).</li>
            </ul>
          </li>
        </ul>
        <t><strong>Packet ID:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A unique cryptographic identifier for a <xref
	  target="data_packet" format="none">Data packet</xref>. Typically,
          this is a cryptographic hash digest of a Data packet (such as SHA256
          <xref target="RFC6234" format="default"></xref>), including
          its name, payload, meta information, and signature.
</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: implicit digest.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Selector:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A mechanism (condition) to select an individual <xref
	  target="data_packet" format="none">Data packet</xref> from
	  a collection of Data packets that match a given Interest that
	  requests data using a prefix or exact <xref target="name" format="none">Name.</xref></li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: interest selector, restrictor, interest restrictor.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Nonce:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A field of an <xref target="interest_packet"
          format="none">Interest packet</xref> that transiently names an
          Interest instance (instance of Interest for a given name). Note: the
          specifications defining nonces in NDN do not necessarily satisfy all
          the properties of nonces as discussed in <xref target="RFC4949"
          format="default"/>.</li>
        </ul>
        <t><strong>Exact Name:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A <xref target="name" format="none">Name</xref> that is encoded inside a <xref target="data_packet"
          format="none">Data packet</xref> and that typically uniquely
          identifies this Data packet.</li>
        </ul>
        <t anchor="full_name"><strong>Full Name:</strong></t>
        <ul empty="true" spacing="normal">
          <li>An exact <xref target="name" format="none">Name</xref> with the Packet ID of the corresponding <xref
	  target="data_packet" format="none">Data packet</xref>.</li>
        </ul>
        <t><strong>Prefix Name:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A <xref target="name" format="none">Name</xref> that includes a partial sequence of Name components
	  (starting from the first one) of a Name encoded inside a <xref
	  target="data_packet" format="none">Data packet</xref>.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: prefix.</li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="terms-related-to-name-usage" numbered="true" toc="default">
        <name>Terms Related to Name Usage</name>
        <t><strong>Naming conventions:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A convention, agreement, or specification for the <xref
	  target="data_packet" format="none">Data packet</xref> naming. a Naming convention structures a namespace.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: Naming scheme, ICN naming scheme, namespace convention.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Hierarchically structured naming:</strong></t>
        <ul empty="true" spacing="normal">
          <li>The naming scheme that assigns and interprets a <xref
	  target="name" format="none">Name</xref> as a sequence of labels (Name components) with hierarchical structure without an assumption of a single administrative root. A structure provides useful context information for the Name.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: hierarchical naming, structured naming.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Flat naming:</strong></t>
        <ul empty="true" spacing="normal">
          <li>The naming scheme that assigns and interprets a <xref
	  target="name" format="none">Name</xref> as a single label (Name component) without any internal structure. This can be considered a special (or degenerate) case of structured names.</li>
        </ul>
        <t><strong>Segmentation:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of splitting large application content into a set of
          uniquely named <xref target="data_packet" format="none">Data packets</xref>. When using hierarchically structured
          names, each created Data packet has a common prefix and an
          additional component representing the segment (chunk) number.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: chunking.</li>
            </ul>
          </li>
        </ul>
        <t><strong>Versioning:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of assigning a unique <xref target="name"
          format="none">Name</xref> to the revision of the content carried in
          the <xref target="data_packet" format="none">Data
          packet</xref>. When using a hierarchically structured Name, the
          version of the Data packet can be carried in a dedicated Name
          component (e.g., prefix identifies data, unique version component
          identifies the revision of the data).</li>
        </ul>
        <t><strong>Fragmentation:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A process of splitting PDUs into Frames so that they can be transmitted over a Layer 2 interface with a smaller MTU size.</li>
        </ul>
      </section>
      <section anchor="terms-related-to-data-centric-security" numbered="true" toc="default">
        <name>Terms Related to Data-Centric Security</name>
        <t><strong>Data-Centric Security:</strong></t>
        <ul empty="true" spacing="normal">
          <li>A security property associated with the <xref
	  target="data_packet" format="none">Data packet</xref>, including
          data (Data-Centric) integrity, authenticity, and optionally
          confidentiality. These security properties stay with the Data packet
          regardless of where it is stored and how it is retrieved.</li>
        </ul>
        <ul empty="true" spacing="normal">
          <li>
            <ul empty="true" spacing="normal">
              <li>Common aliases include: directly securing Data packet.</li>
            </ul>

          </li>
        </ul>
        <t><strong>Data Integrity</strong></t>
        <ul empty="true" spacing="normal">
          <li>A cryptographic mechanism to ensure the consistency of the <xref
	  target="data_packet" format="none">Data
          packet</xref> bits. The Data integrity property validates that the Data
          packet content has not been corrupted during transmission, e.g.,
          over lossy or otherwise unreliable paths, or been subject to
          deliberate modification.</li>
        </ul>
        <t><strong>Data Authenticity</strong></t>
        <ul empty="true" spacing="normal">
          <li>A cryptographic mechanism to ensure trustworthiness of a <xref
	  target="data_packet" format="none">Data
          packet</xref> based on a selected (e.g., by a consumer/producer) trust
          model. Typically, data authenticity is assured through the use of
          asymmetric cryptographic signatures (e.g., RSA, ECDSA) but can also
          be realized using symmetric signatures (e.g., Hashed Message
	  Authentication Code (HMAC)) within trusted
          domains.</li>
        </ul>
        <t><strong>Data Confidentiality</strong></t>
        <ul empty="true" spacing="normal">
          <li>A cryptographic mechanism to ensure secrecy of a <xref
          target="data_packet" format="none" >Data packet</xref>. Data
          confidentiality includes separate mechanisms: <xref
          target="content_confidentiality" format="none">Content
          confidentiality</xref> and <xref target="name_confidentiality"
          format="none">Name confidentiality</xref>.</li>
        </ul>
        <t anchor="content_confidentiality"><strong>Content Confidentiality</strong></t>
        <ul empty="true" spacing="normal">
          <li>A cryptographic mechanism to prevent an unauthorized party to
          get access to the plain-text payload of a <xref target="data_packet"
	  format="none">Data packet</xref>. Can be
          realized through encryption (symmetric, asymmetric, hybrid) and
          proper distribution of the decryption keys to authorized
          parties.</li>
        </ul>
        <t anchor="name_confidentiality"><strong>Name Confidentiality</strong></t>
        <ul empty="true" spacing="normal">
          <li>A cryptographic mechanism to prevent an observer of
          Interest-Data exchanges (e.g., intermediate router) from gaining
          detailed meta information about the <xref target="data_packet" format="none">Data packet</xref>. This mechanism can
          be realized using encryption (same as content confidentiality) or
          obfuscation mechanisms.</li>
        </ul>
      </section>
    </section>
    <section anchor="semantics-and-usage" numbered="true" toc="default">
      <name>Semantics and Usage</name>
      <t>The terminology described above is the manifestation of intended
      semantics of NDN and CCNx operations (What do we expect the network to
      do?). In this section, we summarize the most commonly proposed use cases
      and interpretations.</t>
      <section anchor="data-transfer" numbered="true" toc="default">
        <name>Data Transfer</name>
        <t>The networking view of NDN and CCNx is that the request/reply
        protocol implements a basic, unreliable data transfer service for
        single, named packets.</t>
      </section>
      <section anchor="data-transport" numbered="true" toc="default">
        <name>Data Transport</name>
        <t>Data transfer can be turned into a data transport service for
        application-level objects by additional logic. This transport logic
        must understand and construct the series of names needed to reassemble
        the segmented object. Various flavors of transport can be envisaged
        (reliable, streaming, mailbox, etc.).</t>
      </section>
      <section anchor="lookup-service" numbered="true" toc="default">
        <name>Lookup Service</name>
        <t>In a more distributed systems view of the basic request/reply
        protocol, NDN and CCNx provide a distributed lookup service: given a
        key value (=name), the service will return the corresponding
        value.</t>
      </section>
      <section anchor="database-access" numbered="true" toc="default">
        <name>Database Access</name>
        <t>A lookup service can be turned into a database access protocol by
        using the namespace structure to specify names as access keys into a
        database. Therefore, a name prefix stands for a collection or table of
        a database, while the rest of the name specifies the query expression
        to be executed.</t>
      </section>
      <section anchor="remote-procedure-call" numbered="true" toc="default">
        <name>Remote Procedure Call</name>
        <t>The names as defined in this document for Interests and Data can
        refer to Remote Procedure call functions, their input arguments, and
        their results. For a comprehensive view of how to construct RPC or
        other remote invocation systems, see the Association for Computing
	Machinery (ACM) ICN paper on <xref
        target="RICE" format="default"/>. These capabilities can be further
        extended into a full distributed computing infrastructure such as
        that proposed in the ACM ICN paper <xref target="CFN"
        format="default"/>.</t>

    </section>
      <section anchor="publish-subscribe" numbered="true" toc="default">
        <name>Publish/Subscribe</name>
        <t>The names as defined in this document for Interests and Data can
        refer to data collections to be subscribed and individual data objects
        to be published in a Publish-Subscribe application architecture.  For
        a fully worked example of how to construct such an ICN-based system,
        see the ACM ICN paper <xref target="LESSONS-LEARNED"
        format="default"/>.</t>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>While the terms defined in this specification do not in and of
      themselves present new security considerations, the architectures that
      utilize the terms most certainly do. Readers should look at those
      specifications (e.g., <xref target="RFC8569" format="default"/> and <xref
      target="NDN" format="default"/>) where various security considerations
      are addressed in detail.</t>
      <t>Some of the terms in this document use the words "trust",
      "trustworthy", or "trust model". We intend that these have their
      colloquial meanings; however, much work on trust, and specifically on
      trust schemas for ICN architectures, has been published in the last few
      years. For example, it is useful to look at <xref
      target="SCHEMATIZING-TRUST" format="default"/> for more information on
      the approaches taken to formalize notions of trust for current NDN and
      CCNx systems.</t>
    </section>
  </middle>
  <back>

    <references>
      <name>References</name>

      <references>
        <name>Normative References</name>


        <reference anchor="NETINF" target="https://dl.acm.org/citation.cfm?id=2459643">
          <front>
            <title>Network of Information (NetInf) - An information-centric networking architecture</title>
            <seriesInfo name="DOI" value="10.1016/j.comcom.2013.01.009"/>
            <author surname="Dannewitz" initials="C."/>
            <author surname="Kutscher" initials="D."/>
            <author surname="Ohlman" initials="B."/>
            <author surname="Farrell" initials="S."/>
            <author surname="Ahlgren" initials="B."/>
            <author surname="Holger" initials="K."/>
            <date year="2013" month="April"/>
          </front>
<refcontent>Computer Communications
</refcontent>
<refcontent>Volume 36, Issue 7
</refcontent>
        </reference>



<reference anchor="NDNTLV" target="https://named-data.net/doc/ndn-tlv/">
                <front>
                        <title>NDN Packet Format Specification</title>
              <author>
<organization>Named Data Networking
</organization>
	      </author>

                </front>
</reference>



      <reference anchor="PSIRP" target="http://www.psirp.org/files/Deliverables/PSIRP-TR08-0001_Vision.pdf">
          <front>
            <title>From Design for Tussle to Tussle Networking: PSIRP Vision and Use Cases</title>
            <author surname="Trossen" initials="D."/>
            <author surname="Tuononen" initials="J"/>
            <author surname="Xylomenos" initials="G."/>
            <author surname="Sarela" initials="M."/>
            <author surname="Zahemszky" initials="A."/>
            <author surname="Nikander" initials="P."/>
            <author surname="Rinta-aho" initials="T."/>
            <date month="May" year="2008"/>
          </front>
        </reference>



        <reference anchor="MOBILITY-FIRST" target="https://dl.acm.org/citation.cfm?id=2412098">
          <front>
            <title>MobilityFirst: a robust and trustworthy mobility-centric architecture for the future internet</title>
            <seriesInfo name="DOI" value="10.1145/2412096.2412098"/>
            <author surname="Raychaudhuri" initials="D."/>
            <author surname="Nagaraja" initials="K."/>
            <author surname="Venkataramani" initials="A."/>
            <date year="2012" month="July"/>
          </front>
<refcontent>ACM SIGMOBILE
</refcontent>
<refcontent>Volume 16, Issue 3
</refcontent>
        </reference>



        <reference anchor="SCHEMATIZING-TRUST" target="https://dx.doi.org/10.1145/2810156.2810170">
          <front>
            <title>Schematizing Trust in Named Data Networking</title>
            <seriesInfo name="DOI" value="0.1145/2810156.2810170"/>
            <author surname="Yu" initials="Y."/>
            <author surname="Afanasyev" initials="A."/>
            <author surname="Clark" initials="D."/>
            <author surname="Claffy" initials="K. C."/>
            <author surname="Jacobson" initials="V."/>
            <author surname="Zhang" initials="L."/>
            <date month="September" year="2015"/>
          </front>
<refcontent>ACM ICN
</refcontent>
        </reference>



        <reference anchor="RICE" target="https://dx.doi.org/10.1145/3267955.3267956">
          <front>
            <title>RICE: remote method invocation in ICN</title>
            <seriesInfo name="DOI" value="10.1145/3267955.3267956"/>
            <author surname="Krol" initials="M."/>
            <author surname="Habak" initials="K."/>
            <author surname="Kutscher" initials="D."/>
            <author surname="Oran" initials="D."/>
            <author surname="Psaras" initials="I."/>
            <date month="September" year="2018"/>
          </front>
<refcontent>ACM ICN
</refcontent>
        </reference>



        <reference anchor="CFN" target="https://dl.acm.org/citation.cfm?id=3357395">
          <front>
            <title>Compute First Networking: Distributed Computing meets ICN</title>
            <seriesInfo name="DOI" value="10.1145/3357150.3357395"/>
            <author surname="Krol" initials="M."/>
            <author surname="Mastorakis" initials="S."/>
            <author surname="Kutscher" initials="D."/>
            <author surname="Oran" initials="D."/>
            <date month="September" year="2019"/>
          </front>
<refcontent>ACM ICN
</refcontent>
        </reference>



        <reference anchor="LESSONS-LEARNED" target="https://dl.acm.org/citation.cfm?id=3357397">
          <front>
            <title>Lessons Learned Building a Secure Network Measurement Framework using Basic NDN</title>
            <seriesInfo name="DOI" value="10.1145/3357150.3357397"/>
            <author surname="Nichols" initials="K"/>
            <date month="September" year="2019"/>
          </front>
<refcontent>ACM ICN
</refcontent>
        </reference>
      </references>

      <references>
        <name>Informative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4838.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4949.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6234.xml"/>
	<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8569.xml"/>
      	<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8609.xml"/>

	<reference anchor="NDN" target="https://named-data.net/project/execsummary/">
          <front>
            <title>Named Data Networking: Executive Summary</title>
            <author>
<organization>Named Data Networking
</organization>
	    </author>
            <date month="September" year="2010"/>
          </front>
        </reference>
      </references>

    </references>

    <section anchor="acknowledgements" numbered="false" toc="default">
      <name>Acknowledgments</name>
      <t><contact fullname="Marc Mosko"/> provided much guidance and helpful
      precision in getting these terms carefully formed and the definitions
      precise. <contact fullname="Marie-Jose Montpetit"/> did a thorough IRSG review, which helped a
      lot to improve the text. Further comments during the IRSG Poll from
      <contact fullname="Stephen Farrell"/>, <contact fullname="Ari
      Keraenen"/>, <contact fullname="Spencer Dawkins"/>, <contact fullname="Carsten Bormann"/>, and
      <contact fullname="Brian Trammell"/> further improved the document. Additional helpful
      comments were received as part of the IESG conflict review from <contact fullname="Mirja
      Kuehlewind"/> and <contact fullname="Benjamin Kaduk"/>.</t>
    </section>


  </back>
</rfc>
