<?xml version="1.0" encoding="utf-8"?>
<?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"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC0814 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0814.xml">
<!ENTITY RFC1853 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1853.xml">
<!ENTITY RFC3135 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3135.xml">
<!ENTITY RFC4291 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4291.xml">
<!ENTITY RFC4655 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4655.xml">
<!ENTITY RFC6052 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6052.xml">
<!ENTITY RFC6115 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6115.xml">
<!ENTITY RFC6282 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6282.xml">
<!ENTITY RFC6992 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6992.xml">
<!ENTITY RFC7285 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7285.xml">
<!ENTITY RFC7597 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7597.xml">
<!ENTITY RFC7665 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7665.xml">
<!ENTITY RFC7761 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7761.xml">
<!ENTITY RFC7911 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7911.xml">
<!ENTITY RFC7926 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7926.xml">
<!ENTITY RFC8300 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8300.xml">
<!ENTITY RFC8595 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8595.xml">
<!ENTITY RFC8799 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8799.xml">
<!ENTITY RFC8986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8986.xml">
<!ENTITY RFC9139 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9139.xml">
<!ENTITY I-D.ietf-teas-rfc3272bis SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-rfc3272bis.xml">
<!ENTITY I-D.jiang-semantic-prefix SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.jiang-semantic-prefix.xml">
<!ENTITY I-D.jiang-service-oriented-ip SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.jiang-service-oriented-ip.xml">
<!ENTITY I-D.king-rtgwg-challenges-in-routing SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.king-rtgwg-challenges-in-routing.xml">
<!ENTITY I-D.king-irtf-semantic-routing-survey SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.king-irtf-semantic-routing-survey.xml">
<!ENTITY I-D.li-apn-framework SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.li-apn-framework">
<!ENTITY I-D.li-spring-sr-sfc-control-plane-framework SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.li-spring-sr-sfc-control-plane-framework">
]>

<rfc category="info" docName="draft-farrel-rtgwg-intro-to-semantic-networking-01" ipr="trust200902">
  <front>
    <title abbrev="Semantic Networking">An Introduction to Semantic Networking</title>

    <author fullname="Adrian Farrel" initials="A." surname="Farrel">
      <organization>Old Dog Consulting</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <country>UK</country>
        </postal>
        <email>adrian@olddog.co.uk</email>
      </address>
    </author>

    <author fullname="Daniel King" initials="D." surname="King">
      <organization>Lancaster University</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <country>UK</country>
        </postal>
        <email>d.king@lancaster.ac.uk</email>
      </address>
    </author>

    <date month="" year="2023"/>

    <area>RTG</area>

    <workgroup>RTGWG</workgroup>

    <keyword></keyword>

    <abstract>

      <t>Many proposals have been made to add semantics to IP packets by placing additional
         information in existing fields, by adding semantics to IP addresses themselves, or by
         adding fields.  The intent is to facilitate enhanced routing/forwarding decisions
         based on these additional semantics to provide differentiated forwarding paths for
         different packet flows distinct from simple shortest path first routing.  The process
         is defined as Semantic Networking.</t>

      <t>This document provides a brief introduction to Semantic Networking.</t>

    </abstract>

  </front>

  <middle>
    <section anchor="intro" title="Introduction">

      <t>Historically, the meaning of an IP address has been to identify an interface on a
         network device or a network to which a host is attached <xref target="RFC0814"/>.  Network
         routing protocols were initially designed to determine paths through a network toward
         destination addresses so that IP packets with a common destination address converged on that
         destination.  Anycast and multicast addresses were also defined (e.g., Section 2.6.1 of
         <xref target="RFC4291"/>), and some of these new address semantics necessitated variations
         to the routing protocols (e.g., <xref target="RFC6992" />), and in some cases the development
         of new routing protocols (e.g., Protocol Independent Multicast - Sparse Mode
         <xref target="RFC7761"/>).</t>

      <t>Over time, routing decisions were enhanced to route packets according to additional
         information carried within the packets and dependent on policy coded in, configured at,
         or signaled to the routers.  Perhaps the most obvious example is Equal-Cost Multipath (ECMP)
         where a router makes a consistent choice for forwarding packets over a number of parallel
         links or paths based on the values of a set of fields in the packet header.  Another example is
         Constraint-based Shortest Path First (CSPF) where additional constraints are considered when
         performing route computation and selection.</t>

      <t>Upper-layer applications are placing increasingly sophisticated demands on the network for better
         quality, more predictability, and increased reliability.  Some of these applications are futuristic
         predictions (for example, haptic augmented reality multiplayer 3D worlds), some are new ideas on the
         threshold of roll-out (such as holographic conferencing), and many are rapidly developing sectors
         with established revenue streams (such as multiplayer immersive gaming).</t>

      <t>At the same time, lower-layer network technologies are advancing rapidly providing increased
         bandwidth to the home and to mobile hand-held devices.  These advances create an environment that
         enables the potential of advanced applications being run by very many end-users.  This coincides
         with a massive growth in end-to-end communications that include machines and services, and to
         introduce routing and addressing behaviors to a particular use case and set of requirements applied
         within a limited region or domain of the Internet.  Examples of these three developments include 5G,
         predicted wireless evolutions, IoT and vehicular connectivity, space-terrestrial communication,
         industrial networks, cloud computing, service function chaining and network functions virtualization,
         digital twins, and data-centric data brokerage platforms.</t>

      <t>Despite this plurality of communication scenarios, IP-based addressing and network layer routing have
         remained focused on identifying locations of communication (i.e., "where") and determining paths between
         those locations with or without specific constraints (i.e., "how-to-get-there" as per <xref target="IEN23"/>).
         This has previously depended on higher-layer capabilities (e.g., for name-to-location resolution) to
         support some of these communication scenarios, but that approach introduces latency and dependencies
         (e.g., changing locator assignments may depend on the capabilities of the upper-layer capability that are
         outside the core addressing and routing system).  Furthermore, multi-layer lookups and interactions may
         impact the efficacy of some of the communication scenarios mentioned here, particularly those that employ
         different routing and addressing approaches beyond just locators.</t>

      <t>"Semantic Networking" places the support for advanced routing, forwarding, and location functions directly at the packet
         routing/forwarding layer, such as through extensions to the identification properties of addresses (so that the
         address indicates more than just the network location) or through performing routing functions on an
         extended set of inputs (for example, other fields carried in packet headers).  Such an approach should
         preserve the Internet architecture as it is today while enabling additional routing function.</t>

      <t>This document provides a brief introduction to Semantic Networking and outlines the possible approaches that
         might be taken.  A separate document (<xref target="I-D.king-irtf-semantic-routing-survey"/>) makes a
         start at a survey of pre-existing work in this area, while <xref target="I-D.king-rtgwg-challenges-in-routing"/>
         sets out some of the issues that should be considered when researching, developing, or proposing a
         routing scheme for Semantic Networking.</t>

    </section>

    <section anchor="object" title="Objectives and Scope">

      <t>As with all advances in Internet protocols, Semantic Networking may be considered for Internet-wide deployment
         or may be restricted (possibly only initially) to well-defined and contained networks referred to as "limited
         domains" (see <xref target="RFC8799"/>).  The information used for Semantic Networking may be opaque within the
         network (in other words, the additional information is not required to be parsed by the routers and might not
         even be visible to them), may be transparent (so that routers may see the information, but their processing
         does not need to be changed to accommodate the information or its encoding), or may be active (so that Semantic
         Networking is fully enabled).</t>

      <t>When building an end-to-end path across multiple domains, Semantic Networking may select a path in one domain
         that is not consistent with the paths selected in other domains in terms of constructing the "best" end-to-end
         path.  That is, the Semantic Networking decisions within a domain are potentially isolated from knowledge about
         the other domains.</t>

      <t>In any case, concern and consideration must be coexistence with, and backward compatibility to, existing
         routing and addressing schemes that are widely deployed.</t>

      <t>Further understanding of the scope of Semantic Networking applied to the routing of packets at the network
         layer may be gained by reading <xref target="routing"/> to see how various other concepts of routing are
         out of scope of this work.</t>

      <t>A strategic objective of Semantic Networking, and associated semantic enhancements, is to enable Service
         Providers to modify the default forwarding behaviour to be based on other information present in the packet
         and policy configured or dynamically programmed into the routers and devices.  This is aimed to cause new and
         alternative path processing by routers, including:

         <list style="symbols">

           <t>Determinism of quality of delivery in terms of throughput, latency, jitter, and drop precedence.</t>

           <t>Determinism of resilience in terms of survival of network failures and delivery degradation.</t>

           <t>Determinism of routing performance in terms of the volume of data that has to be exchanged both
              to establish and to maintain the routing tables.</t>

           <t>Deployability in terms of configuration, training, development of new hardware/software, and interaction
              with the pre-existing network technologies and uses.</t>

           <t>Efficiency of manageability in terms of:
              <list style="numbers">
                 <t>diagnostic management</t>
                 <t>management of Service KPIs with/without guarantees</t>
                 <t>dynamic and controlled instantiation of management information in the packets.</t>
              </list></t>

         </list></t>

      <t>Issues of security and privacy have been largely overlooked within the routing systems.  However, there is
         increasing concern that attacks on routing systems can not only be disruptive (for example, causing traffic
         to be dropped), but may cause traffic to be routed via inspection points that can breach the security or
         privacy of the payloads (e.g., BGP hijack attacks).  While Semantic Networking might offer tools for increasing
         security and privacy, it is possible that Semantic Networking and the additional information that may be carried
         in packets to enable Semantic Networking may provide vectors for attacks or compromise privacy.  This must be
         examined by any Semantic Networking proposals.  For example, means to control entities that are entitled to
         access supplied Semantic Networking information should be considered.</t>

    </section>

    <section anchor="approaches" title="Approaches to Semantic Networking">

      <t>Typically, in an IP-based network packets are forwarded using the least-cost path to the destination IP address.  Service Providers
         may also use techniques to modify the default forwarding behavior based on other information present in the packet and configured
         or programmed into the routers.  These mechanisms, sometimes called Semantic Networking techniques include "Preferential Routing",
         "Policy-based Routing", and "Flow Steering".</t>

      <t>Examples of existing Semantic Networking usage in IP-based networks include the following.
         <list style="symbols">
           <t>Using addresses to identify different device types so that their traffic may be handled
              differently <xref target="SEMANTICRTG"/>.</t>
           <t>Expressing how a packet should be handled, prioritized, or allocated network resources as it is
              forwarded through the network <xref target="TERASTREAMref"/>.</t>
           <t>Deriving IP addresses from the lower layer identifiers and using addresses depending on the
              underlying connectivity (for example, <xref target="RFC6282" />.</t>
           <t>Building IP addresses from the transport layer identifiers (for example, <xref target="RFC7597"/>).</t>
           <t>Indicating the application or network function on a destination device or at a specific location, or
              enable Service Function Chaining (SFC) <xref target="RFC7665"/>.</t>
           <t>Providing semantics specific to mobile networks so that a user or device may move
              through the network without disruption to their service <xref target="CONTENT-RTG-MOBILEref"/>.</t>
           <t>Enabling optimized multicast traffic distribution by encoding multicast tree and replication
              instructions within addresses <xref target="MULTICAST-SRref"/>.</t>
           <t>Content-based routing (CBR), forwarding of the packet based on message content rather than the
              destination addresses <xref target="OPENSRNref"/>.</t>
           <t>Identifying hierarchical connectivity so that routing can be simplified <xref target="EIBPref"/>.</t>
           <t>Providing geographic location information within addresses <xref target="GEO-IPref"/>.</t>
           <t>Using cryptographic algorithms to mask the identity of the source or destination, masking routing tables
              within the domain, while still enabling packet forwarding across the network <xref target="BLIND-FORWARDINGref"/>.</t>
         </list></t>

      <t>A more comprehensive list of existing implementations and research projects can be found in <xref target="I-D.king-irtf-semantic-routing-survey"/>.</t>

      <t>Semantic Networking, operates to forward packets dependent on information carried in the packets and rules present in the routers.  Those rules
         could be any combination of:
         <list style="symbols">
           <t>Built into the routers</t>
           <t>Configured network-wide in the routers</t>
           <t>Configured per-router in a relatively static way</t>
           <t>Programmed to the routers in a dynamic way, for example, through software defined networking (SDN)</t>
           <t>Distributed dynamically through the network using routing or signalling protocols</t>
         </list></t>

      <t>Semantic Networking will also require information about network state and capabilities just as existing shortest path first routing systems do.
         That may require information (such as link delays or other qualitative attributes) to be collected by network nodes and distributed between
         routers by routing protocols.  Alternatively, this information could be collected (centrally) by a set of network controllers and used to
         derive the rules installed in the routers.</t>

      <t>Forwarding by a router is based on a look-up that also considers the Semantic Networking information carried in the packet (see
         <xref target="information"/>) and forwarding instructions programmed into the forwarding element.  Some Semantic Networking proposals may
         generate the semantic information (e.g., a hash) rather than using information that is directly extracted from the packet.  The actions
         to perform may be derived by the router based on the rules and information that the router has collected, or may be programmed directly
         from the network controller.</t>

      <section anchor="svcrouting" title="Packet and Service Routing">

         <t>Routing is the process of selecting a path for traffic in a network or between or across multiple networks.  For example, IP routing uses
            IP addresses for source and destination identification and is typically used for packet networks, such as the Internet.  IP routing assumes
            that network addresses are structured and facilitates routing entries in a routing table entry to represent a group of IP-capable devices.</t>

         <t>While service routing and information-centric networking (ICN) can operate directly on top of layer 2 protocols (for example, <xref target="RFC9139"/>),
            in the context of this document, we are concerned with the function of service routing and ICN in IP networks.  Like any new spanning-layer
            style protocol, deployment considerations for ICN on the Internet make tunneling through IP a required part of any co- existence or transition.
            The approach taken in this case, is to create an overlay layer on top of the IP network.  Control of the overlay necessitates augmentation of
            existing routing mechanisms, or entirely new discovery, propagation and resource management protocols and procedures.</t>

         <t>By contrast, explicit service-based IP routing <xref target="I-D.jiang-service-oriented-ip"/> abstracts the service actions that the network
            can provide into a number of classes called Service Action Types (SATs).  Each packet is marked with the relevant SAT, and the packets are
            routed to the next available SAT provider (not the destination IP address).  In this approach, a distinct encapsulation is needed and may
            carry native IP packets as payload, while transition experiments may utilize an overlay on top of IP.</t>

         <t>IP Routing and service routing are not the same thing.</t>

      </section>

    </section>

    <section anchor="information" title="Semantic Networking Information">

      <t>The subsections below describe some of the common techniques to enable Semantic Networking in more detail.  The sections are
         unordered and no meaning should be assigned to how one approach is presented before another.  They are not a complete list of
         possible approaches.</t>

      <t>The approaches described here have many advantages and disadvantages.  The purpose here is not to determine which approach is
         best or most appropriate, and so those advantages and disadvantages are not discussed.  The reader will inevitably have a preference
         and see drawbacks.</t>

      <section anchor="addressspace" title="Address Space Partitioning">

         <t>In some cases, an address prefix is assigned a special purpose and meaning.  When such an address appears in the packet&apos;s
            address field, a router can know from the prefix that particular routing/forwarding actions are required.  An example of this
            approach is seen in multicast addressing.  Another example is the handling of anycast in IPv6 where the nodes to which the
            address is assigned must be explicitly configured to know that it is an anycast address <xref target="RFC4291"/>.</t>

      </section>

      <section anchor="prefix" title="Prefix-based Contextual Address Usage">

         <t>The owner of a prefix to use the low-order bits of an address for their own purposes.</t>

         <t>The semantics of such an approach might be coordinated between prefix owners, or could be indicated through
            information that is part of the encoding, and is standardized.  An example of such approach is in IPv4/IPv6
            Translators <xref target="RFC6052"/>.</t>

      </section>

      <section anchor="sematicaddress" title="Semantic Addressing">

         <t>Semantic Addressing is a term applied to any approach that adds semantics to IP addresses.  This includes
            the mechanisms described in <xref target="addressspace"/> and <xref target="prefix"/>.  Other Semantic
            Addressing proposals suggest variable address lengths, hierarchical addresses, or a structure to addresses
            so that they can carry additional information in a common way.</t>

         <t>In any case, Semantic Addressing that intends to facilitate routing decisions is based solely on the address
            and without the need to find and process information carried in other fields within the packets.</t>

         <t>Note that not all Semantic Addressing schemes exist to facilitate routing (for example, content addressing
            where the interface ID of the address identifies a chunk of the content to be retrieved), but such schemes
            are naturally out of scope of this document.</t>

      </section>

      <section anchor="flowmark" title="Flow Marking">

         <t>Flow marking is a way of indicating, in a specific field in the packet header, the treatment that the packet should
            receive in the network.  In IPv4 the six-bit DSCP field is commonly used for this purpose.  In IPv6, while the Traffic
            Class field could be used, it is generally recommended that the Flow Label field should serve this and a more general
            purpose.</t>

      </section>

      <section anchor="dpi" title="Extended Lookup">

         <t>Routers may also examine fields in the packet other than those in the IP header.  For example, many router
            processes may look at the "five-tuple" consisting of:
            <list style="symbols">
               <t>source address</t>
               <t>destination address</t>
               <t>next protocol</t>
               <t>transport protocol source port</t>
               <t>transport protocol destination port</t>
            </list></t>

      </section>

      <section anchor="overload" title="Semantic Field Overloading">

         <t>"Overloading" is a term applied to placing additional semantics on the contents of a field beyond how it is specified.
            This is relatively hard to do in an IPv6 header because the number of fields is small, and all fields have specific
            meanings that are needed in all cases.  In IPv4 there may be more opportunity to use some fields in very controlled
            situations to carry additional semantics that can be used for Semantic Networking.</t>

      </section>

      <section anchor="extensionheaders" title="IPv6 Extension Headers">

         <t>IPv6 defines extension headers explicitly for carrying information that may be used by routers along the path.  This
            information can be used to instruct all routers, only the router indicated by the destination address, or by the
            ultimate destination of the packet.</t>

         <t>Extension headers may carry any information to enable Semantic Networking.</t>

      </section>

      <section anchor="newextensions" title="New Extensions">

         <t>Another approach is to define a new protocol extension to carry information on which Semantic Networking can be performed.
            Such an extension could be in the form of a new extension header (see <xref target="extensionheaders"/>) or as a new
            shim encapsulation (e.g., <xref target="RFC7665"/>).</t>

      </section>

    </section>

    <section anchor="architecture" title="Architectural Considerations">

      <t>Some Semantic Networking proposals are intended to be deployed in limited domains
         <xref target="RFC8799"/> (networks) that are IP-based, while other proposals are intended
         for use across the Internet.  The impact that the proposals have on routing systems may require
         clean-slate solutions, hybrid solutions, extensions to existing routing protocols, or
         potentially no changes at all.</t>

      <t>Semantic data may be applied in several ways to integrate with existing routing architectures.  The most obvious
         is to build an overlay such that IP is used only to route packets between network nodes that utilize the semantics at
         a higher layer.  An overlay may be achieved in a higher protocol layer, or may be performed using tunneling techniques
         (such as IP-in-IP <xref target="RFC1853"/>) to traverse the areas of the IP network that cannot parse additional semantics
         thereby joining together those nodes that use the semantic data.</t>

      <t>The application of semantics may also be constrained to within a limited domain.
         In some cases, such a domain will use IP, but be disconnected from Internet (see <xref target="isolated-domain"/>).
         In other cases, traffic from within the domain is exchanged with other domains that are connected together across
         an IP-based network using tunnels or via application gateways (see <xref target="bridged-domain"/>).  And in still
         another case traffic from the domain is routed across the Internet to other nodes and this requires backward-compatible
         routing approaches (see <xref target="prefix-domain"/>).</t>

      <section anchor="isolated-domain" title="Isolated Domains">

         <t>Some IP network domains are entirely isolated from the Internet and other IP-based networks.  In these cases,
            there is no risk to external networks from any Semantic Networking schemes carried out within the domain.</t>

         <t>Many approaches in isolated domains will utilize environment-specific routing protocols.  For example, those
            suited to constrained environments (for IoT) or mobile environments (for autonomous vehicles).  Such routing protocols
            can be optimized for the exchange of information specific to Semantic Networking.  However, gateways to provide external
            connectivity are usually deployed in such networks.  Appropriate means should be supported in these means to prevent
            leaking semantic information beyond the boundaries of these domains.</t>

      </section>

      <section anchor="bridged-domain" title="Bridged Domains">

         <t>In some deployments, it will be desirable to connect a number of isolated domains to build a
            larger network.  These domains may be connected (or bridged) over an IP network or even over the Internet.</t>

         <t>Ideally, the function of the bridged domains should not be impeded by how they are connected, and the operation
            of the IP network providing the connectivity should not be compromised by the act of carrying traffic between
            the domains.  This can generally be achieved by tunneling the packets between domains using any tunneling
            technique, and this will not require the IP network to know about the Semantic Networking used by the domains.</t>

         <t>An alternative to tunneling is achieved using gateway functionality where packets from a domain are mapped at
            the domain boundary to produce regular IP packets that are sent across the IP network to the boundary of the
            destination domain where they are mapped back into packets for use within that domain.</t>

      </section>

      <section anchor="prefix-domain" title="Semantic Prefix Domains">

        <t>A semantic prefix domain <xref target="I-D.jiang-semantic-prefix" /> is a portion of the Internet over which a
           consistent set of semantic-based policies are administered in a coordinated fashion.  This is achieved by
           assigning a routable address prefix (or a set of prefixes) for use with Semantic Addressing and routing so
           that packets may be routed through the regular IP network (or the Internet) using the prefix and without
           encountering or having to use any Semantic Addressing.  Once delivered to the semantic prefix domain, a
           packet can be subjected to whatever Semantic Networking is enabled in the domain.</t>

      </section>

    </section>

    <section anchor="routing" title="A Brief Discussion of What Constitutes Routing">

      <t>This section provides an overview of what is considered as "routing" in the scope of this document.  There are many
         functions in the Internet that contain the concept of routing, but not all of them apply to the scope of this document
         which is concerned with routing packets at the network layer.  A more thorough catalogue of approaches to routing and
         the applications of Semantic Networking can be found in <xref target="I-D.king-irtf-semantic-routing-survey"/>.</t>

      <section anchor="AppLayer" title="Application Layer Routing">

         <t>Routing in the application layer concerns the choice of application-level components that are distributed across the
            network.  The choice may be dependent on the services being delivered, knowledge about the locations in the network
            that can provide the services, knowledge of the network capabilities, and preferences expressed by an application or
            user.  In this sense, the routing choice consists of constructing an "application layer path" and may be performed
            at the head end or along the path.  Packets are carried between components across the underlying network, using normal
            transport and network layer protocols that may, themselves, involve routing.  Thus, application layer routing is
            concerned with selecting a series of components based on the potential to carry traffic between them, but without
            concern for how the packets are routed within the network.</t>

         <t>Application layer routing may be used in concepts such as Content Distribution Networking (CDN) and computation in the
            network (COIN) (see <xref target="coin"/>).</t>

         <t>The ALTO architecture and protocol <xref target="RFC7285"/> is intended to allow the network to answer queries about the
            availability and characteristics of paths between application-level components to enable choices to be made by providers
            of function or content about which components to select.  This is a server-based approach because it would be impractical
            to scale the network reporting all available paths to all destinations to every client, or for the network edge to be able
            to answer queries from their clients.</t>

      </section>

      <section anchor="PathSel" title="Higher-Layer Path Selection">

         <t>There is another high-level path selection scenario that is more concerned with selecting outbound paths from the source
            than in determining destinations or next application-layer hops (as described in <xref target="AppLayer"/>.  For example,
            consider a mobile phone that is connected to Wi-Fi and 5G.  Further, consider that the Wi-Fi network is dual-homed to two
            different ISPs.  This gives an application a choice of three different paths depending on the known (or advertised)
            capabilities of the networks.</t>

         <t>This type of scenario is being examined by the Path Aware Networking Research Group (PANRG) where, rather than consulting a
            server to supply the most appropriate path, the source host or application should learn about the potential paths and pick
            between them.</t>

      </section>

      <section anchor="Tport" title="Transport Layer Routing">

         <t>Some transport layer load balancing schemes and proxy-based connection or discovery mechanisms use a mechanism that looks
            somewhat like routing, but exists in the transport layer.  For example, section 2.1.1 of <xref target="RFC3135" /> describes
            how a transport layer Performance Enhancing Proxy (PEP) may use a concept called TCP spoofing to terminate a TCP connection
            and initiate a new connection to the next proxy on the transport layer path towards the destination.  The IP addresses of
            the packets are rewritten at the proxies so that the packets can be routed/forwarded to the next proxy, but no change to
            the underlying routing system is implied, and this is not Semantic Networking.</t>

      </section>

      <section anchor="Tunnel" title="Tunnel-Based Routing">

         <t>Tunnel-based routing schemes, like those in the transport layer (see <xref target="Tport"/>), are achieved through an overlay.
            a tunnel-based scheme relies on encapsulating packets so that they can be sent through the normal routing and forwarding network
            for delivery to an interim node.  That node decapsulates the packet and then either continues to forward the contents or encapsulates
            the contents in another tunnel.  Some approaches, such as onion routing in the Tor project (see <xref target="ONION" />) use a
            scheme of multiply-nested encapsulation, with each layer being peeled off at the end of a tunnel.</t>

         <t>The packets in a tunnel-based approach are routed and forwarded in the packet network as normal packets and so this approach is
            not Semantic Networking.</t>

      </section>

      <section anchor="IDR" title="Inter-Domain Routing">

        <t>A lot of effort has been devoted to consideration of end-to-end paths for IP traffic across multiple autonomous systems (ASes).  For
           example, the BGP Add-Paths feature <xref target="RFC7911" /> allows the advertisement of multiple paths so that a single, "best"
           path can be determined.  These approaches, however, are principally concerned with overall reachability, and then with selecting
           the path with the fewest transit autonomous systems.  They are less capable of selecting an overall least cost path or of
           considering other traffic engineering constraints in the selection of end-to-end paths.  Such path computation requires the
           features outlined in <xref target="TE" /> as assembled into an architectural solution in <xref target="RFC7926" />.</t>

        <t>Many approaches have been suggested <xref target="RFC6115" /> for improving inter-domain routing performance and scaling using
           address partitioning schemes including tunneling across domains (see also <xref target="Tunnel" />).  However, routing in this
           inter-domain scenario is about the selection of the next AS along the path, and possibly a choice of the right
           AS border router (ASBR) to facilitate that route.  This choice of ASBRs might be based on additional information carried in
           the packets so could qualify as Semantic Networking, but packets flowing between these ASBRs are routed and forwarded within the
           domains as normal packets without the use of Semantic Networking.</t>

      </section>

      <section anchor="SFC" title="Service Function Chaining">

        <t>Service Function Chaining (SFC) <xref target="RFC7665"/> is applied at the network layer to steer packet flows through
           network functions (such as security or load balancing).  A chain of services to be delivered (the service function chain)
           is realized as sequence of service instances (the service function path).  Packets are tunneled between the service
           instances using encapsulation so that the end-to-end payload packet is unchanged. A variety of network layer encapsulation
           have been considered including the Network Service Header (NSH) <xref target="RFC8300"/>, MPLS <xref target="RFC8595"/>,
           and Segment Routing <xref target="I-D.li-spring-sr-sfc-control-plane-framework"/>.</t>

        <t>The Segment Routing concept of Network Programming <xref target="RFC8986"/>, offers a similar approach to SFC, but may be more
           widely applicable.</t>

        <t>The tunneled packets can be freely routed in the network using conventional shortest path techniques or the mechanisms
           described in <xref target="TE"/> and <xref target="SemRtg"/>, thus this approach is not Semantic Networking.</t>

      </section>

      <section anchor="TE" title="Network Layer Traffic Engineering Techniques">

         <t>Techniques for achieving packet-level traffic engineering in the network layer are described in <xref target="I-D.ietf-teas-rfc3272bis" />.
            Traffic engineering (TE) is the process of selecting an end-to-end path that considers many attributes of metrics of the links in the network
            in order to satisfy a set of constraints or requirements imposed by the sender of the traffic.  For example, the sender may want to use only
            secure links, or may know the bandwidth requirements of the flow, or may need at least a specific end-to-end latency, or indeed any combination
            of this type of constraint.</t>

         <t>Routing for TE may be performed in advance of sending the traffic (for example, by computing a path at the sender or by using a tool such as the
            Path Computation Element (PCE) <xref target="RFC4655" />.  In this case, some form of encapsulation is needed to bind the traffic flow to the
            selected route: MPLS or Segment Routing may be used.</t>

         <t>Alternatively, the network may be tuned through appropriate use of routing protocol metrics, routing algorithms, and statically configured routes,
            so that packets will be forwarded along traffic engineered paths.</t>

      </section>

      <section anchor="SemRtg" title="Semantic Networking in the Network Layer">

         <t>Semantic Networking, as already explained, is about taking routing decisions based on "additional" information carried in packets in order to
            provide the behavior and network services most suited to the traffic.  This approach builds on the techniques described in <xref target="TE" />
            but frees up the network to make individual decisions for each packet based on changing network conditions as well as the information in the
            packets.</t>

         <t>A raft of potential solutions have been proposed for carrying the necessary information in the packets, and it is not the purpose of this
            document to examine them in detail or make suggestions about which is better.  The solutions vary from simply using existing fields in the
            IP header (such as the ToS field), or examining fields below the IP header (such as the transport ports), through "overloading" existing fields
            in the packet header (such as the destination address), all the way to adding new information in an additional encapsulation as proposed by
            the Application-aware Networking (APN) effort <xref target="I-D.li-apn-framework" />.</t>

      </section>

      <section anchor="coin" title="Computation In The Network and Semantic Networking">

         <t>The use of semantic enhancements as a key aspect to Semantic Networking (as described in this document) links the development of Semantic
            Networking solutions to data plane programmability.  Novel approaches to Semantic Networking may inform the evolution of more complex
            in-network operations, aiding specific Semantic Networking solutions.  Further, progress in routing protocols (e.g., on multi-optimality
            routing <xref target="SOBRINHO" />) may be seen as a key input into the more general problem within an emerging framework to distribute
            state needed for in-network computing operations, e.g., through utilizing insights from routing protocols to distribute routing state
            for more limited routing operations.</t>

         <t>As per its charter, the Computation In The Network (COIN) Research Group <xref target="COINRG" /> combines the idea of computing with the
            programmability of the data plane.  Hence, network operations, such as those previously used for routing and forwarding, may be key
            to the programmability aspects of "computing in the network" within the scope of COIN.  Ultimately, as stated in the COIN charter, "The
            goal is to investigate how to harness and to benefit from this emerging disruption to the Internet architecture to improve network and
            application performance as well as user experience."  From this, we can conclude that data plane programmability and its impact on
            existing and emerging areas of communication are key to COIN.</t>

         <t>The COIN charter further states, "COIN specifically will focus on the evolution necessary for networking to move beyond packet
            interception as the basis of network operation and into computation."  This envisions that data plane programmability is not limited
            to packet interception, but may evolve towards more complex operations on data flowing across the network.  The analysis of use cases
            and the identification of key areas of study can drive the understanding of what those additional operations may be and how to program
            them, particularly across several participating network elements and at the endpoints.  With this, we can conclude that the areas for
            applying COIN ideas will ultimately drive the evolution of COIN technologies by identifying emerging requirements and uses for data
            plane programmability, particularly those beyond simple packet processing, such as packet forwarding and local buffer management.</t>

         <t>Given the focus on steering traffic between micro-services instantiated at computational elements within networks and at endpoints,
            the COIN use cases identify aspects of what is now amed Semantic Networking.  Thus Semantic Networking is one possible applicability area
            for COIN.</t>

         <t>Conversely, the availability of emerging data plane programmability may enable new capabilities for Semantic Networking.  As a distributed
            problem, Semantic Networking could be enabled by emerging programming frameworks that may be developed within the work of COIN, possibly
            leading to new ways of orchestrating and deploying distributed routing programs.  Thus, the relationship between Semantic Networking and
            the COIN Research Group can be characterized as a symbiotic process of informing and enabling that may benefit both work areas.</t>

      </section>

    </section>

    <section anchor="security" title="Security Considerations">

      <t>Semantic Networking must give full consideration to the security and privacy issues that are introduced by these mechanisms.
         Placing additional information into packet header fields might reveal details of what the packet is for, what function the user is
         performing, who the user is, etc.  Furthermore, in-flight modification of the additional information might not directly change
         the destination of the packet, but might change how the packet is handled within the network and at the destination.</t>

      <t>It should also be considered how packet encryption techniques that are increasingly popular for end-to-end or edge-to-edge security may
         obscure the semantic information carried in some fields of the packet header or found deeper in the packet.  This may render some Semantic
         Networking techniques impractical and may dictate other methods of carrying the necessary information to enable Semantic Networking.</t>
    </section>

    <section anchor="iana" title="IANA Considerations">

      <t>This document makes no requests for IANA action.</t>

    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">

       <t>Thanks to Brian Carpenter, Dave Oran, and Luigi Iannone for helpful discussions and clarifications.</t>

    </section>

    <section title="Contributors">

      <figure>
        <artwork align="left">
          <![CDATA[
Mohamed Boucadair
Email: mohamed.boucadair@orange.com

Dirk Trossen
Email: dirk.trossen@huawei.com
          ]]>
        </artwork>
      </figure>

    </section>

  </middle>

  <back>

    <references title="Informative References">

      &RFC0814;
      &RFC1853;
      &RFC3135;
      &RFC4291;
      &RFC4655;
      &RFC6052;
      &RFC6115;
      &RFC6282;
      &RFC6992;
      &RFC7285;
      &RFC7597;
      &RFC7665;
      &RFC7761;
      &RFC7911;
      &RFC7926;
      &RFC8300;
      &RFC8595;
      &RFC8799;
      &RFC8986;
      &RFC9139;
      <!-- &I-D.ietf-quic-load-balancers; -->
      &I-D.ietf-teas-rfc3272bis;
      &I-D.jiang-semantic-prefix;
      &I-D.jiang-service-oriented-ip;
      &I-D.king-rtgwg-challenges-in-routing;
      &I-D.king-irtf-semantic-routing-survey;
      &I-D.li-apn-framework;
      &I-D.li-spring-sr-sfc-control-plane-framework;

      <reference anchor="BLIND-FORWARDINGref" target="https://www.computer.org/csdl/proceedings-article/itnac/2020/09315187/1qmfFPPggrC">
        <front>
          <title>On-Demand Blind Packet Forwarding</title>
          <author initials="I." surname="Simsek">
            <organization></organization>
          </author>
        <date year="2020"/>
        </front>
        <seriesInfo name="Paper" value="30th International Telecommunication Networks and Applications Conference (ITNAC), 2020" />
      </reference>

      <reference anchor="GEO-IPref" target="https://about.att.com/ecms/dam/sites/labs_research/content/publications/AI_Geotagging_IP_Packets_for_Location.pdf">
        <front>
          <title>Geotagging IP Packets for Location-Aware Software-Defined Networking in the Presence of Virtual Network Functions</title>
          <author initials="T." surname="Dasu">
            <organization></organization>
          </author>
          <author initials="Y." surname="Kanza">
            <organization></organization>
          </author>
          <author initials="D." surname="Srivastava">
            <organization></organization>
          </author>
          <date year="2017"/>
        </front>
        <seriesInfo name="Paper" value="25th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems (ACM SIGSPATIAL 2017)" />
      </reference>

      <reference anchor="MULTICAST-SRref" target="https://ieeexplore.ieee.org/document/6799682">
        <front>
          <title>A Scalable Multicast Source Routing Architecture for Data Center Networks</title>
          <author initials="W." surname="Jia">
            <organization></organization>
          </author>
          <author initials="W." surname="He">
            <organization></organization>
          </author>
          <date year="2014"/>
        </front>
        <seriesInfo name="Paper" value=" IEEE Journal on Selected Areas in Communications, vol. 32, no. 1, pp. 116-123, January 2014" />
      </reference>

      <reference anchor="CONTENT-RTG-MOBILEref" target="https://ieeexplore.ieee.org/document/6799682">
        <front>
          <title>Rich Semantic Content-oriented Routing for mobile Ad Hoc Networks</title>
          <author initials="H." surname="Liu">
            <organization></organization>
          </author>
          <author initials="W." surname="He">
            <organization></organization>
          </author>
          <date year="2014"/>
        </front>
        <seriesInfo name="Paper" value="The International Conference on Information Networking (ICOIN2014), 2014" />
      </reference>

      <reference anchor="OPENSRNref" target="https://www.researchgate.net/publication/308827498_OpenSRN_A_software-defined_semantic_routing_network_architecture">
        <front>
          <title>OpenSRN: A Software-defined Semantic Routing Network Architecture</title>
          <author initials="P." surname="Ren">
            <organization></organization>
          </author>
          <author initials="X." surname="Wang">
            <organization></organization>
          </author>
          <author initials="B." surname="Zhao">
            <organization></organization>
          </author>
          <author initials="C." surname="Wu">
            <organization></organization>
          </author>
          <author initials="H." surname="Sun">
            <organization></organization>
          </author>
          <date year="2015"/>
        </front>
        <seriesInfo name="Paper" value="IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS), Hong Kong, 2015" />
      </reference>

      <reference anchor="SEMANTICRTG" target="https://link.springer.com/chapter/10.1007/978-3-642-14171-3_14">
        <front>
          <title>Semantic Routing for Improved Network Management in the Future Internet</title>
          <author initials="J" surname="Strassner">
            <organization></organization>
          </author>
           <author initials="K" surname="Sung-Su">
            <organization></organization>
          </author>
          <author initials="J" surname="Won-Ki">
            <organization></organization>
          </author>
          <date year="2010"/>
        </front>
        <seriesInfo name="Book Chapter" value="Springer, Recent Trends in Wireless and Mobile Networks, 2010"/>
      </reference>

      <reference anchor="EIBPref" target="https://icnp20.cs.ucr.edu/Slides/NIPAA/D-3_invited.pptx">
        <front>
          <title>Can We Improve Internet Performance? An Expedited Internet Bypass Protocol</title>
          <author initials="N." surname="Shenoy">
            <organization>Rochester Institute of Technology</organization>
          </author>
          <date year="2020"/>
        </front>
        <seriesInfo name="Presentation" value="28th IEEE International Conference on Network Protocols"/>
      </reference>

      <reference anchor="TERASTREAMref" target="https://ieeexplore.ieee.org/document/6596297">
        <front>
          <title>Terastream implementation of all IP new architecture</title>
          <author initials="B." surname="Zaluski">
            <organization></organization>
          </author>
          <author initials="B." surname="Rajtar">
            <organization></organization>
          </author>
          <author initials="H." surname="Habjani">
            <organization></organization>
          </author>
          <author initials="M." surname="Baranek">
            <organization></organization>
          </author>
          <author initials="N." surname="Slibar">
            <organization></organization>
          </author>
          <author initials="R." surname="Petracic">
            <organization></organization>
          </author>
           <author initials="T." surname="Sukser">
            <organization></organization>
          </author>
        <date year="2013"/>
        </front>
        <seriesInfo name="Paper" value="36th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), 2013" />
      </reference>

      <reference anchor="IEN23" target="https://www.rfc-editor.org/ien/ien23.pdf">
        <front>
          <title>IEN 23: On Names, Addresses and Routings</title>
          <author initials="D." surname="Cohen">
            <organization></organization>
          </author>
        <date year="1978"/>
        </front>
        <seriesInfo name="Internet Experiment Note" value="IEN 23, Notebook Section 2.3.3.7" />
      </reference>

      <reference anchor="SOBRINHO" target="https://dl.acm.org/doi/abs/10.1145/3387514.3405864">
        <front>
          <title>Routing on Multiple Optimality Criteria</title>
          <author initials="J." surname="Sobrinho">
            <organization>Universidade de Lisboa</organization>
          </author>
          <author initials="M." surname="Ferreira">
            <organization>Universidade de Lisboa</organization>
          </author>
        <date year="2020"/>
        </front>
        <seriesInfo name="Paper" value="SIGCOMM 2020" />
      </reference>

    </references>

    <references title="URL References">
      <reference anchor="ONION" target="https://torproject.org/">
        <front>
          <title>The Onion Routing Project : Anonymity Online</title>
          <author>
            <organization>The Tor Project, Inc.</organization>
          </author>
          <date year="2022"/>
        </front>
      </reference>

      <reference anchor="COINRG" target="https://irtf.org/coinrg">
        <front>
          <title>Computation in the Network Research Group (COINRG)</title>
          <author>
            <organization>Internet Engineering Research Group</organization>
          </author>
          <date year="2022"/>
        </front>
      </reference>
    </references>

  </back>
</rfc>
