<?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="std" docName="draft-li-cdn-node-selection-enhancement-00" ipr="trust200902">
  <front>
    <title abbrev="CDN Node Selection with QUIC">CDN Node Selection Enhancement using Anycast and QUIC</title>

    <author fullname="Zhiqiang Li" initials="Z." surname="Li">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100053</code>

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

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

    <author fullname="Zongpeng Du" initials="Z." surname="Du">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100053</code>

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

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

    <author fullname="Wei Cheng" initials="W." surname="Cheng">
      <organization>Centec</organization>

      <address>
        <postal>
          <street/>

          <city>Suzhou</city>

          <code>215000</code>

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

        <email>chengw@centec.com</email>
      </address>
    </author>

    <author fullname="Junjie Wang" initials="J." surname="Wang">
      <organization>Centec</organization>

      <address>
        <postal>
          <street/>

          <city>Suzhou</city>

          <code>21500</code>

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

        <email>wangjj@centec.com</email>
      </address>
    </author>

    <!---->

    <date day="06" month="November" year="2025"/>

    <area>Networking</area>

    <workgroup>QUIC Working Group</workgroup>

    <keyword>Quic;CDN;AnyCast</keyword>

    <abstract>
      <t>Content Delivery Networks (CDNs) are critical infrastructure for 
      improving user experience by serving content from geographically 
      proximate servers. Traditional CDN node selection mechanisms, such as 
      DNS-based redirection and BGP-based anycast, primarily rely on network 
      proximity and often lack awareness of server load or specific application 
      requirements. This can lead to suboptimal performance and inefficient 
      resource utilization.</t>

      <t>This document proposes an enhanced mechanism for dynamic CDN node 
      selection that leverages IPv4/v6 anycast, BGP, and the QUIC transport 
      protocol. The proposed solution enables CDN nodes to advertise or 
      withdraw their anycast routes based on real-time load and link quality. 
      Furthermore, it defines a mechanism for clients to signal their service 
      requirements (e.g., high-compute, low-latency, or high-bandwidth) and 
      for servers to redirect clients to more optimal nodes using QUIC's 
      connection migration capabilities. This allows for a more intelligent, 
      load-aware, and application-aware CDN node selection process.</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 .</t>
    </note>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>With the proliferation of latency-sensitive and resource-intensive 
      applications, the performance of application servers has become a decisive 
      factor in user engagement and loyalty. CDNs enhance user experience by 
      caching content closer to end-users, thereby reducing latency. 
      The efficiency of a CDN system heavily relies on its ability to select 
      an optimal server node for each client request.</t>

      <t>Current prevalent node selection mechanisms include:</t>
      <ol>
        <li>DNS-based redirection: Resolves a hostname to the IP address of 
        a topologically "close" server, typically based on the client's DNS 
        resolver location.</li>
        <li>Anycast routing: A single IP address is assigned to multiple 
        servers. Network routing protocols direct the client's packets to 
        the server that is "closest" in terms of network topology.</li>
      </ol>
      <t>These methods, while effective at reducing network latency, 
      generally fail to account for the real-time load on CDN servers 
      or the specific needs of different applications
       (e.g., compute-intensive vs. bandwidth-intensive).</t>

      <t>This document specifies a solution that integrates BGP-controlled 
      anycast with advanced features of the QUIC protocol. It enables 
      load-aware route advertisement and provides a standardized way for 
      clients to be redirected to more suitable CDN nodes without terminating 
      their session, leveraging QUIC's connection migration feature.</t>
    </section>

    <section title="Problem Statement">
      <t>DNS-based and anycast-based CDN selection schemes primarily optimize 
      for network distance. </t>
      <t>This document aims to address these issues by creating a more dynamic, 
      load-aware, and application-aware selection mechanism that minimizes 
      service disruption.</t>

      <t>Existing CDN node selection solutions have the following limitations:</t>
      <list style="numbers">
        <t>
          <strong>DNS-based Redirection and Basic Anycast</strong>: 
          <list style="disc">
            <t>Select nodes based on network distance (not server load), leading to load imbalance;</t>
            <t>Cannot differentiate service types (e.g., low-latency vs. high-bandwidth), resulting in suboptimal service quality;</t>
            <t>Poor real-time performance and scalability;</t>
            <t>Route reconfiguration often causes connection interruptions.</t>
          </list>
        </t>
        <t>
          <strong>Service-specific Optimization</strong>:
          <list style="disc">
            <t>Typically non-standard (e.g., video-only protocols), leading to poor compatibility and universality across different services.</t>
          </list>
        </t>
      </list>
    </section>

    <section title="Solution">
      <t>This document proposes a distributed dynamic CDN node selection method based on IPv4/v6 Anycast and QUIC. The method considers server load (CPU utilization, remaining computing power), service requirements (high bandwidth, low latency, high computing power), and supports seamless scaling. Key network elements include:</t>
      <list style="disc">
        <t><strong>CDN Client</strong>: Initiates service requests via IPv4/v6 Anycast and QUIC, processes responses, and supports QUIC connection migration.</t>
        <t><strong>CDN Server</strong>: Configured with IPv4/v6 Anycast addresses; advertises/withdraws Anycast routes via BGP based on load; receives and responds to QUIC requests; caches resources from origin servers.</t>
      </list>
      <t>The solution supports two working modes: BE (Best Effort) and TE (Traffic Engineering).</t>
    </section>

    <section anchor="best-effort-be-mode" title="Best Effort (BE) Mode">
        <t>In BE mode, the system provides basic load-aware routing and resilience.</t>
        <ol>
            <li>Each CDN Node is configured with an IPv4/v6 anycast address.</li>
            <li>The CDN Node dynamically manages the BGP advertisement of its anycast address based on its status. For example:
            <ul>
                <li>If the CPU load is below a threshold (e.g., 80%) and the link to its gateway router is not congested (e.g., RTT &lt;= 1.5 * baseline RTT), the node advertises a route for the anycast address via BGP.</li>
                <li>If the CPU load exceeds the threshold or the link becomes congested, the node withdraws the BGP route.</li>
            </ul>
            </li>
            <li>A client sends its initial QUIC packets to the anycast address. BGP directs these packets to the topologically nearest CDN Node that is currently advertising the route.</li>
            <li>If the serving CDN Node becomes unavailable (e.g., because it withdraws its BGP route due to overload), the client's subsequent packets will be routed to the next-nearest available node. The client detects this path change and uses QUIC's connection migration feature RFC9000 to seamlessly continue the session with the new node without re-establishing the connection.</li>
        </ol>
    </section>

    <section anchor="traffic-engineering-te-mode" title="Traffic Engineering (TE) Mode">
        <t>TE mode extends BE mode by allowing for more granular, application-aware node selection.</t>
            <t>In TE mode, CDN Nodes are assumed to have knowledge of their ranking relative to other nodes within a specific domain (e.g., all nodes serving a particular region). This ranking is based on three key metrics:</t>
            <ul>
            <li><bcp14>Compute Power (Kn):</bcp14> A rank indicating the node's available computing capacity (e.g., based on FLOPS). A lower Kn value might indicate higher available compute.</li>
            <li><bcp14>Latency (Dn):</bcp14> A rank based on the baseline network latency from the node to its gateway, indicating its proximity to the network edge. A lower Dn value indicates lower latency.</li>
            <li><bcp14>Bandwidth (Bn):</bcp14> A rank representing the node's available network bandwidth. A lower Bn value might indicate higher available bandwidth.</li>
            </ul>
            <t>The specific mechanism by which nodes discover each other and determine these ranks (e.g., via a centralized controller or a distributed discovery protocol) is outside the scope of this document.</t>
    </section>

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

</rfc>
