TAPS                                                         S. Gjessing
Internet-Draft                                                  M. Welzl
Intended status: Informational                        University of Oslo
Expires: December 24, 2015                                 June 22, 2015


          A Minimal Set of Transport Services for TAPS Systems
                     draft-gjessing-taps-minset-00

Abstract

   This draft will eventually recommend a minimal set of IETF Transport
   Services offered by end systems supporting TAPS, and give guidance on
   choosing among the available mechanisms and protocols.  As a starting
   point for discussion, it currently only gives an overview of some
   ways to categorize the set of transport services in the first TAPS
   document (version 4: draft-ietf-taps-transports-04), assuming that
   the eventual minimal set of transport services will be based on a
   similar form of categorization.

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 December 24, 2015.

Copyright Notice

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



Gjessing & Welzl        Expires December 24, 2015               [Page 1]


Internet-Draft       Minimal TAPS Transport Services           June 2015


   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
   2.  Terminology (as defined by draft-ietf-taps-transports-04)  . .  4
   3.  A list of all features in the considered IETF Transport
       Protocols  . . . . . . . . . . . . . . . . . . . . . . . . . .  5
   4.  Grouping of the features . . . . . . . . . . . . . . . . . . .  6
     4.1.  Functional vs. non-functional  . . . . . . . . . . . . . .  7
       4.1.1.  Functional features  . . . . . . . . . . . . . . . . .  7
       4.1.2.  Non-functional features  . . . . . . . . . . . . . . .  7
     4.2.  Components from draft-ietf-taps-transports-04 that are
           not specified or seen by the applications  . . . . . . . .  9
   5.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  9
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 10
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
   8.  Normative References . . . . . . . . . . . . . . . . . . . . . 10
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10





























Gjessing & Welzl        Expires December 24, 2015               [Page 2]


Internet-Draft       Minimal TAPS Transport Services           June 2015


1.  Introduction

   An application has an intended usage and demands for transport
   services, and the task of any system that implements TAPS is to offer
   these services to its applications, i.e. the applications running on
   top of TAPS, without binding an application to a particular transport
   protocol.

   The present draft is based on [TAPS1] and follows the same
   terminology (also listed below).  We include an "inversion" (in the
   database sense) of [TAPS1], in that, based on the lists of protocol
   components in [TAPS1] we list all protocol features, and for each
   feature, we list the Transport Protocols that support this feature
   (as a component).  The resulting list is very long.  If the list of
   Transport Services that a TAPS system offers to applications was a
   simple copy of this list, the resulting system would be very hard to
   use.  It is therefore necessary to minimize the number of services
   that are offered.  We begin this by grouping these transport
   features.

   The groups of features offered to applications are divided as
   follows:
   1.  functional vs. non-functional
   2.  static vs. initialization vs. dynamic
   3.  single-sided vs. both-sided

   Because QoS is out of scope of TAPS, this document assumes a "best
   effort" service model [RFC5290, RFC7305].  Applications using a TAPS
   system can therefore not make any assumptions about e.g. the time it
   will take to send a message.  There are however certain requirements
   that are strictly kept by transport protocols today, and a TAPS
   system.

   Functional features use components that cannot be used without the
   application knowing about them, or else they violate assumptions that
   might cause the application to break.  Components implementing non-
   functional features may be used without involving the application.
   For example, unordered message delivery is a functional feature: it
   cannot be used without the application knowing about it because the
   application's assumption could be that messages arrive in-order, and
   in this case unordered delivery could cause the application to break.
   Multihoming and data bundling (Nagle in TCP) are non-functional
   features: if a TAPS system autonomously decides to enable or disable
   them, an application will not break (but a TAPS system may be able to
   communicate more efficiently if the application is in control of this
   feature).

   If a transport protocol offers a feature that can not be changed or



Gjessing & Welzl        Expires December 24, 2015               [Page 3]


Internet-Draft       Minimal TAPS Transport Services           June 2015


   opted out, this feature is called static in this protocol.  An
   application uses a static feature either because it has requested it
   (and TAPS decide to fulfill this request by a protocol that has a
   component that implements this feature as static), or the static
   feature is offered to the application implicitly because TAPS chooses
   a protocol that implements it.  For example, if an application
   chooses byte-stream-oriented delivery, it automatically also gets
   reliable delivery.

   Initialization features can be chosen when communication begins but
   not adjusted later; this assumes that a TAPS system does not change
   protocols during a communication session.  Examples of initialization
   features are flow control and congestion control.

   Dynamic features are changeable during runtime.  An example of a
   dynamic feature is data bundling (Nagle in TCP).

   Single-sided features can be provided via components that are
   implemented only on the side where they applications requests the
   Transport Service.  An example of a single-sided feature is data
   bundling (Nagle in TCP).  Both-sided features can only be provided
   via components that are implemented on both sides.  An example is
   error detection (checksum).  Possibly certain features could benefit
   from, but do not need to be, implemented on both sides.  Since the
   point of categorization is to determine the minimal set of Transport
   Services that a TAPS system must provide, the essential property of
   such features is that they *can* be implemented on only one side.


2.  Terminology (as defined by draft-ietf-taps-transports-04)

   The following terms are defined throughout this document, and in
   subsequent documents produced by TAPS describing the composition and
   decomposition of transport services.

   Transport Service Feature:  a specific end-to-end feature that a
      transport service provides to its clients.  Examples include
      confidentiality, reliable delivery, ordered delivery, message-
      versus-stream orientation, etc.
   Transport Service:  a set of transport service features, without an
      association to any given framing protocol, which provides a
      complete service to an application.
   Transport Protocol:  an implementation that provides one or more
      different transport services using a specific framing and header
      format on the wire.






Gjessing & Welzl        Expires December 24, 2015               [Page 4]


Internet-Draft       Minimal TAPS Transport Services           June 2015


   Transport Protocol Component:  an implementation of a transport
      service feature within a protocol.
   Transport Service Instance:  an arrangement of transport protocols
      with a selected set of features and configuration parameters that
      implements a single transport service, e.g. a protocol stack (RTP
      over UDP).
   Application:  an entity that uses the transport layer for end-to-end
      delivery data across the network (this may also be an upper layer
      protocol or tunnel encapsulation).


3.  A list of all features in the considered IETF Transport Protocols

   [TAPS1] provides a list of known IETF transport protocols and
   transport protocols frameworks.  Here all features from [TAPS1] are
   listed:

   o  unicast: TCP SCTP UDP-Lite DCCP NORM
   o  IPv6 multicast and anycast: UDP
   o  IPv4 broadcast, multicast and anycast: UDP UDP-Lite
   o  multicast: NORM

   o  unidirectional: UDP
   o  bidirectional: TCP

   o  message-oriented delivery: SCTP UDP UDP-Lite DCCP
   o  byte-stream-oriented delivery: TCP

   o  user message fragmentation and reassembly: SCTP
   o  IPv6 jumbograms: UDP

   o  connection setup with feature negotiation and application-to-port
      mapping: TCP SCTP DCCP

   o  port multiplexing: TCP SCTP UDP UDP-Lite DCCP
   o  port multiplexing (UDP ports): NORM
   o  2-tuple endpoints: UDP

   o  transport layer multihoming for resilience: SCTP

   o  transport layer mobility: SCTP

   o  non-reliable delivery: UDP-Lite DCCP
   o  reliable delivery: TCP NORM
   o  reliable or partially reliable delivery: SCTP
   o  drop notification: DCCP





Gjessing & Welzl        Expires December 24, 2015               [Page 5]


Internet-Draft       Minimal TAPS Transport Services           June 2015


   o  ordered delivery: DCCP
   o  ordered delivery for each byte stream: TCP
   o  ordered delivery for each byte or message stream: NORM
   o  ordered and unordered delivery within a stream (of messages): SCTP
   o  unordered delivery: UDP-Lite UDP
   o  unordered delivery of in-memory data or file bulk content objects:
      NORM
   o  object-oriented delivery of discrete data or file items: NORM

   o  partial integrity protection: UDP-Lite DCCP
   o  checksum optional: UDP
   o  error detection (checksum): TCP UDP
   o  error detection (UDP checksum): NORM
   o  strong error detection (CRC32C): SCTP
   o  packet erasure coding (both proactively and as part of ARQ): NORM

   o  flow control: TCP SCTP
   o  flow control (slow receiver function): DCCP
   o  flow control (timer-based and/or ack-based): NORM

   o  segmentation: TCP NORM

   o  stream-oriented delivery in a single stream: TCP NORM
   o  support for multiple concurrent streams: SCTP
   o  support for stream scheduling prioritization: SCTP

   o  data bundling (Nagle's algorithm): TCP NORM
   o  user message bundling: SCTP

   o  congestion control: TCP SCTP NORM
   o  no congestion control: UDP

   o  timestamps: DCCP


4.  Grouping of the features

   This section presents a grouping of the features from [TAPS1]
   according to the three categories: functional vs. non-functional;
   static vs. initialization vs. dynamic; one-sided vs. two-sided.

   The current version only includes the functional vs. non-functional
   categorization.  The other categories will be included in future
   versions.







Gjessing & Welzl        Expires December 24, 2015               [Page 6]


Internet-Draft       Minimal TAPS Transport Services           June 2015


4.1.  Functional vs. non-functional

4.1.1.  Functional features

   What is delivered (delivery type):

   o  message-oriented delivery: SCTP UDP UDP-Lite DCCP
   o  byte-stream-oriented delivery: TCP
   o  object-oriented delivery of discrete data or file items: NORM


   Reliability of delivery:

   o  non-reliable delivery: UDP UDP-Lite DCCP
   o  reliable delivery: TCP NORM
   o  reliable or partially reliable delivery: SCTP
   o  drop notification: DCCP


   Direction of communication:

   o  unidirectional: UDP
   o  bidirectional: TCP


   Ordered or unordered delivery:

   o  ordered delivery: DCCP
   o  ordered delivery for each byte stream: TCP
   o  ordered delivery for each byte or message stream: NORM
   o  ordered and unordered delivery within a stream (of messages): SCTP
   o  unordered delivery: UDP-Lite UDP
   o  unordered delivery of in-memory data or file bulk content objects:
      NORM


   Unicast, anycast, multicast or broadcast:

   o  unicast: TCP SCTP UDP UDP-Lite DCCP NORM
   o  IPv6 multicast and anycast: UDP
   o  IPv4 broadcast, multicast and anycast: UDP UDP-Lite
   o  multicast: NORM

4.1.2.  Non-functional features

   These are features that the application can optionally specify.  If a
   feature is not specified by the application it is undefined, i.e. the
   TAPS system may choose an implementation of any of the features



Gjessing & Welzl        Expires December 24, 2015               [Page 7]


Internet-Draft       Minimal TAPS Transport Services           June 2015


   listed.

   Congestion control:

   o  congestion control: TCP SCTP NORM
   o  no congestion control: UDP


   Resilience:

   o  multihoming: SCTP
   o  no resilience: UDP UDP-lite TCP


   Connection oriented (or not):

   o  connection oriented: TCP DCCP SCTP
   o  not connection oriented: UDP UDP-Lite


   Message sizes and fragmentation:

   o  user message fragmentation and reassembly: SCTP
   o  IPv6 jumbograms: UDP


   Setup negotiation:

   o  connection setup with feature negotiation and application-to-port
      mapping: TCP SCTP DCCP


   Flow control:

   o  flow control: TCP SCTP
   o  flow control (slow receiver function): DCCP
   o  flow control (timer-based and/or ack-based): NORM
   o  no flow control: UDP


   Multiplexing:

   o  multistreaming: SCTP
   o  port multiplexing: TCP SCTP UDP UDP-Lite DCCP
   o  port multiplexing (UDP ports): NORM
   o  2-tuple endpoints: UDP





Gjessing & Welzl        Expires December 24, 2015               [Page 8]


Internet-Draft       Minimal TAPS Transport Services           June 2015


   Transport layer mobility:

   o  transport layer mobility: SCTP


   Error detection, protection, FEC and integrity (divided into more
   groups?):

   o  partial integrity protection: UDP-Lite DCCP
   o  checksum optional: UDP
   o  error detection (checksum): TCP UDP
   o  error detection (UDP checksum): NORM
   o  strong error detection (CRC32C): SCTP
   o  packet erasure coding (both proactively and as part of ARQ): NORM
   o  content privacy to in-path devices: ? (intro of [TAPS1])


   Streams:

   o  stream-oriented delivery in a single stream: TCP NORM
   o  support for multiple concurrent streams: SCTP
   o  support for stream scheduling prioritization: SCTP


   Bundling:

   o  data bundling (Nagle's algorithm): TCP NORM
   o  user message bundling: SCTP

4.2.  Components from draft-ietf-taps-transports-04 that are not
      specified or seen by the applications

   Segmentation:

   o  segmentation: TCP NORM


   Timestamps:

   o  timestamps: DCCP
   o  Service Codes: DCCP


5.  Acknowledgements

   This work has received funding from the European Union's Horizon 2020
   research and innovation programme under grant agreement No. 644334
   (NEAT).  The views expressed are solely those of the author(s).



Gjessing & Welzl        Expires December 24, 2015               [Page 9]


Internet-Draft       Minimal TAPS Transport Services           June 2015


6.  IANA Considerations

   XX RFC ED - PLEASE REMOVE THIS SECTION XXX

   This memo includes no request to IANA.


7.  Security Considerations

   Security will be considered in future versions of this document.


8.  Normative References

   [TAPS1]  Fairhurst, G., Trammell, B., and M. Kuehlewind, "Services
            provided by IETF transport protocols and congestion control
            mechanisms", draft-ietf-taps-transports-04 (work in
            progress), May 2015.


Authors' Addresses

   Stein Gjessing
   University of Oslo
   PO Box 1080 Blindern
   Oslo,   N-0316
   Norway

   Phone: +47 22 85 24 44
   Email: steing@ifi.uio.no


   Michael Welzl
   University of Oslo
   PO Box 1080 Blindern
   Oslo,   N-0316
   Norway

   Phone: +47 22 85 24 20
   Email: michawe@ifi.uio.no











Gjessing & Welzl        Expires December 24, 2015              [Page 10]