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]