Content Delivery Networks J. Seedorf Interconnection NEC Internet-Draft October 19, 2011 Intended status: Informational Expires: April 21, 2012 ALTO for CDNi Request Routing draft-seedorf-alto-for-cdni-00 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 focusses on the Request Routing Interface of CDNi, and more specifically on how the solutions currently being defined in the Application Layer Traffic Optimization (ALTO) WG can improve CDNi request routing. The overall intention behind this document is to foster discussions (in the CDNi as well as in the ALTO WG) regarding a) if, b) how, and c) under what conditions ALTO can be useful to optimize CDNi request routing. As basis for this discussion, this document provides concrete examples of how ALTO can be integrated within CDNi request routing. The examples in this document are based on the use cases and examples currently being discussed in the CDNi WG. 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 April 21, 2012. Copyright Notice Seedorf Expires April 21, 2012 [Page 1] Internet-Draft ALTO for CDNi request Routing October 2011 Copyright (c) 2011 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. CDNi Request Routing . . . . . . . . . . . . . . . . . . . . . 4 3. Using ALTO within CDNi Request Routing . . . . . . . . . . . . 5 3.1. ALTO to simplify DNS-based Request Routing Redirection . . 5 3.2. ALTO to simplify http-Redirection for Request Routing . . 7 3.3. ALTO to support Selection of Downstream CDN . . . . . . . 9 4. Security Considerations . . . . . . . . . . . . . . . . . . . 10 5. Summary and Outlook . . . . . . . . . . . . . . . . . . . . . 11 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12 7. Informative References . . . . . . . . . . . . . . . . . . . . 13 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 14 Seedorf Expires April 21, 2012 [Page 2] Internet-Draft ALTO for CDNi request Routing October 2011 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 [refs.cdniproblemstatement]. The CDNi problem statement envisions four interfaces to be standardized within the IETF for CDN interconnection [refs.cdniproblemstatement]: o CDNI Request Routing Interface o CDNI Metadata Interface o CDNI Logging Interface o CDNI Control Interface This document focusses solely on the CDNI Request Routing Interface. In particular, this document shows concrete examples of how ALTO [RFC5693] can be integrated in CDNi request routing. The goal of this document is to show in what cases ALTO can benefit CDNi request routing, giving concrete examples and explaining how ALTO improves CDNi request routing in each of these examples. The examples used in this document are based on the use cases and request routing proposals currently being discussed in the CDNi WG [refs.cdniusecases] [refs.cdnistrawman] and in the ALTO WG [refs.altocdn]. The overall rationale of this document is to foster discussions (in the CDNi as well as in the ALTO WG) regarding a) if, b) how, and c) under what conditions ALTO can be useful to optimize CDNi request routing. Throughout this document, we use the terminology for CDNi defined in [refs.cdniproblemstatement]. Seedorf Expires April 21, 2012 [Page 3] Internet-Draft ALTO for CDNi request Routing October 2011 2. CDNi Request Routing The main purpose of the CDNI Request Routing Interface is described in [refs.cdniproblemstatement] 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 and to allow the downstream CDN to control what the upstream Request Routing function should return to the User Agent in the redirection message". 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 Seedorf Expires April 21, 2012 [Page 4] Internet-Draft ALTO for CDNi request Routing October 2011 3. Using ALTO within CDNi Request Routing Application Layer Traffic Optimization (ALTO) 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 [refs.altocdn]. 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 [refs.altocdn]). Also, the CDNi problem statement explicitly mentions ALTO as a candidate protocol for "algorithms for selection of CDN or Surrogate by Request-Routing systems" [refs.cdniproblemstatement]. 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. As explicitly being out-of-scope for CDNi [refs.cdniproblemstatement], the examples used in this document assume 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). 3.1. ALTO to simplify DNS-based Request Routing Redirection If CDNi request routing is based on DNS, ALTO can potentially help to avoid one or more DNS resolution steps. For instance, Figure 1 shows a modified version of the high-level message sequence chart from Figure 5 of [refs.cdniframework] (note that this figure is similar to the high-level message sequence chart shown in Figure 3 of [refs.cdnistrawman]). In the original figure (i.e. Figure 5 in [refs.cdniframework]), the DNS server hosted by the upstream CDN (assumed to be the authoritative DNS server for the requested content), returns a DNS CNAME and NS record which essentially directs the end user to the request router of the downstream CDN. However, this redirection involves another DNS resolution for the request Seedorf Expires April 21, 2012 [Page 5] Internet-Draft ALTO for CDNi request Routing October 2011 router of the downstream CDN to be performed by the end user. In the example using ALTO provided in Figure 1 of this document, the downstream CDN provides the upstream CDN an ALTO network (and corresponding cost) map by means of the ALTO protocol [refs.altoprotocol] (0). This ALTO map provides sufficient information for the upstream CDN to directly return a suitable IP- address for the CDN entry point in the downstream CDN (2). In principle, using ALTO this way the downstream CDN provider would provide the decision on which delivery node is best by means of an ALTO network map to the upstream CDN provider. This enables the upstream CDN provider to directly return a suitable delivery node in the downstream CDN to the end user as a response to the initial DNS request received by the upstream CDN provider. An imlicit assumption for the example in Figure 1 to work is that the CDN entry point for the downstream CDN only depends on the location of the end user. Using the cost map, the upstream CDN can determine the "best" entry point in the downstream CDN. If the "best" entry point depends also on the target domain ("cdn.csp.com" in the example), it becomes more tricky to make such information available to the upstream CDN by means of ALTO network map and cost map. One possible way to still use ALTO in this case would be for the downstream CDN to provide a different cost map for each Content Service Provider (CSP). Seedorf Expires April 21, 2012 [Page 6] Internet-Draft ALTO for CDNi request Routing October 2011 End-User Operator B Operator A | |ALTO network/cost map | | |------------------------>|(0) | | | |DNS cdn.csp.com | | |-------------------------------------------------->|(1) | | | | | | |IPaddr of B's CDN Entry Point |(2) |<--------------------------------------------------| |HTTP cdn.csp.com | | |------------------------>| | | |(3) | | |DNS op-b-acq.op-a.net | | |------------------------>| | | |(4) | |IPaddr of A's Delivery Node | |<------------------------| | |HTTP op-b-acq.op-a.net | | |------------------------>| | | |(5) | |Data | | |<------------------------| |Data | | |<------------------------| | Figure 1 - ALTO within DNS-based redirection of request routing 3.2. ALTO to simplify http-Redirection for Request Routing Similar to the example given in the previous subsection, ALTO can also help to reduce intermediate http redirection steps. Figure 2 shows a modified version of the the high-level message sequence chart from Figure 3 of [refs.cdniframework] (note that this figure is similar to the high-level message sequence chart shown in Figure 1 of [refs.cdnistrawman]). In this case, the ALTO maps provided in step (0) by the downstream CDN potentially enable the upstream CDN to directly return - as a response to an http request - the hostname of the suitable cache (delivery node) in the downstream CDN by means of 302-redirection (4). This use of ALTO would enable to avoid several http-302 redirections and DNS resolutions by the end user (compare with figure 3 of [refs.cdniproblemstatement], steps (2-4)). Depending on how dynamically the actual "best" delivery node changes (from the downstream CDN's request routing perspective), it might only be meaningful to return to the end user the "best" entry point Seedorf Expires April 21, 2012 [Page 7] Internet-Draft ALTO for CDNi request Routing October 2011 or cluster within the downstream CDN. This would require an additional http-redirect by the downstream request router to the "best" actual cache. However, even in such a case ALTO can save one http-redirect and one DNS resolution at the end user, consequently speeding up the overall process of CDNi request routing. End-User Operator B Operator A | |ALTO network/cost map | | |------------------------>| |DNS cdn.csp.com | | |-------------------------------------------------->| | | |(1) |IPaddr of A's Request Router | |<--------------------------------------------------| |HTTP cdn.csp.com | | |-------------------------------------------------->|(2) | | |(3) | | |(4) |302 node1.peer-a.op-b.net/cdn.csp.com | |<--------------------------------------------------| |DNS node1.peer-a.op-b.net| | |------------------------>| | | |(5) | |IPaddr of B's Delivery Node | |<------------------------| | | | | |HTTP node1.peer-a.op-b.net/cdn.csp.com | |------------------------>| | | |(6) | | |DNS op-b-acq.op-a.net | | |------------------------>| | | |(7) | |IPaddr of A's Request Router | |<------------------------| | |HTTP op-b-acq.op-a.net | | |------------------------>| | | |(8) | |302 node2.op-b.acq.op-A.net | |<------------------------| | |DNS node2.op-b-acq.op-a.net | |------------------------>| | | |(9) | |IPaddr of A's Delivery Node | |<------------------------| | | |(10) | |Data | | |<------------------------| |Data | | Seedorf Expires April 21, 2012 [Page 8] Internet-Draft ALTO for CDNi request Routing October 2011 |<------------------------| | Figure 2 - ALTO within http-based redirection of request routing 3.3. ALTO to support Selection of Downstream CDN ALTO could also help for the upstream CDN provider to select a proper downstream CDN provider for a given end user request. For instance, a network map provided by each of several candidate downstream CDNs could provide information to the upstream CDN provider regarding the geopgraphical coverage, the location of "surrogates", or similar. Future versions of this document will discuss this use case in more detail, and provide concrete examples how ALTO can be used for downstream CDN selection by the upstream CDN provider. Seedorf Expires April 21, 2012 [Page 9] Internet-Draft ALTO for CDNi request Routing October 2011 4. Security Considerations Security Considerations will be discussed in a future version of this document. Seedorf Expires April 21, 2012 [Page 10] Internet-Draft ALTO for CDNi request Routing October 2011 5. Summary and Outlook This document presented some examples on how ALTO can be used within CDNi Request Routing and argued why such use of ALTO is meaningful in certain cases. The intention of this document is to arouse discussions in the CDNi WG as well as the ALTO WG in order to find consensus on scenarios where ALTO is beneficial to CDNi request routing and to form agreement on how ALTO should be used in such cases within the CDNi request routing protocol. It is the intention to capture the outcome of such continuing discussions in future versions of this document. Seedorf Expires April 21, 2012 [Page 11] Internet-Draft ALTO for CDNi request Routing October 2011 6. Acknowledgements Jan Seedorf is 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. Seedorf Expires April 21, 2012 [Page 12] Internet-Draft ALTO for CDNi request Routing October 2011 7. Informative References [refs.cdniusecases] Bertrand, G., Stephan, E., Watson, G., Burbridge, T., and P. Eardley, "SPEERMINT Peering Architecture", draft-ietf-cdni-use-cases-00 (work in progress), September 2011. [refs.cdniproblemstatement] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content Distribution Network Interconnection (CDNI) Problem Statement", draft-ietf-cdni-problem-statement-00 (work in progress), September 2011. [refs.altocdn] Niven-Jenkins, B., Watson, G., Bitar, N., Medved, J., and S. Previdi, "Use Cases for ALTO within CDNs", draft-jenkins-alto-cdn-use-cases-01 (work in progress), June 2011. [RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic Optimization (ALTO) Problem Statement", RFC 5693, October 2009. [refs.cdnistrawman] Peterson, L. and J. Hartman, "Content Distribution Network Interconnection (CDNI) Problem Statement", draft-peterson-cdni-strawman-01 (work in progress), May 2011. [refs.cdniframework] Davie, B. and L. Peterson, "Framework for CDN Interconnection", draft-davie-cdni-framework-00 (work in progress), July 2011. [refs.altoprotocol] Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol", draft-ietf-alto-protocol-09 (work in progress), June 2011. Seedorf Expires April 21, 2012 [Page 13] Internet-Draft ALTO for CDNi request Routing October 2011 Author's Address 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 Seedorf Expires April 21, 2012 [Page 14]