Internet DRAFT - draft-marocco-alto-next

draft-marocco-alto-next






Internet Engineering Task Force                               E. Marocco
Internet-Draft                                            Telecom Italia
Intended status: Informational                                V. Gurbani
Expires: July 23, 2012                                Bell Laboratories,
                                                          Alcatel-Lucent
                                                        January 20, 2012


  Extending the Application-Layer Traffic Optimization (ALTO) Protocol
                       draft-marocco-alto-next-00

Abstract

   The Application-Layer Traffic Optimization (ALTO) protocol is
   designed to allow entities with knowledge about the network
   infrastructure to export such information to applications that need
   to choose one or more endpoints to connect to among large sets of
   logically equivalent ones.  The primary use case for the ALTO
   protocol was peer-to-peer applications for file sharing, video
   streaming and realtime communications, usually running on end-user
   devices.  However, a number of other applications executing in more
   controlled environments may also benefit from the information that
   can be exported through the ALTO protocol.  The use cases that have
   received significant attention include Content Delivery Networks
   (CDNs), distributed applications running in large datacenters, as
   well as systems made of inter-communicating ALTO servers.

   To apply ALTO to these new use cases, this document aims to foster a
   discussion to determine if, and how, the ALTO protocol could be
   extended to provide a simple yet useful view of a computational
   environment that goes beyond the static (or near static) network
   topology and cost map information.

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."




Marocco & Gurbani         Expires July 23, 2012                 [Page 1]

Internet-Draft               Extending ALTO                 January 2012


   This Internet-Draft will expire on July 23, 2012.

Copyright Notice

   Copyright (c) 2012 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.



































Marocco & Gurbani         Expires July 23, 2012                 [Page 2]

Internet-Draft               Extending ALTO                 January 2012


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
     1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  5
   2.  Use Cases  . . . . . . . . . . . . . . . . . . . . . . . . . .  5
     2.1.  Content Delivery Networks (CDNs) . . . . . . . . . . . . .  5
     2.2.  Virtualized Applications in Datacenters  . . . . . . . . .  6
     2.3.  ALTO Server-to-server Communications . . . . . . . . . . .  6
   3.  New Protocol Features  . . . . . . . . . . . . . . . . . . . .  6
     3.1.  Server-initiated Notifications . . . . . . . . . . . . . .  7
     3.2.  ALTO Information Extensions  . . . . . . . . . . . . . . .  8
       3.2.1.  Bandwidth Availability Between Hosts . . . . . . . . .  9
       3.2.2.  Resource Availability on Hosts . . . . . . . . . . . .  9
       3.2.3.  Content Availability on Hosts  . . . . . . . . . . . .  9
   4.  Security Considerations  . . . . . . . . . . . . . . . . . . .  9
   5.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     5.1.  Normative References . . . . . . . . . . . . . . . . . . . 10
     5.2.  Informative References . . . . . . . . . . . . . . . . . . 10
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10
































Marocco & Gurbani         Expires July 23, 2012                 [Page 3]

Internet-Draft               Extending ALTO                 January 2012


1.  Introduction

   The Application-Layer Traffic Optimization (ALTO) protocol is
   designed to allow entities with knowledge about the network
   infrastructure to export such information to applications that need
   to choose one or more endpoints to connect to among large sets of
   logically equivalent ones.  The primary use case for the ALTO
   protocol was peer-to-peer applications for file sharing, video
   streaming and realtime communications, usually running on end-user
   devices.  However, a number of other applications executing in more
   controlled environments may also benefit from the information that
   can be exported through the ALTO protocol.  The use cases that have
   received significant attention include Content Delivery Networks
   (CDNs), distributed applications running in large datacenters, as
   well as systems made of inter-communicating ALTO servers.

   Such applications require information about the underlying
   infrastructure that goes beyond network topology and associated
   costs.  We believe that the ALTO protocol can be easily extended to
   provide this information.

   The basic idea is to use the ALTO protocol to present a simplified
   view of a computational environment, aggregating with some level of
   abstraction and approximation information that at a fine-grained
   level may be conveyed by protocols like OSPF, ISIS, BGP, SNMP, ECN,
   and ConEx.

   To provide such kind of information the ALTO protocol need to be
   extended on several axes:

   o  a means for providing incremental updates to optimize for
      frequently changing information;

   o  a means for providing integrity protection for the information
      provided by an ALTO server, in order to enable information
      redistribution;

   o  a server-initiated notification mechanism, for promptly informing
      applications of status changes;

   o  different types of information, not only related to network costs,
      such as:

      *  network link load;

      *  server load;





Marocco & Gurbani         Expires July 23, 2012                 [Page 4]

Internet-Draft               Extending ALTO                 January 2012


      *  availability of resources such as storage memory, content and
         installed applications.

   Detail-level and timescale of the additional information that can be
   provided are an open topic of discussion.  If on the one hand
   applications may not take any advantage of too coarse-grained
   infromation, on the other hand ALTO protocol extensions cannot
   satisfy all the requirements of the mechanisms that today make full
   use of such low level information and therefore must not be intended
   in any way as a replacement for them.  The goal of this document is
   to frame the discussion of what could be reasonable compromises for
   exporting information of the underlying network and computational
   infrastructure to applications that need to make best use of it.

1.1.  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].


2.  Use Cases

2.1.  Content Delivery Networks (CDNs)

   CDNs consist of systems of caching servers that cooperate in the
   distribution of frequently requested content.  When a client wants to
   access some content, the request is directed by the CDN routing logic
   to the most appropriate caching server.  The criteria for selecting
   the most appropriate server can be arbitrary complex and depend of
   information such as:

   o  network distance betwen the querying client and the caching
      server;

   o  load of the caching server, e.g. in terms of number of concurrent
      requests or available serving capacity measured over a recent
      timeframe;

   o  content availability;

   o  storage capacity availablity, for deciding whether to replicate
      some content on servers that do not have it yet.








Marocco & Gurbani         Expires July 23, 2012                 [Page 5]

Internet-Draft               Extending ALTO                 January 2012


2.2.  Virtualized Applications in Datacenters

   Applications running on virtual servers in large datacenters require
   dynamic allocation of resources such as computation power, storage
   capacity and network bandwidth.  Datacenter management logic allocate
   the resources of physycal servers to such applications based on
   information such as:

   o  resource availability on the physycal servers;

   o  application code and configurations availability on the physycal
      servers;

   o  network connectivity quality (i.e. delay and expected throughput)
      between the physycal servers the virtual server is already running
      on, and the new physycal servers the additional resources may be
      allocated from.

2.3.  ALTO Server-to-server Communications

   ALTO servers can improve the guidance they provide by aggregating
   information distributed by other servers (see
   [I-D.medved-alto-svr-apis] and
   [I-D.dulinski-alto-inter-problem-statement]).  In such scenarios, for
   the model to be effective, at any point in time all servers need to
   have a fresh version of the information distributed by the servers
   they are communicating with, regardless of the type of information
   distributed.  However, the frequency of changes increases with the
   number of communicating servers, and the faster the information
   changes, the less the pull-based approach of the base ALTO protocol
   [I-D.ietf-alto-protocol] is suitable for maintaining an updated
   representation of the environment status.


3.  New Protocol Features

   This section discusses some extensions to the ALTO protocol that can
   be used to cover the use cases described in Section 2.  Such
   extensions include:

   o  incremental updates for the network and cost maps defined in the
      base ALTO protocol [I-D.ietf-alto-protocol], for the CDN,
      datacenter and server-to-server use cases, to enable efficient
      transmission of status changes;

   o  integrity protection, for the server-to-server use case, to enable
      servers assert the authenticity of data re-distributed by other
      servers;



Marocco & Gurbani         Expires July 23, 2012                 [Page 6]

Internet-Draft               Extending ALTO                 January 2012


   o  a mechanism for server-initiated notifications, for the CDN,
      datacenters and server-to-server use cases, to enable a fast
      propagation of the status changes;

   o  new types of information for the ALTO protocol, for the CDN and
      datacenters use cases, to provide a representation of the
      computational environment that goes beyond the network topology.

   Incremental updates and integrity protection are easily defined on
   the basis of existing (ongoing) work, namely [I-D.pbryan-json-patch]
   and [I-D.jones-json-web-signature].  The remainder of this section
   discusses the other, perhaps more controversial extensions.

3.1.  Server-initiated Notifications

   The base ALTO protocol [I-D.ietf-alto-protocol] defines a JSON-based
   syntax to be conveyed statelessly over HTTP.  Such a lightweight
   approach has several advantages and is considered most appropriate
   for the use case of peer-to-peer applications, where the information
   is likely to be retrieved and consumed by huge numbers of clients.
   However, in more controlled environment, the same information, with
   the same or an equivalent syntax, can also be conveyed by different
   protocols, such as XMPP, SIP, or by any protocol with publish/
   subscribe capabilities that would allow servers to send updates to
   subscribed clients.


























Marocco & Gurbani         Expires July 23, 2012                 [Page 7]

Internet-Draft               Extending ALTO                 January 2012


      As an example, if an ALTO service provider wanted to make cost
      maps available also through XMPP (assuming some kind of
      specification for ALTO-over-XMPP exists), it could simply
      advertize the proper URI in the information resource directory
      along with the basic HTTP one:


      {
        "resources" : [
          {
            "uri" : "http://alto.example.com/serverinfo",
            "media-types" : [ "application/alto-serverinfo+json" ]
          }, {
            "uri" : "http://alto.example.com/networkmap",
            "media-types" : [ "application/alto-networkmap+json" ]
          }, {
            "uri" : "http://alto.example.com/costmap/num/routingcost",
            "media-types" : [ "application/alto-costmap+json" ],
            "additional-uris" : [ "xmpp:routingcost@alto.example.com" ],
            "capabilities" : {
              "cost-modes" : [ "numerical" ],
              "cost-types" : [ "routingcost" ]
            }
          }, {
            "uri" : "http://alto.example.com/costmap/num/hopcount",
            "media-types" : [ "application/alto-costmap+json" ],
            "additional-uris" : [ "xmpp:hopcount@alto.example.com" ],
            "capabilities" : {
              "cost-modes" : [ "numerical" ],
              "cost-types" : [ "hopcount" ]
            }
          },
          .
          .
          .
        ]
      }


3.2.  ALTO Information Extensions

   The base ALTO protocol [I-D.ietf-alto-protocol] has been designed to
   be easily extended, in terms of both endpoint properties and path
   cost types.  The reminder of this section discusses the types of
   information that are required by the use cases described in Section 2
   and that would allow an ALTO servers to expose an abstract
   representation of a computational environment beyond the simple
   network topology.



Marocco & Gurbani         Expires July 23, 2012                 [Page 8]

Internet-Draft               Extending ALTO                 January 2012


3.2.1.  Bandwidth Availability Between Hosts

   Bandwidth availability is a kind of information that changes
   instantaneously and strictly depends on applications behavior.  For
   such (and other) reasons, conveying it for congestion control other
   than in-band within the data flows may result useless at best, if not
   the cause of detrimental feedback loops.

   However, some notion of link bandwidth availability averaged over a
   reasonabe timeframe may be effectively used by CDN or datacenter
   applications to select well-connected pairs or groups of hosts that
   have to perform bandwidth-demanding tasks.

   Information about bandwidth availability can be defined for encoding
   in the ALTO protocol as a new path cost type.

3.2.2.  Resource Availability on Hosts

   Information about storage and computational capacity availability
   averaged over a reasonable timeframe may be effectively used by CDN
   and datacenter applications as one of the criteria for selecting
   hosts for serving content or performing tasks.

   Information about resource availability can be defined for encoding
   in the ALTO protocol as a new endpoint property.

3.2.3.  Content Availability on Hosts

   Information about content availability can be expressed as lists of
   URIs (e.g. for identifying stored files in CDN caching servers), URNs
   or other kinds of identifiers (e.g. for identifying installed
   applications on physycal servers in a datacenter).

   Information about content availability can be defined for encoding in
   the ALTO protocol as a new endpoint property.


4.  Security Considerations

   The information types discussed in this document are likely to be
   privacy critical in many environment and therefore must be protected,
   restricting or controlling access to the servers that export them.

   Server initiated notification requires more resources than the
   stateless retrivial model adopted by the base ALTO protocol
   [I-D.ietf-alto-protocol] and is more thus more vulnerable to denial
   of service attacks.




Marocco & Gurbani         Expires July 23, 2012                 [Page 9]

Internet-Draft               Extending ALTO                 January 2012


   Access control mechanisms, including HTTP's, may be valid options for
   addressing the security issues related to both privacy critical
   information types and resource-consuming server notifications.


5.  References

5.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

5.2.  Informative References

   [I-D.dulinski-alto-inter-problem-statement]
              Dulinski, Z., Wydrych, P., and R. Stankiewicz, "Inter-ALTO
              Communication Problem Statement",
              draft-dulinski-alto-inter-problem-statement-01 (work in
              progress), July 2011.

   [I-D.ietf-alto-protocol]
              Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol",
              draft-ietf-alto-protocol-10 (work in progress),
              October 2011.

   [I-D.jones-json-web-signature]
              Jones, M., Balfanz, D., Bradley, J., Goland, Y., Panzer,
              J., Sakimura, N., and P. Tarjan, "JSON Web Signature
              (JWS)", draft-jones-json-web-signature-04 (work in
              progress), December 2011.

   [I-D.medved-alto-svr-apis]
              Medved, J., Ward, D., Peterson, J., Woundy, R., and D.
              McDysan, "ALTO Network-Server and Server-Server APIs",
              draft-medved-alto-svr-apis-00 (work in progress),
              March 2011.

   [I-D.pbryan-json-patch]
              Bryan, P., "JSON Patch", draft-pbryan-json-patch-04 (work
              in progress), December 2011.

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







Marocco & Gurbani         Expires July 23, 2012                [Page 10]

Internet-Draft               Extending ALTO                 January 2012


Authors' Addresses

   Enrico Marocco
   Telecom Italia
   Via Reiss Romoli, 274
   Torino,   10148
   Italy

   Phone:
   Email: enrico.marocco@telecomitalia.it


   Vijay K. Gurbani
   Bell Laboratories, Alcatel-Lucent

   Email: vkg@bell-labs.com



































Marocco & Gurbani         Expires July 23, 2012                [Page 11]