DECADE                                                             Y. Gu
Internet-Draft                                                    Huawei
Intended status: Informational                                  D. Bryan
Expires: February 14, 2013                                  Ethernot.org
                                                                 Y. Yang
                                                         Yale University
                                                                P. Zhang
                                                Tsinghua University/Yale
                                                              University
                                                                R. Alimi
                                                                  Google
                                                         August 13, 2012


                          DECADE Requirements
                       draft-ietf-decade-reqs-08

Abstract

   The target of the DECoupled Application Data Enroute (DECADE) system
   is to provide an open and standard in-network storage system for
   applications, primarily P2P (peer-to-peer) applications, to store,
   retrieve and manage their data.  This draft enumerates and explains
   requirements, not only for storage and retrieval, but also for data
   management, access control and resource control, that should be
   considered during the design and implementation of a DECADE-
   compatible system.  These are requirements on the entire system; some
   of the requirements may eventually be implemented by an existing
   protocol with/without some extensions (e.g., a protocol used to read
   and write data from the storage system).  The requirements in this
   document are intended to ensure that a DECADE-compatible system
   architecture includes all of the desired functionality for intended
   applications.

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 [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-



Gu, et al.              Expires February 14, 2013               [Page 1]


Internet-Draft             DECADE Requirements               August 2012


   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 February 14, 2013.

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.




























Gu, et al.              Expires February 14, 2013               [Page 2]


Internet-Draft             DECADE Requirements               August 2012


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  5
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  6
     2.1.  DECADE-compatible Client . . . . . . . . . . . . . . . . .  6
     2.2.  DECADE-compatible Server . . . . . . . . . . . . . . . . .  6
     2.3.  DECADE Storage Provider  . . . . . . . . . . . . . . . . .  6
     2.4.  DECADE Account . . . . . . . . . . . . . . . . . . . . . .  6
     2.5.  Resource Provider  . . . . . . . . . . . . . . . . . . . .  6
     2.6.  Resource Consumer  . . . . . . . . . . . . . . . . . . . .  6
     2.7.  Content Distribution Application . . . . . . . . . . . . .  6
     2.8.  Target Application . . . . . . . . . . . . . . . . . . . .  7
     2.9.  Application End-Point  . . . . . . . . . . . . . . . . . .  7
     2.10. Data Object  . . . . . . . . . . . . . . . . . . . . . . .  7
     2.11. DECADE-compatible System . . . . . . . . . . . . . . . . .  7
     2.12. DECADE Resource Protocol (DRP) Functions . . . . . . . . .  7
     2.13. DECADE Standard Data Transfer Protocol (SDT) Functions . .  7
   3.  System and Protocol Components . . . . . . . . . . . . . . . .  8
   4.  Requirements Structure . . . . . . . . . . . . . . . . . . . .  9
   5.  Data Object Requirements . . . . . . . . . . . . . . . . . . .  9
     5.1.  Data Name Uniqueness . . . . . . . . . . . . . . . . . . .  9
     5.2.  Verifiable Name-Object Binding . . . . . . . . . . . . . . 10
     5.3.  Data Object Size . . . . . . . . . . . . . . . . . . . . . 10
     5.4.  Data Object Attributes . . . . . . . . . . . . . . . . . . 10
     5.5.  Application-defined Object Properties and Metadata . . . . 11
   6.  Access and Authorization Requirements  . . . . . . . . . . . . 11
     6.1.  Provider Access  . . . . . . . . . . . . . . . . . . . . . 11
     6.2.  Secure Authorization . . . . . . . . . . . . . . . . . . . 11
     6.3.  Consumer Access  . . . . . . . . . . . . . . . . . . . . . 12
     6.4.  Provider Authorization When Offline  . . . . . . . . . . . 12
     6.5.  Local Authorization  . . . . . . . . . . . . . . . . . . . 12
     6.6.  Access Control Granularity . . . . . . . . . . . . . . . . 12
     6.7.  Default Access Permissions . . . . . . . . . . . . . . . . 12
     6.8.  Connectivity Supporting NAT and Firewall Traversal . . . . 13
     6.9.  DECADE Server Discovery  . . . . . . . . . . . . . . . . . 13
   7.  Data Transfer Requirements . . . . . . . . . . . . . . . . . . 13
     7.1.  Negotiable Standard Data Transport Protocol  . . . . . . . 13
     7.2.  Atomic or Partial Read/Write . . . . . . . . . . . . . . . 14
     7.3.  Secure Data Transport  . . . . . . . . . . . . . . . . . . 14
     7.4.  Concurrent Read  . . . . . . . . . . . . . . . . . . . . . 14
     7.5.  Concurrent Write . . . . . . . . . . . . . . . . . . . . . 14
     7.6.  Read Before Write Complete . . . . . . . . . . . . . . . . 15
     7.7.  Redirection of Transport . . . . . . . . . . . . . . . . . 15
   8.  Resource Control Requirements  . . . . . . . . . . . . . . . . 16
     8.1.  Multiple Applications Sharing Resources  . . . . . . . . . 16
     8.2.  Per-Client Resource Policy . . . . . . . . . . . . . . . . 16
     8.3.  Distributed Resource Sharing Specification . . . . . . . . 16
     8.4.  Resource Set . . . . . . . . . . . . . . . . . . . . . . . 17



Gu, et al.              Expires February 14, 2013               [Page 3]


Internet-Draft             DECADE Requirements               August 2012


   9.  Error and Failure Handling Requirements  . . . . . . . . . . . 17
     9.1.  Illegal Data Object  . . . . . . . . . . . . . . . . . . . 17
     9.2.  Invalid Access Authorization . . . . . . . . . . . . . . . 18
     9.3.  Insufficient Resources . . . . . . . . . . . . . . . . . . 18
     9.4.  Overload Condition . . . . . . . . . . . . . . . . . . . . 18
     9.5.  Attack Mitigation  . . . . . . . . . . . . . . . . . . . . 19
   10. Management Info Requirements . . . . . . . . . . . . . . . . . 19
     10.1. Account Status . . . . . . . . . . . . . . . . . . . . . . 19
   11. Security Considerations  . . . . . . . . . . . . . . . . . . . 19
     11.1. Authentication and Authorization . . . . . . . . . . . . . 20
     11.2. Confidentiality  . . . . . . . . . . . . . . . . . . . . . 20
     11.3. Attack Mitigation  . . . . . . . . . . . . . . . . . . . . 20
   12. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 20
   13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20
     13.1. Normative References . . . . . . . . . . . . . . . . . . . 20
     13.2. Informative References . . . . . . . . . . . . . . . . . . 20
   Appendix A.  Acknowledgments . . . . . . . . . . . . . . . . . . . 21
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21

































Gu, et al.              Expires February 14, 2013               [Page 4]


Internet-Draft             DECADE Requirements               August 2012


1.  Introduction

   The object of the DECoupled Application Data Enroute (DECADE) system
   is to provide an open and standard in-network storage for content
   distribution applications, where data is typically broken into one or
   more chunks and then distributed.  This may already include many
   types of applications including P2P applications, IPTV (Internet
   Protocol Television), and VoD (Video on Demand).  (For a precise
   definition of the applications targeted in DECADE system, see the
   definition for Target Application in Section 2.)  Instead of always
   transferring data directly from a source/owner client to a requesting
   client, the source/owner client can write to and manage its content
   on its in-network storage.  The requesting client can get the address
   of the in-network storage pertaining to the source/owner client and
   read data from the storage.

   This draft enumerates and explains the rationale behind specific
   requirements on the protocol design and on any data store
   implementation that may be used to implement DECADE servers that
   should be considered during the design and implementation of a
   DECADE-compatible system.  As such, it does not include general
   guiding principles.  General design considerations, explanation of
   the problem being addressed, and enumeration of the types of
   applications to which a DECADE-compatible system may be suited is not
   considered in this document.  For general information, please see
   [RFC6646] and [I-D.ietf-decade-arch].

   This document enumerates the requirements to enable target
   applications to utilize in-network storage.  In this context, using
   storage resources includes not only basic capabilities such as
   writing, reading, and managing data, but also controlling access for
   particular remote clients with which it is sharing data.
   Additionally, we also consider controlling the resources used by
   remote clients when they access data as an integral part of utilizing
   the network storage.

   This document discusses requirements pertaining to DECADE-compatible
   protocol(s).  In certain deployments, several logical in-network
   storage systems could be deployed (e.g., within the same
   administrative domain).  These in-network storage systems can
   communicate and transfer data through internal or non-standard
   communication messages that are outside of the scope of these
   requirements, but they should use DECADE-compatible protocol(s) when
   communicating with other DECADE-compatible in-network storage
   systems.






Gu, et al.              Expires February 14, 2013               [Page 5]


Internet-Draft             DECADE Requirements               August 2012


2.  Terminology

   This document uses the term 'In-network storage' which is defined in
   [RFC6646].

   This document also defines these additional terms:

2.1.  DECADE-compatible Client

   A DECADE-compatible client uploads and/or retrieves data from DECADE-
   compatible servers.  We use the shorter term "client" if there is no
   ambiguity.

2.2.  DECADE-compatible Server

   A DECADE-compatible server stores data inside the network, and
   thereafter manages both the stored data and access to those data.  We
   use the shorter term "server" if there is no ambiguity.

2.3.  DECADE Storage Provider

   A DECADE Storage Provider, or Storage Provider for short, deploys
   and/or manages DECADE-compatible server(s) within a network.

2.4.  DECADE Account

   An account of a DECADE-compatible server has associated cryptographic
   credentials for access control, and resource allocation attributes on
   the server.

2.5.  Resource Provider

   A client which has the account cryptographic credentials of a DECADE
   account at a DECADE-compatible server.  We use the short term
   "Provider" if there is no ambiguity.

2.6.  Resource Consumer

   A client which tries to access a DECADE account but does not have the
   account's cryptographic credentials.  We use the short term
   "Consumer" if there is no ambiguity.

2.7.  Content Distribution Application

   A Content Distribution Application is an application (e.g., P2P,
   traditional CDN, or hybrid P2P/CDN) designed for dissemination of a
   large amounts of content (e.g., files, or video streams) to multiple
   content consumers.  Content Distribution Applications may divide



Gu, et al.              Expires February 14, 2013               [Page 6]


Internet-Draft             DECADE Requirements               August 2012


   content into smaller blocks for dissemination.

2.8.  Target Application

   An application with that includes a DECADE-compatible client along
   with other application functionalities to explicitly control the
   usage of resources of DECADE-compatible servers to deliver content to
   other users.  A primary type of Target Application we consider is
   Content Distribution Applications.  A Target Application divides
   content into smaller blocks for more flexible distribution (e.g.,
   over multiple application-level paths).  We use the term Target
   Application to refer to the type of applications that are explicitly
   (but not exclusively) supported by DECADE system.

2.9.  Application End-Point

   An Application End-Point is an instance of a Target Application.  A
   particular Application End-Point might be a Provider, a Consumer, or
   both.  For example, an Application End-Point might be an instance of
   a video streaming client, or it might be the source providing the
   video to a set of clients.

2.10.  Data Object

   A data object is the unit of data stored and retrieved from a DECADE-
   compatible server.  The data object is a string of raw bytes.  The
   server maintains metadata associated with each data object, but the
   metadata is not included in the data object.

2.11.  DECADE-compatible System

   A system which is composed of DECADE-compatible clients, DECADE-
   compatible servers and in-network storage.  A DECADE-compatible
   system MUST obey all the requirements defined in this document.

2.12.  DECADE Resource Protocol (DRP) Functions

   A set of functions for communication of access control and resource
   scheduling policies from a DECADE client to a server, as well as
   between servers.

2.13.  DECADE Standard Data Transfer Protocol (SDT) Functions

   A set of functions to be used to transfer data objects to and from a
   DECADE server.






Gu, et al.              Expires February 14, 2013               [Page 7]


Internet-Draft             DECADE Requirements               August 2012


3.  System and Protocol Components

   To organize requirements, we consider that a DECADE-compatible system
   consists of two logical sets of functions, as shown in Figure 1.  The
   first set of functions, which we refer to as the DECADE Resource
   Protocol (DRP) functions, is responsible for communication of access
   control and resource scheduling policies from a client to a server,
   as well as between servers.  A DECADE-compatible system will include
   exactly one DRP for interoperability and a common format through
   which these policies can be communicated.

                         Native Application
         .-------------.      Protocol(s)     .-------------.
         | Application | <------------------> | Application |
         |  End-Point  |                      |  End-Point  |
         |             |                      |             |
         | .--------.  |                      | .--------.  |
         | | DECADE |  |                      | | DECADE |  |
         | | Client |  |                      | | Client |  |
         | `--------'  |                      | `--------'  |
         `-------------'                      `-------------'
             |     ^                              |     ^
     DECADE  |     | Standard                     |     |
    Resource |     |   Data                   DRP |     | SDT
    Protocol |     | Transfer                     |     |
     (DRP)   |     |   (SDT)                      |     |
             |     |                              |     |
             |     |                              |     |
             |     |                              |     |
             |     |                              |     |
             |     |                              |     |
             |     |                              |     |
             v     V                              v     V
         .=============.         DRP          .=============.
         |   DECADE    | <------------------> |   DECADE    |
         |   Server    | <------------------> |   Server    |
         `============='         SDT          `============='

              Figure 1: Protocol Components and Generic Flow

   Second, the second set of functions, referred to as the Standard Data
   Transfer (SDT) functions, will be used to transfer data objects to
   and from a server.  A DECADE-compatible system may support multiple
   SDT's.  If there are multiple SDT's, a negotiation mechanism will be
   used to determine a suitable SDT between the client and server.

   The two sets of functions (DRP and SDT) will be either separate or
   combined on the wire.  If they are combined, DRP messages can be



Gu, et al.              Expires February 14, 2013               [Page 8]


Internet-Draft             DECADE Requirements               August 2012


   piggy-backed within some extension fields provided by certain SDT
   protocols.  In such a scenario, DRP is technically a data structure
   (transported by other protocols), but it can still be considered as a
   logical protocol that provides the services of configuring DECADE-
   compatible resource usage.  If the protocols are physically separate
   on the wire, DRP can take the form of a separate control connection
   open between the a DECADE-compatible client and server.  Hence, this
   document considers SDT and DRP as two separate, logical functional
   components for clarity.


4.  Requirements Structure

   This document specifies the requirements for the DECADE DRP and SDT
   functions, either existing ones or new ones, and storage system to
   enable Target Applications to make use of storage within the network,
   leaving specific storage system considerations to the implementation
   of the storage servers as much as possible.  For this reason, we
   consider two primary categories of requirements:

   o  Protocol Requirements: Protocol requirements for Target
      Applications to make use of in-network storage within their own
      data dissemination schemes.  Development of these requirements is
      guided by a study of data access, search and management
      capabilities used by Target Applications.  These requirements may
      be met by a combination of existing protocols and new protocols.

   o  Storage Requirements: Functional requirements necessary for the
      back-end storage system employed by the DECADE server.
      Development of these requirements is guided by a study of the data
      access patterns used by Target Applications.  These requirements
      should be met by the underlying data transport used by DECADE
      system.  In this document, we use "data transport" to refer to a
      protocol used to read and write data from in-network storage.

   This specification discusses the requirements of functionality
   implemented with a storage system and within applications, to permit
   interoperable communications concerning the manipulation of stored
   content.


5.  Data Object Requirements

5.1.  Data Name Uniqueness







Gu, et al.              Expires February 14, 2013               [Page 9]


Internet-Draft             DECADE Requirements               August 2012


   REQUIREMENT(S):  Each Data Object should be named to allow access.
       DECADE-compatible protocol(s) MUST support a data object naming
       scheme that ensures a high probability of uniqueness, with no
       coordination among multiple Storage Providers.  In other words,
       two Data Objects with the same name should be the same content
       with high probability.  A DECADE-compatible server SHOULD be able
       to respond to a DECADE-compatible client with an error indicating
       potential name conflicts.

   RATIONALE:  Although the intention of unique names is to avoid name
       collisions, it does not have to be an absolutely zero
       possibility.  Hence, it is required to provide a collision
       handling mechanism.

   EXCEPTION:  While a DECADE-compatible server is overloaded or
       consider a request as an attack, it does not to generate a
       response to indicate name collisions.

5.2.  Verifiable Name-Object Binding

5.3.  Data Object Size

   REQUIREMENT(S):  DECADE MUST allow for efficient storage and data
       transfer of small data objects (e.g., 16KB) without large control
       overhead.

   RATIONALE:  Though Target Applications are frequently used to share
       large amounts of data (e.g., continuous streams or large files),
       the data itself is typically subdivided into smaller data objects
       (chunks) for flexibility (e.g., reliability and multi-path
       transmission).

5.4.  Data Object Attributes

   REQUIREMENT(S):  DECADE MUST support the ability to associate a set
       of system attributes with a data object with a scope local to a
       DECADE-compatible server.  In particular, the set MUST include
       time-to-live (or expiration time), creation timestamp, object
       size, and object type.  A DECADE-compatible client, with access
       permission, MUST be able to query the set of system attributes.
       The transmission of the attributes MUST use an operating system-
       independent and architecture-independent standard format.  An
       ability to extend the set of attributes MUST exist.

   RATIONALE:  The values of attributes associated with a data object
       are local to a particular DECADE-compatible server.  These
       attributes may be used as hints to the storage system, internal
       optimizations, or as additional information query-able by DECADE-



Gu, et al.              Expires February 14, 2013              [Page 10]


Internet-Draft             DECADE Requirements               August 2012


       compatible clients.  The particular requirement for including
       time-to-live (TTL) is that a data object written by a DECADE-
       compatible client may be usable only within a certain window of
       time, such as in a live-streaming P2P application.  Providing a
       time-to-live value for a data object (e.g., at the time it is
       written) can reduce management overhead by avoiding many 'delete'
       commands sent to DECADE-compatible server.  The server may still
       retain a data object for bandwidth optimization, but this should
       be guided by the privacy policy of the DECADE Storage Provider.

5.5.  Application-defined Object Properties and Metadata

   REQUIREMENT(S):  DECADE-compatible clients and DECADE-compatible
       servers MUST NOT be able to associate Application-defined
       properties (metadata) with data objects beyond what is provided
       by Section 5.4.

   RATIONALE:  Associating key-value pairs that are defined by Target
       Applications with data objects introduces substantial complexity.
       If Target Applications wish to associate additional metadata with
       a data object, possible alternatives include (1) managing such
       metadata within the Target Application itself, (2) storing
       metadata inside the data object, or (3) storing metadata in a
       different data object at the DECADE-compatible server.


6.  Access and Authorization Requirements

6.1.  Provider Access

   REQUIREMENT(S):  A Provider MUST be able to access the resources of
       its account.

   RATIONALE:  After a DECADE-compatible client owns an account on a
       DECADE-compatible server, it should be able to read data from and
       write data to the server.

6.2.  Secure Authorization

   REQUIREMENT(S):  Access to an account on a server MUST be granted to
       a provider based on cryptographic security.

   RATIONALE:  DECADE-compatible clients may be operating on hosts
       without constant network connectivity or without a permanent
       attachment address (e.g., mobile devices).  To support access
       control with such hosts, DECADE-compatible servers must support
       access control policies that use cryptographic credentials, not
       simply by tying access to IP addresses.



Gu, et al.              Expires February 14, 2013              [Page 11]


Internet-Draft             DECADE Requirements               August 2012


6.3.  Consumer Access

   REQUIREMENT(S):  A Provider MUST be able to indicate to its server on
       whether a Consumer can access its subscribed resources.

   RATIONALE:  Endpoints in Target Applications may choose different
       servers.  Thus, to be useful by Target Applications, a DECADE-
       compatible client must be able to specify policies on whether
       other DECADE-compatible clients can access its resources.  The
       other clients may or may not be known to the server.

6.4.  Provider Authorization When Offline

   REQUIREMENT(S):  A Provider MUST be able to grant access to a
       Consumer even if the Provider is not actively running or
       connected to its DECADE-compatible server.

   RATIONALE:  If an application desires, it can authorize other clients
       to access its storage even after the application exits or network
       connectivity is lost.  An example use case is mobile scenarios,
       where a client can lose and regain network connectivity often.

6.5.  Local Authorization

   REQUIREMENT(S):  A Provider MUST be able to indicate, without
       contacting its server, access control policies for Consumers.
       DECADE-compatible server MUST be able to authenticate the access
       control policies in this situation.

   RATIONALE:  This requirement is related with the preceding
       requirement, but in a perspective (i.e., protocol design).  See
       discussions in Section 8.3.

6.6.  Access Control Granularity

   REQUIREMENT(S):  A Provider MUST be able to control which individual
       clients are authorized to read/write which particular data
       objects from/to its in-network storage.

   RATIONALE:  A Target Application should able to conduct access
       control on the granularity of individual clients, individual data
       objects.

6.7.  Default Access Permissions







Gu, et al.              Expires February 14, 2013              [Page 12]


Internet-Draft             DECADE Requirements               August 2012


   REQUIREMENT(S):  Unless read or write access is granted by a
       Provider, the default permission MUST be no access.

   RATIONALE:  This requirement is to protect client privacy by default.

6.8.  Connectivity Supporting NAT and Firewall Traversal

   REQUIREMENT(S):  A client that is authorized to access a server MUST
       be supported to conduct NAT (Network Address Translation) and
       firewall traversal.  In particular, network connections between a
       DECADE-compatible client and a DECADE-compatible server MUST be
       initiated by the client (i.e., the server must not initiate a
       connection to the client).

   RATIONALE:  Firewalls and NATs are widely used in the Internet today,
       both in ISP (Internet Service Provider) and Enterprise networks
       and by consumers.  Many firewalls and NATs are configured by
       default to block incoming connections, which helps to mitigate
       security risks.  Deployment of a DECADE-compatible system must
       not require manual modifications to such devices.  This
       requirement applies to both potential new protocol that may be
       developed by the DECADE Working Group and any data transport used
       with DECADE protocol.

6.9.  DECADE Server Discovery

   REQUIREMENT(S):  A mechanism for a Provider to discover and connect
       to its assigned server MUST be supported.  The discovery SHOULD
       leverage existing mechanisms and protocols wherever possible.  No
       new discovery mechanism will be defined unless there is enough
       evidence that no existing mechanism can work.

   RATIONALE:  Existing protocols such as DNS and DHCP are widespread.
       Using existing protocols, or combinations of the protocols that
       have been specified in other contexts, is strictly preferred over
       developing a new discovery protocol.


7.  Data Transfer Requirements

7.1.  Negotiable Standard Data Transport Protocol

   REQUIREMENT(S):  A DECADE-compatible client MUST be able to negotiate
       with a DECADE-compatible server about which protocol it can use
       to read data from and write data.  DECADE MUST specify at least
       one mandatory transport protocol to be supported by
       implementations; usage of a different protocol may be selected
       via negotiation.



Gu, et al.              Expires February 14, 2013              [Page 13]


Internet-Draft             DECADE Requirements               August 2012


   RATIONALE:  Since typical data transport protocols (e.g., NFS and
       WebDAV) already provide read and write operations for network
       storage, it may not be necessary to define such operations in a
       new DECADE protocol.  However, because of the particular
       application requirements and deployment considerations, different
       applications may support different protocols.  Thus, a DECADE
       client must be able to select an appropriate protocol also
       supported by the in-network storage.

7.2.  Atomic or Partial Read/Write

   REQUIREMENT(S):  A DECADE-compatible server MUST support the ability
       to read/write a complete data object in one request.  It MAY
       support range read/write.

   RATIONALE:  Depending on the object size (e.g., chunk size) used by a
       Target Application, the application may need to send data to the
       DECADE-compatible server in multiple round.

7.3.  Secure Data Transport

   REQUIREMENT(S):  A secure transport MUST be implemented for all
       communications between a DECADE-compatible client and DECADE-
       compatible server.

   RATIONALE:  Target Applications may wish to write sensitive data.  To
       satisfy this use case, the communication between a DECADE-
       compatible client and DECADE-compatible server must be
       transported over a secure transport protocol (e.g., SSL/TLS).

7.4.  Concurrent Read

   REQUIREMENT(S):  A DECADE-compatible server MUST allow for multiple
       simultaneous readers for a data object.

   RATIONALE:  One characteristic of Target Applications is the ability
       to upload an object to multiple clients.  Thus, it is natural for
       DECADE-compatible server to allow multiple readers to read the
       same object concurrently.

7.5.  Concurrent Write

   REQUIREMENT(S):  A DECADE-compatible server MUST NOT allow multiple
       simultaneous writers for the same object.  A DECADE-compatible
       server SHOULD respond to each of the writers with an error.






Gu, et al.              Expires February 14, 2013              [Page 14]


Internet-Draft             DECADE Requirements               August 2012


   RATIONALE:  This avoids data corruption in a simple way while
       remaining efficient.  Alternately, the DECADE-compatible server
       would need to either manage locking, handle write collisions, or
       merge data, all of which reduce efficiency and increase
       complexity.

   EXCEPTION:  While a DECADE-compatible server is overloaded or
       considers a request as an attack, it does not generate a
       response.

7.6.  Read Before Write Complete

   REQUIREMENT(S):  A DECADE-compatible server MAY allow readers to read
       a data object before it has been completely written.  In case of
       a write error in such a case, the DECADE-compatible server SHOULD
       respond to the reading client with an error indicating that the
       write has failed.

   RATIONALE:  Some Target Applications (in particular, P2P streaming)
       can be sensitive to latency.  A technique to reduce latency is to
       remove store-and-forward delays for data objects (e.g., make the
       object available before it is completely written).  Appropriate
       handling for error conditions (e.g., a disappearing writer) needs
       to be specified.

   EXCEPTION:  While a DECADE-compatible server is overloaded or
       considers a request as an attack, it does not generate a
       response.

7.7.  Redirection of Transport

   REQUIREMENT(S):  A DECADE-compatible server SHOULD be able to
       redirect requests to another DECADE-compatible server.  This may
       either be in response to an error, failure, overload, or to
       support capabilities such as load balancing.

   RATIONALE:  A DECADE-compatible server may opt to redirect requests
       to another server to support capabilities such as load balancing,
       or if the implementation decides that another DECADE-compatible
       server is in a better position to handle the request due to
       either its location in the network, server status, or other
       consideration.

   EXCEPTION:  A DECADE-compatible server can be configured by its
       service provider to support or not support redirection
       functionality.





Gu, et al.              Expires February 14, 2013              [Page 15]


Internet-Draft             DECADE Requirements               August 2012


8.  Resource Control Requirements

8.1.  Multiple Applications Sharing Resources

   REQUIREMENT(S):  A client MUST be able to indicate to a DECADE-
       compatible server about resource sharing policies among multiple
       Target Applications being run/managed by the same client.

   RATIONALE:  A client owning a DECADE account may provide the
       account's cryptographic credentials to multiple Providers of
       multiple target applications.  For example, the client may run
       one or more video-on-demand application(s) and a live-streaming
       application(s) which both make use of the client's in-network
       storage.  The concurrently running applications may be running on
       different machines (e.g., multiple machines at the same home
       network) and may not directly communicate, except through user
       coordination

8.2.  Per-Client Resource Policy

   REQUIREMENT(S):  A Provider MUST be able to specify resource policies
       (bandwidth share, storage quota, and network connection quota) to
       individual Consumers for reading from and writing data to its in-
       network storage within a particular range of time.

   RATIONALE:  Target Applications can rely on control of resources on a
       per-client basis.  For example, application policy may indicate
       that certain remote clients have a higher bandwidth share for
       receiving data [LLSB08].  Additionally, bandwidth share for
       receiving data [LLSB08].  Additionally, certain data (e.g.,
       chunks) may be distributed with a higher priority.  As another
       example, when allowing a remote client to write data to a user's
       in-network storage, the remote client may be restricted to write
       less than 100MB of data in total.  Since the client may need to
       manage multiple clients accessing its data, it should be able to
       indicate the time over which the granted resources are usable.
       For example, an expiration time for the access could be indicated
       to the DECADE-compatible server after which no resources are
       granted (e.g., indicate error as access denied).

8.3.  Distributed Resource Sharing Specification

   REQUIREMENT(S):  A Provider MUST be able to indicate to its DECADE-
       compatible server, without itself contacting the server, resource
       control policies for a Consumer.  The DECADE-compatible server
       MUST be able to authenticate the resource control policies.





Gu, et al.              Expires February 14, 2013              [Page 16]


Internet-Draft             DECADE Requirements               August 2012


   RATIONALE:  One important consideration for a DECADE-compatible
       server is scalability, since a single storage element may be used
       to support many users.  Many Target Applications use small chunk
       sizes and frequent data exchanges.  If such an application
       employed resource control and contacted the DECADE-compatible
       server for each data exchange, this could present a scalability
       challenge for the server as well as additional latency for
       clients.

       The preferred way is to let requesting clients obtain signed
       resource control policies (in the form of a token) from the
       owning client, and then requesting clients can present the policy
       to a DECADE-compatible server directly.  This can result in
       reduced messaging handled by the DECADE-compatible server.

8.4.  Resource Set

   REQUIREMENT(S):  A DECADE-compatible server MUST allow specification
       on the following resources: storage, bandwidth, and number of
       connections, and MAY allow additional types of resources to be
       specified.

   RATIONALE:  The minimum set of resources need to include the most
       common resources.


9.  Error and Failure Handling Requirements

9.1.  Illegal Data Object

   REQUIREMENT(S):  A DECADE-compatible server SHOULD provide an error
       indicating that (1) data was rejected from being written, (2)
       deleted, or (3) marked unavailable.

   RATIONALE:  DECADE Storage Providers may require the ability to (1)
       avoid storing, (2) delete, or (3) quarantine certain data that
       has been identified as illegal (or otherwise prohibited).  It is
       not specified how such data is identified, but applications
       employing DECADE-compatible servers should not break if a Storage
       Provider is obligated to enforce such policies.  Appropriate
       error conditions should be indicated to applications.

   EXCEPTION:  A DECADE-compatible server should be able to be
       configured to suppress Illegal Data Object responses for security
       reasons.






Gu, et al.              Expires February 14, 2013              [Page 17]


Internet-Draft             DECADE Requirements               August 2012


9.2.  Invalid Access Authorization

   REQUIREMENT(S):  A DECADE-compatible server SHOULD provide an error
       indicating that the request does not have a valid access
       authorization.

   RATIONALE:  DECADE-compatible clients may request data objects to
       which they do not have a valid authorization, and DECADE-
       compatible servers should be able to signal that this has
       occurred.  Invalid authorization may be due to a combination of
       credential issues as well as additional policies defined by a
       Storage Provider.

   EXCEPTION:  A DECADE-compatible server should be able to be
       configured to suppress Invalid Authorization responses for
       security reasons.

9.3.  Insufficient Resources

   REQUIREMENT(S):  A DECADE-compatible server SHOULD provide a response
       indicating to a DECADE-compatible client that resources (e.g.,
       storage space) were not available to service its request (e.g.,
       storage quota exceeded when attempting to write data).

   RATIONALE:  The Insufficient Resources response allows a client to
       back off, free up necessary resources or waiting for such
       resources to be freed.

   EXCEPTION:  A DECADE-compatible server may not provide such a
       response if doing so increases the load or due to security
       concerns.

9.4.  Overload Condition

   REQUIREMENT(S):  A DECADE-compatible server, which is operating close
       to its capacity limit (e.g., too busy servicing other requests),
       MUST be permitted to reject requests and not be required to
       generate response to additional requests.  A DECADE-compatible
       server MUST also be permitted to redirect requests as a load-
       shedding technique.

   RATIONALE:  The Insufficient Resources response allows a client to
       back off, free up necessary resources or waiting for such
       resources to be freed.







Gu, et al.              Expires February 14, 2013              [Page 18]


Internet-Draft             DECADE Requirements               August 2012


   EXCEPTION:  A DECADE-compatible server may not provide such a
       response if doing so increases the load or due to security
       concerns.

9.5.  Attack Mitigation

   REQUIREMENT(S):  A DECADE-compatible server MUST be permitted to
       reject suspicious requests and not be required to generate
       responses (e.g., if a client's rate of requests exceeds a pre-
       defined threshold).

   RATIONALE:  Malicious clients may attempt to attack a DECADE-
       compatible server by specifying many chunks to increase total
       throughput or inciting overload conditions.  A DECADE-compatible
       server is permitted to reject or ignore requests that are deemed
       suspicious according to policies set by its DECADE service
       provider.


10.  Management Info Requirements

10.1.  Account Status

   REQUIREMENT(S):  A Provider MUST be able to query the resource quota
       as well the current usage.  The response from the server MUST
       include resource usage resulting from both the client's own usage
       and usage by other clients that have been authorized to read/
       write objects on that client's account.

   RATIONALE:  The resources used by a client are not necessarily
       directly-attached (e.g., disk, network interface, etc).  Thus,
       the client cannot locally determine how much resources are being
       used.  Before storing and retrieving data, a client should be
       able to determine which data is available (e.g., after an
       application restart).


11.  Security Considerations

   The security model is an important component of a DECADE-compatible
   system.  It is crucial for users to be able to manage and limit
   distribution of content to only authorized parties, and the mechanism
   needs to work on the general Internet which spans multiple
   administrative and security domains.  Previous sections have
   enumerated detailed requirements, but this section discusses the
   overall approach and other considerations that do not merit
   requirements.




Gu, et al.              Expires February 14, 2013              [Page 19]


Internet-Draft             DECADE Requirements               August 2012


11.1.  Authentication and Authorization

   A DECADE-compatible server must validate an request to access the in-
   network storage.

11.2.  Confidentiality

   DECADE-compatible Servers provide the ability to write raw data
   objects (subject to any policies instituted by the owner/
   administrator of the Storage Provider).  Thus, DECADE-compatible
   clients may opt to encrypt data before it is transported to the
   server.

11.3.  Attack Mitigation

   The particular resource control policy may be open to certain attacks
   by clients.  For example by specifying many small chunks to increase
   total throughput or inciting overload conditions are techniques that
   may be used by a client.


12.  IANA Considerations

   There are no IANA considerations with this document.


13.  References

13.1.  Normative References

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

   [RFC6646]  Song, H., Zong, N., Yang, Y., and R. Alimi, "DECoupled
              Application Data Enroute (DECADE) Problem Statement",
              RFC 6646, July 2012.

13.2.  Informative References

   [I-D.ietf-decade-arch]
              Alimi, R., Rahman, A., Kutscher, D., and Y. Yang, "DECADE
              Architecture", draft-ietf-decade-arch-08 (work in
              progress), July 2012.

   [LLSB08]   Levin, D., LaCurts, K., Spring, N., and B. Bhattacharjee,
              "BitTorrent is an Auction: Analyzing and Improving
              BitTorrent's Incentives", SIGCOMM 2008, August 2008.




Gu, et al.              Expires February 14, 2013              [Page 20]


Internet-Draft             DECADE Requirements               August 2012


Appendix A.  Acknowledgments

   We would also like to thank Haibin Song for substantial contributions
   to earlier versions of this document.  We would also like to thank
   Reinaldo Penno, Alexey Melnikov, Rich Woundy, Ning Zong, Roni Even,
   David McDysan, Borje Ohlman, Dirk Kutscher, Akbar Rahman, Xiao Zhu,
   Yunfei Zhang, Peng Zhang and Jin Peng for contributions and general
   feedback.


Authors' Addresses

   Yingjie Gu
   Huawei
   No. 101 Software Avenue
   Nanjing, Jiangsu Province  210012
   P.R.China

   Phone: +86-25-56624760
   Email: guyingjie@huawei.com


   David A. Bryan
   Ethernot.org

   Email: dbryan@ethernot.org


   Yang Richard Yang
   Yale University

   Email: yry@cs.yale.edu


   Peng Zhang
   Tsinghua University/Yale University

   Email: p.zhang@yale.edu


   Richard Alimi
   Google

   Email: ralimi@google.com







Gu, et al.              Expires February 14, 2013              [Page 21]