<?xml version="1.0" encoding="US-ASCII"?>
<!-- This is built from a template for a generic Internet Draft. Suggestions for
     improvement welcome - write to Brian Carpenter, brian.e.carpenter @ gmail.com 
     This can be converted using the Web service at http://xml.resource.org/ -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<!-- You want a table of contents -->
<!-- Use symbolic labels for references -->
<!-- This sorts the references -->
<!-- Change to "yes" if someone has disclosed IPR for the draft -->
<!-- This defines the specific filename and version number of your draft (and inserts the appropriate IETF boilerplate -->
<?rfc sortrefs="yes"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc topblock="yes"?>
<?rfc comments="no"?>
<rfc category="info" docName="draft-liu-alto-can-usecase-01" ipr="trust200902">
  <front>
    <title
    abbrev="Computing-aware Networking Use case of ALTO">Computing-aware
    Networking Use case of ALTO</title>

    <author fullname="Peng Liu" initials="P." surname="Liu">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>liupengyjy@chinamobile.com</email>
      </address>
    </author>

    <author fullname="Yuexia Fu" initials="Y." surname="Fu">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>fuyuexia@chinamobile.com</email>
      </address>
    </author>

    <!---->

    <date day="20" month="January" year="2022"/>

    <area>Transport</area>

    <workgroup>Application-Layer Traffic Optimization</workgroup>

    <keyword>Computing aware networking</keyword>

    <abstract>
      <t>The ever-emerging new services are imposing more and more highly
      demanding requirements on the network. In order to meet these
      requirements, some new technology trends of network emerge as the times
      require. On the one hand, for the selection of service node and
      forwarding path, in addition to considering the network topology and
      link state, more factors are also considered, such as the computing
      properties of service node; On the other hand, network and application
      present the trend of mutual perception, including application to
      perceive the state of network path, or network to perceive the demand of
      application.</t>

      <t>This draft describes a new network scenario and architecture
      considering computational properties, and assumes that Alto could be
      used as an important node to realize the deployment of services, and to
      assist in the selection of service nodes.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>For new services with heavy computing tasks, such as AR/VR, video
      recognition and so on, the computing time and network transmission delay
      are almost the same order of magnitude. In this kind of scenario,
      computing attributes become more important than traditional
      services.</t>

      <t>The generation of edge computing is to solve such problems. Edge
      computing is to deploy service nodes close to the user side, which
      shortens the distance of network transmission. Moreover, it can deploy
      specific computing resources, such as CPU/GPU, to meet the needs of
      different services.</t>

      <t>It is predicted by Gartner that by 2025, more than 50% of the
      computing data needs to be analyzed, processed, and stored at the edge.
      Since the service providers begins to offer the edge computing
      infrastructure to provide better response time and transfer rate. There
      are also some challenges of edge computing itself, which are pointed out
      in the work of dyncast [draft-liu-dyncast-ps-usecases-01],
      [draft-li-dyncast-architecture-00] :</t>

      <t>* Geographically Scattered Large Number of Edge Sites. The edge sites
      are highly distributed and may not have proximate distances to user.</t>

      <t>* Resource Limitation. There are fewer servers of server per
      node.</t>

      <t>* Heterogeneous Hardware, such as CPU, GPU, Memory, ASICs.</t>

      <t>* Dynamic Load. The available resources may change quickly.</t>

      <t>* Edge-cloud Coordination. Edge does not solve all requests.</t>

      <t>* High Cost. On-site maintenance is expensive.</t>

      <t>* Mission Critical. Users are counting on you for 100% reliability of
      industry automation.</t>

      <t>So how to collaboratively deploy and computing services based on the
      computing resources in network to meet the diverse computing
      requirements, and achieve the on-demand allocation and dispatch of
      service request needs be studied.</t>

      <t>Some existing works have begun to consider the computing attributes.
      For example, coinrg initiated the consideration of computing and storage
      resources. Dyncast <xref target="I-D.liu-dyncast-ps-usecases"/><xref
      target="I-D.li-dyncast-architecture"/> proposed how to introduce the
      scheme of computing metric at the routing level. Semantic routing[],
      which also extends the semantics of routing in a broad sense. However,
      today's routing system and technology has been relatively good, the
      introduction of more metric in routing still need more theoretical and
      experimental verification. In the work of ITU, it is more from the
      perspective of architecture, such as ITU Y.CAN-reqts [Y.CAN-reqts:
      &ldquo;functional requirements of Computing-aware Networking&rdquo;]
      proposed a new network architecture-computing-aware networking (CAN),
      CAN schedules service request to the optimal computing site along
      optimal path to meet service requirements both on network and computing.
      ITU.Y.CPN-arch [Y.CPN-arch: &ldquo;Framework and architecture of
      Computing power Network&rdquo;]provides the framework and architecture
      of Computing power Network, specifies its functional entities and
      defines the functionalities of these functional entities. So the
      convergence of network and computing brought by edge computing includes
      the issue of service deployment and service request scheduling. ALTO has
      done the work of collect the network information for application, it may
      help to do some work in the two important issues:</t>

      <t>How to deploy service nodes based on computing resources. For this
      point, [draft-contras-alto-service-edge-02] gives the corresponding idea
      of using Alto to deploy edge computing nodes. Alto can better interact
      with the upper application, fully understand the requirements of the
      application, including computing requirements and collect the
      information of infrastructure resources.</t>

      <t>How to select the most suitable node for service request. Alto can
      also help this kind of work to a certain extent. Centralized selection
      of service nodes and paths is relatively easy to implement, such as SDN.
      However, emerging service requests require high real-time performance,
      and there may be some efficiency and complexity problems, which have
      been analyzed in the work of dyncast.</t>
    </section>

    <section title="Usage Scenarios of CAN">
      <t>Any multi-point deployment service that requires high computing power
      or low latency will involve the joint scheduling of network and
      computing resources.</t>

      <section title="AR/VR">
        <t>Take the AR/VR as an example. The upper bound latency for
        motion-to-photon (MTP) is less than 20 milliseconds to avoid the
        motion sickness. It consists of four parts, and the frame rendering
        computing delay is 5.5 milliseconds, so the network delay demand can
        be calculated as 5.1milliseconds.</t>

        <figure align="center" title="Delay of MTP">
          <artwork type="ascii-art">+-----------------------+---------------------+
|   Total MTP delay     |        50ms         |
+-----------------------+---------------------+
| sensor sampling delay |       &lt;1.5ms        |
+-----------------------+---------------------+
| display refresh delay |        5 ms         |
+-----------------------+---------------------+
| frame rendering delay |        5.5ms        |
| computing with GPU    |                     |
+-----------------------+---------------------+
|   network delay       | 20-1.5-5.5-7.9=5.1ms|
+-----------------------+---------------------+
 </artwork>
        </figure>

        <t>So the budgets for computing delay and network delay are almost
        equivalent. Considering another factor that the computing resources
        have a big difference in different edges,it is necessary to apply
        dynamically steer traffic to the &lsquo;best&rsquo; edge.</t>
      </section>

      <section title="Internet of Vehicles">
        <t>Under the scenario of Internet of Vehicles, the services are
        divided into auxiliary driving and on-board entertainment services .
        For the auxiliary driving function, for road traffic conditions
        outside the line of sight due to obstructions, blind areas, etc., the
        edge computing node obtains comprehensive road traffic information
        around the location of the vehicle, performs unified data processing,
        and sends out warning signals for vehicles with potential safety
        hazards, to assist the safe driving of vehicles.</t>

        <t>Apparently, there are obviously differences between services
        requirements of auxiliary driving services and entertainment services,
        which needs to be processed by different edge nodes</t>
      </section>
    </section>

    <section title="CAN Framework and ALTO">
      <t>In order to realize ubiquitous computing and service awareness,
      interconnection and collaborative scheduling, the computing-aware
      networking architecture can be divided into computing service layer,
      computing resource layer, computing routing layer, network resource
      layer, and computing and network management layer. Among them, the
      computing routing layer contains the control plane and data plane which
      is shown in Figure 2. Based on the ubiquitous computing resources of the
      network, the computing resource layer abstracts and models based on a
      unified measurement and modeling template, and announces computing
      information to the computing routing layer. And then the computing
      routing layer comprehensively considers user needs and network resource
      status and computing resource status, to schedule service requests to
      appropriate computing nodes. In addition, the computing management layer
      completes the control and management of computing resources.</t>

      <figure align="center" title="CAN Framework and ALTO">
        <artwork type="ascii-art">
                Computing-aware Networking Framework
+---------------------------------------+   +------------------------+
|       Computing Service Layer         |&lt;-&gt;| Computing and Network  |      
+---------------------------------------+   |    Management Layer    |
|      Computing Resource Layer         |&lt;-&gt;|+----------------------+|        +---------+
+---------------------------------------+   || Service Orchestration|&lt;--------|         |
|     Computing-aware Routing Layer     |   |+----------------------+|        |         |
|  +---------------+ +---------------+  |&lt;-&gt;||     Computing OAM    |&lt;--------|         |
|  | Control Plane | |   Data Plane  |  |   |+----------------------+|        |   ALTO  |
|  +---------------+ +---------------+  |&lt;-&gt;||   Routing Management |&lt;--------|         |
+---------------------------------------+   |+----------------------+|        |         |
|        Network Resource Layer         |&lt;-&gt;||  Resource Management |&lt;--------|         |
+---------------------------------------+   |+----------------------+|        +---------+
 </artwork>
      </figure>

      <t>* Computing service layer: computing service layer is computing
      service provider, which deploys, operates and manages many kinds of
      computing services and applications. In addition, it can realize the
      functions of service decomposition and service scheduling through the
      API gateway.</t>

      <t>* Computing resource layer: it is based on the existing computing
      infrastructure, and includes a combination of computing resources from
      single-core CPU to multi-core CPU, CPU+GPU+FPGA, etc. And it could
      supply computing modeling function, computing API function, computing
      resource identification and other functions to meet the diverse
      computing needs of different applications based on physical computing
      resources.</t>

      <t>* Computing-aware routing layer: It contains control plane and data
      plane, performs computing-aware routing and generates service scheduling
      policy in network layer. Based on the discovery of abstracted computing
      and network resources, computing routing layer generates new routing
      tables which include the information of computing in network, considers
      the state of network and computing comprehensively, and thus generates
      routing policy for different service requests. Network resource layer:
      It utilizes the existing network infrastructure, which includes access
      network, metropolitan area network and backbone network, to provide
      ubiquitous network connection.</t>

      <t>* Computing and network management layer: It adds management
      functions towards computing resources and computing services based on
      the traditional network management function. Therefore, the computing
      and network management layer performs service orchestration, resource
      management, routing measurement and computing OAM. In addition, the
      computing and network management layer could be used to perform the
      pre-configuration function and management function, which interacts with
      each functional layer.</t>

      <t>* Network resource layer: using the existing network infrastructure
      to provide network connection, network infrastructure includes access
      network, metropolitan area network and backbone network.</t>

      <t>Based on the five functional modules defined above, computing-aware
      networking can realize the awareness, control and scheduling of
      computing and network resources, and further perform dynamic and
      on-demand service scheduling. The function of computing and network
      management layer may be realized by Alto or by opening interface with
      Alto. Considering a single ALTO Client as part of the Computing and
      Network Management Layer aggregating all the requests towards the ALTO
      Server, this also could decouple the solution from a specific CAN
      architecture.</t>
    </section>

    <section title="Deployment of CAN with ALTO">
      <t>With the development of edge computing, there is multiple services
      duplication deployed in different edge nodes. To improve the
      effectiveness of service deployment, the problem of how to choose
      optimal edge node to deploy services needs to be solved. More stable
      static information should be considered in service deployment, <xref
      target="I-D.contreras-alto-service-edge"/>introduces the consideration
      of depoly applications or functions to the edge, such as the type of
      instance, interface option associated bandwidth of the network
      interface, compute flavor of CPU/GPU, etc, optional storage extension,
      optional hardware acceleration characteristics.</t>

      <t>Besides those, more network and service factors may to be considered
      to meet the CAN Framework, such as</t>

      <t>* Network and computing resource topology: the overall consideration
      of network access, connectivity, path protection or redundancy. and the
      location and overall distribution of computing resources in network, and
      the relative position towards network topology.</t>

      <t>* Location: the number of users brought, the differentiation of
      service types and number of connections requested by users, etc. For
      edge nodes located in popular area, which with large amount of users and
      service requests, the service duplication can be deployed more than
      other areas.</t>

      <t>* Capacity of multiple edge nodes: not only a single node, but also
      the total number of requests that can be processed by the resource pool
      composed of multiple nodes</t>

      <t>* Service category: For example, whether the business is multi-user
      interaction, such as video conferencing, games, or just resource
      acquisition, such as short video viewing Alto can help to obtain one or
      more of the above information, so as to provide suggestions or formulate
      principles and strategies for service deployment.</t>

      <t>For the collection of those information, seconds level or minutes
      level frequency is enough, while serious real-time processing isn't
      necessary. For example, periodically collecting the total consumption of
      computing resources, or the total number of sessions accessed, to notify
      where to depoly more VMS or containers. Unlike the scheduling of
      request, service deployment should still follow the principle of
      proximity. The more local access, the more resources should be deployed.
      If the resources are insufficient, the operator can be informed to
      increase the hardware resources. Alto can be used to collect and reprot
      thoes information.</t>

      <t/>
    </section>

    <section title="Scheduling of CAN with ALTO">
      <t>Compared to the deployment, scheduling needs to consider more dynamic
      information to select and adjust the optimal (rather than the shortest)
      path in real time, such as:</t>

      <t>* Mobility: CAN schedules service request to the optimal service node
      among several service nodes near to users. So when user mobiles, the
      nearby service nodes changes and new scheduling are needed to chooses
      new path and new service node.</t>

      <t>* Real time delay of network: network delay is always in the process
      of dynamic change, and more and more services propose strict time
      requirements, which is one of the most important factors affecting user
      experience.</t>

      <t>* Real time status of computing resources: computing resources change
      frequently and the status of computing resources heavily affect the
      completion time of service, which is also one of the most important
      factors affecting user experience.</t>

      <t>* Comprehensive status of network status and computing status: the
      update frequency of computing status and network status is different, it
      is necessary to generate a comprehensive value to reflect the status of
      them. Collecting the information from multi-protocols will bring the
      issue of synchronization, which is not easy and cause some additional
      expenses. (If the network is deterministic network that support
      synchronization such as detnet, it will be better.) One protocol may be
      the right way.</t>

      <t>* Various service requirements: different services propose different
      service requirements on computing and network, including bandwidth,
      latency, computing resources etc, and the latency includes both
      transmission latency in network and processing latency in service node,
      for transmission-intensive services, the transmission latency accounts a
      lot , so the network latency of services are more important.</t>

      <t>* Availability of network or computing resources: such as temporary
      unavailability caused by network equipment or service node failure.</t>

      <t>Alto can still help collect network and service node information,</t>

      <t>* Providing the best choice of network and service nodes. Based on
      the collected network information, computing information, and service
      requirements on network and computing, Of course, there are still some
      real-time and complexity problems.</t>

      <t>* Providing data analysis and policy distribution, real-time node
      selection still depends on distributed routing, such as dyncast.</t>

      <t><xref target="I-D.contreras-alto-service-edge"/>introduces how to use
      BGP to realize it. BGP is an option where <xref target="RFC7971"/>shows
      BGP prefixes, AS numbers, AS distances, or other BGP metrics could be
      collected. However, The ALTO service may not know the instantaneous
      congestion status of the network, all link bandwidths, all information
      about the actual routing and whether the candidate endpoint itself is
      overloaded. So it may not be satisfied for the application with very
      real time requirements. &ldquo;real-time&rdquo; could be relative and
      may affect the result of scheduling. If it is good, the scheduling can
      be more accurate and better meet the application requirements; If the
      real-time performance is not good, the network or node state may change
      when the flows arrive, resulting in the demand can not be met. So how to
      improve the performance of BGP&nbsp;or announce the corresponding
      information through other ways need to be research.</t>
    </section>

    <section title="Summary">
      <t>The converge of network and computing, as well as the interaction
      with applications has become one of the current technical development
      directions. This draft analyzes the development status of the current
      computing aware network and the functional modules in its architecture
      that can interact with Alto. As a protocol to connect networks and
      applications, Alto may play a more important role.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Thanks to Yizhou Li, Qin Wu, Tianji Jiang for helpful suggestion.
      Thanks go to Dirk Trossen, Luigi Iannone, and Carsten Bormann for their
      inspiring Dyncast work.</t>
    </section>
  </middle>

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

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

      <?rfc include="reference.I-D.liu-dyncast-ps-usecases"?>

      <?rfc include="reference.I-D.li-dyncast-architecture"?>

      <?rfc include="reference.I-D.contreras-alto-service-edge"?>
    </references>
  </back>
</rfc>
