| rfc9241.original.xml | rfc9241.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | <!DOCTYPE rfc [ | |||
| <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.6 --> | <!ENTITY nbsp " "> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | <!ENTITY zwsp "​"> | |||
| <?rfc toc="yes"?> | <!ENTITY nbhy "‑"> | |||
| <?rfc tocompact="yes"?> | <!ENTITY wj "⁠"> | |||
| <?rfc tocdepth="3"?> | ]> | |||
| <?rfc iprnotified="no"?> | ||||
| <?rfc sortrefs="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
| <?rfc symrefs="yes"?> | -ietf-alto-cdni-request-routing-alto-22" number="9241" obsoletes="" updates="" s | |||
| <?rfc compact="yes"?> | ubmissionType="IETF" category="std" consensus="true" xml:lang="en" tocInclude="t | |||
| <?rfc subcompact="no"?> | rue" tocDepth="3" sortRefs="true" symRefs="true" version="3"> | |||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | ||||
| -ietf-alto-cdni-request-routing-alto-22" category="std" obsoletes="" updates="" | ||||
| submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" sortRefs="tru | ||||
| e" symRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 3.6.0 --> | ||||
| <front> | <front> | |||
| <title abbrev="CDNI FCI using ALTO">Content Delivery Network Interconnection | ||||
| (CDNI) Request Routing: CDNI Footprint and Capabilities Advertisement using ALT | <title abbrev="CDNI FCI Using ALTO"> Content Delivery Network Interconnectio | |||
| O</title> | n (CDNI) Footprint and Capabilities Advertisement Using | |||
| <seriesInfo name="Internet-Draft" value="draft-ietf-alto-cdni-request-routin | Application-Layer Traffic Optimization (ALTO)</title> | |||
| g-alto-22"/> | <seriesInfo name="RFC" value="9241"/> | |||
| <author initials="J." surname="Seedorf" fullname="Jan Seedorf"> | <author initials="J." surname="Seedorf" fullname="Jan Seedorf"> | |||
| <organization>HFT Stuttgart - Univ. of Applied Sciences</organization> | <organization abbrev="HFT Stuttgart">HFT Stuttgart - Univ. of Applied Scie nces</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Schellingstrasse 24</street> | <street>Schellingstrasse 24</street> | |||
| <city>Stuttgart</city> | <city>Stuttgart</city> | |||
| <code>70174</code> | <code>70174</code> | |||
| <country>Germany</country> | <country>Germany</country> | |||
| </postal> | </postal> | |||
| <phone>+49-0711-8926-2801</phone> | <phone>+49-0711-8926-2801</phone> | |||
| <email>jan.seedorf@hft-stuttgart.de</email> | <email>jan.seedorf@hft-stuttgart.de</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="Y." surname="Yang" fullname="Y. Richard Yang"> | <author initials="Y." surname="Yang" fullname="Y. Richard Yang"> | |||
| <organization>Yale University</organization> | <organization>Yale University</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>51 Prospect Street</street> | <street>51 Prospect Street</street> | |||
| <city>New Haven</city> | <city>New Haven</city> | |||
| <code>CT 06511</code> | <region>CT</region> | |||
| <code>06511</code> | ||||
| <country>USA</country> | <country>USA</country> | |||
| </postal> | </postal> | |||
| <phone>+1-203-432-6400</phone> | <phone>+1-203-432-6400</phone> | |||
| <email>yry@cs.yale.edu</email> | <email>yry@cs.yale.edu</email> | |||
| <uri>http://www.cs.yale.edu/~yry/</uri> | <uri>http://www.cs.yale.edu/~yry/</uri> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="K." surname="Ma" fullname="Kevin J. Ma"> | <author initials="K." surname="Ma" fullname="Kevin J. Ma"> | |||
| <organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>43 Nagog Park</street> | <street>43 Nagog Park</street> | |||
| <city>Acton</city> | <city>Acton</city> | |||
| <code>MA 01720</code> | <region>MA</region> | |||
| <code>01720</code> | ||||
| <country>USA</country> | <country>USA</country> | |||
| </postal> | </postal> | |||
| <phone>+1-978-844-5100</phone> | <phone>+1-978-844-5100</phone> | |||
| <email>kevin.j.ma.ietf@gmail.com</email> | <email>kevin.j.ma.ietf@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="J." surname="Peterson" fullname="Jon Peterson"> | <author initials="J." surname="Peterson" fullname="Jon Peterson"> | |||
| <organization>NeuStar</organization> | <organization>NeuStar</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>1800 Sutter St Suite 570</street> | <street>1800 Sutter St., Suite 570</street> | |||
| <city>Concord</city> | <city>Concord</city> | |||
| <code>CA 94520</code> | <region>CA</region> | |||
| <code>94520</code> | ||||
| <country>USA</country> | <country>USA</country> | |||
| </postal> | </postal> | |||
| <email>jon.peterson@neustar.biz</email> | <email>jon.peterson@neustar.biz</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="J." surname="Zhang" fullname="Jingxuan Jensen Zhang"> | <author initials="J." surname="Zhang" fullname="Jingxuan Jensen Zhang"> | |||
| <organization>Tongji University</organization> | <organization>Tongji University</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>4800 Cao'an Hwy</street> | <street>4800 Cao'an Hwy</street> | |||
| <city>Shanghai</city> | <city>Shanghai</city> | |||
| <code>201804</code> | <code>201804</code> | |||
| <country>China</country> | <country>China</country> | |||
| </postal> | </postal> | |||
| <email>jingxuan.zhang@tongji.edu.cn</email> | <email>jingxuan.zhang@tongji.edu.cn</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2022" month="February" day="17"/> | <date year="2022" month="July"/> | |||
| <area>Networks</area> | <area>tsv</area> | |||
| <workgroup>ALTO & CDNI WGs</workgroup> | <workgroup>ALTO</workgroup> | |||
| <keyword>ALTO</keyword> | <keyword>ALTO</keyword> | |||
| <abstract> | <abstract> | |||
| <!-- Skip header line --> | ||||
| <t>The Content Delivery Networks Interconnection (CDNI) framework in RFC 6707 | <t>The Content Delivery Networks Interconnection (CDNI) framework in RFC 6707 | |||
| defines a set of protocols to interconnect CDNs to achieve multiple goals, | defines a set of protocols to interconnect CDNs to achieve multiple goals, | |||
| including extending the reach of a given CDN. A CDNI Request Routing Footprint | including extending the reach of a given CDN. A CDNI Request Routing Footprint | |||
| & Capabilities Advertisement interface (FCI) is needed to achieve the goals | & Capabilities Advertisement interface (FCI) is needed to achieve the goals | |||
| of a CDNI. RFC 8008 defines the FCI semantics and provides | of a CDNI. RFC 8008 defines the FCI semantics and provides | |||
| guidelines on the FCI protocol, but the exact protocol is not specified. This | guidelines on the FCI protocol, but the exact protocol is not specified. This | |||
| document defines a new Application-Layer Traffic Optimization (ALTO) service, | document defines a new Application-Layer Traffic Optimization (ALTO) service, | |||
| called "CDNI Advertisement Service", that provides an implementation of the FCI, | called "CDNI Advertisement Service", that provides an implementation of the FCI, | |||
| following the guidelines defined in RFC 8008.</t> | following the guidelines defined in RFC 8008.</t> | |||
| <!-- | ||||
| The Content Delivery Networks Interconnection (CDNI) framework | ||||
| defines a set of protocols to interconnect CDNs, to achieve multiple | ||||
| goals such as extending the reach of a given CDN to areas that are | ||||
| not covered by that particular CDN. One component that is needed to | ||||
| achieve the goal of CDNI described in CDNI framework is the CDNI | ||||
| Request Routing Footprint & Capabilities Advertisement interface | ||||
| (FCI). RFC 8008 defines precisely the semantics of FCI and provides | ||||
| guidelines on the FCI protocol, but the exact protocol is explicitly | ||||
| outside the scope of that document. This document defines a new | ||||
| Application-Layer Traffic Optimization (ALTO) service called "CDNI | ||||
| Advertisement Service" that provides an implementation of the FCI, following | ||||
| the guidelines defined in RFC 8008. | ||||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <!-- Skip header line --> | ||||
| <section anchor="intro" numbered="true" toc="default"> | <section anchor="intro" numbered="true" toc="default"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>The ability to interconnect multiple content delivery networks (CDNs) | <t>The ability to interconnect multiple content delivery networks (CDNs) | |||
| has many benefits, including increased coverage, capability, and | has many benefits, including increased coverage, capability, and | |||
| reliability. The Content Delivery Networks Interconnection (CDNI) | reliability. The Content Delivery Networks Interconnection (CDNI) | |||
| framework <xref target="RFC6707" format="default"/> defines four interfaces to | framework <xref target="RFC6707" format="default"/> defines four interfaces to | |||
| interconnect CDNs: (1) the CDNI Request Routing | interconnect CDNs: (1) the CDNI Request Routing | |||
| Interface, (2) the CDNI Metadata Interface, (3) the CDNI Logging | Interface, (2) the CDNI Metadata Interface, (3) the CDNI Logging | |||
| Interface, and (4) the CDNI Control Interface.</t> | Interface, and (4) the CDNI Control Interface.</t> | |||
| <t>Among these four interfaces, the CDNI Request Routing Interface | <t>Among these four interfaces, the CDNI Request Routing Interface | |||
| provides key functions, as specified in <xref target="RFC6707" format="default"/ | provides key functions, as specified in <xref target="RFC6707" format="default"/ | |||
| >: | >:</t> | |||
| "The CDNI Request Routing interface enables a Request Routing | <blockquote> | |||
| The CDNI Request Routing interface enables a Request Routing | ||||
| function in an Upstream CDN to query a Request Routing function in a | function in an Upstream CDN to query a Request Routing function in a | |||
| Downstream CDN to determine if the Downstream CDN is able (and | Downstream CDN to determine if the Downstream CDN is able (and | |||
| willing) to accept the delegated Content Request. It also allows the | willing) to accept the delegated Content Request. It also allows the | |||
| Downstream CDN to control what should be returned to the User Agent | Downstream CDN to control what should be returned to the User Agent | |||
| in the redirection message by the upstream Request Routing function." | in the redirection message by the upstream Request Routing function.</blockquote | |||
| At a high level, the scope of the CDNI Request Routing Interface, | > | |||
| therefore, contains two main tasks: (1) determining if the dCDN | <t>At a high level, therefore, the scope of the CDNI Request Routing Inter | |||
| (downstream CDN) is willing to accept a delegated content request, | face | |||
| and (2) redirecting the content request coming from a uCDN (upstream | contains two main tasks: (1) determining if the dCDN | |||
| (downstream CDN) is willing to accept a delegated Content Request | ||||
| and (2) redirecting the Content Request coming from a uCDN (upstream | ||||
| CDN) to the proper entry point or entity in the dCDN.</t> | CDN) to the proper entry point or entity in the dCDN.</t> | |||
| <t>Correspondingly, the Request Routing Interface is broadly divided | <t>Correspondingly, the Request Routing Interface is broadly divided | |||
| into two functionalities: (1) the CDNI Footprint & Capabilities | into two functionalities: (1) the CDNI Footprint & Capabilities | |||
| Advertisement interface (FCI) defined in <xref target="RFC8008" format="default" />, | Advertisement interface (FCI) defined in <xref target="RFC8008" format="default" /> | |||
| and (2) the CDNI Request Routing Redirection interface (RI) defined | and (2) the CDNI Request Routing Redirection interface (RI) defined | |||
| in <xref target="RFC7975" format="default"/>. This document focuses on the | in <xref target="RFC7975" format="default"/>. This document focuses on the | |||
| first functionality (CDNI FCI).</t> | first functionality (CDNI FCI).</t> | |||
| <t>Specifically, CDNI FCI allows both an advertisement from a dCDN to a | <t>Specifically, CDNI FCI allows both an Advertisement from a dCDN to a | |||
| uCDN (push) and a query from a uCDN to a dCDN (pull) so that the uCDN | uCDN (push) and a query from a uCDN to a dCDN (pull) so that the uCDN | |||
| knows whether it can redirect a particular user request to that dCDN.</t> | knows whether it can redirect a particular user request to that dCDN.</t> | |||
| <t>A key component in defining CDNI FCI is defining objects describing the | <t>A key component in defining the CDNI FCI is defining the objects that d | |||
| footprints and capabilities of a dCDN. Such objects are already defined in | escribe the | |||
| Section 5 of <xref target="RFC8008" format="default"/>. However, no protocol is | footprints and capabilities of a dCDN. Such objects are already specified in | |||
| defined to transport and | <xref target="RFC8008" section="5" sectionFormat="of" format="default"/>. Howeve | |||
| r, no protocol is defined to transport and | ||||
| update such objects between a uCDN and a dCDN.</t> | update such objects between a uCDN and a dCDN.</t> | |||
| <t>To define such a protocol, this document specifies an extension of the | <t>To define such a protocol, this document specifies an extension of the | |||
| Application-Layer Traffic Optimization (ALTO) <xref target="RFC7285" format="def ault"/> protocol by | Application-Layer Traffic Optimization (ALTO) Protocol <xref target="RFC7285" fo rmat="default"/> by | |||
| introducing a new ALTO service called "CDNI Advertisement Service".</t> | introducing a new ALTO service called "CDNI Advertisement Service".</t> | |||
| <t><xref target="bgALTO" format="default"/> discusses the benefits in usin g ALTO as a transport protocol.</t> | <t><xref target="bgALTO" format="default"/> discusses the benefits in usin g ALTO as a transport protocol.</t> | |||
| <!-- | ||||
| The rest of this document is organized as follows. [](#background) provides | ||||
| non-normative background on both CDNI FCI and ALTO. [](#cdnifci) introduces the | ||||
| most basic service, called "CDNI Advertisement Service", to realize CDNI FCI | ||||
| using ALTO. [](#cdnifcinetworkmap) demonstrates a key benefit of using ALTO: the | ||||
| ability to integrate CDNI FCI with ALTO network maps. Such integration provides | ||||
| new granularity to describe footprints. [](#filteredcdnifci) introduces | ||||
| "Filtered CDNI Advertisement Service" to allow a uCDN to get footprints with | ||||
| given capabilities instead of getting the full resource, which can be large. | ||||
| [](#unifiedpropertymap) further shows another benefit of using ALTO: the ability | ||||
| to query footprint properties using ALTO entity property map extension. In this | ||||
| way, a uCDN can effectively fetch capabilities of footprints in which it is | ||||
| interested. IANA and security considerations are discussed in [](#iana) and | ||||
| [](#security) respectively. | ||||
| <!-- Skip header line --> | ||||
| </section> | </section> | |||
| <section anchor="background" numbered="true" toc="default"> | <section anchor="background" numbered="true" toc="default"> | |||
| <name>Terminology and Background</name> | <name>Terminology and Background</name> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SH | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| OULD", | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", | |||
| "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14 | |||
| document are to be interpreted as described in BCP 14 <xref target="RFC2119" for | >", | |||
| mat="default"/><xref target="RFC8174" format="default"/> | "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bc | |||
| when, and only when, they appear in all capitals, as shown here.</t> | p14>" | |||
| in this document are to be interpreted as described in BCP 14 <xref target= | ||||
| "RFC2119"/> | ||||
| <xref target="RFC8174"/> when, and only when, they appear in all capitals, as sh | ||||
| own here.</t> | ||||
| <t>The design of CDNI FCI transport using ALTO assumes an understanding of both | <t>The design of CDNI FCI transport using ALTO assumes an understanding of both | |||
| FCI semantics and ALTO. Hence, this document starts with a non-normative review | FCI semantics and ALTO. Hence, this document starts with a non-normative review | |||
| for both.</t> | of both.</t> | |||
| <section anchor="term" numbered="true" toc="default"> | <section anchor="term" numbered="true" toc="default"> | |||
| <name>Terminology</name> | <name>Terminology</name> | |||
| <t>The document uses the CDNI terms defined in <xref target="RFC6707" fo rmat="default"/>, <xref target="RFC8006" format="default"/> and | <t>The document uses the CDNI terms defined in <xref target="RFC6707" fo rmat="default"/>, <xref target="RFC8006" format="default"/>, and | |||
| <xref target="RFC8008" format="default"/>. Also, the document uses the ALTO term s defined in <xref target="RFC7285" format="default"/> and | <xref target="RFC8008" format="default"/>. Also, the document uses the ALTO term s defined in <xref target="RFC7285" format="default"/> and | |||
| <xref target="I-D.ietf-alto-unified-props-new" format="default"/>. This document uses the following | <xref target="RFC9240" format="default"/>. This document uses the following | |||
| abbreviations:</t> | abbreviations:</t> | |||
| <ul spacing="normal"> | <dl spacing="normal" indent="8"> | |||
| <li>ALTO: Application-Layer Traffic Optimization</li> | <dt>ALTO:</dt> | |||
| <li>ASN: Autonomous System Number</li> | <dd>Application-Layer Traffic Optimization</dd> | |||
| <li>CDN: Content Delivery Network</li> | <dt>ASN:</dt> | |||
| <li>CDNI: CDN Interconnection</li> | <dd>Autonomous System Number</dd> | |||
| <li>dCDN: Downstream CDN</li> | <dt>CDN:</dt> | |||
| <li>FCI: CDNI FCI, CDNI Request Routing Footprint & Capabilities A | <dd>Content Delivery Network</dd> | |||
| dvertisement interface</li> | <dt>CDNI:</dt> | |||
| <li>IRD: Information Resource Directory in ALTO</li> | <dd>CDN Interconnection</dd> | |||
| <li>PID: Provider-defined Identifier in ALTO</li> | <dt>dCDN:</dt> | |||
| <li>uCDN: Upstream CDN</li> | <dd>Downstream CDN</dd> | |||
| </ul> | <dt>FCI:</dt> | |||
| <dd>CDNI FCI, CDNI Request Routing Footprint & Capabilities Advert | ||||
| isement interface</dd> | ||||
| <dt>IRD:</dt> | ||||
| <dd>Information Resource Directory in ALTO</dd> | ||||
| <dt>PID:</dt> | ||||
| <dd>Provider-defined Identifier in ALTO</dd> | ||||
| <dt>uCDN:</dt><dd>Upstream CDN</dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="bgSemantics" numbered="true" toc="default"> | <section anchor="bgSemantics" numbered="true" toc="default"> | |||
| <name>Semantics of FCI Advertisement</name> | <name>Semantics of FCI Advertisement</name> | |||
| <t><xref target="RFC8008" format="default"/> defines the semantics | <t><xref target="RFC8008" format="default"/> defines the semantics | |||
| of CDNI FCI, provides guidance on what Footprint and Capabilities mean in a CDNI | of CDNI FCI, provides guidance on what footprint and capabilities mean in a CDNI | |||
| context, and specifies the requirements on the CDNI FCI transport protocol. The | context, and specifies the requirements on the CDNI FCI transport protocol. The | |||
| definitions in <xref target="RFC8008" format="default"/> depend on <xref target= "RFC8006" format="default"/>. Below is a non-normative | definitions in <xref target="RFC8008" format="default"/> depend on <xref target= "RFC8006" format="default"/>. Below is a non-normative | |||
| review of key related points of <xref target="RFC8008" format="default"/> and <x ref target="RFC8006" format="default"/>. For detailed | review of key related points of <xref target="RFC8008" format="default"/> and <x ref target="RFC8006" format="default"/>. For detailed | |||
| information and normative specification, the reader should refer to these two | information and normative specification, the reader should refer to these two | |||
| RFCs.</t> | RFCs.</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>Multiple types of mandatory-to-implement footprints (i.e., ipv4cid | <li>Multiple types of mandatory-to-implement footprints (i.e., "ipv4ci | |||
| r, ipv6cidr, asn, | dr", "ipv6cidr", "asn", | |||
| and countrycode) are defined in <xref target="RFC8006" format="default"/>. A "Se | and "countrycode") are defined in <xref target="RFC8006" format="default"/>. A " | |||
| t of IP-prefixes" can | set of IP prefixes" can | |||
| contain both full IP addresses (i.e., a /32 for IPv4 or a /128 for IPv6) and | contain both full IP addresses (i.e., a /32 for IPv4 or a /128 for IPv6) and | |||
| IP prefixes with an arbitrary prefix length. There must also be support for | IP prefixes with an arbitrary prefix length. There must also be support for | |||
| multiple IP address versions, i.e., IPv4 and IPv6, in such a footprint.</li> | multiple IP address versions, i.e., IPv4 and IPv6, in such a footprint.</li> | |||
| <li>Multiple initial types of capabilities are defined in <xref target ="RFC8008" format="default"/> including | <li>Multiple initial types of capabilities are defined in <xref target ="RFC8008" format="default"/> including | |||
| (1) Delivery Protocol, (2) Acquisition Protocol, (3) Redirection Mode, (4) | (1) Delivery Protocol, (2) Acquisition Protocol, (3) Redirection Mode, (4) | |||
| Capabilities related to CDNI Logging, and (5) Capabilities related to CDNI | capabilities related to CDNI Logging, and (5) capabilities related to CDNI | |||
| Metadata. They are required in all cases and, therefore, considered as | Metadata. They are required in all cases and, therefore, considered as | |||
| mandatory-to-implement capabilities for all CDNI FCI implementations.</li> | mandatory-to-implement capabilities for all CDNI FCI implementations.</li> | |||
| <li>Footprint and capabilities are defined together and cannot be inte rpreted | <li>Footprint and capabilities are defined together and cannot be inte rpreted | |||
| independently from each other. Specifically, <xref target="RFC8008" format="defa ult"/> integrates footprint | independently from each other. Specifically, <xref target="RFC8008" format="defa ult"/> integrates footprint | |||
| and capabilities with an approach of "capabilities with footprint | and capabilities with an approach of "capabilities with footprint | |||
| restrictions", by expressing capabilities on a per footprint basis.</li> | restrictions", by expressing capabilities on a per footprint basis.</li> | |||
| <li>Specifically, for all mandatory-to-implement footprint types, foot prints can | <li>Specifically, for all mandatory-to-implement footprint types, foot prints can | |||
| be viewed as constraints for delegating requests to a dCDN: A dCDN footprint | be viewed as constraints for delegating requests to a dCDN: a dCDN footprint | |||
| advertisement tells the uCDN the limitations for delegating a request to the | advertisement tells the uCDN the limitations for delegating a request to the | |||
| dCDN. For IP prefixes or Autonomous System Numbers (ASNs), the footprint signals to the uCDN that it | dCDN. For IP prefixes or Autonomous System Numbers (ASNs), the footprint signals to the uCDN that it | |||
| should consider the dCDN a candidate only if the IP address of the request | should consider the dCDN a candidate only if the IP address of the Request | |||
| routing source falls within the prefix set or ASN, respectively. The CDNI | Routing source falls within the prefix set or ASN, respectively. The CDNI | |||
| specifications do not define how a given uCDN determines what address ranges | specifications do not define how a given uCDN determines what address ranges | |||
| are in a particular ASN. Similarly, for country codes, a uCDN should only | are in a particular ASN. Similarly, for country codes, a uCDN should only | |||
| consider the dCDN a candidate if it covers the country of the request routing | consider the dCDN a candidate if it covers the country of the Request Routing | |||
| source. The CDNI specifications do not define how a given uCDN determines the | source. The CDNI specifications do not define how a given uCDN determines the | |||
| country of the request routing source. Different types of footprint | country of the Request Routing source. Different types of footprint | |||
| constraints can be combined together to narrow the dCDN candidacy, i.e., the | constraints can be combined together to narrow the dCDN candidacy, i.e., the | |||
| uCDN should consider the dCDN a candidate only if the request routing source | uCDN should consider the dCDN a candidate only if the request routing source | |||
| satisfies all the types of footprint constraints in the advertisement.</li> | satisfies all the types of footprint constraints in the advertisement.</li> | |||
| <li>Given that a large part of Footprint and Capabilities Advertisemen t may | <li>Given that a large part of Footprint and Capabilities Advertisemen t may | |||
| happen in contractual agreements, the semantics of CDNI Footprint and | happen in contractual agreements, the semantics of CDNI Footprint and | |||
| Capabilities advertisement refers to answering the following question: what | Capabilities Advertisement refers to answering the following question: what | |||
| exactly still needs to be advertised by the CDNI FCI? For instance, updates | exactly still needs to be advertised by the CDNI FCI? For instance, updates | |||
| about temporal failures of part of a footprint can be useful information to | about temporal failures of part of a footprint can be useful information to | |||
| convey via the CDNI FCI. Such information would provide updates on information | convey via the CDNI FCI. Such information would provide updates on information | |||
| previously agreed in contracts between the participating CDNs. In other words, | previously agreed to in contracts between the participating CDNs. In other words | |||
| the CDNI FCI is a means for a dCDN to provide changes/updates | , | |||
| the CDNI FCI is a means for a dCDN to provide changes and updates | ||||
| regarding a footprint and/or capabilities that it has previously agreed to serve in | regarding a footprint and/or capabilities that it has previously agreed to serve in | |||
| a contract with a uCDN. Hence, server push and incremental | a contract with a uCDN. Hence, server push and incremental | |||
| encoding will be necessary techniques.</li> | encoding will be necessary techniques.</li> | |||
| </ul> | </ul> | |||
| </section> | </section> | |||
| <section anchor="bgALTO" numbered="true" toc="default"> | <section anchor="bgALTO" numbered="true" toc="default"> | |||
| <name>ALTO Background and Benefits</name> | <name>ALTO Background and Benefits</name> | |||
| <t>Application-Layer Traffic Optimization (ALTO) <xref target="RFC7285" format="default"/> defines an approach | <t>Application-Layer Traffic Optimization (ALTO) <xref target="RFC7285" format="default"/> defines an approach | |||
| for conveying network layer (topology) information to "guide" the resource | for conveying network-layer (topology) information to "guide" the resource | |||
| provider selection process in distributed applications that can choose among | provider selection process in distributed applications that can choose among | |||
| several candidate resources providers to retrieve a given resource. Usually, it | several candidate resources providers to retrieve a given resource. Usually, it | |||
| is assumed that an ALTO server conveys information that these applications | is assumed that an ALTO server conveys information that these applications | |||
| cannot measure or have difficulty measuring themselves <xref target="RFC5693" fo rmat="default"/>.</t> | cannot measure or have difficulty measuring themselves <xref target="RFC5693" fo rmat="default"/>.</t> | |||
| <t>Originally, ALTO was motivated by optimizing cross-ISP traffic genera ted by P2P | <t>Originally, ALTO was motivated by optimizing cross-ISP traffic genera ted by peer-to-peer | |||
| applications <xref target="RFC5693" format="default"/>. However, ALTO can also b e used for improving the | applications <xref target="RFC5693" format="default"/>. However, ALTO can also b e used for improving the | |||
| request routing in CDNs. In particular, Section 5 of <xref target="RFC7971" form at="default"/> | Request Routing in CDNs. In particular, <xref target="RFC7971" section="5" secti onFormat="of" format="default"/> | |||
| explicitly mentions ALTO as a candidate protocol to improve the selection of a | explicitly mentions ALTO as a candidate protocol to improve the selection of a | |||
| CDN surrogate or origin.</t> | CDN surrogate or origin.</t> | |||
| <t>The following reasons make ALTO a suitable candidate protocol for dCD N | <t>The following reasons make ALTO a suitable candidate protocol for dCD N | |||
| selection as part of CDNI request routing and, in particular, | selection as part of CDNI Request Routing and, in particular, | |||
| for an FCI protocol:</t> | for an FCI protocol:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>Application Layer-oriented: ALTO is a protocol specifically design | <li>Application-Layer-oriented: ALTO is a protocol specifically design | |||
| ed to | ed to | |||
| improve application layer traffic (and application layer connections among | improve application-layer traffic (and application-layer connections among | |||
| hosts on the Internet) by providing additional information to applications | hosts on the Internet) by providing additional information to applications | |||
| that these applications could not easily retrieve themselves. This matches the | that these applications could not easily retrieve themselves. This matches the | |||
| need of CDNI, where a uCDN wants to improve application layer CDN request routin g by | need of CDNI, where a uCDN wants to improve application-layer CDN request routin g by | |||
| using information (provided by a dCDN) that the uCDN could not easily obtain | using information (provided by a dCDN) that the uCDN could not easily obtain | |||
| otherwise. Hence, ALTO can help a uCDN to select a proper dCDN by first | otherwise. Hence, ALTO can help a uCDN to select a proper dCDN by first | |||
| providing dCDNs' capabilities as well as footprints (see <xref target="cdnifci" format="default"/>) and | providing dCDNs' capabilities as well as footprints (see <xref target="cdnifci" format="default"/>) and | |||
| then providing costs of surrogates in a dCDN by ALTO cost maps.</li> | then providing costs of surrogates in a dCDN by ALTO cost maps.</li> | |||
| <li>Security: The identification between uCDNs and dCDNs is an importa nt | <li>Security: The identification between uCDNs and dCDNs is an importa nt | |||
| requirement (see <xref target="security" format="default"/>). ALTO maps can be s igned and hence provide | requirement (see <xref target="security" format="default"/>). ALTO maps can be s igned and hence provide | |||
| inherent origin protection. Please see Section 15.1.2 of <xref target="RFC7285" format="default"/> for | inherent origin protection. Please see <xref target="RFC7285" section="15.1.2" s ectionFormat="of" format="default"/> for | |||
| detailed protection strategies.</li> | detailed protection strategies.</li> | |||
| <li>RESTful design: The ALTO protocol has undergone extensive revision s in order | <li>RESTful design: The ALTO Protocol has undergone extensive revision s in order | |||
| to provide a RESTful design regarding the client-server interaction specified | to provide a RESTful design regarding the client-server interaction specified | |||
| by the protocol. It is flexible and extensible enough to handle existing and | by the protocol. It is flexible and extensible enough to handle existing and | |||
| potential future data formats defined by CDNI. It can provide the consistent | potential future data formats defined by CDNI. It can provide the consistent | |||
| client-server interaction model for other existing CDNI interfaces or | client-server interaction model for other existing CDNI interfaces or | |||
| potential future extensions and therefore reduce the learning cost for both | potential future extensions and therefore reduce the learning cost for both | |||
| users and developers, although they are not in the scope of this | users and developers, although they are not in the scope of this | |||
| document. A CDNI FCI interface based on ALTO would inherit this RESTful | document. A CDNI FCI interface based on ALTO would inherit this RESTful | |||
| design. Please see <xref target="cdnifci" format="default"/>.</li> | design. Please see <xref target="cdnifci" format="default"/>.</li> | |||
| <li>Error-handling: The ALTO protocol provides extensive error-handlin | <li>Error handling: The ALTO Protocol provides extensive error handlin | |||
| g in the | g in the | |||
| whole request and response process (see Section 8.5 of <xref target="RFC7285" fo | whole request and response process (see <xref target="RFC7285" section="8.5" sec | |||
| rmat="default"/>). A CDNI | tionFormat="of" format="default"/>). A CDNI | |||
| FCI interface based on ALTO would inherit this extensive error-handling | FCI interface based on ALTO would inherit this extensive error-handling | |||
| framework. Please see <xref target="filteredcdnifci" format="default"/>.</li> | framework. Please see <xref target="filteredcdnifci" format="default"/>.</li> | |||
| <li>Map Service: The semantics of an ALTO network map is an exact matc h for the | <li>Map Service: The semantics of an ALTO network map is an exact matc h for the | |||
| needed information to convey a footprint by a dCDN, in | needed information to convey a footprint by a dCDN, in | |||
| particular, if such a footprint is being expressed by IP-prefix | particular, if such a footprint is being expressed by IP prefix | |||
| ranges. Please see <xref target="cdnifcinetworkmap" format="default"/>.</li> | ranges. Please see <xref target="cdnifcinetworkmap" format="default"/>.</li> | |||
| <li>Filtered Map Service: The ALTO map filtering service would allow a uCDN to | <li>Filtered Map Service: The ALTO map filtering service would allow a uCDN to | |||
| query only for parts of an ALTO map. For example, the ALTO filtered property | query only for parts of an ALTO map. For example, the ALTO filtered property | |||
| map service can enable a uCDN to query properties of a part of footprints | Map Service can enable a uCDN to query properties of a part of footprints | |||
| efficiently. Please see <xref target="unifiedpropertymap" format="default"/>.</l i> | efficiently. Please see <xref target="unifiedpropertymap" format="default"/>.</l i> | |||
| <li>Server-initiated notifications and incremental updates: When the f ootprint or | <li>Server-initiated notifications and incremental updates: When the f ootprint or | |||
| the capabilities of a dCDN change (i.e., unexpectedly from the perspective of | the capabilities of a dCDN change (i.e., unexpectedly from the perspective of | |||
| a uCDN), server-initiated notifications would enable a dCDN to inform a uCDN | a uCDN), server-initiated notifications would enable a dCDN to inform a uCDN | |||
| about such changes directly. Consider the case where - due to failure - part | about such changes directly. Consider the case where -- due to failure -- part | |||
| of the footprint of the dCDN is not functioning, i.e., the CDN cannot serve | of the footprint of the dCDN is not functioning, i.e., the CDN cannot serve | |||
| content to such clients with reasonable QoS. Without server-initiated | content to such clients with reasonable QoS. Without server-initiated | |||
| notifications, the uCDN might still use a recent network and cost map from the | notifications, the uCDN might still use a recent network and cost map from the | |||
| dCDN, and therefore redirect requests to the dCDN which it cannot serve. | dCDN and therefore redirect requests to the dCDN that it cannot serve. | |||
| Similarly, the possibility for incremental updates would enable efficient | Similarly, the possibility for incremental updates would enable efficient | |||
| conveyance of the aforementioned (or similar) status changes by the dCDN to | conveyance of the aforementioned (or similar) status changes by the dCDN to | |||
| the uCDN. The newest design of ALTO supports server pushed incremental updates | the uCDN. The newest design of ALTO supports server-pushed incremental updates | |||
| <xref target="RFC8895" format="default"/>.</li> | <xref target="RFC8895" format="default"/>.</li> | |||
| <li>Content availability on hosts: A dCDN might want to express CDN ca pabilities | <li>Content availability on hosts: A dCDN might want to express CDN ca pabilities | |||
| in terms of certain content types (e.g., codecs/ formats, or content from | in terms of certain content types (e.g., codecs and/or formats, or content from | |||
| certain content providers). ALTO Entity Property Map | certain content providers). ALTO Entity Property Map | |||
| <xref target="I-D.ietf-alto-unified-props-new" format="default"/> would enable a | <xref target="RFC9240" format="default"/> would enable a dCDN to make such | |||
| dCDN to make such | information available to a uCDN. This would enable a uCDN to assess whether | |||
| information available to a uCDN. This would enable a uCDN to access whether | ||||
| a dCDN has the capabilities for a given type of content requested.</li> | a dCDN has the capabilities for a given type of content requested.</li> | |||
| <li>Resource availability on hosts or links: The capabilities on links (e.g., | <li>Resource availability on hosts or links: The capabilities on links (e.g., | |||
| maximum bandwidth) or caches (e.g., average load) might be useful information | maximum bandwidth) or caches (e.g., average load) might be useful information | |||
| for a uCDN for optimized dCDN selection. For instance, if a uCDN receives a | for a uCDN for optimized dCDN selection. For instance, if a uCDN receives a | |||
| streaming request for content with a certain bitrate, it needs to know if it | streaming request for content with a certain bitrate, it needs to know if it | |||
| is likely that a dCDN can fulfill such stringent application-level | is likely that a dCDN can fulfill such stringent application-level | |||
| requirements (i.e., can be expected to have enough consistent bandwidth) | requirements (i.e., can be expected to have enough consistent bandwidth) | |||
| before it redirects the request. In general, if ALTO could convey such | before it redirects the request. In general, if ALTO could convey such | |||
| information via ALTO Entity Property Map <xref target="I-D.ietf-alto-unified-pro | information via ALTO Entity Property Map <xref target="RFC9240" format="default" | |||
| ps-new" format="default"/>, | />, | |||
| it would enable more sophisticated means for dCDN selection with ALTO. ALTO | it would enable more sophisticated means for dCDN selection with ALTO. The ALTO | |||
| Path Vector Extension <xref target="I-D.ietf-alto-path-vector" format="default"/ | Path Vector extension <xref target="I-D.ietf-alto-path-vector" format="default"/ | |||
| > is designed to allow ALTO | > is designed to allow ALTO | |||
| clients to query information such as capacity regions for a given set of | clients to query information such as capacity regions for a given set of | |||
| flows. | flows. | |||
| <!-- Skip header line --> | ||||
| </li> | </li> | |||
| </ul> | </ul> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="cdnifci" numbered="true" toc="default"> | <section anchor="cdnifci" numbered="true" toc="default"> | |||
| <name>CDNI Advertisement Service</name> | <name>CDNI Advertisement Service</name> | |||
| <t>The ALTO protocol relies upon the ALTO Information Service framework wh | <t>The ALTO Protocol relies upon the ALTO information service framework, w | |||
| ich | hich | |||
| consists of multiple services. All ALTO services are "provided through a | consists of multiple services. All ALTO services are "provided through a common | |||
| common transport protocol, messaging structure and encoding, and transaction | transport protocol; messaging structure and encoding; and transaction | |||
| model" <xref target="RFC7285" format="default"/>. The ALTO protocol specificatio | model" <xref target="RFC7285" format="default"/>. The ALTO Protocol specificatio | |||
| n defines multiple | n defines multiple | |||
| initial services, e.g., the ALTO network map service and cost map service.</t> | initial services, e.g., the ALTO Network Map Service and Cost Map Service.</t> | |||
| <t>This document defines a new ALTO service, called "CDNI Advertisement Se rvice", | <t>This document defines a new ALTO service, called "CDNI Advertisement Se rvice", | |||
| which conveys JSON <xref target="RFC8259" format="default"/> objects of media ty pe "application/alto-cdni+json". These | which conveys JSON <xref target="RFC8259" format="default"/> objects of media ty pe "application/alto-cdni+json". These | |||
| JSON objects are used to transport BaseAdvertisementObject objects defined in | JSON objects are used to transport BaseAdvertisementObject objects defined in | |||
| <xref target="RFC8008" format="default"/>. This document specifies how to transp ort such | <xref target="RFC8008" format="default"/>. This document specifies how to transp ort such | |||
| BaseAdvertisementObject objects via the ALTO protocol with the ALTO "CDNI | BaseAdvertisementObject objects via the ALTO Protocol with the ALTO CDNI | |||
| Advertisement Service". Similar to other ALTO services, this document defines | Advertisement Service. Similar to other ALTO services, this document defines | |||
| the ALTO information resource for the "CDNI Advertisement Service" as follows.</ | the ALTO information resource for the CDNI Advertisement Service as follows.</t> | |||
| t> | ||||
| <t>Note that the encoding of BaseAdvertisementObject reuses the one | <t>Note that the encoding of BaseAdvertisementObject reuses the one | |||
| defined in <xref target="RFC8008" format="default"/> and therefore also follows the recommendations of I-JSON | defined in <xref target="RFC8008" format="default"/> and therefore also follows the recommendations of I-JSON | |||
| (Internet JSON) <xref target="RFC7493" format="default"/>, which is required by <xref target="RFC8008" format="default"/>.</t> | (Internet JSON) <xref target="RFC7493" format="default"/>, which is required by <xref target="RFC8008" format="default"/>.</t> | |||
| <section anchor="cdnifcimediatype" numbered="true" toc="default"> | <section anchor="cdnifcimediatype" numbered="true" toc="default"> | |||
| <name>Media Type</name> | <name>Media Type</name> | |||
| <t>The media type of the CDNI Advertisement resource is | <t>The media type of the CDNI Advertisement resource is | |||
| "application/alto-cdni+json" (see <xref target="iana" format="default"/>).</t> | "application/alto-cdni+json" (see <xref target="iana" format="default"/>).</t> | |||
| </section> | </section> | |||
| <section anchor="cdnifcimethod" numbered="true" toc="default"> | <section anchor="cdnifcimethod" numbered="true" toc="default"> | |||
| <name>HTTP Method</name> | <name>HTTP Method</name> | |||
| skipping to change at line 376 ¶ | skipping to change at line 355 ¶ | |||
| <section anchor="cdnifciinput" numbered="true" toc="default"> | <section anchor="cdnifciinput" numbered="true" toc="default"> | |||
| <name>Accept Input Parameters</name> | <name>Accept Input Parameters</name> | |||
| <t>There are no applicable Accept Input parameters.</t> | <t>There are no applicable Accept Input parameters.</t> | |||
| </section> | </section> | |||
| <section anchor="cdnifcicap" numbered="true" toc="default"> | <section anchor="cdnifcicap" numbered="true" toc="default"> | |||
| <name>Capabilities</name> | <name>Capabilities</name> | |||
| <t>There are no applicable capabilities.</t> | <t>There are no applicable capabilities.</t> | |||
| </section> | </section> | |||
| <section anchor="cdnifciuses" numbered="true" toc="default"> | <section anchor="cdnifciuses" numbered="true" toc="default"> | |||
| <name>Uses</name> | <name>Uses</name> | |||
| <t>The "uses" field MUST NOT appear unless the CDNI Advertisement resour ce | <t>The "uses" field <bcp14>MUST NOT</bcp14> appear unless the CDNI Adver tisement resource | |||
| depends on other ALTO information resources. If the CDNI Advertisement | depends on other ALTO information resources. If the CDNI Advertisement | |||
| resource has dependent resources, the resource IDs of its | resource has dependent resources, the resource IDs of its | |||
| dependent resources MUST be included into the "uses" field. This | dependent resources <bcp14>MUST</bcp14> be included into the "uses" field. This | |||
| document only defines one potential dependent resource for the CDNI | document only defines one potential dependent resource for the CDNI | |||
| Advertisement resource. See <xref target="cdnifcinetworkmap" format="default"/> for details | Advertisement resource. See <xref target="cdnifcinetworkmap" format="default"/> for details | |||
| of when and how to use it. Future documents may extend the CDNI Advertisement | of when and how to use it. Future documents may extend the CDNI Advertisement | |||
| resource and allow other dependent resources.</t> | resource and allow other dependent resources.</t> | |||
| </section> | </section> | |||
| <section anchor="cdnifciencoding" numbered="true" toc="default"> | <section anchor="cdnifciencoding" numbered="true" toc="default"> | |||
| <name>Response</name> | <name>Response</name> | |||
| <t>The "meta" field of a CDNI Advertisement response MUST include the "v | <t>The "meta" field of a CDNI Advertisement response <bcp14>MUST</bcp14> | |||
| tag" | include the "vtag" | |||
| field defined in Section 10.3 of <xref target="RFC7285" format="default"/>. This | field defined in <xref target="RFC7285" section="10.3" sectionFormat="of" format | |||
| ="default"/>. This | ||||
| field provides the version of the retrieved CDNI FCI resource.</t> | field provides the version of the retrieved CDNI FCI resource.</t> | |||
| <t>If a CDNI Advertisement response depends on other ALTO information re sources, it | <t>If a CDNI Advertisement response depends on other ALTO information re sources, it | |||
| MUST include the "dependent-vtags" field, whose value is an array to indicate | <bcp14>MUST</bcp14> include the "dependent-vtags" field, whose value is an array to indicate | |||
| the version tags of the resources used, where each resource is specified in | the version tags of the resources used, where each resource is specified in | |||
| "uses" of its Information Resource Directory (IRD) entry.</t> | "uses" of its Information Resource Directory (IRD) entry.</t> | |||
| <t>The data component of an ALTO CDNI Advertisement response is named | <t>The data component of an ALTO CDNI Advertisement response is named | |||
| "cdni-advertisement", which is a JSON object of type CDNIAdvertisementData:</t> | "cdni-advertisement", which is a JSON object of type CDNIAdvertisementData:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| <sourcecode type="json"><![CDATA[ | ||||
| object { | object { | |||
| CDNIAdvertisementData cdni-advertisement; | CDNIAdvertisementData cdni-advertisement; | |||
| } InfoResourceCDNIAdvertisement : ResponseEntityBase; | } InfoResourceCDNIAdvertisement : ResponseEntityBase; | |||
| object { | object { | |||
| BaseAdvertisementObject capabilities-with-footprints<0..*>; | BaseAdvertisementObject capabilities-with-footprints<0..*>; | |||
| } CDNIAdvertisementData; | } CDNIAdvertisementData; | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t>Specifically, a CDNIAdvertisementData object is a JSON object that in cludes | <t>Specifically, a CDNIAdvertisementData object is a JSON object that in cludes | |||
| only one property named "capabilities-with-footprints", whose value is an array | only one property named "capabilities-with-footprints", whose value is an array | |||
| of BaseAdvertisementObject objects. It provides capabilities with footprint | of BaseAdvertisementObject objects. It provides capabilities with footprint | |||
| restrictions for uCDN to decide the dCDN selection. If the value of this | restrictions for the uCDN to decide the dCDN selection. If the value of this | |||
| property is an empty array, it means the corresponding dCDN cannot provide any | property is an empty array, it means the corresponding dCDN cannot provide any | |||
| mandatory-to-implement CDNI capabilities for any footprints.</t> | mandatory-to-implement CDNI capabilities for any footprints.</t> | |||
| <t>The syntax and semantics of BaseAdvertisementObject are well defined | <t>The syntax and semantics of BaseAdvertisementObject are well defined | |||
| in Section | in | |||
| 5.1 of <xref target="RFC8008" format="default"/>. A BaseAdvertisementObject obje | <xref target="RFC8008" section="5.1" sectionFormat="of" format="default"/>. A Ba | |||
| ct includes multiple | seAdvertisementObject object includes multiple | |||
| properties, including capability-type, capability-value, and footprints, where | properties, including "capability-type", "capability-value", and "footprints", w | |||
| footprints are defined in Section 4.2.2.2 of <xref target="RFC8006" format="defa | here | |||
| ult"/>.</t> | "footprints" are defined in <xref target="RFC8006" section="4.2.2.2" sectionForm | |||
| <t>To be self-contained, below is an equivalent specification of | at="of" format="default"/>.</t> | |||
| BaseAdvertisementObject described in the ALTO-style notation (see Section 8.2 | ||||
| of <xref target="RFC7285" format="default"/>). As mentioned above, the normative | <t> | |||
| specification of | An equivalent specification in the ALTO-style notation (see | |||
| <xref target="RFC7285" section="8.2" sectionFormat="of" format="default"/>) | ||||
| creates a self-contained description of the BaseAdvertisementObject. | ||||
| As mentioned above, the normative specification of | ||||
| BaseAdvertisementObject is in <xref target="RFC8008" format="default"/>.</t> | BaseAdvertisementObject is in <xref target="RFC8008" format="default"/>.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| object { | object { | |||
| JSONString capability-type; | JSONString capability-type; | |||
| JSONValue capability-value; | JSONValue capability-value; | |||
| Footprint footprints<0..*>; | Footprint footprints<0..*>; | |||
| } BaseAdvertisementObject; | } BaseAdvertisementObject; | |||
| object { | object { | |||
| JSONString footprint-type; | JSONString footprint-type; | |||
| JSONString footprint-value<1..*>; | JSONString footprint-value<1..*>; | |||
| } Footprint; | } Footprint; | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t>For each BaseAdvertisementObject, the ALTO client MUST interpret foot | <t>For each BaseAdvertisementObject, the ALTO client <bcp14>MUST</bcp14> | |||
| prints | interpret "footprints" | |||
| appearing multiple times as if they appeared only once. If footprints in a | appearing multiple times as if they appeared only once. If "footprints" in a | |||
| BaseAdvertisementObject is null or empty or not appearing, the ALTO client MUST | BaseAdvertisementObject is null or empty or does not appear, the ALTO client <bc | |||
| p14>MUST</bcp14> | ||||
| understand that the capabilities in this BaseAdvertisementObject have the | understand that the capabilities in this BaseAdvertisementObject have the | |||
| "global" coverage, i.e., the corresponding dCDN can provide them for any | "global" coverage, i.e., the corresponding dCDN can provide them for any | |||
| request routing source.</t> | Request Routing source.</t> | |||
| <t>Note: Further optimization of BaseAdvertisement objects to effectivel | <t>Note: Further optimization of BaseAdvertisementObjects to effectively | |||
| y provide | provide | |||
| the advertisement of capabilities with footprint restrictions is certainly | the advertisement of capabilities with footprint restrictions is certainly | |||
| possible. For example, these two examples below both describe that the dCDN can | possible. For example, these two examples below both describe that the dCDN can | |||
| provide capabilities ["http/1.1", "https/1.1"] for the same footprints. However, | provide capabilities ["http/1.1", "https/1.1"] for the same footprints. However, | |||
| the latter one is smaller in its size.</t> | the latter one is smaller in its size.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| EXAMPLE 1 | EXAMPLE 1 | |||
| { | { | |||
| "meta": {...}, | "meta": {...}, | |||
| "cdni-advertisement": { | "cdni-advertisement": { | |||
| "capabilities-with-footprints": [ | "capabilities-with-footprints": [ | |||
| { | { | |||
| "capability-type": "FCI.DeliveryProtocol", | "capability-type": "FCI.DeliveryProtocol", | |||
| "capability-value": { | "capability-value": { | |||
| "delivery-protocols": [ | "delivery-protocols": [ | |||
| skipping to change at line 474 ¶ | skipping to change at line 458 ¶ | |||
| "https/1.1" | "https/1.1" | |||
| ] | ] | |||
| }, | }, | |||
| "footprints": [ | "footprints": [ | |||
| <Footprint objects> | <Footprint objects> | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| EXAMPLE 2 | EXAMPLE 2 | |||
| { | { | |||
| "meta": {...}, | "meta": {...}, | |||
| "cdni-advertisement": { | "cdni-advertisement": { | |||
| "capabilities-with-footprints": [ | "capabilities-with-footprints": [ | |||
| { | { | |||
| "capability-type": "FCI.DeliveryProtocol", | "capability-type": "FCI.DeliveryProtocol", | |||
| "capability-value": { | "capability-value": { | |||
| "delivery-protocols": [ | "delivery-protocols": [ | |||
| "https/1.1", | "https/1.1", | |||
| skipping to change at line 501 ¶ | skipping to change at line 486 ¶ | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></artwork> | |||
| <t>Since such optimizations are not required for the basic interconnecti on of CDNs, | <t>Since such optimizations are not required for the basic interconnecti on of CDNs, | |||
| the specifics of such mechanisms are outside the scope of this document.</t> | the specifics of such mechanisms are outside the scope of this document.</t> | |||
| <t>This document only requires the ALTO server to provide the initial FC I-specific | <t>This document only requires the ALTO server to provide the initial FC I-specific | |||
| CDNI Payload Types defined in <xref target="RFC8008" format="default"/> as the m andatory-to-implement CDNI | CDNI Payload Types defined in <xref target="RFC8008" format="default"/> as the m andatory-to-implement CDNI | |||
| capabilities.</t> | capabilities.</t> | |||
| <!-- | ||||
| There may be other documents extending BaseAdvertisementObject and | ||||
| additional CDNI capabilities. They are outside the scope of this document. To | ||||
| support them, future documents can extend the specification defined in this | ||||
| document. | ||||
| </section> | </section> | |||
| <section anchor="cdnifciexamples" numbered="true" toc="default"> | <section anchor="cdnifciexamples" numbered="true" toc="default"> | |||
| <name>Examples</name> | <name>Examples</name> | |||
| <section anchor="IRDexample" numbered="true" toc="default"> | <section anchor="IRDexample" numbered="true" toc="default"> | |||
| <name>IRD</name> | <name>IRD</name> | |||
| <t>Below is the IRD of a simple, example ALTO | <t>Below is the IRD of a simple, example ALTO | |||
| server. The server provides both base ALTO information resources (e.g., network | server. The server provides both base ALTO information resources (e.g., network | |||
| maps) and CDNI FCI related information resources (e.g., CDNI Advertisement | maps) and CDNI FCI-related information resources (e.g., CDNI Advertisement | |||
| resources), demonstrating a single, integrated environment.</t> | resources), demonstrating a single, integrated environment.</t> | |||
| <t>Specifically, the IRD announces nine information resources as follo ws:</t> | <t>Specifically, the IRD announces nine information resources as follo ws:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>two network maps,</li> | <li>two network maps,</li> | |||
| <li>one CDNI Advertisement resource without dependency,</li> | <li>one CDNI Advertisement resource without dependency,</li> | |||
| <li>one CDNI Advertisement resource depending on a network map,</li> | <li>one CDNI Advertisement resource depending on a network map,</li> | |||
| <li>one filtered CDNI Advertisement resource to be defined in <xref target="filteredcdnifci" format="default"/>,</li> | <li>one filtered CDNI Advertisement resource to be defined in <xref target="filteredcdnifci" format="default"/>,</li> | |||
| <li>one property map including "cdni-capabilities" as its entity pro perty,</li> | <li>one property map including "cdni-capabilities" as its entity pro perty,</li> | |||
| <li>one filtered property map including "cdni-capabilities" and "pid " as its entity properties, and</li> | <li>one filtered property map including "cdni-capabilities" and "pid " as its entity properties, and</li> | |||
| <li> | <li> | |||
| skipping to change at line 649 ¶ | skipping to change at line 628 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></artwork> | |||
| </section> | </section> | |||
| <section anchor="fullcdnifciexample" numbered="true" toc="default"> | <section anchor="fullcdnifciexample" numbered="true" toc="default"> | |||
| <name>A Basic Example</name> | <name>A Basic Example</name> | |||
| <t>This basic example demonstrates a simple CDNI Advertisement resourc e, which does | <t>This basic example demonstrates a simple CDNI Advertisement resourc e, which does | |||
| not depend on other resources. There are three BaseAdvertisementObjects in this | not depend on other resources. There are three BaseAdvertisementObjects in this | |||
| resource and these objects' capabilities are http/1.1 delivery protocol, | resource and these objects' capabilities are "http/1.1" delivery protocol, | |||
| [http/1.1, https/1.1] delivery protocol, and https/1.1 acquisition protocol, | ["http/1.1", "https/1.1"] delivery protocol, and "https/1.1" acquisition protoco | |||
| l, | ||||
| respectively.</t> | respectively.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| GET /cdnifci HTTP/1.1 | GET /cdnifci HTTP/1.1 | |||
| Host: alto.example.com | Host: alto.example.com | |||
| Accept: application/alto-cdni+json,application/alto-error+json | Accept: application/alto-cdni+json,application/alto-error+json | |||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Content-Length: 1411 | Content-Length: 1411 | |||
| Content-Type: application/alto-cdni+json | Content-Type: application/alto-cdni+json | |||
| skipping to change at line 730 ¶ | skipping to change at line 709 ¶ | |||
| ]]></artwork> | ]]></artwork> | |||
| </section> | </section> | |||
| <section anchor="incremental-updates" numbered="true" toc="default"> | <section anchor="incremental-updates" numbered="true" toc="default"> | |||
| <name>Incremental Updates</name> | <name>Incremental Updates</name> | |||
| <t>A benefit of using ALTO to provide CDNI Advertisement resources is that such | <t>A benefit of using ALTO to provide CDNI Advertisement resources is that such | |||
| resources can be updated using ALTO incremental updates <xref target="RFC8895" f ormat="default"/>. Below is | resources can be updated using ALTO incremental updates <xref target="RFC8895" f ormat="default"/>. Below is | |||
| an example that also shows the benefit of having both JSON merge patch and JSON | an example that also shows the benefit of having both JSON merge patch and JSON | |||
| patch to encode updates.</t> | patch to encode updates.</t> | |||
| <t>At first, an ALTO client requests updates for "my-default-cdnifci", and the ALTO | <t>At first, an ALTO client requests updates for "my-default-cdnifci", and the ALTO | |||
| server returns the "control-uri" followed by the full CDNI Advertisement | server returns the "control-uri" followed by the full CDNI Advertisement | |||
| response. Then when there is a change in the delivery-protocols in that http/1.1 | response. Then when there is a change in the "delivery-protocols" in that "http/ | |||
| is removed (from [http/1.1, https/1.1] to only https/1.1) due to maintenance of | 1.1" | |||
| the http/1.1 clusters, the ALTO server regenerates the new CDNI Advertisement | is removed (from ["http/1.1", "https/1.1"] to only "https/1.1") due to maintenan | |||
| ce of | ||||
| the "http/1.1" clusters, the ALTO server regenerates the new CDNI Advertisement | ||||
| resource and pushes the full replacement to the ALTO client. Later on, the ALTO | resource and pushes the full replacement to the ALTO client. Later on, the ALTO | |||
| server notifies the ALTO client that "192.0.2.0/24" is added into the "ipv4" | server notifies the ALTO client that "192.0.2.0/24" is added into the "ipv4" | |||
| footprint object for delivery-protocol https/1.1 by sending the change encoded | footprint object for delivery protocol "https/1.1" by sending the change encoded | |||
| by JSON patch to the ALTO client.</t> | by JSON patch to the ALTO client.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| POST /updates/cdnifci HTTP/1.1 | POST /updates/cdnifci HTTP/1.1 | |||
| Host: alto.example.com | Host: alto.example.com | |||
| Accept: text/event-stream,application/alto-error+json | Accept: text/event-stream,application/alto-error+json | |||
| Content-Type: application/alto-updatestreamparams+json | Content-Type: application/alto-updatestreamparams+json | |||
| Content-Length: 94 | Content-Length: 94 | |||
| { | { | |||
| "add": { | "add": { | |||
| skipping to change at line 807 ¶ | skipping to change at line 786 ¶ | |||
| data: "path": "/cdni-advertisement/capabilities-with-footprints | data: "path": "/cdni-advertisement/capabilities-with-footprints | |||
| /0/footprints/0/footprint-value/-", | /0/footprints/0/footprint-value/-", | |||
| data: "value": "192.0.2.0/24" | data: "value": "192.0.2.0/24" | |||
| data: } | data: } | |||
| data: ] | data: ] | |||
| ]]></artwork> | ]]></artwork> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="cdnifcinetworkmap" numbered="true" toc="default"> | <section anchor="cdnifcinetworkmap" numbered="true" toc="default"> | |||
| <name>CDNI Advertisement Service using ALTO Network Map</name> | <name>CDNI Advertisement Service Using ALTO Network Map</name> | |||
| <section anchor="network-map-footprint-type-altopid" numbered="true" toc=" default"> | <section anchor="network-map-footprint-type-altopid" numbered="true" toc=" default"> | |||
| <name>Network Map Footprint Type: altopid</name> | <name>Network Map Footprint Type: altopid</name> | |||
| <t>The ALTO protocol defines a concept called Provider-defined Identifie | <t>The ALTO Protocol defines a concept called Provider-defined Identifie | |||
| r (PID) to | r (PID) to | |||
| represent a group of IPv4 or IPv6 addresses which can be applied the same | represent a group of IPv4 or IPv6 addresses to which can be applied the same | |||
| management policy. The PID is an alternative to the pre-defined CDNI footprint | management policy. The PID is an alternative to the predefined CDNI footprint | |||
| types (i.e., ipv4cidr, ipv6cidr, asn, and countrycode).</t> | types (i.e., "ipv4cidr", "ipv6cidr", "asn", and "countrycode").</t> | |||
| <t>To leverage this concept, this document defines a new CDNI Footprint Type called | <t>To leverage this concept, this document defines a new CDNI Footprint Type called | |||
| "altopid". A CDNI Advertisement resource can depend on an ALTO network map | "altopid". A CDNI Advertisement resource can depend on an ALTO network map | |||
| resource and use "altopid" footprints to compress its CDNI Footprint Payload.</t > | resource and use "altopid" footprints to compress its CDNI Footprint Payload.</t > | |||
| <t>Specifically, the "altopid" footprint type indicates that the corresp onding | <t>Specifically, the "altopid" footprint type indicates that the corresp onding | |||
| footprint value is a list of PIDNames as defined in <xref target="RFC7285" forma t="default"/>. | footprint value is a list of PIDNames as defined in <xref target="RFC7285" forma t="default"/>. | |||
| These PIDNames are references of PIDs in a network map resource. Hence a CDNI | These PIDNames are references of PIDs in a network map resource. Hence a CDNI | |||
| Advertisement resource using "altopid" footprints depends on a network map. For | Advertisement resource using "altopid" footprints depends on a network map. For | |||
| such a CDNI Advertisement resource, the resource id of its dependent network map | such a CDNI Advertisement resource, the resource ID of its dependent network map | |||
| MUST be included in the "uses" field of its IRD entry, and the "dependent-vtags" | <bcp14>MUST</bcp14> be included in the "uses" field of its IRD entry, and the "d | |||
| field with a reference to this network map MUST be included in its response (see | ependent-vtags" | |||
| field with a reference to this network map <bcp14>MUST</bcp14> be included in it | ||||
| s response (see | ||||
| the example in <xref target="networkmapfootprint" format="default"/>).</t> | the example in <xref target="networkmapfootprint" format="default"/>).</t> | |||
| </section> | </section> | |||
| <section anchor="examples" numbered="true" toc="default"> | <section anchor="examples" numbered="true" toc="default"> | |||
| <name>Examples</name> | <name>Examples</name> | |||
| <t>The following examples use the same IRD given in <xref target="IRDexa mple" format="default"/>.</t> | <t>The following examples use the same IRD given in <xref target="IRDexa mple" format="default"/>.</t> | |||
| <section anchor="networkmapexample" numbered="true" toc="default"> | <section anchor="networkmapexample" numbered="true" toc="default"> | |||
| <name>ALTO Network Map for CDNI Advertisements</name> | <name>ALTO Network Map for CDNI Advertisements</name> | |||
| <t>Below provides a sample network map whose resource id is "my-eu-net map". This | <t>Below provides a sample network map whose resource ID is "my-eu-net map". This | |||
| map is referenced by the CDNI Advertisement example in <xref target="networkmapf ootprint" format="default"/>.</t> | map is referenced by the CDNI Advertisement example in <xref target="networkmapf ootprint" format="default"/>.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| GET /myeunetmap HTTP/1.1 | GET /myeunetmap HTTP/1.1 | |||
| Host: alto.example.com | Host: alto.example.com | |||
| Accept: application/alto-networkmap+json,application/alto-error+json | Accept: application/alto-networkmap+json,application/alto-error+json | |||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Content-Length: 344 | Content-Length: 344 | |||
| Content-Type: application/alto-networkmap+json | Content-Type: application/alto-networkmap+json | |||
| skipping to change at line 911 ¶ | skipping to change at line 890 ¶ | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></artwork> | |||
| </section> | </section> | |||
| <section anchor="incremental-updates-1" numbered="true" toc="default"> | <section anchor="incremental-updates-1" numbered="true" toc="default"> | |||
| <name>Incremental Updates</name> | <name>Incremental Updates</name> | |||
| <t>In this example, the ALTO client is interested in changes of | <t>In this example, the ALTO client is interested in changes of | |||
| "my-cdnifci-with-pid-footprints" and its dependent network map "my-eu-netmap". | "my-cdnifci-with-pid-footprints" and its dependent network map "my-eu-netmap". | |||
| Considering two changes, the first one is to change footprints of the https/1.1 | Considering two changes, the first one is to change footprints of the "https/1.1 " | |||
| delivery protocol capability, and the second one is to remove the | delivery protocol capability, and the second one is to remove the | |||
| "south-france" PID from the footprints of the https/1.1 acquisition protocol | "south-france" PID from the footprints of the "https/1.1" acquisition protocol | |||
| capability.</t> | capability.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| POST /updates/cdnifci HTTP/1.1 | POST /updates/cdnifci HTTP/1.1 | |||
| Host: alto.example.com | Host: alto.example.com | |||
| Accept: text/event-stream,application/alto-error+json | Accept: text/event-stream,application/alto-error+json | |||
| Content-Type: application/alto-updatestreamparams+json | Content-Type: application/alto-updatestreamparams+json | |||
| Content-Length: 185 | Content-Length: 185 | |||
| { | { | |||
| "add": { | "add": { | |||
| skipping to change at line 978 ¶ | skipping to change at line 957 ¶ | |||
| data: "path": | data: "path": | |||
| data: "/cdni-advertisement/capabilities-with-footprints | data: "/cdni-advertisement/capabilities-with-footprints | |||
| /1/footprints/0/footprint-value/1" | /1/footprints/0/footprint-value/1" | |||
| data: } | data: } | |||
| data: ] | data: ] | |||
| ]]></artwork> | ]]></artwork> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="filteredcdnifci" numbered="true" toc="default"> | <section anchor="filteredcdnifci" numbered="true" toc="default"> | |||
| <name>Filtered CDNI Advertisement using CDNI Capabilities</name> | <name>Filtered CDNI Advertisement Using CDNI Capabilities</name> | |||
| <t><xref target="cdnifci" format="default">Sections 3</xref> and <xref tar | <t>Sections <xref target="cdnifci" format="counter"/> and <xref target="cd | |||
| get="cdnifcinetworkmap" format="default">4</xref> describe CDNI Advertisement Se | nifcinetworkmap" format="counter"/> describe the CDNI Advertisement Service | |||
| rvice | that can be used to enable a uCDN to get capabilities with footprint | |||
| which can be used to enable a uCDN to get capabilities with footprint | ||||
| restrictions from dCDNs. However, since always getting full CDNI Advertisement | restrictions from dCDNs. However, since always getting full CDNI Advertisement | |||
| resources from dCDNs is inefficient, this document introduces a new service | resources from dCDNs is inefficient, this document introduces a new service | |||
| named "Filtered CDNI Advertisement Service", to allow a client to filter a CDNI | named "Filtered CDNI Advertisement Service" to allow a client to filter a CDNI | |||
| Advertisement resource using a client-given set of CDNI capabilities. For each | Advertisement resource using a client-given set of CDNI capabilities. For each | |||
| entry of the CDNI Advertisement response, an entry will only be returned to the | entry of the CDNI Advertisement response, an entry will only be returned to the | |||
| client if it contains at least one of the client given CDNI capabilities. The | client if it contains at least one of the client-given CDNI capabilities. The | |||
| relationship between a filtered CDNI Advertisement resource and a CDNI | relationship between a filtered CDNI Advertisement resource and a CDNI | |||
| Advertisement resource is similar to the relationship between a filtered | Advertisement resource is similar to the relationship between a filtered | |||
| network/cost map and a network/cost map.</t> | network/cost map and a network/cost map.</t> | |||
| <section anchor="media-type" numbered="true" toc="default"> | <section anchor="media-type" numbered="true" toc="default"> | |||
| <name>Media Type</name> | <name>Media Type</name> | |||
| <t>A filtered CDNI Advertisement resource uses the same media type defin ed for the | <t>A filtered CDNI Advertisement resource uses the same media type defin ed for the | |||
| CDNI Advertisement resource in <xref target="cdnifcimediatype" format="default"/ >: "application/alto-cdni+json".</t> | CDNI Advertisement resource in <xref target="cdnifcimediatype" format="default"/ >: "application/alto-cdni+json".</t> | |||
| </section> | </section> | |||
| <section anchor="http-method" numbered="true" toc="default"> | <section anchor="http-method" numbered="true" toc="default"> | |||
| <name>HTTP Method</name> | <name>HTTP Method</name> | |||
| <t>A filtered CDNI Advertisement resource is requested using the HTTP PO ST method.</t> | <t>A filtered CDNI Advertisement resource is requested using the HTTP PO ST method.</t> | |||
| </section> | </section> | |||
| <section anchor="filteredcdnifciinputs" numbered="true" toc="default"> | <section anchor="filteredcdnifciinputs" numbered="true" toc="default"> | |||
| <name>Accept Input Parameters</name> | <name>Accept Input Parameters</name> | |||
| <t>The input parameters for a filtered CDNI Advertisement resource are s upplied in | <t>The input parameters for a filtered CDNI Advertisement resource are s upplied in | |||
| the entity body of the POST request. This document specifies the input | the entity body of the POST request. This document specifies the input | |||
| parameters with a data format indicated by the media type | parameters with a data format indicated by the media type | |||
| "application/alto-cdnifilter+json" which is a JSON object of type | "application/alto-cdnifilter+json", which is a JSON object of type | |||
| ReqFilteredCDNIAdvertisement, where:</t> | ReqFilteredCDNIAdvertisement where:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| object { | object { | |||
| JSONString capability-type; | JSONString capability-type; | |||
| JSONValue capability-value; | JSONValue capability-value; | |||
| } CDNICapability; | } CDNICapability; | |||
| object { | object { | |||
| CDNICapability cdni-capabilities<0..*>; | CDNICapability cdni-capabilities<0..*>; | |||
| } ReqFilteredCDNIAdvertisement; | } ReqFilteredCDNIAdvertisement; | |||
| ]]></sourcecode> | ||||
| ]]></artwork> | ||||
| <t>with fields:</t> | <t>with fields:</t> | |||
| <dl> | <dl> | |||
| <dt> | <dt> | |||
| capability-type: </dt> | capability-type: </dt> | |||
| <dd> | <dd> | |||
| <t>The same as Base Advertisement Object's capability-type defined i | <t>The same as Base Advertisement Object's "capability-type" defined | |||
| n Section 5.1 | in | |||
| of <xref target="RFC8008" format="default"/>.</t> | <xref target="RFC8008" section="5.1" sectionFormat="of" format="default"/>.</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| capability-value: </dt> | capability-value: </dt> | |||
| <dd> | <dd> | |||
| <t>The same as Base Advertisement Object's capability-value defined | <t>The same as Base Advertisement Object's "capability-value" define | |||
| in Section | d in | |||
| 5.1 of <xref target="RFC8008" format="default"/>.</t> | <xref target="RFC8008" section="5.1" sectionFormat="of" format="default"/>.</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| cdni-capabilities: </dt> | cdni-capabilities: </dt> | |||
| <dd> | <dd> | |||
| <t>A list of CDNI capabilities defined in Section 5.1 of <xref targe t="RFC8008" format="default"/> for which | <t>A list of CDNI capabilities defined in <xref target="RFC8008" sec tion="5.1" sectionFormat="of" format="default"/> for which | |||
| footprints are to be returned. If this list is empty, the ALTO | footprints are to be returned. If this list is empty, the ALTO | |||
| server MUST interpret it as a request for the full CDNI Advertisement | server <bcp14>MUST</bcp14> interpret it as a request for the full CDNI Advertise | |||
| resource. The ALTO server MUST interpret entries appearing in this list multiple | ment | |||
| resource. The ALTO server <bcp14>MUST</bcp14> interpret entries appearing in thi | ||||
| s list multiple | ||||
| times as if they appeared only once. If the ALTO server does not define any | times as if they appeared only once. If the ALTO server does not define any | |||
| footprints for a CDNI capability, it MUST omit this capability from the | footprints for a CDNI capability, it <bcp14>MUST</bcp14> omit this capability fr om the | |||
| response.</t> | response.</t> | |||
| </dd> | </dd> | |||
| </dl> | </dl> | |||
| </section> | </section> | |||
| <section anchor="capabilities" numbered="true" toc="default"> | <section anchor="capabilities" numbered="true" toc="default"> | |||
| <name>Capabilities</name> | <name>Capabilities</name> | |||
| <t>There are no applicable capabilities.</t> | <t>There are no applicable capabilities.</t> | |||
| </section> | </section> | |||
| <section anchor="uses" numbered="true" toc="default"> | <section anchor="uses" numbered="true" toc="default"> | |||
| <name>Uses</name> | <name>Uses</name> | |||
| <t>Same to the "uses" field of the CDNI Advertisement resource (see | <t> | |||
| <xref target="cdnifciuses" format="default"/>).</t> | The same rules as for the "uses" field of the CDNI Advertisement | |||
| resource apply (see <xref target="cdnifciuses" format="default"/>).</t> | ||||
| </section> | </section> | |||
| <section anchor="response" numbered="true" toc="default"> | <section anchor="response" numbered="true" toc="default"> | |||
| <name>Response</name> | <name>Response</name> | |||
| <t>If the request is invalid, the response MUST indicate an error, using | <t>If the request is invalid, the response <bcp14>MUST</bcp14> indicate | |||
| ALTO | an error using ALTO | |||
| protocol error handling specified in Section 8.5 of <xref target="RFC7285" forma | Protocol error handling specified in <xref target="RFC7285" section="8.5" sectio | |||
| t="default"/>.</t> | nFormat="of" format="default"/>.</t> | |||
| <t>Specifically, a filtered CDNI Advertisement request is invalid if:</t > | <t>Specifically, a filtered CDNI Advertisement request is invalid if:</t > | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>the value of "capability-type" is null;</li> | <li>the value of "capability-type" is null;</li> | |||
| <li>the value of "capability-value" is null;</li> | <li>the value of "capability-value" is null; or</li> | |||
| <li>the value of "capability-value" is inconsistent with "capability-t ype".</li> | <li>the value of "capability-value" is inconsistent with "capability-t ype".</li> | |||
| </ul> | </ul> | |||
| <t>When a request is invalid, the ALTO server MUST return an | <t>When a request is invalid, the ALTO server <bcp14>MUST</bcp14> return | |||
| "E_INVALID_FIELD_VALUE" error defined in Section 8.5.2 of <xref target="RFC7285" | an | |||
| format="default"/>, and the | "E_INVALID_FIELD_VALUE" error defined in <xref target="RFC7285" section="8.5.2" | |||
| "value" field of the error message SHOULD indicate this CDNI capability.</t> | sectionFormat="of" format="default"/>, and the | |||
| "value" field of the error message <bcp14>SHOULD</bcp14> indicate this CDNI capa | ||||
| bility.</t> | ||||
| <t>The ALTO server returns a filtered CDNI Advertisement resource for a valid | <t>The ALTO server returns a filtered CDNI Advertisement resource for a valid | |||
| request. The format of a filtered CDNI Advertisement resource is the same as a | request. The format of a filtered CDNI Advertisement resource is the same as a | |||
| full CDNI Advertisement resource (See <xref target="cdnifciencoding" format="def | full CDNI Advertisement resource (see <xref target="cdnifciencoding" format="def | |||
| ault"/>.)</t> | ault"/>).</t> | |||
| <!-- | ||||
| The returned CDNI Advertisement resource MUST contain only | ||||
| BaseAdvertisementObject objects whose CDNI capability object is the superset of | ||||
| one of CDNI capability object in "cdni-fci-capabilities". Specifically, that a | ||||
| CDNI capability object A is the superset of another CDNI capability object B | ||||
| means that these two CDNI capability objects have the same capability type and | ||||
| mandatory properties in capability value of A MUST include mandatory properties | ||||
| in capability value of B semantically. | ||||
| <t>The returned filtered CDNI Advertisement resource MUST contain all the | <t>The returned filtered CDNI Advertisement resource <bcp14>MUST</bcp14> contain | |||
| BaseAdvertisementObject objects satisfying the following condition: The CDNI | all the | |||
| capability object of each included BaseAdvertisementObject object MUST follow | BaseAdvertisementObject objects satisfying the following condition: the CDNI | |||
| capability object of each included BaseAdvertisementObject object <bcp14>MUST</b | ||||
| cp14> follow | ||||
| two constraints:</t> | two constraints:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>The "cdni-capabilities" field of the input includes a CDNI capabil ity object | <li>The "cdni-capabilities" field of the input includes a CDNI capabil ity object | |||
| X having the same capability type as it.</li> | X having the same "capability-type" as it.</li> | |||
| <li>All the mandatory properties in its capability value is a superset | <li>All the mandatory properties in its "capability-value" is a supers | |||
| of | et of | |||
| mandatory properties in capability value of X semantically.</li> | mandatory properties in "capability-value" of X semantically.</li> | |||
| </ul> | </ul> | |||
| <t>See <xref target="filteredcdnifciexample" format="default"/> for a co ncrete example.</t> | <t>See <xref target="filteredcdnifciexample" format="default"/> for a co ncrete example.</t> | |||
| <t>The version tag included in the "vtag" field of the response MUST cor respond to | <t>The version tag included in the "vtag" field of the response <bcp14>M UST</bcp14> correspond to | |||
| the full CDNI Advertisement resource from which the filtered CDNI Advertisement | the full CDNI Advertisement resource from which the filtered CDNI Advertisement | |||
| resource is provided. This ensures that a single, canonical version tag is used | resource is provided. This ensures that a single, canonical version tag is used | |||
| independently of any filtering that is requested by an ALTO client.</t> | independently of any filtering that is requested by an ALTO client.</t> | |||
| </section> | </section> | |||
| <section anchor="examples-1" numbered="true" toc="default"> | <section anchor="examples-1" numbered="true" toc="default"> | |||
| <name>Examples</name> | <name>Examples</name> | |||
| <t>The following examples use the same IRD example as in <xref target="I RDexample" format="default"/>.</t> | <t>The following examples use the same IRD example as in <xref target="I RDexample" format="default"/>.</t> | |||
| <section anchor="filteredcdnifciexample" numbered="true" toc="default"> | <section anchor="filteredcdnifciexample" numbered="true" toc="default"> | |||
| <name>A Basic Example</name> | <name>A Basic Example</name> | |||
| <t>This example filters the full CDNI Advertisement resource in | <t>This example filters the full CDNI Advertisement resource in | |||
| <xref target="fullcdnifciexample" format="default"/> by selecting only the http/ | <xref target="fullcdnifciexample" format="default"/> by selecting only the "http | |||
| 1.1 delivery protocol | /1.1" delivery protocol | |||
| capability. Only the second BaseAdvertisementObjects in the full resource will | capability. Only the second BaseAdvertisementObject in the full resource will | |||
| be returned because the second object's capability is http/1.1 and https/1.1 | be returned because the second object's capability is "http/1.1" and "https/1.1" | |||
| delivery protocols which is the superset of https/1.1 delivery protocol.</t> | delivery protocols, which is the superset of "https/1.1" delivery protocol.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| POST /cdnifci/filtered HTTP/1.1 | POST /cdnifci/filtered HTTP/1.1 | |||
| Host: alto.example.com | Host: alto.example.com | |||
| Accept: application/alto-cdni+json | Accept: application/alto-cdni+json | |||
| Content-Type: application/cdnifilter+json | Content-Type: application/cdnifilter+json | |||
| Content-Length: 176 | Content-Length: 176 | |||
| { | { | |||
| "cdni-capabilities": [ | "cdni-capabilities": [ | |||
| { | { | |||
| skipping to change at line 1217 ¶ | skipping to change at line 1187 ¶ | |||
| data: "/cdni-advertisement/capabilities-with-footprints | data: "/cdni-advertisement/capabilities-with-footprints | |||
| /0/footprints/0/footprint-value/-", | /0/footprints/0/footprint-value/-", | |||
| data: "value": "192.0.2.0/24" | data: "value": "192.0.2.0/24" | |||
| data: } | data: } | |||
| data: ] | data: ] | |||
| ]]></artwork> | ]]></artwork> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="unifiedpropertymap" numbered="true" toc="default"> | <section anchor="unifiedpropertymap" numbered="true" toc="default"> | |||
| <name>Query Footprint Properties using ALTO Property Map Service</name> | <name>Query Footprint Properties Using ALTO Property Map Service</name> | |||
| <t>Besides the requirement of retrieving footprints of given capabilities, another | <t>Besides the requirement of retrieving footprints of given capabilities, another | |||
| common requirement for uCDN is to query CDNI capabilities of given footprints.</ t> | common requirement for uCDN is to query CDNI capabilities of given footprints.</ t> | |||
| <t>Considering each footprint as an entity with properties including CDNI | <t>Considering each footprint as an entity with properties including CDNI | |||
| capabilities, a natural way to satisfy this requirement is to use the ALTO | capabilities, a natural way to satisfy this requirement is to use the ALTO | |||
| property map as defined in <xref target="I-D.ietf-alto-unified-props-new" format ="default"/>. This section | property map as defined in <xref target="RFC9240" format="default"/>. This secti on | |||
| describes how ALTO clients look up properties for individual footprints. First, | describes how ALTO clients look up properties for individual footprints. First, | |||
| it describes how to represent footprint objects as entities in the ALTO property | it describes how to represent footprint objects as entities in the ALTO property | |||
| map. Then it describes how to represent footprint capabilities as entity | map. Then it describes how to represent footprint capabilities as entity | |||
| properties in the ALTO property map. Finally, it provides examples of the full | properties in the ALTO property map. Finally, it provides examples of the full | |||
| property map and the filtered property map supporting CDNI capabilities, and | property map and the filtered property map supporting CDNI capabilities, and | |||
| their incremental updates.</t> | their incremental updates.</t> | |||
| <section anchor="footprinttoentities" numbered="true" toc="default"> | <section anchor="footprinttoentities" numbered="true" toc="default"> | |||
| <name>Representing Footprint Objects as Property Map Entities</name> | <name>Representing Footprint Objects as Property Map Entities</name> | |||
| <t>A footprint object has two properties: footprint-type and footprint-v | <t>A footprint object has two properties: "footprint-type" and "footprin | |||
| alue. A | t-value". A | |||
| footprint-value is an array of footprint values conforming to the specification | "footprint-value" is an array of footprint values conforming to the specificatio | |||
| n | ||||
| associated with the registered footprint type ("ipv4cidr", "ipv6cidr", "asn", | associated with the registered footprint type ("ipv4cidr", "ipv6cidr", "asn", | |||
| "countrycode", and "altopid"). Considering each ALTO entity defined in | "countrycode", and "altopid"). Considering each ALTO entity defined in | |||
| <xref target="I-D.ietf-alto-unified-props-new" format="default"/> also has two p roperties: entity domain type | <xref target="RFC9240" format="default"/> also has two properties: entity domain type | |||
| and domain-specific identifier, a straightforward approach to represent a | and domain-specific identifier, a straightforward approach to represent a | |||
| footprint as an ALTO entity is to represent its footprint-type as an entity | footprint as an ALTO entity is to represent its "footprint-type" as an entity | |||
| domain type, and its footprint value as a domain-specific identifier.</t> | domain type, and its footprint value as a domain-specific identifier.</t> | |||
| <t>Each existing footprint type can be represented as an entity domain t ype as | <t>Each existing footprint type can be represented as an entity domain t ype as | |||
| follows:</t> | follows:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>According to <xref target="I-D.ietf-alto-unified-props-new" format ="default"/>, "ipv4" and "ipv6" are two | <li>According to <xref target="RFC9240" format="default"/>, "ipv4" and "ipv6" are two | |||
| predefined entity domain types, which can be used to represent "ipv4cidr" and | predefined entity domain types, which can be used to represent "ipv4cidr" and | |||
| "ipv6cidr" footprints respectively. Note that both "ipv4" and "ipv6" domains | "ipv6cidr" footprints respectively. Note that both "ipv4" and "ipv6" domains | |||
| can include not only hierarchical addresses but also individual addresses. | can include not only hierarchical addresses but also individual addresses. | |||
| Therefore, a "ipv4cidr" or "ipv6cidr" footprint with the longest prefix can | Therefore, a "ipv4cidr" or "ipv6cidr" footprint with the longest prefix can | |||
| also be represented by an individual address entity. When the uCDN receives a | also be represented by an individual address entity. When the uCDN receives a | |||
| property map with individual addresses in an "ipv4" or "ipv6" domain, it can | property map with individual addresses in an "ipv4" or "ipv6" domain, it can | |||
| translate them as corresponding "ipv4cidr" or "ipv6cidr" footprints with the | translate them as corresponding "ipv4cidr" or "ipv6cidr" footprints with the | |||
| longest prefix.</li> | longest prefix.</li> | |||
| <li>"pid" is also a predefined entity domain type, which can be used t o represent | <li>"pid" is also a predefined entity domain type, which can be used t o represent | |||
| "altopid" footprints. Note that "pid" is a resource-specific entity domain. To | "altopid" footprints. Note that "pid" is a resource-specific entity domain. To | |||
| represent an "altopid" footprint, the specifying information resource of the | represent an "altopid" footprint, the specifying information resource of the | |||
| corresponding "pid" entity domain MUST be the dependent network map used by | corresponding "pid" entity domain <bcp14>MUST</bcp14> be the dependent network m ap used by | |||
| the CDNI Advertisement resource providing this "altopid" footprint.</li> | the CDNI Advertisement resource providing this "altopid" footprint.</li> | |||
| <li>However, no existing entity domain type can represent "asn" and "c ountrycode" | <li>However, no existing entity domain type can represent "asn" and "c ountrycode" | |||
| footprints. To represent footprint-type "asn" and "countrycode", this document | footprints. To represent footprint-type "asn" and "countrycode", this document | |||
| registers two new entity domains in <xref target="iana" format="default"/> in ad dition to the ones in | registers two new entity domains in <xref target="iana" format="default"/> in ad dition to the ones in | |||
| <xref target="I-D.ietf-alto-unified-props-new" format="default"/>.</li> | <xref target="RFC9240" format="default"/>.</li> | |||
| </ul> | </ul> | |||
| <t>Here is an example of representing a footprint object of "ipv4cidr" t ype as a | <t>Here is an example of representing a footprint object of "ipv4cidr" t ype as a | |||
| set of "ipv4" entities in the ALTO property map. The representation of the | set of "ipv4" entities in the ALTO property map. The representation of the | |||
| footprint object of "ipv6cidr" type is similar.</t> | footprint object of "ipv6cidr" type is similar.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| { "footprint-type": "ipv4cidr", | { "footprint-type": "ipv4cidr", | |||
| "footprint-value": ["192.0.2.0/24", "198.51.100.0/24"] | "footprint-value": ["192.0.2.0/24", "198.51.100.0/24"] | |||
| } --> "ipv4:192.0.2.0/24", "ipv4:198.51.100.0/24" | } --> "ipv4:192.0.2.0/24", "ipv4:198.51.100.0/24" | |||
| ]]></artwork> | ]]></artwork> | |||
| <t>And here is an example of corresponding footprint object of "ipv4cidr " type | <t>And here is an example of the corresponding footprint object of "ipv4 cidr" type | |||
| represented by an individual address in an "ipv4" domain in the ALTO property | represented by an individual address in an "ipv4" domain in the ALTO property | |||
| map. The translation of the entities in an "ipv6" domain is similar.</t> | map. The translation of the entities in an "ipv6" domain is similar.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| "ipv4:203.0.113.100" --> { | "ipv4:203.0.113.100" --> { | |||
| "footprint-type": "ipv4cidr", | "footprint-type": "ipv4cidr", | |||
| "footprint-value": ["203.0.113.100/32"] | "footprint-value": ["203.0.113.100/32"] | |||
| } | } | |||
| ]]></artwork> | ]]></artwork> | |||
| <section anchor="asn-domain" numbered="true" toc="default"> | <section anchor="asn-domain" numbered="true" toc="default"> | |||
| <name>ASN Domain</name> | <name>ASN Domain</name> | |||
| <t>The ASN domain associates property values with Autonomous Systems i n the | <t>The ASN domain associates property values with Autonomous Systems i n the | |||
| Internet.</t> | Internet.</t> | |||
| <section anchor="entity-domain-type" numbered="true" toc="default"> | <section anchor="entity-domain-type" numbered="true" toc="default"> | |||
| <name>Entity Domain Type</name> | <name>Entity Domain Type</name> | |||
| <t>The entity domain type of the ASN domain is "asn" (in lowercase). </t> | <t>The entity domain type of the ASN domain is "asn" (in lowercase). </t> | |||
| </section> | </section> | |||
| <section anchor="asn-entity-id" numbered="true" toc="default"> | <section anchor="asn-entity-id" numbered="true" toc="default"> | |||
| <name>Domain-Specific Entity Identifiers</name> | <name>Domain-Specific Entity Identifiers</name> | |||
| <t>The entity identifier of an entity in an ASN domain MUST be encod ed as a string | <t>The entity identifier of an entity in an ASN domain <bcp14>MUST</ bcp14> be encoded as a string | |||
| consisting of the characters "as" (in lowercase) followed by the ASN | consisting of the characters "as" (in lowercase) followed by the ASN | |||
| <xref target="RFC6793" format="default"/> as a decimal number without leading ze ros.</t> | <xref target="RFC6793" format="default"/> as a decimal number without leading ze ros.</t> | |||
| </section> | </section> | |||
| <section anchor="hierarchy-and-inheritance" numbered="true" toc="defau lt"> | <section anchor="hierarchy-and-inheritance" numbered="true" toc="defau lt"> | |||
| <name>Hierarchy and Inheritance</name> | <name>Hierarchy and Inheritance</name> | |||
| <t>There is no hierarchy or inheritance for properties associated wi th ASN.</t> | <t>There is no hierarchy or inheritance for properties associated wi th ASN.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="countrycode-domain" numbered="true" toc="default"> | <section anchor="countrycode-domain" numbered="true" toc="default"> | |||
| <name>COUNTRYCODE Domain</name> | <name>COUNTRYCODE Domain</name> | |||
| skipping to change at line 1319 ¶ | skipping to change at line 1289 ¶ | |||
| <section anchor="hierarchy-and-inheritance-1" numbered="true" toc="def ault"> | <section anchor="hierarchy-and-inheritance-1" numbered="true" toc="def ault"> | |||
| <name>Hierarchy and Inheritance</name> | <name>Hierarchy and Inheritance</name> | |||
| <t>There is no hierarchy or inheritance for properties associated wi th country | <t>There is no hierarchy or inheritance for properties associated wi th country | |||
| codes.</t> | codes.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="capabilitytoproperties" numbered="true" toc="default"> | <section anchor="capabilitytoproperties" numbered="true" toc="default"> | |||
| <name>Representing CDNI Capabilities as Property Map Entity Properties</ name> | <name>Representing CDNI Capabilities as Property Map Entity Properties</ name> | |||
| <t>This document defines a new entity property type called "cdni-capabil ities". An | <t>This document defines a new entity property type called "cdni-capabil ities". An | |||
| ALTO server can provide a property map resource mapping the "cdni-capablities" | ALTO server can provide a property map resource mapping the "cdni-capabilities" | |||
| entity property type for a CDNI Advertisement resource that it provides to an | entity property type for a CDNI Advertisement resource that it provides to an | |||
| "ipv4", "ipv6", "asn" or "countrycode" entity domain.</t> | "ipv4", "ipv6", "asn", or "countrycode" entity domain.</t> | |||
| <section anchor="defining-information-resource-media-type-for-property-t ype-cdni-capabilities" numbered="true" toc="default"> | <section anchor="defining-information-resource-media-type-for-property-t ype-cdni-capabilities" numbered="true" toc="default"> | |||
| <name>Defining Information Resource Media Type for Property Type cdni- capabilities</name> | <name>Defining Information Resource Media Type for Property Type cdni- capabilities</name> | |||
| <t>The entity property type "cdni-capabilities" allows defining resour ce-specific | <t>The entity property type "cdni-capabilities" allows defining resour ce-specific | |||
| entity properties. When resource-specific entity properties are defined with | entity properties. When resource-specific entity properties are defined with | |||
| entity property type "cdni-capabilities", the defining information resource for | entity property type "cdni-capabilities", the defining information resource for | |||
| a "cdni-capabilities" property MUST be a CDNI Advertisement resource provided by | a "cdni-capabilities" property <bcp14>MUST</bcp14> be a CDNI Advertisement resou rce provided by | |||
| the ALTO server. The media type of the defining information resource for a | the ALTO server. The media type of the defining information resource for a | |||
| "cdni-capabilities" property is therefore:</t> | "cdni-capabilities" property is therefore:</t> | |||
| <t>application/alto-cdni+json</t> | <t>application/alto-cdni+json</t> | |||
| </section> | </section> | |||
| <section anchor="intended-semantics-of-property-type-cdni-capabilities" numbered="true" toc="default"> | <section anchor="intended-semantics-of-property-type-cdni-capabilities" numbered="true" toc="default"> | |||
| <name>Intended Semantics of Property Type cdni-capabilities</name> | <name>Intended Semantics of Property Type cdni-capabilities</name> | |||
| <t>A "cdni-capabilities" property for an entity is to indicate all the CDNI | <t>The purpose of a "cdni-capabilities" property for an entity is to i ndicate all the CDNI | |||
| capabilities that a corresponding CDNI Advertisement resource provides for the | capabilities that a corresponding CDNI Advertisement resource provides for the | |||
| footprint represented by this entity. Thus, the value of a "cdni-capabilities" | footprint represented by this entity. Thus, the value of a "cdni-capabilities" | |||
| property MUST be a JSON array. Each element in a "cdni-capabilities" property | property <bcp14>MUST</bcp14> be a JSON array. Each element in a "cdni-capabiliti | |||
| MUST be an JSON object as format of CDNICapability (see | es" property | |||
| <bcp14>MUST</bcp14> be a JSON object in the format of CDNICapability (see | ||||
| <xref target="filteredcdnifciinputs" format="default"/>). The value of a "cdni-c apabilities" property for an | <xref target="filteredcdnifciinputs" format="default"/>). The value of a "cdni-c apabilities" property for an | |||
| "ipv4", "ipv6", "asn", "countrycode" or "altopid" entity MUST include all the | "ipv4", "ipv6", "asn", "countrycode", or "altopid" entity <bcp14>MUST</bcp14> in clude all the | |||
| CDNICapability objects satisfying the following conditions: (1) they are | CDNICapability objects satisfying the following conditions: (1) they are | |||
| provided by the defining CDNI Advertisement resource; and (2) the represented | provided by the defining CDNI Advertisement resource, and (2) the represented | |||
| footprint object of this entity is in their footprint restrictions.</t> | footprint object of this entity is in their footprint restrictions.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="examples-2" numbered="true" toc="default"> | <section anchor="examples-2" numbered="true" toc="default"> | |||
| <name>Examples</name> | <name>Examples</name> | |||
| <t>The following examples use the same IRD example given by <xref target ="IRDexample" format="default"/>.</t> | <t>The following examples use the same IRD example given by <xref target ="IRDexample" format="default"/>.</t> | |||
| <section anchor="property-map" numbered="true" toc="default"> | <section anchor="property-map" numbered="true" toc="default"> | |||
| <name>Property Map</name> | <name>Property Map</name> | |||
| <t>This example shows a full property map in which entities are footpr ints and | <t>This example shows a full property map in which entities are footpr ints and | |||
| entities' property is "cdni-capabilities".</t> | entities' property is "cdni-capabilities".</t> | |||
| skipping to change at line 1412 ¶ | skipping to change at line 1382 ¶ | |||
| { "capability-type": "FCI.DeliveryProtocol", | { "capability-type": "FCI.DeliveryProtocol", | |||
| "capability-value": { | "capability-value": { | |||
| "delivery-protocols": ["https/1.1", "http/1.1"]}}] | "delivery-protocols": ["https/1.1", "http/1.1"]}}] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></artwork> | |||
| </section> | </section> | |||
| <section anchor="filtered-property-map" numbered="true" toc="default"> | <section anchor="filtered-property-map" numbered="true" toc="default"> | |||
| <name>Filtered Property Map</name> | <name>Filtered Property Map</name> | |||
| <t>This example uses the filtered property map service to get "pid" an d | <t>This example uses the filtered property Map Service to get "pid" an d | |||
| "cdni-capabilities" properties for two footprints "ipv4:192.0.2.0/24" and | "cdni-capabilities" properties for two footprints "ipv4:192.0.2.0/24" and | |||
| "ipv6:2001:db8::/32".</t> | "ipv6:2001:db8::/32".</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| POST /propmap/lookup/cdnifci-pid HTTP/1.1 | POST /propmap/lookup/cdnifci-pid HTTP/1.1 | |||
| Host: alto.example.com | Host: alto.example.com | |||
| Content-Type: application/alto-propmapparams+json | Content-Type: application/alto-propmapparams+json | |||
| Accept: application/alto-propmap+json,application/alto-error+json | Accept: application/alto-propmap+json,application/alto-error+json | |||
| Content-Length: 181 | Content-Length: 181 | |||
| { | { | |||
| skipping to change at line 1531 ¶ | skipping to change at line 1501 ¶ | |||
| data: "path": "/meta/dependent-vtags/0/tag", | data: "path": "/meta/dependent-vtags/0/tag", | |||
| data: "value": "61b23185a50dc7b334577507e8f00ff8c3b409e4" | data: "value": "61b23185a50dc7b334577507e8f00ff8c3b409e4" | |||
| data: }, | data: }, | |||
| data: { "op": "replace", | data: { "op": "replace", | |||
| data: "path": | data: "path": | |||
| data: "/property-map/countrycode:fr/my-default-networkmap.pid", | data: "/property-map/countrycode:fr/my-default-networkmap.pid", | |||
| data: "value": "pid5" | data: "value": "pid5" | |||
| data: } | data: } | |||
| data: ] | data: ] | |||
| ]]></artwork> | ]]></artwork> | |||
| <!-- Skip header line --> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="iana" numbered="true" toc="default"> | <section anchor="iana" numbered="true" toc="default"> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <t>This document defines two new media types: "application/alto-cdni+json" , as | <t>This document defines two new media types: "application/alto-cdni+json" , as | |||
| described in <xref target="iana-cdni" format="default"/>, and "application/cdnif ilter+json", as described in | described in <xref target="iana-cdni" format="default"/>, and "application/cdnif ilter+json", as described in | |||
| <xref target="iana-cdnifilter" format="default"/>. It also defines a new CDNI me tadata footprint type | <xref target="iana-cdnifilter" format="default"/>. It also defines a new CDNI Me tadata Footprint Type | |||
| (<xref target="iana-footprint-type" format="default"/>), two new ALTO entity dom ain types | (<xref target="iana-footprint-type" format="default"/>), two new ALTO entity dom ain types | |||
| (<xref target="iana-entity-domain-type" format="default"/>), and a new ALTO enti ty property type | (<xref target="iana-entity-domain-type" format="default"/>), and a new ALTO enti ty property type | |||
| (<xref target="iana-entity-prop-type" format="default"/>).</t> | (<xref target="iana-entity-prop-type" format="default"/>).</t> | |||
| <section anchor="iana-cdni" numbered="true" toc="default"> | <section anchor="iana-cdni" numbered="true" toc="default"> | |||
| <name>application/alto-cdni+json Media Type</name> | <name>application/alto-cdni+json Media Type</name> | |||
| <dl newline="true"> | <dl newline="true"> | |||
| <dt> | <dt> | |||
| Type name: </dt> | Type name: </dt> | |||
| <dd> | <dd> | |||
| <t>application</t> | <t>application</t> | |||
| skipping to change at line 1577 ¶ | skipping to change at line 1546 ¶ | |||
| <dt> | <dt> | |||
| Encoding considerations: </dt> | Encoding considerations: </dt> | |||
| <dd> | <dd> | |||
| <t>Encoding considerations are identical to those specified for the | <t>Encoding considerations are identical to those specified for the | |||
| "application/json" media type. See <xref target="RFC8259" format="default"/>.</t > | "application/json" media type. See <xref target="RFC8259" format="default"/>.</t > | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Security considerations: </dt> | Security considerations: </dt> | |||
| <dd> | <dd> | |||
| <t>Security considerations related to the generation and consumption of ALTO | <t>Security considerations related to the generation and consumption of ALTO | |||
| Protocol messages are discussed in Section 15 of <xref target="RFC7285" format=" default"/>.</t> | Protocol messages are discussed in <xref target="RFC7285" section="15" sectionFo rmat="of" format="default"/>.</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Interoperability considerations: </dt> | Interoperability considerations: </dt> | |||
| <dd> | <dd> | |||
| <t>N/A</t> | <t>N/A</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Published specification: </dt> | Published specification: </dt> | |||
| <dd> | <dd> | |||
| <t><xref target="cdnifci" format="default"/> of RFCthis</t> | <t><xref target="cdnifci" format="default"/> of RFC 9241</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Applications that use this media type: </dt> | Applications that use this media type: </dt> | |||
| <dd> | <dd> | |||
| <t>ALTO servers and ALTO clients <xref target="RFC7285" format="defa ult"/> either stand alone or are embedded within other | <t>ALTO servers and ALTO clients <xref target="RFC7285" format="defa ult"/> either stand alone or are embedded within other | |||
| applications that provides CDNI interfaces for uCDNs or dCDNs.</t> | applications that provide CDNI interfaces for uCDNs or dCDNs.</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Fragment identifier considerations: </dt> | Fragment identifier considerations: </dt> | |||
| <dd> | <dd> | |||
| <t>N/A</t> | <t>N/A</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Additional information: </dt> | Additional information: </dt> | |||
| <dd> | <dd> | |||
| <dl> | <dl> | |||
| skipping to change at line 1644 ¶ | skipping to change at line 1613 ¶ | |||
| <t>N/A</t> | <t>N/A</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Author: </dt> | Author: </dt> | |||
| <dd> | <dd> | |||
| <t>See Authors' Addresses section.</t> | <t>See Authors' Addresses section.</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Change controller: </dt> | Change controller: </dt> | |||
| <dd> | <dd> | |||
| <t>Internet Engineering Task Force (mailto:iesg@ietf.org).</t> | <t>Internet Engineering Task Force (iesg@ietf.org)</t> | |||
| </dd> | </dd> | |||
| </dl> | </dl> | |||
| </section> | </section> | |||
| <section anchor="iana-cdnifilter" numbered="true" toc="default"> | <section anchor="iana-cdnifilter" numbered="true" toc="default"> | |||
| <name>application/alto-cdnifilter+json Media Type</name> | <name>application/alto-cdnifilter+json Media Type</name> | |||
| <dl newline="true"> | <dl newline="true"> | |||
| <dt> | <dt> | |||
| Type name: </dt> | Type name: </dt> | |||
| <dd> | <dd> | |||
| <t>application</t> | <t>application</t> | |||
| skipping to change at line 1681 ¶ | skipping to change at line 1650 ¶ | |||
| <dt> | <dt> | |||
| Encoding considerations: </dt> | Encoding considerations: </dt> | |||
| <dd> | <dd> | |||
| <t>Encoding considerations are identical to those specified for the | <t>Encoding considerations are identical to those specified for the | |||
| "application/json" media type. See <xref target="RFC8259" format="default"/>.</t > | "application/json" media type. See <xref target="RFC8259" format="default"/>.</t > | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Security considerations: </dt> | Security considerations: </dt> | |||
| <dd> | <dd> | |||
| <t>Security considerations related to the generation and consumption of ALTO | <t>Security considerations related to the generation and consumption of ALTO | |||
| Protocol messages are discussed in Section 15 of <xref target="RFC7285" format=" default"/>.</t> | Protocol messages are discussed in <xref target="RFC7285" section="15" sectionFo rmat="of" format="default"/>.</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Interoperability considerations: </dt> | Interoperability considerations: </dt> | |||
| <dd> | <dd> | |||
| <t>N/A</t> | <t>N/A</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Published specification: </dt> | Published specification: </dt> | |||
| <dd> | <dd> | |||
| <t><xref target="filteredcdnifci" format="default"/> of RFCthis</t> | <t><xref target="filteredcdnifci" format="default"/> of RFC 9241</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Applications that use this media type: </dt> | Applications that use this media type: </dt> | |||
| <dd> | <dd> | |||
| <t>ALTO servers and ALTO clients <xref target="RFC7285" format="defa ult"/> either stand alone or are embedded | <t>ALTO servers and ALTO clients <xref target="RFC7285" format="defa ult"/> either stand alone or are embedded | |||
| within other applications that provides CDNI interfaces for uCDNs or dCDNs | within other applications that provide CDNI interfaces for uCDNs or dCDNs | |||
| and supports CDNI capability-based filtering.</t> | and supports CDNI capability-based filtering.</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Fragment identifier considerations: </dt> | Fragment identifier considerations: </dt> | |||
| <dd> | <dd> | |||
| <t>N/A</t> | <t>N/A</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Additional information: </dt> | Additional information: </dt> | |||
| <dd> | <dd> | |||
| skipping to change at line 1749 ¶ | skipping to change at line 1718 ¶ | |||
| <t>N/A</t> | <t>N/A</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Author: </dt> | Author: </dt> | |||
| <dd> | <dd> | |||
| <t>See Authors' Addresses section.</t> | <t>See Authors' Addresses section.</t> | |||
| </dd> | </dd> | |||
| <dt> | <dt> | |||
| Change controller: </dt> | Change controller: </dt> | |||
| <dd> | <dd> | |||
| <t>Internet Engineering Task Force (mailto:iesg@ietf.org).</t> | <t>Internet Engineering Task Force (iesg@ietf.org)</t> | |||
| </dd> | </dd> | |||
| </dl> | </dl> | |||
| </section> | </section> | |||
| <section anchor="iana-footprint-type" numbered="true" toc="default"> | <section anchor="iana-footprint-type" numbered="true" toc="default"> | |||
| <name>CDNI Metadata Footprint Type Registry</name> | <name>CDNI Metadata Footprint Types Registry</name> | |||
| <t>This document updates the CDNI Metadata Footprint Types Registry crea | <t>This document updates the "CDNI Metadata Footprint Types" registry cr | |||
| ted by | eated by | |||
| Section 7.2 of <xref target="RFC8006" format="default"/>. A new footprint type i | <xref target="RFC8006" section="7.2" sectionFormat="of" format="default"/>. A ne | |||
| s to be registered, listed in | w footprint type, which is listed in | |||
| <xref target="tbl_footprint-type" format="default"/>.</t> | <xref target="tbl_footprint-type" format="default"/>, has been registered.</t> | |||
| <table anchor="tbl_footprint-type" align="center"> | <table anchor="tbl_footprint-type" align="center"> | |||
| <name>CDNI Metadata Footprint Type</name> | <name>CDNI Metadata Footprint Type</name> | |||
| <thead> | <thead> | |||
| <tr> | <tr> | |||
| <th align="left">Footprint Type</th> | <th align="left">Footprint Type</th> | |||
| <th align="left">Description</th> | <th align="left">Description</th> | |||
| <th align="left">Specification</th> | <th align="left">Reference</th> | |||
| </tr> | </tr> | |||
| </thead> | </thead> | |||
| <tbody> | <tbody> | |||
| <tr> | <tr> | |||
| <td align="left">altopid</td> | <td align="left">altopid</td> | |||
| <td align="left">A list of PID names</td> | <td align="left">A list of PID names</td> | |||
| <td align="left"> | <td align="left"> | |||
| <xref target="cdnifcinetworkmap" format="default"/> of RFCthis</ td> | RFC 9241, <xref target="cdnifcinetworkmap" format="default"/></t d> | |||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| <t>[RFC Editor: Please replace RFCthis with the published RFC number for | ||||
| this | ||||
| document.]</t> | ||||
| </section> | </section> | |||
| <section anchor="iana-entity-domain-type" numbered="true" toc="default"> | <section anchor="iana-entity-domain-type" numbered="true" toc="default"> | |||
| <name>ALTO Entity Domain Type Registry</name> | <name>ALTO Entity Domain Types Registry</name> | |||
| <t>This document updates the ALTO Entity Domain Type Registry created by | <t>This document updates the "ALTO Entity Domain Types" registry created | |||
| Section | by | |||
| 11.2 of <xref target="I-D.ietf-alto-unified-props-new" format="default"/>. Two n | <xref target="RFC9240" section="11.2" sectionFormat="of" format="default"/>. Two | |||
| ew entity domain types are to | new entity domain types, | |||
| be registered, listed in <xref target="tbl_entity-domain" format="default"/>.</t | which are listed in <xref target="tbl_entity-domain" format="default"/>, have be | |||
| > | en registered.</t> | |||
| <table anchor="tbl_entity-domain" align="center"> | <table anchor="tbl_entity-domain" align="center"> | |||
| <name>Additional ALTO Entity Domain Types</name> | <name>Additional ALTO Entity Domain Types</name> | |||
| <thead> | <thead> | |||
| <tr> | <tr> | |||
| <th align="left">Identifier</th> | <th align="left">Identifier</th> | |||
| <th align="left">Entity Address Encoding</th> | <th align="left">Entity Identifier Encoding</th> | |||
| <th align="left">Hierarchy & Inheritance</th> | <th align="left">Hierarchy and Inheritance</th> | |||
| <th align="left">Media Type of Defining Resource</th> | <th align="left">Media Type of Defining Resource</th> | |||
| <th align="left">Mapping to ALTO Address Type</th> | <th align="left">Mapping to ALTO Address Type</th> | |||
| </tr> | </tr> | |||
| </thead> | </thead> | |||
| <tbody> | <tbody> | |||
| <tr> | <tr> | |||
| <td align="left">asn</td> | <td align="left">asn</td> | |||
| <td align="left">See <xref target="asn-entity-id" format="default" /> of RFCthis</td> | <td align="left">See RFC 9241, <xref target="asn-entity-id" format ="default"/></td> | |||
| <td align="left">None</td> | <td align="left">None</td> | |||
| <td align="left">None</td> | <td align="left">None</td> | |||
| <td align="left">false</td> | <td align="left">false</td> | |||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="left">countrycode</td> | <td align="left">countrycode</td> | |||
| <td align="left">See <xref target="countrycode-entity-id" format=" default"/> of RFCthis</td> | <td align="left">See RFC 9241, <xref target="countrycode-entity-id " format="default"/></td> | |||
| <td align="left">None</td> | <td align="left">None</td> | |||
| <td align="left">None</td> | <td align="left">None</td> | |||
| <td align="left">false</td> | <td align="left">false</td> | |||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| <t>[RFC Editor: Please replace RFCthis with the published RFC number for | ||||
| this | ||||
| document.]</t> | ||||
| </section> | </section> | |||
| <section anchor="iana-entity-prop-type" numbered="true" toc="default"> | <section anchor="iana-entity-prop-type" numbered="true" toc="default"> | |||
| <name>ALTO Entity Property Type Registry</name> | <name>ALTO Entity Property Types Registry</name> | |||
| <t>This document updates the ALTO Entity Property Type Registry created | <t>This document updates the "ALTO Entity Property Types" registry creat | |||
| by Section | ed by | |||
| 11.3 of <xref target="I-D.ietf-alto-unified-props-new" format="default"/>. A new | <xref target="RFC9240" section="11.3" sectionFormat="of" format="default"/>. A n | |||
| entity property type is to | ew entity property type, | |||
| be registered, listed in <xref target="tbl_prop-type-register" format="default"/ | which is listed in <xref target="tbl_prop-type-register" format="default"/>, has | |||
| >.</t> | been registered.</t> | |||
| <table anchor="tbl_prop-type-register" align="center"> | <table anchor="tbl_prop-type-register" align="center"> | |||
| <name>Additional ALTO Entity Property Type</name> | <name>Additional ALTO Entity Property Type</name> | |||
| <thead> | <thead> | |||
| <tr> | <tr> | |||
| <th align="left">Identifier</th> | <th align="left">Identifier</th> | |||
| <th align="left">Intended Semantics</th> | <th align="left">Intended Semantics</th> | |||
| <th align="left">Media Type of Defining Resource</th> | <th align="left">Media Type of Defining Resource</th> | |||
| </tr> | </tr> | |||
| </thead> | </thead> | |||
| <tbody> | <tbody> | |||
| <tr> | <tr> | |||
| <td align="left">cdni-capabilities</td> | <td align="left">cdni-capabilities</td> | |||
| <td align="left"> | <td align="left"> | |||
| <xref target="capabilitytoproperties" format="default"/> of RFCt his</td> | See RFC 9241, <xref target="capabilitytoproperties" format="defa ult"/></td> | |||
| <td align="left">application/alto-cdni+json</td> | <td align="left">application/alto-cdni+json</td> | |||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| <t>[RFC Editor: Please replace RFCthis with the published RFC number for | ||||
| this | ||||
| document.]</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="security" numbered="true" toc="default"> | <section anchor="security" numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>As an extension of the base ALTO protocol <xref target="RFC7285" format | <t>As an extension of the base ALTO Protocol <xref target="RFC7285" format | |||
| ="default"/>, this document fits into | ="default"/>, this document fits into | |||
| the architecture of the base protocol. And hence Security Considerations of the | the architecture of the base protocol, and hence Security Considerations of the | |||
| base protocol (Section 15 of <xref target="RFC7285" format="default"/>) fully ap | base protocol (<xref target="RFC7285" section="15" sectionFormat="of" format="de | |||
| ply when this extension is | fault"/>) fully apply when this extension is | |||
| provided by an ALTO server.</t> | provided by an ALTO server.</t> | |||
| <t>In the context of CDNI Advertisement, the following security risk scena rios | <t>In the context of CDNI Advertisement, the following security risk scena rios | |||
| should be considered:</t> | should be considered:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>For authenticity and integrity of ALTO information, an attacker may | <li>Authenticity and integrity of ALTO information: an attacker may disg | |||
| disguise | uise | |||
| itself as an ALTO server for a dCDN (e.g., by starting a man-in-the-middle | itself as an ALTO server for a dCDN (e.g., by starting a on-path | |||
| attack), and provide false capabilities and footprints to a uCDN using the | attack) and provide false capabilities and footprints to a uCDN using the | |||
| CDNI Advertisement service. Such false information may lead a uCDN to (1) | CDNI Advertisement Service. Such false information may lead a uCDN to (1) | |||
| select an incorrect dCDN to serve user requests, or (2) skip uCDNs in good | select an incorrect dCDN to serve user requests or (2) skip uCDNs in good | |||
| conditions. To address this risk, protection strategies in Section 15.1.2 of | conditions. To address this risk, protection strategies in | |||
| <xref target="RFC7285" format="default"/> can be applied.</li> | <xref target="RFC7285" section="15.1.2" sectionFormat="of" format="default"/> ca | |||
| <li>For potential undesirable guidance from authenticated ALTO informati | n be applied.</li> | |||
| on, a dCDN | <li>Potential undesirable guidance from authenticated ALTO information: | |||
| a dCDN | ||||
| can provide a uCDN with limited capabilities and smaller footprint coverage so | can provide a uCDN with limited capabilities and smaller footprint coverage so | |||
| that the dCDN can avoid transferring traffic for a uCDN which they should have | that the dCDN can avoid transferring traffic for a uCDN that they should have | |||
| to transfer. To reduce this risk, the protection strategies in Section 15.2.2 | to transfer. To reduce this risk, the protection strategies in | |||
| of <xref target="RFC7285" format="default"/> can be considered.</li> | <xref target="RFC7285" section="15.2.2" sectionFormat="of" format="default"/> ca | |||
| <li>For confidentiality and privacy of ALTO information, footprint prope | n be considered.</li> | |||
| rties | <li>Confidentiality and privacy of ALTO information: footprint propertie | |||
| s | ||||
| integrated with ALTO property maps may expose network location identifiers | integrated with ALTO property maps may expose network location identifiers | |||
| (e.g., IP addresses or fine-grained PIDs). To address this risk, the | (e.g., IP addresses or fine-grained PIDs). To address this risk, the | |||
| protection strategy for risk types (1) and (3) as described in Section 15.3 of | protection strategy for risk types (1) and (3) as described in | |||
| <xref target="RFC7285" format="default"/> can be considered.</li> | <xref target="RFC7285" section="15.3" sectionFormat="of" format="default"/> can | |||
| <li>For availability of ALTO services, an attacker may conduct service d | be considered.</li> | |||
| egradation | <li>For availability of ALTO services, an attacker may conduct service-d | |||
| egradation | ||||
| attacks using services defined in this document to disable ALTO services of a | attacks using services defined in this document to disable ALTO services of a | |||
| network. It may request potentially large, full CDNI Advertisement resources | network. It may request potentially large, full CDNI Advertisement resources | |||
| from an ALTO server in a dCDN continuously, to consume the bandwidth resources | from an ALTO server in a dCDN continuously in order to consume the bandwidth res | |||
| of that ALTO server. It may also query filtered property map services with | ources | |||
| many smaller individual footprints, to consume the computation resources of | of that ALTO server. It may also query filtered property Map Services with | |||
| many smaller individual footprints in order to consume the computation resources | ||||
| of | ||||
| the ALTO server. To mitigate these risks, the protection strategies in | the ALTO server. To mitigate these risks, the protection strategies in | |||
| Section 15.5.2 of <xref target="RFC7285" format="default"/> can be applied.</li> | <xref target="RFC7285" section="15.5.2" sectionFormat="of" format="default"/> ca n be applied.</li> | |||
| </ul> | </ul> | |||
| <t>Although protection strategies as described in Section 15 of <xref targ et="RFC7285" format="default"/> should | <t>Although protection strategies as described in <xref target="RFC7285" s ection="15" sectionFormat="of" format="default"/> should | |||
| be applied to address aforementioned security and privacy considerations, | be applied to address aforementioned security and privacy considerations, | |||
| two special cases need to be included as follows:</t> | two special cases need to be included as follows:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>As required by section 7 of <xref target="RFC8008" format="default" | <t>As required by <xref target="RFC8008" section="7" sectionFormat="of | |||
| />, </t> | " format="default"/>, </t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <blockquote> | |||
| "All protocols that implement these capabilities and footprint | All protocols that implement these capabilities and footprint | |||
| advertisement objects are REQUIRED to provide integrity and | advertisement objects are <bcp14>REQUIRED</bcp14> to provide integrity and | |||
| authentication services." | authentication services. | |||
| ]]></artwork> | </blockquote> | |||
| <t> | <t> | |||
| Therefore, the uCDN (ALTO Client) | Therefore, the uCDN (ALTO Client) | |||
| MUST be authenticated to the dCDN (ALTO Server). And the dCDN (ALTO Server) | <bcp14>MUST</bcp14> be authenticated to the dCDN (ALTO Server). And the dCDN (AL | |||
| MUST support HTTP Digest Authentication and MAY also support TLS mutual | TO Server) | |||
| authentication. The authentication method will need to be negotiated out of | <bcp14>MUST</bcp14> support HTTP Digest Authentication <xref target="RFC7616"/> | |||
| and <bcp14>MAY</bcp14> also support TLS mutual | ||||
| authentication <xref target="RFC8446"/>. The authentication method will need to | ||||
| be negotiated out of | ||||
| band and is out of scope for this document, as is the approach for | band and is out of scope for this document, as is the approach for | |||
| provisioning and managing these credentials.</t> | provisioning and managing these credentials.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>One specific information leakage risk introduced by this document c | <t>One specific information leakage risk introduced by this document c | |||
| ould not | annot | |||
| be addressed by these strategies. In particular, if a dCDN signs agreements | be addressed by these strategies. | |||
| with multiple uCDNs without any isolation, this dCDN may disclose extra | In particular, if a | |||
| information of one uCDN to another one. In that case, one uCDN may redirect | dCDN A signs agreements with multiple uCDNs without any isolation, | |||
| requests which should not have to be served by this dCDN to it. </t> | dCDN A may disclose extra information of one uCDN to another one. | |||
| In that case, one uCDN may redirect requests that should not have | ||||
| to be served by dCDN A to dCDN A.</t> | ||||
| <t> | <t> | |||
| To reduce the risk, a dCDN SHOULD isolate full/filtered CDNI Advertisement | To reduce the risk, a dCDN <bcp14>SHOULD</bcp14> isolate full and/or filtered CD NI Advertisement | |||
| resources for different uCDNs. It could consider generating URIs of different | resources for different uCDNs. It could consider generating URIs of different | |||
| full/filtered CDNI Advertisement resources by hashing its company ID, a | full and/or filtered CDNI Advertisement resources by hashing its company ID, a | |||
| uCDN's company ID as well as their agreements. A dCDN SHOULD avoid exposing | uCDN's company ID as well as their agreements. A dCDN <bcp14>SHOULD</bcp14> avoi | |||
| all full/filtered CDNI Advertisement resources in one of its IRDs.</t> | d exposing | |||
| all full and/or filtered CDNI Advertisement resources in one of its IRDs.</t> | ||||
| </li> | </li> | |||
| </ul> | </ul> | |||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <displayreference target="I-D.ietf-alto-path-vector" to="ALTO-PATH-VECTOR"/> | ||||
| <references> | <references> | |||
| <name>References</name> | <name>References</name> | |||
| <references> | <references> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <reference anchor="ISO3166-1"> | <reference anchor="ISO3166-1"> | |||
| <front> | <front> | |||
| <title>ISO 3166-1: Codes for the representation of names of countrie | <title>Codes for the representation of names of countries and their | |||
| s and their subdivisions -- Part 1: Country codes</title> | subdivisions -- Part 1: Country codes</title> | |||
| <author initials="." surname="ISO (International Organization for St | <author> | |||
| andardization)" fullname="ISO (International Organization for Standardization)"> | <organization>International Organization for Standardization</orga | |||
| <organization/> | nization> | |||
| </author> | ||||
| <date year="2020"/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-alto-unified-props-new"> | ||||
| <front> | ||||
| <title>An ALTO Extension: Entity Property Maps</title> | ||||
| <author fullname="Wendy Roome"> | ||||
| <organization>Nokia Bell Labs</organization> | ||||
| </author> | ||||
| <author fullname="Sabine Randriamasy"> | ||||
| <organization>Nokia Bell Labs</organization> | ||||
| </author> | ||||
| <author fullname="Y. Richard Yang"> | ||||
| <organization>Yale University</organization> | ||||
| </author> | ||||
| <author fullname="Jingxuan Jensen Zhang"> | ||||
| <organization>Tongji University</organization> | ||||
| </author> | ||||
| <author fullname="Kai Gao"> | ||||
| <organization>Sichuan University</organization> | ||||
| </author> | ||||
| <date day="25" month="January" year="2022"/> | ||||
| <abstract> | ||||
| <t> This document specifies an extension to the base Application | ||||
| -Layer | ||||
| Traffic Optimization (ALTO) protocol that generalizes the concept of | ||||
| "endpoint properties", which were so far tied to IP addresses, to | ||||
| entities defined by a wide set of objects. Further, these properties | ||||
| are presented as maps, similar to the network and cost maps in the | ||||
| base ALTO protocol. While supporting the endpoints and related | ||||
| endpoint property service defined in RFC7285, the ALTO protocol is | ||||
| extended in two major directions. First, from endpoints restricted | ||||
| to IP addresses to entities covering a wider and extensible set of | ||||
| objects; second, from properties on specific endpoints to entire | ||||
| entity property maps. These extensions introduce additional features | ||||
| allowing entities and property values to be specific to a given | ||||
| information resource. This is made possible by a generic and | ||||
| flexible design of entity and property types. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-alto-unified-props | ||||
| -new-22"/> | ||||
| </reference> | ||||
| <reference anchor="RFC2119"> | ||||
| <front> | ||||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | ||||
| le> | ||||
| <author fullname="S. Bradner" initials="S." surname="Bradner"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="March" year="1997"/> | ||||
| <abstract> | ||||
| <t>In many standards track documents several words are used to sig | ||||
| nify the requirements in the specification. These words are often capitalized. | ||||
| This document defines these words as they should be interpreted in IETF document | ||||
| s. This document specifies an Internet Best Current Practices for the Internet | ||||
| Community, and requests discussion and suggestions for improvements.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="2119"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6793"> | ||||
| <front> | ||||
| <title>BGP Support for Four-Octet Autonomous System (AS) Number Spac | ||||
| e</title> | ||||
| <author fullname="Q. Vohra" initials="Q." surname="Vohra"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="E. Chen" initials="E." surname="Chen"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="December" year="2012"/> | ||||
| <abstract> | ||||
| <t>The Autonomous System number is encoded as a two-octet entity i | ||||
| n the base BGP specification. This document describes extensions to BGP to carr | ||||
| y the Autonomous System numbers as four-octet entities. This document obsoletes | ||||
| RFC 4893 and updates RFC 4271. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6793"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6793"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7285"> | ||||
| <front> | ||||
| <title>Application-Layer Traffic Optimization (ALTO) Protocol</title | ||||
| > | ||||
| <author fullname="R. Alimi" initials="R." role="editor" surname="Ali | ||||
| mi"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="R. Penno" initials="R." role="editor" surname="Pen | ||||
| no"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="Y. Yang" initials="Y." role="editor" surname="Yang | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="S. Kiesel" initials="S." surname="Kiesel"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="S. Previdi" initials="S." surname="Previdi"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="W. Roome" initials="W." surname="Roome"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="S. Shalunov" initials="S." surname="Shalunov"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="R. Woundy" initials="R." surname="Woundy"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="September" year="2014"/> | ||||
| <abstract> | ||||
| <t>Applications using the Internet already have access to some top | ||||
| ology information of Internet Service Provider (ISP) networks. For example, vie | ||||
| ws to Internet routing tables at Looking Glass servers are available and can be | ||||
| practically downloaded to many network application clients. What is missing is | ||||
| knowledge of the underlying network topologies from the point of view of ISPs. | ||||
| In other words, what an ISP prefers in terms of traffic optimization -- and a wa | ||||
| y to distribute it.</t> | ||||
| <t>The Application-Layer Traffic Optimization (ALTO) services defi | ||||
| ned in this document provide network information (e.g., basic network location s | ||||
| tructure and preferences of network paths) with the goal of modifying network re | ||||
| source consumption patterns while maintaining or improving application performan | ||||
| ce. The basic information of ALTO is based on abstract maps of a network. Thes | ||||
| e maps provide a simplified view, yet enough information about a network for app | ||||
| lications to effectively utilize them. Additional services are built on top of | ||||
| the maps.</t> | ||||
| <t>This document describes a protocol implementing the ALTO servic | ||||
| es. Although the ALTO services would primarily be provided by ISPs, other entiti | ||||
| es, such as content service providers, could also provide ALTO services. Applic | ||||
| ations that could use the ALTO services are those that have a choice to which en | ||||
| d points to connect. Examples of such applications are peer-to-peer (P2P) and c | ||||
| ontent delivery networks.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7285"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7285"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7493"> | ||||
| <front> | ||||
| <title>The I-JSON Message Format</title> | ||||
| <author fullname="T. Bray" initials="T." role="editor" surname="Bray | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="March" year="2015"/> | ||||
| <abstract> | ||||
| <t>I-JSON (short for "Internet JSON") is a restricted profile of J | ||||
| SON designed to maximize interoperability and increase confidence that software | ||||
| can process it successfully with predictable results.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7493"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7493"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8006"> | ||||
| <front> | ||||
| <title>Content Delivery Network Interconnection (CDNI) Metadata</tit | ||||
| le> | ||||
| <author fullname="B. Niven-Jenkins" initials="B." surname="Niven-Jen | ||||
| kins"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="R. Murray" initials="R." surname="Murray"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="M. Caulfield" initials="M." surname="Caulfield"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="K. Ma" initials="K." surname="Ma"> | ||||
| <organization/> | ||||
| </author> | </author> | |||
| <date month="December" year="2016"/> | <date year="2020" month="August"/> | |||
| <abstract> | ||||
| <t>The Content Delivery Network Interconnection (CDNI) Metadata in | ||||
| terface enables interconnected Content Delivery Networks (CDNs) to exchange cont | ||||
| ent distribution metadata in order to enable content acquisition and delivery. | ||||
| The CDNI Metadata associated with a piece of content provides a downstream CDN w | ||||
| ith sufficient information for the downstream CDN to service content requests on | ||||
| behalf of an upstream CDN. This document describes both a base set of CDNI Met | ||||
| adata and the protocol for exchanging that metadata.</t> | ||||
| </abstract> | ||||
| </front> | </front> | |||
| <seriesInfo name="RFC" value="8006"/> | <seriesInfo name="ISO" value="3166-1:2020"/> | |||
| <seriesInfo name="DOI" value="10.17487/RFC8006"/> | ||||
| </reference> | </reference> | |||
| <reference anchor="RFC8008"> | <reference anchor='RFC9240' target='https://www.rfc-editor.org/info/rfc9 240'> | |||
| <front> | <front> | |||
| <title>Content Delivery Network Interconnection (CDNI) Request Routi | <title>An Extension for Application-Layer Traffic Optimization (ALTO | |||
| ng: Footprint and Capabilities Semantics</title> | ): Entity Property Maps</title> | |||
| <author fullname="J. Seedorf" initials="J." surname="Seedorf"> | <author initials='W' surname='Roome' fullname='Wendy Roome'> | |||
| <organization/> | <organization /> | |||
| </author> | ||||
| <author fullname="J. Peterson" initials="J." surname="Peterson"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="S. Previdi" initials="S." surname="Previdi"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="R. van Brandenburg" initials="R." surname="van Bra | ||||
| ndenburg"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="K. Ma" initials="K." surname="Ma"> | ||||
| <organization/> | ||||
| </author> | </author> | |||
| <date month="December" year="2016"/> | <author initials='S' surname='Randriamasy' fullname='Sabine Randriam | |||
| <abstract> | asy'> | |||
| <t>This document captures the semantics of the "Footprint and | <organization /> | |||
| Capabilities Advertisement" part of the Content Delivery Ne | ||||
| twork Interconnection (CDNI) Request Routing interface, i.e., the desired meanin | ||||
| g of "Footprint" and "Capabilities" in the CDNI context and what the "Footprint | ||||
| & Capabilities Advertisement interface (FCI)" offers within CDNI. The docum | ||||
| ent also provides guidelines for the CDNI FCI protocol. It further defines a Ba | ||||
| se Advertisement Object, the necessary registries for capabilities and footprint | ||||
| s, and guidelines on how these registries can be extended in the future.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8008"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8008"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8259"> | ||||
| <front> | ||||
| <title>The JavaScript Object Notation (JSON) Data Interchange Format | ||||
| </title> | ||||
| <author fullname="T. Bray" initials="T." role="editor" surname="Bray | ||||
| "> | ||||
| <organization/> | ||||
| </author> | </author> | |||
| <date month="December" year="2017"/> | <author initials='Y' surname='Yang' fullname='Y. Yang'> | |||
| <abstract> | <organization /> | |||
| <t>JavaScript Object Notation (JSON) is a lightweight, text-based, | ||||
| language-independent data interchange format. It was derived from the ECMAScri | ||||
| pt Programming Language Standard. JSON defines a small set of formatting rules | ||||
| for the portable representation of structured data.</t> | ||||
| <t>This document removes inconsistencies with other specifications | ||||
| of JSON, repairs specification errors, and offers experience-based interoperabi | ||||
| lity guidance.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="90"/> | ||||
| <seriesInfo name="RFC" value="8259"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8259"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <author fullname="B. Leiba" initials="B." surname="Leiba"> | ||||
| <organization/> | ||||
| </author> | </author> | |||
| <date month="May" year="2017"/> | <author initials='J' surname='Zhang' fullname='Jingxuan Zhang'> | |||
| <abstract> | <organization /> | |||
| <t>RFC 2119 specifies common key words that may be used in protoco | ||||
| l specifications. This document aims to reduce the ambiguity by clarifying tha | ||||
| t only UPPERCASE usage of the key words have the defined special meanings.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8895"> | ||||
| <front> | ||||
| <title>Application-Layer Traffic Optimization (ALTO) Incremental Upd | ||||
| ates Using Server-Sent Events (SSE)</title> | ||||
| <author fullname="W. Roome" initials="W." surname="Roome"> | ||||
| <organization/> | ||||
| </author> | </author> | |||
| <author fullname="Y. Yang" initials="Y." surname="Yang"> | <author initials='K' surname='Gao' fullname='Kai Gao'> | |||
| <organization/> | <organization /> | |||
| </author> | </author> | |||
| <date month="November" year="2020"/> | <date year='2022' month='July'/> | |||
| <abstract> | ||||
| <t>The Application-Layer Traffic Optimization (ALTO) protocol (RFC | ||||
| 7285) provides network-related information, called network information resource | ||||
| s, to client applications so that clients can make informed decisions in utilizi | ||||
| ng network resources. This document presents a mechanism to allow an ALTO server | ||||
| to push updates to ALTO clients to achieve two benefits: (1) updates can be inc | ||||
| remental, in that if only a small section of an information resource changes, th | ||||
| e ALTO server can send just the changes and (2) updates can be immediate, in tha | ||||
| t the ALTO server can send updates as soon as they are available.</t> | ||||
| </abstract> | ||||
| </front> | </front> | |||
| <seriesInfo name="RFC" value="8895"/> | <seriesInfo name="RFC" value="9240"/> | |||
| <seriesInfo name="DOI" value="10.17487/RFC8895"/> | <seriesInfo name="DOI" value="10.17487/RFC9240"/> | |||
| </reference> | </reference> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6793.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7285.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7493.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7616.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8006.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8008.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8259.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8895.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8446.xml"/> | ||||
| </references> | </references> | |||
| <references> | <references> | |||
| <name>Informative References</name> | <name>Informative References</name> | |||
| <reference anchor="I-D.ietf-alto-path-vector"> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
| <front> | .ietf-alto-path-vector.xml"/> | |||
| <title>An ALTO Extension: Path Vector</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <author fullname="Kai Gao"> | FC.5693.xml"/> | |||
| <organization>Sichuan University</organization> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| </author> | FC.6707.xml"/> | |||
| <author fullname="Young Lee"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <organization>Samsung</organization> | FC.7971.xml"/> | |||
| </author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <author fullname="Sabine Randriamasy"> | FC.7975.xml"/> | |||
| <organization>Nokia Bell Labs</organization> | ||||
| </author> | ||||
| <author fullname="Yang Richard Yang"> | ||||
| <organization>Yale University</organization> | ||||
| </author> | ||||
| <author fullname="Jingxuan Jensen Zhang"> | ||||
| <organization>Tongji University</organization> | ||||
| </author> | ||||
| <date day="2" month="February" year="2022"/> | ||||
| <abstract> | ||||
| <t> This document is an extension to the base Application-Layer | ||||
| Traffic | ||||
| Optimization (ALTO) protocol. It extends the ALTO Cost Map and ALTO | ||||
| Property Map services so that an application can decide which | ||||
| endpoint(s) to connect based on not only numerical/ordinal cost | ||||
| values but also details of the paths. This is useful for | ||||
| applications whose performance is impacted by specified components of | ||||
| a network on the end-to-end paths, e.g., they may infer that several | ||||
| paths share common links and prevent traffic bottlenecks by avoiding | ||||
| such paths. This extension introduces a new abstraction called | ||||
| Abstract Network Element (ANE) to represent these components and | ||||
| encodes a network path as a vector of ANEs. Thus, it provides a more | ||||
| complete but still abstract graph representation of the underlying | ||||
| network(s) for informed traffic optimization among endpoints. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-alto-path-vector-2 | ||||
| 1"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5693"> | ||||
| <front> | ||||
| <title>Application-Layer Traffic Optimization (ALTO) Problem Stateme | ||||
| nt</title> | ||||
| <author fullname="J. Seedorf" initials="J." surname="Seedorf"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="E. Burger" initials="E." surname="Burger"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="October" year="2009"/> | ||||
| <abstract> | ||||
| <t>Distributed applications -- such as file sharing, real-time com | ||||
| munication, and live and on-demand media streaming -- prevalent on the Internet | ||||
| use a significant amount of network resources. Such applications often transfer | ||||
| large amounts of data through connections established between nodes distributed | ||||
| across the Internet with little knowledge of the underlying network topology. | ||||
| Some applications are so designed that they choose a random subset of peers from | ||||
| a larger set with which to exchange data. Absent any topology information guid | ||||
| ing such choices, or acting on suboptimal or local information obtained from mea | ||||
| surements and statistics, these applications often make less than desirable choi | ||||
| ces.</t> | ||||
| <t>This document discusses issues related to an information-sharin | ||||
| g service that enables applications to perform better-than-random peer selection | ||||
| . This memo provides information for the Internet community.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5693"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5693"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6707"> | ||||
| <front> | ||||
| <title>Content Distribution Network Interconnection (CDNI) Problem S | ||||
| tatement</title> | ||||
| <author fullname="B. Niven-Jenkins" initials="B." surname="Niven-Jen | ||||
| kins"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="F. Le Faucheur" initials="F." surname="Le Faucheur | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="N. Bitar" initials="N." surname="Bitar"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="September" year="2012"/> | ||||
| <abstract> | ||||
| <t>Content Delivery Networks (CDNs) provide numerous benefits for | ||||
| cacheable content: reduced delivery cost, improved quality of experience for End | ||||
| Users, and increased robustness of delivery. For these reasons, they are frequ | ||||
| ently used for large-scale content delivery. As a result, existing CDN Provider | ||||
| s are scaling up their infrastructure, and many Network Service Providers (NSPs) | ||||
| are deploying their own CDNs. It is generally desirable that a given content i | ||||
| tem can be delivered to an End User regardless of that End User's location or at | ||||
| tachment network. This is the motivation for interconnecting standalone CDNs so | ||||
| they can interoperate as an open content delivery infrastructure for the end-to | ||||
| -end delivery of content from Content Service Providers (CSPs) to End Users. Ho | ||||
| wever, no standards or open specifications currently exist to facilitate such CD | ||||
| N Interconnection.</t> | ||||
| <t>The goal of this document is to outline the problem area of CDN | ||||
| Interconnection for the IETF CDNI (CDN Interconnection) working group. This do | ||||
| cument is not an Internet Standards Track specification; it is published for in | ||||
| formational purposes.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6707"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6707"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7971"> | ||||
| <front> | ||||
| <title>Application-Layer Traffic Optimization (ALTO) Deployment Cons | ||||
| iderations</title> | ||||
| <author fullname="M. Stiemerling" initials="M." surname="Stiemerling | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="S. Kiesel" initials="S." surname="Kiesel"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="M. Scharf" initials="M." surname="Scharf"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="H. Seidel" initials="H." surname="Seidel"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="S. Previdi" initials="S." surname="Previdi"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="October" year="2016"/> | ||||
| <abstract> | ||||
| <t>Many Internet applications are used to access resources such as | ||||
| pieces of information or server processes that are available in several equival | ||||
| ent replicas on different hosts. This includes, but is not limited to, peer-to- | ||||
| peer file sharing applications. The goal of Application-Layer Traffic Optimizat | ||||
| ion (ALTO) is to provide guidance to applications that have to select one or sev | ||||
| eral hosts from a set of candidates capable of providing a desired resource. Thi | ||||
| s memo discusses deployment-related issues of ALTO. It addresses different use | ||||
| cases of ALTO such as peer-to-peer file sharing and Content Delivery Networks (C | ||||
| DNs) and presents corresponding examples. The document also includes recommendat | ||||
| ions for network administrators and application designers planning to deploy ALT | ||||
| O, such as recommendations on how to generate ALTO map information.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7971"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7971"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7975"> | ||||
| <front> | ||||
| <title>Request Routing Redirection Interface for Content Delivery Ne | ||||
| twork (CDN) Interconnection</title> | ||||
| <author fullname="B. Niven-Jenkins" initials="B." role="editor" surn | ||||
| ame="Niven-Jenkins"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="R. van Brandenburg" initials="R." role="editor" su | ||||
| rname="van Brandenburg"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="October" year="2016"/> | ||||
| <abstract> | ||||
| <t>The Request Routing interface comprises (1) the asynchronous ad | ||||
| vertisement of footprint and capabilities by a downstream Content Delivery Netwo | ||||
| rk (CDN) that allows an upstream CDN to decide whether to redirect particular us | ||||
| er requests to that downstream CDN; and (2) the synchronous operation of an upst | ||||
| ream CDN requesting whether a downstream CDN is prepared to accept a user reques | ||||
| t and of a downstream CDN responding with how to actually redirect the user requ | ||||
| est. This document describes an interface for the latter part, i.e., the CDNI R | ||||
| equest Routing Redirection interface.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7975"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7975"/> | ||||
| </reference> | ||||
| </references> | </references> | |||
| </references> | </references> | |||
| <!-- Skip header line --> | ||||
| <section anchor="ack" numbered="false" toc="default"> | <section anchor="ack" numbered="false" toc="default"> | |||
| <name>Acknowledgments</name> | <name>Acknowledgments</name> | |||
| <t>The authors thank Matt Caulfield, Danny Alex Lachos Perez, Daryl Malas | <t>The authors thank <contact fullname="Matt Caulfield"/>, <contact fullna | |||
| and | me="Danny Alex Lachos Perez"/>, | |||
| Sanjay Mishra for their timely reviews and invaluable comments. Big thanks also | <contact fullname="Daryl Malas"/>, and | |||
| to ALTO WG Chairs (Qin Wu and Vijay Gurbani), and all the directorate reviewers | <contact fullname="Sanjay Mishra"/> for their timely reviews and invaluable comm | |||
| and IESG reviewers (Martin Duke, Erik Kline, Martin Vigoureux, Murray | ents. Big thanks also | |||
| Kucherawy, Roman Danyliw, Zaheduzzaman Sarker, Eric Vyncke, and Francesca | to the ALTO WG Chairs (<contact fullname="Qin Wu"/> and <contact fullname="Vijay | |||
| Palombini), for their thorough reviews, discussions, guidance and shepherding, | Gurbani"/>), all the directorate reviewers, | |||
| that further improve this document.</t> | and the IESG reviewers (<contact fullname="Martin Duke"/>, <contact fullname="Er | |||
| <t>Jan Seedorf has been partially supported by the GreenICN project (Green | ik Kline"/>, | |||
| ICN: | <contact fullname="Martin Vigoureux"/>, <contact fullname="Murray Kucherawy"/>, | |||
| <contact fullname="Roman Danyliw"/>, <contact fullname="Zaheduzzaman Sarker"/>, | ||||
| <contact fullname="Éric Vyncke"/>, and <contact fullname="Francesca Palombini"/> | ||||
| ), | ||||
| for their thorough reviews, discussions, guidance, and shepherding, | ||||
| which further improve this document.</t> | ||||
| <t><contact fullname="Jan Seedorf"/> has been partially supported by the G | ||||
| reenICN project (GreenICN: | ||||
| Architecture and Applications of Green Information Centric Networking), a | Architecture and Applications of Green Information Centric Networking), a | |||
| research project supported jointly by the European Commission under its 7th | research project supported jointly by the European Commission under its 7th | |||
| Framework Program (contract no. 608518) and the National Institute of | Framework Program (contract no. 608518) and the National Institute of | |||
| Information and Communications Technology (NICT) in Japan (contract no. 167). | Information and Communications Technology (NICT) in Japan (contract no. 167). | |||
| The views and conclusions contained herein are those of the authors and should | The views and conclusions contained herein are those of the authors and should | |||
| not be interpreted as necessarily representing the official policies or | not be interpreted as necessarily representing the official policies or | |||
| endorsements, either expressed or implied, of the GreenICN project, the European | endorsements, either expressed or implied, of the GreenICN project, the European | |||
| Commission, or NICT.</t> | Commission, or NICT.</t> | |||
| <t>This document has also been supported by the Coordination Support Actio n | <t>This document has also been supported by the Coordination Support Actio n | |||
| entitled 'Supporting European Experts Presence in lnternational Standardisation | entitled 'Supporting European Experts Presence in International Standardisation | |||
| Activities in ICT' ("StandlCT.eu") funded by the European Commission under the | Activities in ICT' (<eref target="https://www.standict.eu/" brackets="angle">Sta | |||
| ndICT.eu</eref>) funded by the European Commission under the | ||||
| Horizon 2020 Programme with Grant Agreement no. 780439. The views and | Horizon 2020 Programme with Grant Agreement no. 780439. The views and | |||
| conclusions contained herein are those of the authors and should not be | conclusions contained herein are those of the authors and should not be | |||
| interpreted as necessarily representing the official policies or endorsements, | interpreted as necessarily representing the official policies or endorsements, | |||
| either expressed or implied, of the European Commission.</t> | either expressed or implied, of the European Commission.</t> | |||
| </section> | </section> | |||
| <section anchor="contributors" numbered="false" toc="include" removeInRFC="f alse"> | <section anchor="contributors" numbered="false" toc="include"> | |||
| <name>Contributors</name> | <name>Contributors</name> | |||
| <contact initials="X." surname="Lin" fullname="Xiao Shawn Lin"> | <contact initials="X." surname="Lin" fullname="Xiao Shawn Lin"> | |||
| <organization>Huawei</organization> | <organization>Huawei</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>2222 Newjinqiao Rd</street> | <street>2222 Newjinqiao Rd</street> | |||
| <city>Shanghai</city> | <city>Shanghai</city> | |||
| <code>200125</code> | <code>200125</code> | |||
| <country>China</country> | <country>China</country> | |||
| </postal> | </postal> | |||
| <phone>+86-15316812351</phone> | <phone>+86-15316812351</phone> | |||
| <email>x.shawn.lin@gmail.com</email> | <email>x.shawn.lin@gmail.com</email> | |||
| </address> | </address> | |||
| </contact> | </contact> | |||
| </section> | </section> | |||
| </back> | </back> | |||
| <!-- ##markdown-source: | ||||
| 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 | ||||
| QW/nQ2dU87wB/0vOlmYCcCAHEEvJKSqCygdSB0ve8dc9pJM9pIs9pAL/JQ23 | ||||
| TqstHI7GRwcHh4PhJOrUU4NZC/LehnVUCWavjUACtbe/Z//p/oOPe6/XtBlP | ||||
| wNYcwg+iprZV3ztKpNzhwT0OqlWBlFTlvWSzAEWqAXdbxuO6Mn5bWD7CtPdl | ||||
| ocvJ227c2Lm5vsKbAgNzgTk2H8jS1ZLvQOALDPC6AOeiA+/6JcK9aGzSprGe | ||||
| JpwyBJYpoKU09IaJdGnRXG4cv4/sHYWRWR1B0pYNSfuV9mseKpc8cOHJPJKW | ||||
| IJQ3J2BpqO6WgvxSL2YqZGY4Bh0Bfsd0W2uQTggZ6zqs6QLma4tY6mnGdisV | ||||
| qPnXglvWYIJSaW2S51ibb1YzHpfc6dLD3KlTcIsKHF3RloOpecyXuMEhvgql | ||||
| 4qL+np1+QM0EnDepuRG1GB9x/6obrN6NS0lmTtEsda7U96k0gJhpqhZqTkWn | ||||
| NwMVFQTSG63VC+yVGsdjXVJpy2fdo6ypNa5UGpuizDdXXHNpza5K+aiUvErT | ||||
| GAM5phS619rCrG5unMeUZ2IFFBk62iCVhDzLcgzgdOW8TvksN7E1pReIrqZG | ||||
| AnfEvUpkZJsKyuN9UWV8aHxU4Y85pnZZ5XRSeys0zos7ceHA5YvukQGg/Iif | ||||
| 1BNLCz4DVr/puY8QW8Cs72bq2VStT0nVKyVvfXKu3tHRRsuoNGVTrp4oxMZ/ | ||||
| 9KHO5qmPPIvSfBhFB6PhaXQ2Pjkcn0/C4elgeD48PBoNJ6cnR0eHJ4eD4+Oj | ||||
| g8j4tcQvRG4hyfmrTerrwDJQ5Gdo3HeUa5bZFAxPlnfLbsFjL9nDZlLUO29N | ||||
| IHMaZXibd6d+ygZfWF2YC6kEZeTXlpPpW+lb6MSgog6BaaSV6w7bc3XpatcG | ||||
| dhl4JZY+ATgUbtHfT8H7FBLYNma0EflPD082Ir8bL2pIUfUZtEsBDor/L5BC | ||||
| Wwhp6wjSh48KKtSZhd+7pp2X29PigK411rRYLzmc6600n/Q9b7PjbDbPrWe8 | ||||
| eecbnPk/o81r9tN9OhxcfAo2+tvlFtOaLqzikKT6Z30rKV24IZ0h00mwKe2E | ||||
| +6I2qVhlSR7oxqLknnxI9Uxy5RFdyy21mYX+0VUQpceGOa6gEjl3qq6tppZH | ||||
| YECMnZHZH81Fuz7wkY+bHqwtM9eG5G3dkY3Hb/Kkbg7MP9GX+tHO1GrU/uzY | ||||
| icR7DlX/YGt8qu1cVYfVu85oMlSzm7ZuyC2y2nRBHRVFNiQr1Dput/DcfoTr | ||||
| tsl3+ynO2/N9ct42rqasmNacnV2YdeO6mj/2pHO+Mm7cVj8unIyZsPZ462bd | ||||
| xnm8pfesfc7vzV/1brTt/Gi1vqftXcyeI63Rk1Zdiv/s6W617fxqtZvTgstd | ||||
| vPn7h3+B03mCm3PD8bAc+alOaNB+QoOmExC/Ztt97+yEoR9KnepKBX9Abd/f | ||||
| 6vteDp1rBUi4fn9U3yHNNHZo9q0GnitS96usdDfGy+e3b02EgnvMFwuZK4py | ||||
| qqEO5w/hOjc307cEvyWdwI7F+pFpt112QsbIxvHKCO2HlArDQPo3tR2DaQ1q | ||||
| O9CGJkycSm3kVv40/VnPbT9bV6Wsu7oEkXvFYEujMMpQ4JfpwjEK0Q8jyTSQ | ||||
| NqOgSGllUm5PpH5BAJICb9EQtU4mkzd5pfWF1AEV/+KhzuKluSUm3K6QlZrn | ||||
| tcIMe3/YPqLsNGydLxDs3jNNYnmS8uNyJ03MdtlqzaY5KPnmnDab2ler75po | ||||
| bX+ZuC0LTe/O3fZCtErbza0X3dZuk/Te7fptllgO9d3UjS7jUndNabK8HR5k | ||||
| fNPyXNrscatWqhQepmOD+7RS0xC7qd9toRcTOIsRV69zxY3x0hv3pD3Lhmao | ||||
| bnnfhrZ7wZvob5qfVJrNSccv24Sv1Chqi+ZVm7pXcTs8IzHW3JGqPI//jqqU | ||||
| ADnNrh5V246+4q0EzPPRuY6l9aW1XwRyfwsSTshtmkoYwQndX+blbdd1Qzsm | ||||
| o6zUx82blMDxkbNyYKameZxSNe3jYNoy7HDeSxPUqXa6q99R+Y54JCJuBK5c | ||||
| I5dy4lOXuUsfP2prn5OngHprOdlOSmdblZp/gRCgq/nctvptaWfKCSOZCGn9 | ||||
| 0CiMKN3eNBXTLbpokaaTntq6x1g5cwzLCNwre7Eplwcp5kI++LmHIa01Xej7 | ||||
| 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 | ||||
| </rfc> | </rfc> | |||
| End of changes. 166 change blocks. | ||||
| 1252 lines changed or deleted | 448 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||