draft-seedorf-cdni-request-routing-alto-06.txt   draft-seedorf-cdni-request-routing-alto-07.txt 
CDNI J. Seedorf CDNI J. Seedorf
Internet-Draft NEC Internet-Draft NEC
Intended status: Informational Y. Yang Intended status: Informational Y. Yang
Expires: August 18, 2014 Yale Expires: December 29, 2014 Yale
February 14, 2014 J. Peterson
Neustar
June 27, 2014
CDNI Footprint and Capabilities Advertisement using ALTO CDNI Footprint and Capabilities Advertisement using ALTO
draft-seedorf-cdni-request-routing-alto-06 draft-seedorf-cdni-request-routing-alto-07
Abstract Abstract
Network Service Providers (NSPs) are currently considering to deploy Network Service Providers (NSPs) are currently considering to deploy
Content Delivery Networks (CDNs) within their networks. As a Content Delivery Networks (CDNs) within their networks. As a
consequence of this development, there is a need for interconnecting consequence of this development, there is a need for interconnecting
these local CDNs. The necessary interfaces for inter-connecting CDNs these local CDNs. The necessary interfaces for inter-connecting CDNs
are currently being defined in the Content Delivery Networks are currently being defined in the Content Delivery Networks
Interconnection (CDNI) WG. This document focuses on the CDNI Interconnection (CDNI) WG. This document focuses on the CDNI
Footprint & Capabilities Advertisement interface (FCI). Footprint & Capabilities Advertisement interface (FCI).
Specifically, this document outlines how the solutions currently Specifically, this document specifies a new Application Layer Traffic
being defined in the Application Layer Traffic Optimization (ALTO) WG Optimization (ALTO) service to facilitate Footprint & Capabilities
can facilitate Footprint & Capabilities Advertisement in a CDNI Advertisement in a CDNI context.
context, i.e. how the CDNI FCI can be realised with the ALTO
protocol. Concrete examples of how ALTO can be integrated within
CDNI request routing and in particular in the process of selecting a
downstream CDN are given. The examples in this document are based on
the use cases and examples currently being discussed in the CDNI WG.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 18, 2014. This Internet-Draft will expire on December 29, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 25 skipping to change at page 2, line 20
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. ALTO within CDNI Request Routing . . . . . . . . . . . . . . 3 2. ALTO within CDNI Request Routing . . . . . . . . . . . . . . 3
3. Assumptions and High-Level Design Considerations . . . . . . 4 3. Assumptions and High-Level Design Considerations . . . . . . 4
3.1. General Assumptions and Consideration . . . . . . . . . . 5 3.1. General Assumptions and Considerations . . . . . . . . . 4
3.2. Semantics for Footprint/Capabilities Advertisment . . . . 5 3.2. Semantics for Footprint/Capabilities Advertisment . . . . 5
4. Selection of a Downstream CDN with ALTO . . . . . . . . . . . 7 3.3. Advantages of using ALTO as the CDNI FCI protocol . . . . 7
4.1. Footprint and Capabilities Advertisement using ALTO 3.4. Selection of a Downstream CDN with ALTO . . . . . . . . . 7
Network Map and PID Properties . . . . . . . . . . . . . 7 4. CDNI FCI ALTO Service . . . . . . . . . . . . . . . . . . . . 8
4.2. Conveying additional information with ALTO Cost Maps . . 9 4.1. Server Response Encoding . . . . . . . . . . . . . . . . 8
4.3. Example of Selecting a Downstream CDN based on ALTO Maps 9 4.1.1. CDNI FCI Map . . . . . . . . . . . . . . . . . . . . 8
4.4. Advantages of using ALTO as the CDNI FCI protocol . . . . 10 4.1.2. Meta Information . . . . . . . . . . . . . . . . . . 8
5. Concrete Examples with ALTO Maps . . . . . . . . . . . . . . 11 4.1.3. Data Information . . . . . . . . . . . . . . . . . . 8
5.1. Example ALTO Network Map . . . . . . . . . . . . . . . . 11 4.2. Protocol Errors . . . . . . . . . . . . . . . . . . . . . 8
5.2. Example ALTO PID Property . . . . . . . . . . . . . . . . 12 4.3. Example . . . . . . . . . . . . . . . . . . . . . . . . . 9
6. Useful ALTO extensions for CDNI Request Routing . . . . . . . 13 5. Useful ALTO extensions for CDNI Request Routing . . . . . . . 10
7. Security Considerations . . . . . . . . . . . . . . . . . . . 14 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11
8. Summary and Outlook . . . . . . . . . . . . . . . . . . . . . 14 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 8.1. Normative References . . . . . . . . . . . . . . . . . . 11
10.1. Normative References . . . . . . . . . . . . . . . . . . 15 8.2. Informative References . . . . . . . . . . . . . . . . . 12
10.2. Informative References . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction 1. Introduction
Many Network Service Providers (NSPs) are currently considering or Many Network Service Providers (NSPs) are currently considering or
have already started to deploy Content Delivery Networks (CDNs) have already started to deploy Content Delivery Networks (CDNs)
within their networks. As a consequence of this development, there within their networks. As a consequence of this development, there
is a need for interconnecting these local CDNs. Content Delivery is a need for interconnecting these local CDNs. Content Delivery
Networks Interconnection (CDNI) has the goal of standardizing Networks Interconnection (CDNI) has the goal of standardizing
protocols to enable such interconnection of CDNs [RFC6707]. protocols to enable such interconnection of CDNs [RFC6707].
skipping to change at page 3, line 20 skipping to change at page 3, line 14
o CDNI Metadata Interface o CDNI Metadata Interface
o CDNI Logging Interface o CDNI Logging Interface
o CDNI Control Interface o CDNI Control Interface
This document focuses solely on the CDNI Request Routing Interface, This document focuses solely on the CDNI Request Routing Interface,
which can be further divided into two interfaces (see [RFC6707] for a which can be further divided into two interfaces (see [RFC6707] for a
detailed description): the CDNI Request Routing Redirection interface detailed description): the CDNI Request Routing Redirection interface
(RI), and the CDNI Footprint & Capabilities Advertisement interface (RI), and the CDNI Footprint & Capabilities Advertisement interface
(FCI). This document presents how one may use ALTO as a protocol for (FCI). This document specifies a new Application Layer Traffic
CDNI Footprint & Capabilities Advertisement. Concrete examples of Optimization (ALTO) [I-D.ietf-alto-protocol] service called 'CDNI
how the CDNI FCI can be implemented with the ALTO protocol Footprint & Capabilities Advertisement Service'. This service is
[I-D.ietf-alto-protocol] are given. The examples used in this used to transport a CDNI FCI JSON objects, which are defined in a
document are based on the use cases and request routing proposals separate document [I-D.ma-cdni-capabilities].
currently being discussed in the CDNI WG [RFC6770]
[I-D.peterson-CDNI-strawman] and in the ALTO WG
[I-D.jenkins-alto-cdn-use-cases].
A previous version of this document [I-D.seedorf-alto-for-cdni]
contained detailed examples of actual request routing and surrogate
selection with ALTO, i.e. how ALTO could be used for implementing the
CDNI Request Routing Redirection interface (RI). This version solely
focuses on implementing the CDNI Footprint & Capabilities
Advertisement interface (FCI) with ALTO, i.e. the selection of a
downstream CDN and how ALTO can support such downstream CDN
selection.
Throughout this document, we use the terminology for CDNI defined in Throughout this document, we use the terminology for CDNI defined in
[I-D.ietf-cdni-problem-statement]. [I-D.ietf-cdni-problem-statement].
2. ALTO within CDNI Request Routing 2. ALTO within CDNI Request Routing
The main purpose of the CDNI Request Routing Interface is described The main purpose of the CDNI Request Routing Interface is described
in [RFC6707] as follows: "The CDNI Request Routing interface enables in [RFC6707] as follows: "The CDNI Request Routing interface enables
a Request Routing function in an Upstream CDN to query a Request a Request Routing function in an Upstream CDN to query a Request
Routing function in a Downstream CDN to determine if the Downstream Routing function in a Downstream CDN to determine if the Downstream
skipping to change at page 4, line 21 skipping to change at page 4, line 5
More precisely, in [I-D.ietf-cdni-framework] the request routing More precisely, in [I-D.ietf-cdni-framework] the request routing
interface is broadly divided into two functionalities: interface is broadly divided into two functionalities:
o 1) the asynchronous advertisement of footprint and capabilities by o 1) the asynchronous advertisement of footprint and capabilities by
a dCDN that allows a uCDN to decide whether to redirect particular a dCDN that allows a uCDN to decide whether to redirect particular
user requests to that dCDN (the CDNI FCI) user requests to that dCDN (the CDNI FCI)
o 2) the synchronous operation of actually redirecting a user o 2) the synchronous operation of actually redirecting a user
request (the CDNI RI) request (the CDNI RI)
Application Layer Traffic Optimization (ALTO) is an approach for Application Layer Traffic Optimization (ALTO)
guiding the resource provider selection process in distributed [I-D.ietf-alto-protocol] is an approach for guiding the resource
applications that can choose among several candidate resources provider selection process in distributed applications that can
providers to retrieve a given resource. By conveying network layer choose among several candidate resources providers to retrieve a
(topology) information, an ALTO server can provide important given resource. By conveying network layer (topology) information,
information to "guide" the resource provider selection process in an ALTO server can provide important information to "guide" the
distributed applications. Usually, it is assumed that an ALTO server resource provider selection process in distributed applications.
conveys information these applications cannot measure themselves Usually, it is assumed that an ALTO server conveys information these
[RFC5693]. applications cannot measure themselves [RFC5693].
Originally, ALTO was motivated by the huge amount of cross-ISP Originally, ALTO was motivated by the huge amount of cross-ISP
traffic generated by P2P applications [RFC5693]. Recently, however, traffic generated by P2P applications [RFC5693]. Recently, however,
ALTO is also being considered for improving the request routing in ALTO is also being considered for improving the request routing in
CDNs [I-D.jenkins-alto-cdn-use-cases]. In this context, it has also CDNs [I-D.jenkins-alto-cdn-use-cases]. In this context, it has also
been proposed to use ALTO for selecting an entry-point in a been proposed to use ALTO for selecting an entry-point in a
downstream NSP's network (see section 3.4 "CDN delivering Over-The- downstream NSP's network (see section 3.4 "CDN delivering Over-The-
Top of a NSP's network" in [I-D.jenkins-alto-cdn-use-cases]). Also, Top of a NSP's network" in [I-D.jenkins-alto-cdn-use-cases]). Also,
the CDNI problem statement explicitly mentions ALTO as a candidate the CDNI problem statement explicitly mentions ALTO as a candidate
protocol for "algorithms for selection of CDN or Surrogate by protocol for "algorithms for selection of CDN or Surrogate by
Request-Routing systems" [I-D.ietf-cdni-problem-statement]. Yet, Request-Routing systems" [I-D.ietf-cdni-problem-statement].
there have not been concrete proposals so far on how to use ALTO in
the context of CDN interconnection. This document tries to close
this gap by giving some examples on how ALTO could be used within
CDNI request routing.
3. Assumptions and High-Level Design Considerations 3. Assumptions and High-Level Design Considerations
In this section we list some assumptions and design issues to be In this section we list some assumptions and design issues to be
considered when using ALTO for the CDNI Footprint and Capabilities considered when using ALTO for the CDNI Footprint and Capabilities
Advertisement interface Advertisement interface.
3.1. General Assumptions and Consideration 3.1. General Assumptions and Considerations
Below we list some general assumptions and considerations: Below we list some general assumptions and considerations:
o As explicitly being out-of-scope for CDNI o As explicitly being out-of-scope for CDNI
[I-D.ietf-cdni-problem-statement], the examples used in this [I-D.ietf-cdni-problem-statement], it is assumed that ingestion of
document assume that ingestion of content or acquiring content content or acquiring content across CDNs is not part of request
across CDNs is not part of request routing as considered within routing as considered within CDNI standardization work. The focus
CDNI standardization work. The focus of using ALTO (as considered of using ALTO (as considered in this document) is hence on request
in this document) is hence on request routing only, assuming that routing only, assuming that the content (desired by the end user)
the content (desired by the end user) is available in the is available in the downstream CDN (or can be aquired by the
downstream CDN (or can be aquired by the downstream CDN by some downstream CDN by some means).
means).
o Federation Model: "Footprint and Capabilities Advertisement" and o Federation Model: "Footprint and Capabilities Advertisement" and
in general CDN request routing depends on the federation model in general CDN request routing depends on the federation model
among the CDN providers. Designing a suitable solution thus among the CDN providers. Designing a suitable solution thus
depends on whether a solution is needed for different settings, depends on whether a solution is needed for different settings,
where CDNs consist of both NSP CDNs (serving individual ASes) and where CDNs consist of both NSP CDNs (serving individual ASes) and
general, traditional CDNs (such as Akamai). We assume that CDNI general, traditional CDNs (such as Akamai). We assume that CDNI
is not designed for a setting where only NSP CDNs each serve a is not designed for a setting where only NSP CDNs each serve a
single AS only. single AS only.
o In this document, we assume that the upstream CDN (uCDN) makes the o In this document, it is assumed that the upstream CDN (uCDN) makes
decision on selecting a downstream CDN, based on information that the decision on selecting a downstream CDN, based on information
each downstream CDN has made available to the upstream CDN. that each downstream CDN has made available to the upstream CDN.
Further, we assume that in principle more than one dCDN may be Further, we assume that in principle more than one dCDN may be
suitable for a given end-user request (i.e. different dCDNs may suitable for a given end-user request (i.e. different dCDNs may
claim "overlapping" footprints). The uCDN hence potentially has claim "overlapping" footprints). The uCDN hence potentially has
to select among several candidate downstream CDNs for a given end to select among several candidate downstream CDNs for a given end
user request. user request.
o It is not clear what kind(s) of business, contract, and o It is not clear what kind(s) of business, contract, and
operational relationships two peering CDNs may form. For the operational relationships two peering CDNs may form. For the
Internet, we see provider-customer and peering as two main Internet, we see provider-customer and peering as two main
relations; providers may use different charging models (e.g., relations; providers may use different charging models (e.g.,
95-percentile, total volume) and may provide different SLAs. 95-percentile, total volume) and may provide different SLAs.
Given such unknown characteristics of CDN peering business Given such unknown characteristics of CDN peering business
agreements, we should design the protocol to support as much agreements, we should design the protocol to support as much
diverse potential business and operational models as possible. diverse potential business and operational models as possible.
3.2. Semantics for Footprint/Capabilities Advertisment 3.2. Semantics for Footprint/Capabilities Advertisment
The CDNI document on "Footprint and Capabilities Semantics" The CDNI document on "Footprint and Capabilities Semantics"
[I-D.spp-cdni-rr-foot-cap-semantics] defines the semantics for the [I-D.ietf-cdni-footprint-capabilities-semantics] defines the
CDNI FCI. It thus provides guidance on what Footprint and semantics for the CDNI FCI. It thus provides guidance on what
Capabilities mean in a CDNI context and how a protocol solution Footprint and Capabilities mean in a CDNI context and how a protocol
should in principle look like. Here we briefly summarize the key solution should in principle look like. Here we briefly summarize
points of the semantics of Footprint and Capabilities (for a detailed the key points of the semantics of Footprint and Capabilities (for a
discussion, the reader is referred to detailed discussion, the reader is referred to
[I-D.spp-cdni-rr-foot-cap-semantics]): [I-D.ietf-cdni-footprint-capabilities-semantics]):
o Often, footprint and capabilities are tied together and cannot be o Often, footprint and capabilities are tied together and cannot be
interpreted independently from each other. In such cases, i.e. interpreted independently from each other. In such cases, i.e.
where capabilities must be expressed on a per footprint basis, it where capabilities must be expressed on a per footprint basis, it
may be beneficial to combine footprint and capabilities may be beneficial to combine footprint and capabilities
advertisement. advertisement.
o Given that a large part of Footprint and Capabilities o Given that a large part of Footprint and Capabilities
Advertisement will actually happen in contractual agreements, the Advertisement will actually happen in contractual agreements, the
semantics of CDNI Footprint and Capabilities advertisement refer semantics of CDNI Footprint and Capabilities advertisement refer
skipping to change at page 7, line 30 skipping to change at page 7, line 8
* Redirection Mode (e.g., DNS Redirection vs. HTTP Redirection as * Redirection Mode (e.g., DNS Redirection vs. HTTP Redirection as
discussed in [I-D.ietf-cdni-framework]) discussed in [I-D.ietf-cdni-framework])
* Capabilities related to CDNI Logging (e.g., supported logging * Capabilities related to CDNI Logging (e.g., supported logging
mechanisms) mechanisms)
* Capabilities related to CDNI Metadata (e.g., authorization * Capabilities related to CDNI Metadata (e.g., authorization
algorithms or support for proprietary vendor metadata) algorithms or support for proprietary vendor metadata)
4. Selection of a Downstream CDN with ALTO 3.3. Advantages of using ALTO as the CDNI FCI protocol
Under the considerations stated in Section 3, ALTO can help the
upstream CDN provider to select a proper downstream CDN provider for
a given end user request as follows: Each downstream CDN provider
hosts an ALTO server which provides ALTO information (i.e. ALTO
network maps and potentially additonally ALTO cost maps
[I-D.ietf-alto-protocol]) to an ALTO client at the upstream CDN
provider. Network maps provided by each of several candidate
downstream CDNs can provide information to the upstream CDN provider
about each dCDN's "coverage/reachability" as well as capabilities.
4.1. Footprint and Capabilities Advertisement using ALTO Network Map
and PID Properties
Conceptually, the footprint and capabilities interface of a dCDN is
easy to specify: It is a function that given an endhost, returns if
the dCDN is willing to serve the endhost, and the capabilities
available to that endhost (e.g., "delivery-protocol":
["HTTP","RMTP"], "acquisition-protocol": ["HTTP"], "redirection-
mode": ["HTTP-redirect"], "loggin-mechanism": ["TBD"], and "meta-
capabilities": [""]).
Specifiying the preceding for each endhost can be redundant, and one
may use PIDs defined in ALTO. Specifically, an ALTO network map
contains a "set of Network Location groupings"
[I-D.ietf-alto-protocol]. The groupings are defined in the form of
so-called "PIDs". A PID is an identifier to group network location
endpoints, e.g. IP-addresses in the form of prefixes (see section 4
in [I-D.ietf-alto-protocol] for details).
Applying the basic idea of ALTO PIDs to the preceding, abstract
mapping specification, by aggregating endhosts with the same
capabilities in the same PID, we obtain CDNi FCI using ALTO Network
Maps as simply (1) a Network Map which defines a set of PIDs, and (2)
a PID Property Map [draft-roome-alto-pid-properties] that defines the
properties of each PID, where the properties define the capabilities.
With the preceding Network Map and PID Property Map, the upstream CDN
provider can easily match a given end user request with the footprint
and capabilities of the downstream CDN providers. Whenever the
footprint and/or capabilities of a dCDN change, the ALTO server of
the dCDN changes its data, and the uCDN can obtain the update through
ALTO incremental updates. Future extensions to ALTO to add
notifications can be integrated when they become available.
In particular, this document does not define how a dCDN aggregates
the endhosts into PIDs, to allow flexibility in (anticipated)
updates.
In this document, we define the following PID properties, which each
must be a JSON array, to convey all mandatory capabilities (see
Section 3.2):
o delivery-protocol
o acquisition-protocol
o redirection-mode
o logging-mechanism
o meta-capabilities
To complement the preceding capabilities mapping, we require that an
uCDN has access to ALTO Network Map(s) that can map from an endhost
to Country Code and AS Number. Such mapping may or may not be
specific to CDNI but can be a general mapping. Specifically, the
uCDN should have access to ALTO Network Map(s) which Properties
include:
o country-code
o asn
4.2. Conveying additional information with ALTO Cost Maps
An ALTO cost map contains costs between defined groupings of a
corresponding network map (i.e. costs between PIDs): "An ALTO Cost
Map defines Path Costs pairwise amongst sets of source and
destination Network Locations" [I-D.ietf-alto-protocol]. This
concept enables the provider of a cost map to express (and quantify)
preferences of a destination network location with respect to a given
source network location.
In the context of CDNI, the ALTO cost map concept is an extensive
tool to convey additional information about the footprint or
capabilties of a downstream CDN. The cost map concept provides a
means for a downstream CDN provider to convey numeric values
associated with a PID, e.g. in order to convey metrics associated
with a footprint or a capability. This may be useful for future,
non-mandatory types of footprint or capabilties.
One way to use ALTO cost maps would have these maps of the type
N-to-m, i.e. 'costs' are expressed for each of N end user source PIDs
to m dCDN request router PIDs. Semantically, a source PID in a CDNI
ALTO cost map is thus the end user location, whereas a destination
PID is a (group of) request router(s) to which the uCDN redirects the
end user request. Note that this perspective is driven by the CDNI
request routing. An alternative way - seen from the perspective of
content retrieval - would be to have a m-to-N cost map where the
source is always the dCDN and the destination is the end user (with
the semantic "if the source dCDN would deliver content to an end user
in the destination PID, the costs would be the following). With
explicit destination PIDs reflecting different entries to the same
dCDN, the dCDN can convey shortcut or differentiated quality of
services.
4.3. Example of Selecting a Downstream CDN based on ALTO Maps
In the following, we will outline an example of dCDN selection by a
uCDN based on ALTO maps provided by dCDNs. Consider the following
example: An upstream CDN (uCDN) has agreed on CDN interconnection
with several downstream CDNs (dCDN-a, dCDN-b, and dCDN-c). Each of
these downstream CDNs runs an ALTO server to provide aforementioned
ALTO information. Whenever the upstream CDN receives a request from
an end user and has determined that this request is best served by an
interconnected dCDN, the uCDN uses ALTO maps to make a redirection
decision. For a given request, assume that only the ALTO network
maps provided by dCDN-a and dCDN-c include the endhost. The uCDN
first looks up the PIDs of the endhost in the two network maps from
the two dCDNs, and then searches the PID properties to find out the
capabilities of each dCDN for the endhost. If only one dCDN supports
the required capabilities, then the uCDN chooses the dCDN.
Otherwise, the UCDN uses additional server selection information
(i.e. information obtained outside the CDNI FCI interface such as
business agreements) at its own discretion in order to pick a dCDN
among the ones that provide the necessary capabilities for the given
end host request.
4.4. Advantages of using ALTO as the CDNI FCI protocol
The following reasons make ALTO a suitable candidate protocol for The following reasons make ALTO a suitable candidate protocol for
downstream CDN selection as part of CDNI request routing and in downstream CDN selection as part of CDNI request routing and in
particular for an FCI protocol: particular for an FCI protocol:
o CDN request routing is done at the application layer. ALTO is a o CDN request routing is done at the application layer. ALTO is a
protocol specifically designed to improve application layer protocol specifically designed to improve application layer
traffic (and application layer connections among hosts on the traffic (and application layer connections among hosts on the
Internet) by providing additonal information to applications that Internet) by providing additonal information to applications that
these applications could not easily retrieve themselves. For these applications could not easily retrieve themselves. For
CDNI, this is exactly the case: a uCDN wants to improve CDNI, this is exactly the case: a uCDN wants to improve
application layer CDN request routing by using dedicated application layer CDN request routing by using dedicated
information (provided by a dCDN) that the uCDN could not easily information (provided by a dCDN) that the uCDN could not easily
obtain otherwise. obtain otherwise.
o The semantics of an ALTO network map are an exact match for the o The semantics of an ALTO network map are an exact match for the
needed information to convey a footprint by a downstream CDN, in needed information to convey a footprint by a downstream CDN, in
particular if such a footprint is being expressed by IP-prefix particular if such a footprint is being expressed by IP-prefix
ranges. ranges.
o The PID concept allows for clean separation between footprint and
capabilities: The PID gives a name to a footprint and a dCDN can
then easily change separately either a) the Properties for a given
footprint, or b) the Composition of a given footprint.
o Flexible granularity: The concept of the PID and ALTO network/cost
maps allows for different degrees of granularity. This enables a
dCDN to differentiate the delivery quality for serving an end user
request on a fine granularity depending on the end user location
(and not only express delivery quality e.g. on an AS-level). It
remains at the discretion of each dCDN how fine-granular the ALTO
network and cost maps are that it publishes.
o Security: ALTO maps can be signed and hence provide inherent o Security: ALTO maps can be signed and hence provide inherent
integrity protection (see Section 7) integrity protection (see Section 6)
o RESTful-Design: The ALTO protocol has undergone extensive o RESTful-Design: The ALTO protocol has undergone extensive
revisions in order to provide a RESTful design regarding the revisions in order to provide a RESTful design regarding the
client-server interaction specified by the protocol. A CDNI FCI client-server interaction specified by the protocol. A CDNI FCI
interface based on ALTO would inherit this RESTful design. interface based on ALTO would inherit this RESTful design.
o Error-handling: The ALTO protocol has undergone extensive o Error-handling: The ALTO protocol has undergone extensive
revisions in order to provide sophisticated error-handling, revisions in order to provide sophisticated error-handling,
inparticular regarding unexpected cases. A CDNI FCI interface inparticular regarding unexpected cases. A CDNI FCI interface
based on ALTO would inherit this thought-through and mature error- based on ALTO would inherit this thought-through and mature error-
handling. handling.
o Endpoint Property Service: The ALTO Endpoint Property Service (see
[I-D.ietf-alto-protocol] for details) would allow an upstream CDN
to query capabilities for an individual endpoint (without querying
the whole map).
o Filtered network map: The ALTO Map Filtering Service (see o Filtered network map: The ALTO Map Filtering Service (see
[I-D.ietf-alto-protocol] for details) would allow a uCDN to query [I-D.ietf-alto-protocol] for details) would allow a uCDN to query
only for parts of an ALTO map. only for parts of an ALTO map.
5. Concrete Examples with ALTO Maps 3.4. Selection of a Downstream CDN with ALTO
The following examples show concrete ALTO maps and how CDNI FCI would Under the considerations stated in Section 3, ALTO can help the
be facilitated with these as described in the previous Section. upstream CDN provider to select a proper downstream CDN provider for
a given end user request as follows: Each downstream CDN provider
hosts an ALTO server which provides ALTO services which convey CDNI
FCI information to an ALTO client at the upstream CDN provider.
5.1. Example ALTO Network Map 4. CDNI FCI ALTO Service
The following network map would convey to a uCDN that the given dCDN The ALTO protocol is based on an ALTO Information Service Framework
(which would provide the map) has three footprints called ''south- which consists of several services, where all ALTO services are
france'', ''germany'', and ''rest'', and provide the corresponding 'provided through a common transport protocol, messaging structure
IPv4 address ranges for these footprints. The entry ''cdni-fruit'' : and encoding, and transaction model" [I-D.ietf-alto-protocol]. The
[''orange''] in the ''south-france'' footprint is an example of how ALTO protocol specification [I-D.ietf-alto-protocol] defines several
new endpoint types (e.g. proprietary ones that are defined outside such services, e.g. the ALTO map service.
the CDNI FCI among certain CDNs) could be used in an ALTO network
map.
GET /networkmap/eu HTTP/1.1 This document defines a new ALTO Service called 'CDNI Footprint &
Host: cdni.example.com Capabilities Advertisement Service' which conveys JSON objects of
Accept: application/alto-networkmap+json,application/alto-error+json media type 'application/alto-fcimap+json'. This media type and JSON
object format is defined in [I-D.ma-cdni-capabilities]; this document
specifies how to transport such JSON objects via the ALTO protocol
with the ALTO 'CDNI Footprint & Capabilities Advertisement Service'.
HTTP/1.1 200 OK 4.1. Server Response Encoding
Content-Length: TBA
Content-Type: application/alto-networkmap+json
{ 4.1.1. CDNI FCI Map
"meta" : {
"vtag": [
{"resource-id": "my-eu-netmap",
"tag": "1266506139"
}
]
},
"network-map" : {
"south-france" : {
"ipv4" : [ "192.0.2.0/24", "198.51.100.0/25" ], "cdni-fruit" : ["orange"]
},
"germany" : {
"ipv4" : [ "192.0.3.0/24"]
},
"rest" : { "ipv4": [0.0.0.0/0], "ipv6"; [::/0] }
}
}
5.2. Example ALTO PID Property The media type of the CDNI FCI Map is 'application/alto-cdni-
fcimap+json'. The HTTP Method, Accept Input Parameters,
Capabilities, Uses, and Response of the CDNI FCI Map are specified in
[I-D.ma-cdni-capabilities].
The following PID properties would correspond to the footprints from 4.1.2. Meta Information
the network map shown in the previous subsection and convey to the
uCDN that the capabilities for all endpoints in the footprint
''south-france'' are ["HTTP"], and that the capabilities for all
endpoints in the footprint ''germany'' are ["HTTP", "HTTPS"].
HTTP/1.1 200 OK The 'meta' field of a FCIMapData response MUST include 'vtag', which
Content-Length: TBA is an ALTO Version Tag of the retrieved FCIMapData according to
Content-Type: application/alto-pidprop+json [I-D.ietf-alto-protocol] (Section 10.3.). It thus contains a
'resource-id' attribute, and a 'tag' is an identifier string.
{ 4.1.3. Data Information
"meta" : {
"dependent-vtags" : [ The data component of a CDNI FCI Map resource is named 'fcimap' which
{"resource-id": "my-eu-netmap", is a JSON object of type FCIMapData. This JSON object of type
"tag": "1266506139" FCIMapData is derived from ResponseEntityBase as specified in the
ALTO protocol [I-D.ietf-alto-protocol] (Section 8.4.) and specified
in [I-D.ma-cdni-capabilities].
4.2. Protocol Errors
Protocol errors are handled as specified in the ALTO protocol
[I-D.ietf-alto-protocol] (Section 8.5.).
4.3. Example
The following example shows an CDNI FCI Map as in
[I-D.ma-cdni-capabilities], however with meta-information as defined
in Section 4.1.2 of this document.
GET /fcimap HTTP/1.1
Host: alto.example.com
Accept: application/alto-fcimap+json,application/alto-error+json
HTTP/1.1 200 OK
Content-Length: 439
Content-Type: application/alto-fcimap+json
{
"meta" : {
"vtag": {
"resource-id": "my-default-fcimap",
"tag": "da65eca2eb7a10ce8b059740b0b2e3f8eb1d4785"
}
},
"fcimap": [
{ "name": "delivery_protocol",
"values": [
"HTTP",
"RTSP",
"MMS"
]
},
{ "name": "delivery_protocol",
"values": [
"RTMP",
"HTTPS"
],
"footprint": [
{ "type": "IPv4CIDR",
"values": [
"10.1.0.0/16",
"10.10.10.0/24"
]
}
]
} }
] ]
},
"properties": {
"pid:south-france" : { "delivery-protocol": ["HTTP"], ... },
"pid:germany" : { "delivery-protocol": ["HTTP", "HTTPS"], ... },
"pid:rest" : {}
} }
}
6. Useful ALTO extensions for CDNI Request Routing 5. Useful ALTO extensions for CDNI Request Routing
It is envisioned that yet-to-be-defined ALTO extensions will be It is envisioned that yet-to-be-defined ALTO extensions will be
standardized that make the ALTO protocol more suitable and useful for standardized that make the ALTO protocol more suitable and useful for
applications other than the originally considered P2P use case applications other than the originally considered P2P use case
[I-D.marocco-alto-next]. Some of these extensions to the ALTO [I-D.marocco-alto-next]. Some of these extensions to the ALTO
protocol would be useful for ALTO to be used as a protocol within protocol would be useful for ALTO to be used as a protocol within
CDNI request routing, and in particular within the "Footprint and CDNI request routing, and in particular within the "Footprint and
Capabilities Advertisment" part of the CDNI request routing Capabilities Advertisment" part of the CDNI request routing
interface. interface.
The following proposed extensions to ALTO would be beneficial to The following proposed extensions to ALTO would be beneficial to
facilitate CDNI request routing with ALTO as outlined in Section 4: facilitate CDNI request routing with ALTO as outlined in Section 3.4:
o Server-initiated Notifications and Incremental Updates: In case o Server-initiated Notifications and Incremental Updates: In case
the footprint or the capabilities of a downstream CDN change the footprint or the capabilities of a downstream CDN change
abruptly (i.e. unexpectedly from the perspective of an upstream abruptly (i.e. unexpectedly from the perspective of an upstream
CDN), server initiated notifications would enable a dCDN to CDN), server initiated notifications would enable a dCDN to
directly inform an upstream CDN about such changes. Consider the directly inform an upstream CDN about such changes. Consider the
case where - due to failure - part of the footprint of the dCDN is case where - due to failure - part of the footprint of the dCDN is
not functioning, i.e. the CDN cannot serve content to such clients not functioning, i.e. the CDN cannot serve content to such clients
with reasonable QoS. Without server-initiated notifications, the with reasonable QoS. Without server-initiated notifications, the
uCDN might still use a very recent network and cost map from dCDN, uCDN might still use a very recent network and cost map from dCDN,
skipping to change at page 14, line 28 skipping to change at page 11, line 8
useful information for an upstream CDN for optimized dowmstream useful information for an upstream CDN for optimized dowmstream
CDN selection. For instance, if a uCDN receives a streaming CDN selection. For instance, if a uCDN receives a streaming
request for content with a certain bitrate, it needs to know if it 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 requirements (i.e. can be expected to have enough consistent
bandwidth) before it redirects the request. In general, if ALTO bandwidth) before it redirects the request. In general, if ALTO
could convey such information via new endpoint properties, it could convey such information via new endpoint properties, it
would enable more sophisticated means for downstream CDN selection would enable more sophisticated means for downstream CDN selection
with ALTO. with ALTO.
7. Security Considerations 6. Security Considerations
One important security consideration is the proper authentication of One important security consideration is the proper authentication of
advertisement information provided by a downstream CDN. The ALTO advertisement information provided by a downstream CDN. The ALTO
protocol provides a specification for a signature of ALTO maps (see protocol provides a specification for a signature of ALTO information
8.2.2. of [I-D.ietf-alto-protocol]. ALTO thus provides a proper (see 8.2.2. of [I-D.ietf-alto-protocol]. ALTO thus provides a proper
means for protecting the integrity of footprint advertisment means for protecting the integrity of FCI information.
information.
More Security Considerations will be discussed in a future version of More Security Considerations will be discussed in a future version of
this document. this document.
8. Summary and Outlook 7. Acknowledgements
This document presented conrete examples of how ALTO can be used
within the downstream CDN selection of CDNI Request Routing.
Further, the document provides arguments why ALTO is a meaningful
protocol in this context. Essentially, ALTO network and cost maps
are a means to provide detailed and various types of information to
an upstream CDN, in order to facilitate well-considered downstream
CDN selection.
The intention of this document is to find consensus in the CDNI WG
that ALTO is a useful protocol for CDNI request routing, and that
ALTO has many benefits for proper selection of a downstream CDN. The
overall objective is to form agreement on how ALTO should be used
within the CDNI request routing protocol. It is the intention to
capture the outcome of such continuing discussions in future versions
of this document.
9. Acknowledgements The authors would like to thank Kevin Ma, Daryl Malas, and Matt
Caulfield for their timely reviews and invaluable comments.
Jan Seedorf is partially supported by the CHANGE project (CHANGE: Jan Seedorf is partially supported by the GreenICN project (GreenICN:
Enabling Innovation in the Internet Architecture through Flexible Architecture and Applications of Green Information Centric
Flow-Processing Extensions, http://www.change-project.eu/), a Networking), a research project supported jointly by the European
research project supported by the European Commission under its 7th Commission under its 7th Framework Program (contract no. 608518) and
Framework Program (contract no. 257422). The views and conclusions the National Institute of Information and Communications Technology
(NICT) in Japan (contract no. 167). The views and conclusions
contained herein are those of the authors and should not be contained herein are those of the authors and should not be
interpreted as necessarily representing the official policies or interpreted as necessarily representing the official policies or
endorsements, either expressed or implied, of the CHANGE project or endorsements, either expressed or implied, of the GreenICN project,
the European Commission. the European Commission, or NICT.
Jan Seedorf has been partially supported by the COAST project
(COntent Aware Searching, retrieval and sTreaming, http://www.coast-
fp7.eu), a research project supported by the European Commission
under its 7th Framework Program (contract no. 248036). The views
and conclusions contained herein are those of the authors and should
not be interpreted as necessarily representing the official policies
or endorsements, either expressed or implied, of the COAST project or
the European Commission.
10. References 8. References
10.1. Normative References 8.1. Normative References
[RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic [RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic
Optimization (ALTO) Problem Statement", RFC 5693, October Optimization (ALTO) Problem Statement", RFC 5693, October
2009. 2009.
[RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content [RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content
Distribution Network Interconnection (CDNI) Problem Distribution Network Interconnection (CDNI) Problem
Statement", RFC 6707, September 2012. Statement", RFC 6707, September 2012.
[RFC6770] Bertrand, G., Stephan, E., Burbridge, T., Eardley, P., Ma, [RFC6770] Bertrand, G., Stephan, E., Burbridge, T., Eardley, P., Ma,
K., and G. Watson, "Use Cases for Content Delivery Network K., and G. Watson, "Use Cases for Content Delivery Network
Interconnection", RFC 6770, November 2012. Interconnection", RFC 6770, November 2012.
10.2. Informative References 8.2. Informative References
[I-D.peterson-CDNI-strawman] [I-D.peterson-CDNI-strawman]
Peterson, L. and J. Hartman, "Content Distribution Network Peterson, L. and J. Hartman, "Content Distribution Network
Interconnection (CDNI) Problem Statement", draft-peterson- Interconnection (CDNI) Problem Statement", draft-peterson-
CDNI-strawman-01 (work in progress), May 2011. CDNI-strawman-01 (work in progress), May 2011.
[I-D.ietf-cdni-problem-statement] [I-D.ietf-cdni-problem-statement]
Niven-Jenkins, B., Faucheur, F., and N. Bitar, "Content Niven-Jenkins, B., Faucheur, F., and N. Bitar, "Content
Distribution Network Interconnection (CDNI) Problem Distribution Network Interconnection (CDNI) Problem
Statement", draft-ietf-cdni-problem-statement-08 (work in Statement", draft-ietf-cdni-problem-statement-08 (work in
progress), June 2012. progress), June 2012.
[I-D.marocco-alto-next] [I-D.marocco-alto-next]
Marocco, E. and V. Gurbani, "Extending the Application- Marocco, E. and V. Gurbani, "Extending the Application-
Layer Traffic Optimization (ALTO) Protocol", draft- Layer Traffic Optimization (ALTO) Protocol", draft-
marocco-alto-next-00 (work in progress), January 2012. marocco-alto-next-00 (work in progress), January 2012.
[I-D.ietf-alto-protocol] [I-D.ietf-alto-protocol]
Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol", draft- Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol", draft-
ietf-alto-protocol-25 (work in progress), January 2014. ietf-alto-protocol-27 (work in progress), March 2014.
[I-D.ietf-cdni-requirements] [I-D.ietf-cdni-requirements]
Leung, K. and Y. Lee, "Content Distribution Network Leung, K. and Y. Lee, "Content Distribution Network
Interconnection (CDNI) Requirements", draft-ietf-cdni- Interconnection (CDNI) Requirements", draft-ietf-cdni-
requirements-17 (work in progress), January 2014. requirements-17 (work in progress), January 2014.
[I-D.ietf-cdni-use-cases] [I-D.ietf-cdni-use-cases]
Bertrand, G., Emile, S., Burbridge, T., Eardley, P., Ma, Bertrand, G., Emile, S., Burbridge, T., Eardley, P., Ma,
K., and G. Watson, "Use Cases for Content Delivery Network K., and G. Watson, "Use Cases for Content Delivery Network
Interconnection", draft-ietf-cdni-use-cases-10 (work in Interconnection", draft-ietf-cdni-use-cases-10 (work in
skipping to change at page 17, line 5 skipping to change at page 13, line 11
Schwan, N. and B. Roome, "ALTO Incremental Updates", Schwan, N. and B. Roome, "ALTO Incremental Updates",
draft-schwan-alto-incr-updates-02 (work in progress), July draft-schwan-alto-incr-updates-02 (work in progress), July
2012. 2012.
[I-D.jenkins-alto-cdn-use-cases] [I-D.jenkins-alto-cdn-use-cases]
Niven-Jenkins, B., Watson, G., Bitar, N., Medved, J., and Niven-Jenkins, B., Watson, G., Bitar, N., Medved, J., and
S. Previdi, "Use Cases for ALTO within CDNs", draft- S. Previdi, "Use Cases for ALTO within CDNs", draft-
jenkins-alto-cdn-use-cases-03 (work in progress), June jenkins-alto-cdn-use-cases-03 (work in progress), June
2012. 2012.
[I-D.seedorf-alto-for-cdni] [I-D.ma-cdni-capabilities]
Seedorf, J., "ALTO for CDNi Request Routing", draft- Ma, K. and J. Seedorf, "CDNI Footprint & Capabilities
seedorf-alto-for-cdni-00 (work in progress), October 2011. Advertisement Interface", draft-ma-cdni-capabilities-05
(work in progress), June 2014.
[I-D.ietf-cdni-framework] [I-D.ietf-cdni-framework]
Peterson, L., Davie, B., and R. Brandenburg, "Framework Peterson, L., Davie, B., and R. Brandenburg, "Framework
for CDN Interconnection", draft-ietf-cdni-framework-09 for CDN Interconnection", draft-ietf-cdni-framework-14
(work in progress), January 2014. (work in progress), June 2014.
[I-D.liu-cdni-cost] [I-D.liu-cdni-cost]
Liu, H., "A Cost Perspective on Using Multiple CDNs", Liu, H., "A Cost Perspective on Using Multiple CDNs",
draft-liu-cdni-cost-00 (work in progress), October 2011. draft-liu-cdni-cost-00 (work in progress), October 2011.
[I-D.spp-cdni-rr-foot-cap-semantics] [I-D.spp-cdni-rr-foot-cap-semantics]
Seedorf, J., Peterson, J., Previdi, S., Brandenburg, R., Seedorf, J., Peterson, J., Previdi, S., Brandenburg, R.,
and K. Ma, "CDNI Request Routing: Footprint and and K. Ma, "CDNI Request Routing: Footprint and
Capabilities Semantics", draft-spp-cdni-rr-foot-cap- Capabilities Semantics", draft-spp-cdni-rr-foot-cap-
semantics-04 (work in progress), February 2013. semantics-04 (work in progress), February 2013.
Authors' Addresses [I-D.ietf-cdni-metadata]
Niven-Jenkins, B., Murray, R., Watson, G., Caulfield, M.,
Leung, K., and K. Ma, "CDN Interconnect Metadata", draft-
ietf-cdni-metadata-06 (work in progress), February 2014.
[I-D.ietf-cdni-logging]
Faucheur, F., Bertrand, G., Oprescu, I., and R.
Peterkofsky, "CDNI Logging Interface", draft-ietf-cdni-
logging-11 (work in progress), March 2014.
[I-D.ietf-cdni-footprint-capabilities-semantics]
Seedorf, J., Peterson, J., Previdi, S., Brandenburg, R.,
and K. Ma, "CDNI Request Routing: Footprint and
Capabilities Semantics", draft-ietf-cdni-footprint-
capabilities-semantics-02 (work in progress), February
2014.
Authors' Addresses
Jan Seedorf Jan Seedorf
NEC Laboratories Europe, NEC Europe Ltd. NEC Laboratories Europe, NEC Europe Ltd.
Kurfuersten-Anlage 36 Kurfuersten-Anlage 36
Heidelberg 69115 Heidelberg 69115
Germany Germany
Phone: +49 (0) 6221 4342 221 Phone: +49 (0) 6221 4342 221
Email: jan.seedorf@neclab.eu Email: jan.seedorf@neclab.eu
URI: http://www.neclab.eu URI: http://www.neclab.eu
Y.R. Yang Y.R. Yang
Yale University Yale University
51 Prospect Street 51 Prospect Street
New Haven 06511 New Haven 06511
USA USA
Email: yry@cs.yale.edu Email: yry@cs.yale.edu
URI: http://www.cs.yale.edu/~yry/ URI: http://www.cs.yale.edu/~yry/
Jon Peterson
NeuStar
1800 Sutter St Suite 570
Concord CA 94520
USA
Email: jon.peterson@neustar.biz
 End of changes. 48 change blocks. 
338 lines changed or deleted 190 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/