CDNI                                                          J. Seedorf
Internet-Draft                                                       NEC
Intended status: Informational                                   Y. Yang
Expires: August 18, December 29, 2014                                          Yale
                                                       February 14,
                                                             J. Peterson
                                                                 Neustar
                                                           June 27, 2014

        CDNI Footprint and Capabilities Advertisement using ALTO
               draft-seedorf-cdni-request-routing-alto-06
               draft-seedorf-cdni-request-routing-alto-07

Abstract

   Network Service Providers (NSPs) are currently considering to deploy
   Content Delivery Networks (CDNs) within their networks.  As a
   consequence of this development, there is a need for interconnecting
   these local CDNs.  The necessary interfaces for inter-connecting CDNs
   are currently being defined in the Content Delivery Networks
   Interconnection (CDNI) WG.  This document focuses on the CDNI
   Footprint & Capabilities Advertisement interface (FCI).
   Specifically, this document outlines how the solutions currently
   being defined in the specifies a new Application Layer Traffic
   Optimization (ALTO) WG
   can service to facilitate Footprint & Capabilities
   Advertisement in a CDNI
   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. context.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on August 18, December 29, 2014.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  ALTO within CDNI Request Routing  . . . . . . . . . . . . . .   3
   3.  Assumptions and High-Level Design Considerations  . . . . . .   4
     3.1.  General Assumptions and Consideration . Considerations  . . . . . . . . .   5   4
     3.2.  Semantics for Footprint/Capabilities Advertisment . . . .   5
   4.
     3.3.  Advantages of using ALTO as the CDNI FCI protocol . . . .   7
     3.4.  Selection of a Downstream CDN with ALTO . . . . . . . . .   7
   4.  CDNI FCI ALTO Service . . . .   7 . . . . . . . . . . . . . . . .   8
     4.1.  Footprint and Capabilities Advertisement using ALTO
           Network Map and PID Properties  Server Response Encoding  . . . . . . . . . . . . .   7
     4.2.  Conveying additional information with ALTO Cost Maps . .   9
     4.3.  Example of Selecting a Downstream CDN based on ALTO Maps    9
     4.4.  Advantages of using ALTO as the .   8
       4.1.1.  CDNI FCI protocol Map  . . . .  10
   5.  Concrete Examples with ALTO Maps . . . . . . . . . . . . . .  11
     5.1.  Example ALTO Network Map . .   8
       4.1.2.  Meta Information  . . . . . . . . . . . . . .  11
     5.2.  Example ALTO PID Property . . . .   8
       4.1.3.  Data Information  . . . . . . . . . . . . .  12
   6.  Useful ALTO extensions for CDNI Request Routing . . . . .   8
     4.2.  Protocol Errors . .  13
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  14
   8.  Summary and Outlook   8
     4.3.  Example . . . . . . . . . . . . . . . . . . . . . . . . .   9
   5.  Useful ALTO extensions for CDNI Request Routing . . . . . . .  10
   6.  Security Considerations . . . . . . . . . . . . . .  14
   9. . . . . .  11
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  15
   10.  11
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  15
     10.1.  11
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  15
     10.2.  11
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  15  12
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  17  13

1.  Introduction

   Many Network Service Providers (NSPs) are currently considering or
   have already started to deploy Content Delivery Networks (CDNs)
   within their networks.  As a consequence of this development, there
   is a need for interconnecting these local CDNs.  Content Delivery
   Networks Interconnection (CDNI) has the goal of standardizing
   protocols to enable such interconnection of CDNs [RFC6707].

   The CDNI problem statement [RFC6707] envisions four interfaces to be
   standardized within the IETF for CDN interconnection:

   o  CDNI Request Routing Interface
   o  CDNI Metadata Interface

   o  CDNI Logging Interface

   o  CDNI Control Interface

   This document focuses solely on the CDNI Request Routing Interface,
   which can be further divided into two interfaces (see [RFC6707] for a
   detailed description): the CDNI Request Routing Redirection interface
   (RI), and the CDNI Footprint & Capabilities Advertisement interface
   (FCI).  This document presents how one may use ALTO as specifies a protocol for
   CDNI new Application Layer Traffic
   Optimization (ALTO) [I-D.ietf-alto-protocol] service called 'CDNI
   Footprint & Capabilities Advertisement.  Concrete examples of
   how the Advertisement Service'.  This service is
   used to transport a CDNI FCI can be implemented with the ALTO protocol
   [I-D.ietf-alto-protocol] are given.  The examples used in this
   document JSON objects, which are based on the use cases and request routing proposals
   currently being discussed in the CDNI WG [RFC6770]
   [I-D.peterson-CDNI-strawman] and defined 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.
   separate document [I-D.ma-cdni-capabilities].

   Throughout this document, we use the terminology for CDNI defined in
   [I-D.ietf-cdni-problem-statement].

2.  ALTO within CDNI Request Routing

   The main purpose of the CDNI Request Routing Interface is described
   in [RFC6707] as follows: "The CDNI Request Routing interface enables
   a Request Routing function in an Upstream CDN to query a Request
   Routing function in a Downstream CDN to determine if the Downstream
   CDN is able (and willing) to accept the delegated Content Request.
   It also allows the Downstream CDN to control what should be returned
   to the User Agent in the redirection message by the upstream Request
   Routing function."  On a high level, the scope of the CDNI Request
   Routing Interface therefore contains two main tasks:

   o  A) Determining if the downstream CDN is willing to accept a
      delegated content request

   o  B) Redirecting the content request coming from an upstream CDN to
      the proper entry point or entity in the downstream CDN

   More precisely, in [I-D.ietf-cdni-framework] the request routing
   interface is broadly divided into two functionalities:

   o  1) the asynchronous advertisement of footprint and capabilities by
      a dCDN that allows a uCDN to decide whether to redirect particular
      user requests to that dCDN (the CDNI FCI)

   o  2) the synchronous operation of actually redirecting a user
      request (the CDNI RI)

   Application Layer Traffic Optimization (ALTO)
   [I-D.ietf-alto-protocol] is an approach for guiding the resource
   provider selection process in distributed applications that can
   choose among several candidate resources providers to retrieve a
   given resource.  By conveying network layer (topology) information,
   an ALTO server can provide important information to "guide" the
   resource provider selection process in distributed applications.
   Usually, it is assumed that an ALTO server conveys information these
   applications cannot measure themselves [RFC5693].

   Originally, ALTO was motivated by the huge amount of cross-ISP
   traffic generated by P2P applications [RFC5693].  Recently, however,
   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
   been proposed to use ALTO for selecting an entry-point in a
   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,
   the CDNI problem statement explicitly mentions ALTO as a candidate
   protocol for "algorithms for selection of CDN or Surrogate by
   Request-Routing systems" [I-D.ietf-cdni-problem-statement].  Yet,
   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

   In this section we list some assumptions and design issues to be
   considered when using ALTO for the CDNI Footprint and Capabilities
   Advertisement interface interface.

3.1.  General Assumptions and Consideration Considerations

   Below we list some general assumptions and considerations:

   o  As explicitly being out-of-scope for CDNI
      [I-D.ietf-cdni-problem-statement], the examples used in this
      document assume it is assumed that ingestion of
      content or acquiring content across CDNs is not part of request
      routing as considered within CDNI standardization work.  The focus
      of using ALTO (as considered in this document) is hence on request
      routing only, assuming that the content (desired by the end user)
      is available in the downstream CDN (or can be aquired by the
      downstream CDN by some means).

   o  Federation Model: "Footprint and Capabilities Advertisement" and
      in general CDN request routing depends on the federation model
      among the CDN providers.  Designing a suitable solution thus
      depends on whether a solution is needed for different settings,
      where CDNs consist of both NSP CDNs (serving individual ASes) and
      general, traditional CDNs (such as Akamai).  We assume that CDNI
      is not designed for a setting where only NSP CDNs each serve a
      single AS only.

   o  In this document, we assume it is assumed that the upstream CDN (uCDN) makes
      the decision on selecting a downstream CDN, based on information
      that each downstream CDN has made available to the upstream CDN.
      Further, we assume that in principle more than one dCDN may be
      suitable for a given end-user request (i.e. different dCDNs may
      claim "overlapping" footprints).  The uCDN hence potentially has
      to select among several candidate downstream CDNs for a given end
      user request.

   o  It is not clear what kind(s) of business, contract, and
      operational relationships two peering CDNs may form.  For the
      Internet, we see provider-customer and peering as two main
      relations; providers may use different charging models (e.g.,
      95-percentile, total volume) and may provide different SLAs.
      Given such unknown characteristics of CDN peering business
      agreements, we should design the protocol to support as much
      diverse potential business and operational models as possible.

3.2.  Semantics for Footprint/Capabilities Advertisment

   The CDNI document on "Footprint and Capabilities Semantics"
   [I-D.spp-cdni-rr-foot-cap-semantics]
   [I-D.ietf-cdni-footprint-capabilities-semantics] defines the
   semantics for the CDNI FCI.  It thus provides guidance on what
   Footprint and Capabilities mean in a CDNI context and how a protocol
   solution should in principle look like.  Here we briefly summarize
   the key points of the semantics of Footprint and Capabilities (for a
   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
      interpreted independently from each other.  In such cases, i.e.
      where capabilities must be expressed on a per footprint basis, it
      may be beneficial to combine footprint and capabilities
      advertisement.

   o  Given that a large part of Footprint and Capabilities
      Advertisement will actually happen in contractual agreements, the
      semantics of CDNI Footprint and Capabilities advertisement refer
      to answering the following question: what 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 convey via the CDNI request routing interface.  Such
      information would provide updates on information previously agreed
      in contracts between the participating CDNs.  In other words, the
      CDNI FCI is a means for a dCDN to provide changes/updates
      regarding a footprint and/or capabilities it has prior agreed to
      serve in a contract with a uCDN.

   o  It seems clear that "coverage/reachability" types of footprint
      must be supported within CDNI.  The following such types of
      footprint are mandatory and must be supported by the CDNI FCI:

      *  List of ISO Country Codes

      *  List of AS numbers

      *  Set of IP-prefixes

      A 'set of IP-prefixes' must be able to contain full IP addresses,
      i.e., a /32 for IPv4 and a /128 for IPv6, and also 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.

   o  For all of these mandatory-to-implement footprint types,
      footprints can 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 dCDN.  For IP prefixes
      or ASN(s), the footprint signals to the uCDN that it 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 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 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 country of the request routing source.  Multiple
      footprint constraints are additive, i.e. the advertisement of
      different types of footprint narrows the dCDN candidacy
      cumulatively.

   o  The following capabilities seem useful as 'base' capabilities,
      i.e. ones that are needed in any case and therefore constitute
      mandatory capabilities to be supported by the CDNI FCI:

      *  Delivery Protocol (e.g., HTTP vs. RTMP)

      *  Acquisition Protocol (for aquiring content from a uCDN)

      *  Redirection Mode (e.g., DNS Redirection vs. HTTP Redirection as
         discussed in [I-D.ietf-cdni-framework])

      *  Capabilities related to CDNI Logging (e.g., supported logging
         mechanisms)

      *  Capabilities related to CDNI Metadata (e.g., authorization
         algorithms or support for proprietary vendor metadata)

4.  Selection

3.3.  Advantages of a Downstream CDN with using ALTO

   Under as the considerations stated in Section 3, CDNI FCI protocol

   The following reasons make ALTO can help the
   upstream CDN provider to select a proper downstream CDN provider suitable candidate protocol 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 selection as part of CDNI request routing and potentially additonally ALTO cost maps
   [I-D.ietf-alto-protocol]) to in
   particular for an ALTO client FCI protocol:

   o  CDN request routing is done at the upstream CDN
   provider.  Network maps provided by each of several candidate
   downstream CDNs can provide information application layer.  ALTO is a
      protocol specifically designed 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
   downstream CDN selection as part of CDNI request routing and in
   particular for an FCI protocol:

   o  CDN request routing is done at the application layer.  ALTO is a
      protocol specifically designed to improve application layer
      traffic (and application layer connections among hosts on improve application layer
      traffic (and application layer connections among hosts on the
      Internet) by providing additonal information to applications that
      these applications could not easily retrieve themselves.  For
      CDNI, this is exactly the case: a uCDN wants to improve
      application layer CDN request routing by using dedicated
      information (provided by a dCDN) that the uCDN could not easily
      obtain otherwise.

   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
      particular if such a footprint is being expressed by IP-prefix
      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
      integrity protection (see Section 7) 6)

   o  RESTful-Design: The ALTO protocol has undergone extensive
      revisions in order to provide a RESTful design regarding the
      client-server interaction specified by the protocol.  A CDNI FCI
      interface based on ALTO would inherit this RESTful design.

   o  Error-handling: The ALTO protocol has undergone extensive
      revisions in order to provide sophisticated error-handling,
      inparticular regarding unexpected cases.  A CDNI FCI interface
      based on ALTO would inherit this thought-through and mature error-
      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). unexpected cases.  A CDNI FCI interface
      based on ALTO would inherit this thought-through and mature error-
      handling.

   o  Filtered network map: The ALTO Map Filtering Service (see
      [I-D.ietf-alto-protocol] for details) would allow a uCDN to query
      only for parts of an ALTO map.

5.  Concrete Examples

3.4.  Selection of a Downstream CDN with ALTO Maps

   The following examples show concrete

   Under the considerations stated in Section 3, ALTO maps and how 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 services which convey CDNI
   FCI would
   be facilitated with these as described in information to an ALTO client at the previous Section.

5.1.  Example upstream CDN provider.

4.  CDNI FCI ALTO Network Map Service

   The following network map would convey to ALTO protocol is based on an ALTO Information Service Framework
   which consists of several services, where all ALTO services are
   'provided through a uCDN that the given dCDN
   (which would provide common transport protocol, messaging structure
   and encoding, and transaction model" [I-D.ietf-alto-protocol].  The
   ALTO protocol specification [I-D.ietf-alto-protocol] defines several
   such services, e.g. the map) has three footprints ALTO map service.

   This document defines a new ALTO Service called ''south-
   france'', ''germany'', and ''rest'', 'CDNI Footprint &
   Capabilities Advertisement Service' which conveys JSON objects of
   media type 'application/alto-fcimap+json'.  This media type and provide JSON
   object format is defined in [I-D.ma-cdni-capabilities]; this document
   specifies how to transport such JSON objects via the corresponding
   IPv4 address ranges for these footprints. ALTO protocol
   with the ALTO 'CDNI Footprint & Capabilities Advertisement Service'.

4.1.  Server Response Encoding

4.1.1.  CDNI FCI Map

   The entry ''cdni-fruit'' :
   [''orange''] 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].

4.1.2.  Meta Information

   The 'meta' field of a FCIMapData response MUST include 'vtag', which
   is an ALTO Version Tag of the ''south-france'' footprint retrieved FCIMapData according to
   [I-D.ietf-alto-protocol] (Section 10.3.).  It thus contains a
   'resource-id' attribute, and a 'tag' is an example identifier string.

4.1.3.  Data Information

   The data component of how
   new endpoint types (e.g. proprietary ones that a CDNI FCI Map resource is named 'fcimap' which
   is a JSON object of type FCIMapData.  This JSON object of type
   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 defined outside 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 among certain CDNs) could be used Map as in an ALTO network
   map.
   [I-D.ma-cdni-capabilities], however with meta-information as defined
   in Section 4.1.2 of this document.

      GET /networkmap/eu /fcimap HTTP/1.1
      Host: cdni.example.com alto.example.com
      Accept: application/alto-networkmap+json,application/alto-error+json application/alto-fcimap+json,application/alto-error+json

      HTTP/1.1 200 OK
      Content-Length: TBA 439
      Content-Type: application/alto-networkmap+json application/alto-fcimap+json
      {
        "meta" : {
          "vtag": [
         {"resource-id": "my-eu-netmap", {
            "resource-id": "my-default-fcimap",
             "tag": "1266506139" "da65eca2eb7a10ce8b059740b0b2e3f8eb1d4785"
          }
       ]
        },
     "network-map" : {
       "south-france" : {
         "ipv4" :
        "fcimap": [ "192.0.2.0/24", "198.51.100.0/25" ], "cdni-fruit" : ["orange"]
       },
       "germany" :
          {
         "ipv4" : "name": "delivery_protocol",
            "values": [ "192.0.3.0/24"]
              "HTTP",
              "RTSP",
              "MMS"
            ]
          },
       "rest" : { "ipv4": [0.0.0.0/0], "ipv6"; [::/0] }
     }
   }

5.2.  Example ALTO PID Property

   The following PID properties would correspond to the footprints from
   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
    Content-Length: TBA
    Content-Type: application/alto-pidprop+json
          {
      "meta" : "name": "delivery_protocol",
            "values": [
              "RTMP",
              "HTTPS"
            ],
            "footprint": [
              {
        "dependent-vtags" : "type": "IPv4CIDR",
                "values": [
          {"resource-id": "my-eu-netmap",
           "tag": "1266506139"
                  "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.

5.  Useful ALTO extensions for CDNI Request Routing

   It is envisioned that yet-to-be-defined ALTO extensions will be
   standardized that make the ALTO protocol more suitable and useful for
   applications other than the originally considered P2P use case
   [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
   CDNI request routing, and in particular within the "Footprint and
   Capabilities Advertisment" part of the CDNI request routing
   interface.

   The following proposed extensions to ALTO would be beneficial to
   facilitate CDNI request routing with ALTO as outlined in Section 4: 3.4:

   o  Server-initiated Notifications and Incremental Updates: In case
      the footprint or the capabilities of a downstream CDN change
      abruptly (i.e. unexpectedly from the perspective of an upstream
      CDN), server initiated notifications would enable a dCDN to
      directly inform an upstream CDN about such changes.  Consider the
      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
      with reasonable QoS.  Without server-initiated notifications, the
      uCDN might still use a very recent network and cost map from dCDN,
      and therefore redirect request to dCDN which it cannot serve.
      Similarly, the possibility for incremental updates would enable
      efficient conveyance of the aforementioned (or similar) status
      changes by the dCDN to the uCDN.  A proposal for server-initiated
      ALTO updates can be found in [I-D.marocco-alto-ws].  A discussion
      of incremental ALTO updates can be found in
      [I-D.schwan-alto-incr-updates].

   o  Content Availability on Hosts: A dCDN might want to express CDN
      capabilties in terms of certain content types (e.g. codecs/
      formats, or content from certain content providers).  A new
      endpoint property for ALTO that would be able to express such
      "content availability" would enable a dCDN to make available such
      information to an upstream CDN.  This would enable a uCDN to
      determine if a given dCDN actually has the capabilities for a
      given request with respect to the type of content requested.

   o  Resource Availability on Hosts or Links: The capabilities on links
      (e.g. maximum bandwidth) or caches (e.g. average load) might be
      useful information for an upstream CDN for optimized dowmstream
      CDN selection.  For instance, if a uCDN receives a 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
      requirements (i.e. can be expected to have enough consistent
      bandwidth) before it redirects the request.  In general, if ALTO
      could convey such information via new endpoint properties, it
      would enable more sophisticated means for downstream CDN selection
      with ALTO.

7.  Security Considerations

   One important security consideration is the proper authentication of
   advertisement information provided by a downstream CDN.  The ALTO
   protocol provides a specification for a signature of ALTO maps (see
   8.2.2. of [I-D.ietf-alto-protocol].  ALTO thus provides a proper
   means for protecting the integrity of footprint advertisment
   information.

   More Security Considerations will be discussed in a future version of
   this document.

8.  Summary and Outlook

   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
      could convey such information via new endpoint properties, it
      would enable more sophisticated means for downstream CDN selection.

   The intention of this document selection
      with ALTO.

6.  Security Considerations

   One important security consideration 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 authentication of
   advertisement information provided by 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
   protocol provides a specification for a signature of ALTO information
   (see 8.2.2. of [I-D.ietf-alto-protocol].  ALTO thus provides a proper
   means for protecting the outcome integrity of such continuing discussions FCI information.

   More Security Considerations will be discussed in a future versions version of
   this document.

9.

7.  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 GreenICN project (CHANGE:
   Enabling Innovation in the Internet (GreenICN:
   Architecture through Flexible
   Flow-Processing Extensions, http://www.change-project.eu/), and Applications of Green Information Centric
   Networking), a research project supported jointly by the European
   Commission under its 7th Framework Program (contract no. 257422).  The views and conclusions
   contained herein are those of the authors 608518) and should not be
   interpreted as necessarily representing
   the official policies or
   endorsements, either expressed or implied, National Institute of the CHANGE project or
   the European Commission.

   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 Information and Communications Technology
   (NICT) in Japan (contract no.  248036). 167).  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 GreenICN project,
   the European Commission.

10. Commission, or NICT.

8.  References

10.1.

8.1.  Normative References

   [RFC5693]  Seedorf, J. and E. Burger, "Application-Layer Traffic
              Optimization (ALTO) Problem Statement", RFC 5693, October
              2009.

   [RFC6707]  Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content
              Distribution Network Interconnection (CDNI) Problem
              Statement", RFC 6707, September 2012.

   [RFC6770]  Bertrand, G., Stephan, E., Burbridge, T., Eardley, P., Ma,
              K., and G. Watson, "Use Cases for Content Delivery Network
              Interconnection", RFC 6770, November 2012.

10.2.

8.2.  Informative References

   [I-D.peterson-CDNI-strawman]
              Peterson, L. and J. Hartman, "Content Distribution Network
              Interconnection (CDNI) Problem Statement", draft-peterson-
              CDNI-strawman-01 (work in progress), May 2011.

   [I-D.ietf-cdni-problem-statement]
              Niven-Jenkins, B., Faucheur, F., and N. Bitar, "Content
              Distribution Network Interconnection (CDNI) Problem
              Statement", draft-ietf-cdni-problem-statement-08 (work in
              progress), June 2012.

   [I-D.marocco-alto-next]
              Marocco, E. and V. Gurbani, "Extending the Application-
              Layer Traffic Optimization (ALTO) Protocol", draft-
              marocco-alto-next-00 (work in progress), January 2012.

   [I-D.ietf-alto-protocol]
              Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol", draft-
              ietf-alto-protocol-25
              ietf-alto-protocol-27 (work in progress), January March 2014.

   [I-D.ietf-cdni-requirements]
              Leung, K. and Y. Lee, "Content Distribution Network
              Interconnection (CDNI) Requirements", draft-ietf-cdni-
              requirements-17 (work in progress), January 2014.

   [I-D.ietf-cdni-use-cases]
              Bertrand, G., Emile, S., Burbridge, T., Eardley, P., Ma,
              K., and G. Watson, "Use Cases for Content Delivery Network
              Interconnection", draft-ietf-cdni-use-cases-10 (work in
              progress), August 2012.

   [I-D.marocco-alto-ws]
              Marocco, E. and J. Seedorf, "WebSocket-based server-to-
              client notifications for the Application-Layer Traffic
              Optimization (ALTO) Protocol", draft-marocco-alto-ws-02
              (work in progress), February 2014.

   [I-D.schwan-alto-incr-updates]
              Schwan, N. and B. Roome, "ALTO Incremental Updates",
              draft-schwan-alto-incr-updates-02 (work in progress), July
              2012.

   [I-D.jenkins-alto-cdn-use-cases]
              Niven-Jenkins, B., Watson, G., Bitar, N., Medved, J., and
              S. Previdi, "Use Cases for ALTO within CDNs", draft-
              jenkins-alto-cdn-use-cases-03 (work in progress), June
              2012.

   [I-D.seedorf-alto-for-cdni]

   [I-D.ma-cdni-capabilities]
              Ma, K. and J. Seedorf, J., "ALTO for CDNi Request Routing", draft-
              seedorf-alto-for-cdni-00 "CDNI Footprint & Capabilities
              Advertisement Interface", draft-ma-cdni-capabilities-05
              (work in progress), October 2011. June 2014.

   [I-D.ietf-cdni-framework]
              Peterson, L., Davie, B., and R. Brandenburg, "Framework
              for CDN Interconnection", draft-ietf-cdni-framework-09 draft-ietf-cdni-framework-14
              (work in progress), January June 2014.

   [I-D.liu-cdni-cost]
              Liu, H., "A Cost Perspective on Using Multiple CDNs",
              draft-liu-cdni-cost-00 (work in progress), October 2011.

   [I-D.spp-cdni-rr-foot-cap-semantics]
              Seedorf, J., Peterson, J., Previdi, S., Brandenburg, R.,
              and K. Ma, "CDNI Request Routing: Footprint and
              Capabilities Semantics", draft-spp-cdni-rr-foot-cap-
              semantics-04 (work in progress), February 2013.

   [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
   NEC Laboratories Europe, NEC Europe Ltd.
   Kurfuersten-Anlage 36
   Heidelberg  69115
   Germany

   Phone: +49 (0) 6221 4342 221
   Email: jan.seedorf@neclab.eu
   URI:   http://www.neclab.eu

   Y.R. Yang
   Yale University
   51 Prospect Street
   New Haven  06511
   USA

   Email: yry@cs.yale.edu
   URI:   http://www.cs.yale.edu/~yry/

   Jon Peterson
   NeuStar
   1800 Sutter St Suite 570
   Concord  CA 94520
   USA

   Email: jon.peterson@neustar.biz