Network Working Group B. Niven-Jenkins Internet-Draft Velocix (Alcatel-Lucent) Intended status: Informational February 8, 2011 Expires: August 12, 2011 Thoughts on Naming and Referencing of Data Objects within Content Distribution Network Interconnection (CDNI) solutions draft-jenkins-cdni-names-00 Abstract As part of the development of protocols and solutions for CDNI it will be necessary to agree on common mechanisms for how to identify and name the data objects that are to be interchanged between interconnected CDNs, as well as how to describe which policy should be used when doing so. This document presents some thoughts on the naming and referencing of data types/objects within a CDNI solution. 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 12, 2011. Copyright Notice 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 Niven-Jenkins Expires August 12, 2011 [Page 1] Internet-Draft Naming in CDNI solutions February 2011 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 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Data types that require names in a CDNI solution . . . . . . . 3 3. Classes of names in a CDNI solution . . . . . . . . . . . . . . 4 4. Mapping CDNI data types to Classes of CDNI name . . . . . . . . 5 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8.1. Normative References . . . . . . . . . . . . . . . . . . . 7 8.2. Informative References . . . . . . . . . . . . . . . . . . 7 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 7 Niven-Jenkins Expires August 12, 2011 [Page 2] Internet-Draft Naming in CDNI solutions February 2011 1. Introduction [I-D.jenkins-cdni-problem-statement] introduces the Problem scope for CDN Interconnection (CDNI). [I-D.bertrand-cdni-use-cases] introduces some use cases that CDNI solutions should address. As part of the development of protocols and solutions for CDNI it will be necessary to agree on common mechanisms for how to identify and name the data objects that are to be interchanged between interconnected CDNs, as well as how to describe which policy should be used when doing so. This document presents some thoughts on the naming and referencing of data types/objects within a CDNI solution. Section 2 describes abstract data types required within CDNI solutions. Section 3 introduces different categories (classes) of CDNI names. Section 4 provides a mapping of the different CDNI data types to the different classes of CDNI names. 1.1. Terminology Within this document the terms 'name' and 'reference' are used interchangeably. This document defines the following terms: Data type: An abstract classification which identifiies the possible values of the data and the possible operations that can be performed on that data. Data object: An actual instance of a data type which is assigned a name. Therefore a name can dereference to a data object which is an instance of a particular data type. 2. Data types that require names in a CDNI solution Regardless of the specific protocols or solutions that are defined and (re-)used to solve the CDNI problem space and address the CDNI requirements, the data types required to implement CDNI remain broadly the same at an abstract level. Outlined below is a list of such abstract data types which will need to be referenced (i.e. referred to by their 'names') either within CDNI data objects or within the CDNI APIs along with a short description of what they represent and contain. Note: This is not meant to be an exhaustive list of all CDNI data Niven-Jenkins Expires August 12, 2011 [Page 3] Internet-Draft Naming in CDNI solutions February 2011 types/objects just those that need to be explicitly referenced by 'name'. CDNI Metadata: CDNI Metadata objects are used to describe various properties about content to be distributed & delivered. They make reference to other CDNI Metadata objects (e.g. distribution/delivery policies), delivery and acquisition protocols, IP address locations, events and log properties. IP address locations: IP address locations are used to group sets of IP addresses together. They can be used to group IP addresses into geographical locations or other "well known" sets (e.g. "Anonymous proxies") as well as to custom sets for example "CDN Operator X's Quality Assurance team", "ISP Y's IP blocks" etc. Delivery & Acquisition Protocols: Delivery and Acquisition protocols are used to pass by reference particular delivery/acquisition feature sets (transport & application protocols and combinations of protocol options) but do not typically dereference to a specific data object. CDN capabilities: CDN capabilities are used to pass by reference the specific capabilities and features advertised by a CDN other than delivery and acquisition protocols and other capability descriptors. They do not typically dereference to a specific data object. CDN references: CDN references are used to uniquely identify a particular CDN, for example as part of a loop detection mechanism. They do not typically dereference to a specific data object. Events: Events are used to pass by reference specific "triggers" (e.g. content delivery started/paused/stopped) that should (or have) caused the generation of a log record. They do not typically dereference to a specific data object. Log properties: Log properties are used to reference specific items of information that should be passed (or have been passed) in a log record generated by an Event. They do not typically dereference to a specific data object. 3. Classes of names in a CDNI solution From the list of CDNI data types that require names in section Section 2 it is immediately obvious that there are at least two classes of CDNI names in CDNI solutions: Niven-Jenkins Expires August 12, 2011 [Page 4] Internet-Draft Naming in CDNI solutions February 2011 Class 1: CDNI names that dereference to a CDNI data object(s). Class 2: CDNI names that do not dereference to a CDNI data object(s) but rather are used within an implementation to influence the code path taken (e.g. what properties to include in a log record) Furthermore in order to reduce the amount of information that needs to be distributed between CDNs consensus may be reached that for certain data types/objects there is value in having a well defined name but allowing each CDN to apply its own value to that name. In such cases, Class 1 could be further subdivided into: Class 1a: CDNI names that dereference to a specific CDN data object whose value is defined by the owner of the name (e.g. "IP addresses that map to CDN Operator X's Quality Assurance team"). Class 1b: CDNI names that dereference to a CDN data object whose value is independently defined by each CDN (e.g. "IP addresses that map to ISO 3166 Country Code GB" or "IP addresses that are assigned to AS47712"). CDNI name class 1a requires a global namespace to be used as the names used must be globally unique to avoid two CDNs using the same CDNI name to refer to different underlying values within the referenced data objects. However there is no requirement for prior agreement between CDNs (beyond partitioning of the CDNI namespace) on the names to be used by each CDN. CDNI name classes 1a and 2 require a global namespace to be used and furthermore prior agreement (i.e. specification) is required of the semantics of each CDNI name because these classes of CDNI names must be interpreted in the same manner by all CDNs in order to ensure interoperability between different CDNI implementations and different interconnected CDNs. 4. Mapping CDNI data types to Classes of CDNI name The table below presents a mapping between the CDNI data types described in Section 2 and the CDNI name classes introduced in Section 3. Niven-Jenkins Expires August 12, 2011 [Page 5] Internet-Draft Naming in CDNI solutions February 2011 +----------------------------------+-------------+ | CDNI data type | Class | +----------------------------------+-------------+ | CDNI Metadata | 1a | | IP address location | 1a or 1b(*) | | Delivery & Acquisition protocols | 2 | | CDN capabilities | 2 | | CDN references | 2 | | Events | 2 | | Log properties | 2 | +----------------------------------+-------------+ (*) Whether an IP address location is of class 1a or 1b will depend on the specific semantics of the name being used (e.g. which part of the CDNI IP address location namespace the name being used belongs to. 5. IANA Considerations This document makes no specific request of IANA. Note to RFC Editor: this section may be removed on publication as an RFC. 6. Security Considerations When CDN Operators are assigning names of class 1a to data objects they have created care should be taken not to expose sensitive private or sensitive information that would otherwise have not been revealed. If each operator is allocated their own space within a larger global namespace then they should be free to define arbitrary mappings between names in their part of the namespace and the actual underlying data objects that result from those names being dereferenced. 7. Acknowledgements The motivation for this document came out of an offline discussion with Francois Le Faucheur. 8. References Niven-Jenkins Expires August 12, 2011 [Page 6] Internet-Draft Naming in CDNI solutions February 2011 8.1. Normative References 8.2. Informative References [I-D.bertrand-cdni-use-cases] Bertrand, G., Stephan, E., Watson, G., Burbridge, T., and P. Eardley, "Use Cases for Content Distribution Network Interconnection", draft-bertrand-cdni-use-cases-01 (work in progress), January 2011. [I-D.jenkins-cdni-problem-statement] Niven-Jenkins, B., Faucheur, F., and N. Bitar, "Content Distribution Network Interconnection (CDNI) Problem Statement", draft-jenkins-cdni-problem-statement-01 (work in progress), January 2011. Author's Address Ben Niven-Jenkins Velocix (Alcatel-Lucent) 326 Cambridge Science Park Milton Road, Cambridge CB4 0WG UK Email: ben@velocix.com Niven-Jenkins Expires August 12, 2011 [Page 7]