Network Working Group M. Caulfield Internet-Draft Cisco Systems Intended status: Standards Track October 21, 2013 Expires: April 24, 2014 CDNI Rate Pacing draft-caulfield-cdni-rate-pacing-00 Abstract Rate pacing is a class of network traffic shaping which limits the transmission rate of data over a network. This document defines CDNI extensions for downstream CDNs to support rate pacing on behalf of upstream CDNs. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 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 24, 2014. Copyright Notice Copyright (c) 2013 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 Caulfield Expires April 24, 2014 [Page 1] Internet-Draft CDNI Rate Pacing October 2013 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. Rate Pacing Algorithm . . . . . . . . . . . . . . . . . . . . 3 3. CDNI Interfaces Impact . . . . . . . . . . . . . . . . . . . 3 3.1. Footprint & Capabilities Interface . . . . . . . . . . . 3 3.2. Request Routing Redirection Interface . . . . . . . . . . 3 3.3. Metadata Interface . . . . . . . . . . . . . . . . . . . 4 3.3.1. RatePacing Metadata . . . . . . . . . . . . . . . . . 4 3.4. Logging Interface . . . . . . . . . . . . . . . . . . . . 4 3.5. Control Interface . . . . . . . . . . . . . . . . . . . . 5 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 7. Normative References . . . . . . . . . . . . . . . . . . . . 5 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction Rate pacing is a class of network traffic shaping which limits the transmission rate of data over a network. In the context of a Content Delivery Network (CDN), rate pacing provides an important business advantage to a Content Service Provider (CSP) by ensuring that a CDN which is delivering content on behalf of that CSP does not deliver significantly more data than necessary to an end client. For example, suppose an end client is watching some Constant Bit Rate (CBR) video encoded at 1500 kbps. In the absence of rate pacing, the CDN delivering this content may send it to the client at 3000 kbps. If the client chooses to terminate the session before watching the entire video, up to half the transmitted data is wasted. This waste leads to unnecessary cost for the CSP and diminished useful capacity for the CDN. Rate pacing requires configuration on a per-content basis. In order to enable rate pacing in a CDNI environment, the CDNI interfaces need to be extended to optionally support this feature. This document describes: 1. a rate pacing algorithm for CDNs Caulfield Expires April 24, 2014 [Page 2] Internet-Draft CDNI Rate Pacing October 2013 2. CDNI interface extensions required for supporting rate pacing 2. Rate Pacing Algorithm A token bucket algorithm SHOULD be used for implementing rate pacing. Other algorithms MAY be used but the traffic shape MUST fit within the same envelope of a token bucket algorithm. Token bucket is described by [RFC1363]. The token bucket algorithm is characterized by two parameters: 1. Rate - the number of tokens added to the bucket per second 2. Size - the maximum number of tokens in the bucket For the purpose of this document, each token represents one byte. 3. CDNI Interfaces Impact 3.1. Footprint & Capabilities Interface [I-D.ietf-cdni-footprint-capabilities-semantics]defines the CDNI Footprint and Capabilities semantics. But at the time of writing, no FCI syntax specification has been accepted as a working group document. [I-D.ietf-cdni-footprint-capabilities-semantics]states that: "The CDNI FCI specification SHOULD define the registry (and the rules for adding new entries to the registry) for the different capability types. Each capability type MAY further have a list of valid values. The individual CDNI interface specifications which define a given capability SHOULD define any necessary registries (and the rules for adding new entries to the registry) for the values advertised for a given capability type." This document defines a new capability type: "RatePacing" to be added to the FCI capability types registry. No value needs to be advertised for this capability and therefore no additional value registry need to be defined. A CDN MAY advertise the "RatePacing" capability in the FCI if it implements this specification. 3.2. Request Routing Redirection Interface A new RatePacing metadata object is defined to represent the configuration for rate pacing. The RatePacing object has MIME type Caulfield Expires April 24, 2014 [Page 3] Internet-Draft CDNI Rate Pacing October 2013 "application/cdni.RatePacing". RatingPacing MAY appear within the metadata list of either HostMetadata or PathMetadata (i.e. may have either host-level scope or a path-level scope). The following section defines the properties of the RatingPacing object. 3.3. Metadata Interface A new RatePacing metadata object is defined to represent the configuration for rate pacing. The RatePacing object has MIME type "application/cdni.RatePacing". RatingPacing MAY appear within the metadata list of either HostMetadata or PathMetadata (i.e. may have either host-level scope or a path-level scope). The following section defines the properties of the RatingPacing object. 3.3.1. RatePacing Metadata The presence of the RatePacing Metadata indicates that a dCDN MUST comply with the Rate Pacing Algorithm defined by this specification in order to deliver a piece of content. Property: rate Description: Rate of tokens per second to be added to the bucket as described by the token bucket algorithm. This value MUST be a positive integer. Each token represents one byte. Type: Integer Mandatory-to-Specify: Yes. Property: size Description: Maximum number of tokens per bucket as described by the token bucket algorithm. This value MUST be a positive integer. Type: Integer Mandatory-to-Specify: Yes. 3.4. Logging Interface The rate at which a piece of content was delivered MAY be indicated via the LI. The "sc-rate" field indicates the rate in bytes per second as a decimal number. The bytes measured should correspond to the sc-entity-bytes field. sc-rate: Caulfield Expires April 24, 2014 [Page 4] Internet-Draft CDNI Rate Pacing October 2013 format: DEC field value: the average rate in bytes per second at which a response was delivered from Surrogate to client. occurence: there MUST be zero or exactly one instances of this field. 3.5. Control Interface The CI is not impacted by rate pacing. 4. IANA Considerations This document requests the following of IANA: Addition of RatePacing in the CDNI Capability Registry defined in ???. Addition of RatePacing in the CDNI GenericMetadata Type Registry defined in [I-D.ietf-cdni-metadata]. Addition of sc-rate in the CDNI Logging Field Names Registry defined in [I-D.ietf-cdni-logging]. 5. Security Considerations A malicious CSP might attempt to use rate pacing to instruct a dCDN to delivery some content at a very high rate thereby amplifying a DDOS attack. The decision to enforce a rate is left to the discretion of a dCDN. An implementation of rate pacing should implement reasonable upper bound to avoid such cases. 6. Acknowledgements The author would like to thank Francois Le Faucheur for his contributions and feedback. 7. Normative References [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-00 (work in progress), July 2013. [I-D.ietf-cdni-logging] Caulfield Expires April 24, 2014 [Page 5] Internet-Draft CDNI Rate Pacing October 2013 Faucheur, F., Bertrand, G., Oprescu, I., and R. Peterkofsky, "CDNI Logging Interface", draft-ietf-cdni- logging-08 (work in progress), October 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-02 (work in progress), July 2013. [RFC1363] Partridge, C., "A Proposed Flow Specification", RFC 1363, September 1992. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. Author's Address Matt Caulfield Cisco Systems 1414 Massachusetts Ave Boxborough, MA 01719 USA Phone: +1 978 936 9307 Email: mcaulfie@cisco.com Caulfield Expires April 24, 2014 [Page 6]