draft-ietf-taps-impl-00.txt   draft-ietf-taps-impl-01.txt 
TAPS Working Group A. Brunstrom, Ed. TAPS Working Group A. Brunstrom, Ed.
Internet-Draft Karlstad University Internet-Draft Karlstad University
Intended status: Informational T. Pauly, Ed. Intended status: Informational T. Pauly, Ed.
Expires: November 26, 2018 Apple Inc. Expires: January 2, 2019 Apple Inc.
T. Enghardt T. Enghardt
TU Berlin TU Berlin
K-J. Grinnemo K-J. Grinnemo
Karlstad University Karlstad University
T. Jones T. Jones
University of Aberdeen University of Aberdeen
P. Tiesel P. Tiesel
TU Berlin TU Berlin
C. Perkins C. Perkins
University of Glasgow University of Glasgow
M. Welzl M. Welzl
University of Oslo University of Oslo
May 25, 2018 July 01, 2018
Implementing Interfaces to Transport Services Implementing Interfaces to Transport Services
draft-ietf-taps-impl-00 draft-ietf-taps-impl-01
Abstract Abstract
The Transport Services architecture [I-D.pauly-taps-arch] defines a The Transport Services architecture [I-D.ietf-taps-arch] defines a
system that allows applications to use transport networking protocols system that allows applications to use transport networking protocols
flexibly. This document serves as a guide to implementation on how flexibly. This document serves as a guide to implementation on how
to build such a system. to build such a system.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 26, 2018. This Internet-Draft will expire on January 2, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 3, line 31 skipping to change at page 3, line 31
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 33
14.1. Normative References . . . . . . . . . . . . . . . . . . 33 14.1. Normative References . . . . . . . . . . . . . . . . . . 33
14.2. Informative References . . . . . . . . . . . . . . . . . 34 14.2. Informative References . . . . . . . . . . . . . . . . . 34
Appendix A. Additional Properties . . . . . . . . . . . . . . . 34 Appendix A. Additional Properties . . . . . . . . . . . . . . . 34
A.1. Properties Affecting Sorting of Branches . . . . . . . . 35 A.1. Properties Affecting Sorting of Branches . . . . . . . . 35
A.2. Send Parameters . . . . . . . . . . . . . . . . . . . . . 35 A.2. Send Parameters . . . . . . . . . . . . . . . . . . . . . 35
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36
1. Introduction 1. Introduction
The Transport Services architecture [I-D.pauly-taps-arch] defines a The Transport Services architecture [I-D.ietf-taps-arch] defines a
system that allows applications to use transport networking protocols system that allows applications to use transport networking protocols
flexibly. The interface such a system exposes to applications is flexibly. The interface such a system exposes to applications is
defined as the Transport Services API [I-D.trammell-taps-interface]. defined as the Transport Services API [I-D.ietf-taps-interface].
This API is designed to be generic across multiple transport This API is designed to be generic across multiple transport
protocols and sets of protocols features. protocols and sets of protocols features.
This document serves as a guide to implementation on how to build a This document serves as a guide to implementation on how to build a
system that provides a Transport Services API. It is the job of an system that provides a Transport Services API. It is the job of an
implementation of a Transport Services system to turn the requests of implementation of a Transport Services system to turn the requests of
an application into decisions on how to establish connections, and an application into decisions on how to establish connections, and
how to transfer data over those connections once established. The how to transfer data over those connections once established. The
terminology used in this document is based on the Architecture terminology used in this document is based on the Architecture
[I-D.pauly-taps-arch]. [I-D.ietf-taps-arch].
2. Implementing Basic Objects 2. Implementing Basic Objects
The basic objects that are exposed to applications for Transport The basic objects that are exposed to applications for Transport
Services are the Preconnection, the bundle of properties that Services are the Preconnection, the bundle of properties that
describes the application constraints on the transport; the describes the application constraints on the transport; the
Connection, the basic object that represents a flow of data in either Connection, the basic object that represents a flow of data in either
direction between the Local and Remote Endpoints; and the Listener, a direction between the Local and Remote Endpoints; and the Listener, a
passive waiting object that delivers new Connections. passive waiting object that delivers new Connections.
skipping to change at page 4, line 42 skipping to change at page 4, line 42
3. Implementing Pre-Establishment 3. Implementing Pre-Establishment
During pre-establishment the application specifies the Endpoints to During pre-establishment the application specifies the Endpoints to
be used for communication as well as its preferences regarding be used for communication as well as its preferences regarding
Protocol and Path Selection. The implementation stores these objects Protocol and Path Selection. The implementation stores these objects
and properties as part of the Preconnection object for use during and properties as part of the Preconnection object for use during
connection establishment. For Protocol and Path Selection Properties connection establishment. For Protocol and Path Selection Properties
that are not provided by the application, the implementation must use that are not provided by the application, the implementation must use
the default values specified in the Transport Services API the default values specified in the Transport Services API
([I-D.trammell-taps-interface]). ([I-D.ietf-taps-interface]).
3.1. Configuration-time errors 3.1. Configuration-time errors
The transport system should have a list of supported protocols The transport system should have a list of supported protocols
available, which each have transport features reflecting the available, which each have transport features reflecting the
capabilities of the protocol. Once an application specifies its capabilities of the protocol. Once an application specifies its
Transport Parameters, the transport system should match the required Transport Parameters, the transport system should match the required
and prohibited properties against the transport features of the and prohibited properties against the transport features of the
available protocols. available protocols.
skipping to change at page 12, line 28 skipping to change at page 12, line 28
resolution and DNS hostname resolution. resolution and DNS hostname resolution.
4.3. Sorting Branches 4.3. Sorting Branches
Implementations should sort the branches of the tree of connection Implementations should sort the branches of the tree of connection
options in order of their preference rank. Leaf nodes on branches options in order of their preference rank. Leaf nodes on branches
with higher rankings represent connection attempts that will be raced with higher rankings represent connection attempts that will be raced
first. Implementations should order the branches to reflect the first. Implementations should order the branches to reflect the
preferences expressed by the application for its new connection, preferences expressed by the application for its new connection,
including Protocol and Path Selection Properties, which are specified including Protocol and Path Selection Properties, which are specified
in [I-D.trammell-taps-interface]. in [I-D.ietf-taps-interface].
In addition to the properties provided by the application, an In addition to the properties provided by the application, an
implementation may include additional criteria such as cached implementation may include additional criteria such as cached
performance estimates, see Section 8.2, or system policy, see performance estimates, see Section 8.2, or system policy, see
Section 3.2, in the ranking. Two examples of how the Protocol and Section 3.2, in the ranking. Two examples of how the Protocol and
Path Selection Properties may be used to sort branches are provided Path Selection Properties may be used to sort branches are provided
below: below:
o Interface Type: If the application specifies an interface type to o Interface Type: If the application specifies an interface type to
be preferred or avoided, implementations should rank paths be preferred or avoided, implementations should rank paths
skipping to change at page 33, line 13 skipping to change at page 33, line 13
Sciences Research Council under grant EP/R04144X/1. Sciences Research Council under grant EP/R04144X/1.
Thanks to Stuart Cheshire, Josh Graessley, David Schinazi, and Eric Thanks to Stuart Cheshire, Josh Graessley, David Schinazi, and Eric
Kinnear for their implementation and design efforts, including Happy Kinnear for their implementation and design efforts, including Happy
Eyeballs, that heavily influenced this work. Eyeballs, that heavily influenced this work.
14. References 14. References
14.1. Normative References 14.1. Normative References
[I-D.ietf-taps-minset] [I-D.ietf-taps-arch]
Welzl, M. and S. Gjessing, "A Minimal Set of Transport
Services for TAPS Systems", draft-ietf-taps-minset-03
(work in progress), March 2018.
[I-D.pauly-taps-arch]
Pauly, T., Trammell, B., Brunstrom, A., Fairhurst, G., Pauly, T., Trammell, B., Brunstrom, A., Fairhurst, G.,
Perkins, C., Tiesel, P., and C. Wood, "An Architecture for Perkins, C., Tiesel, P., and C. Wood, "An Architecture for
Transport Services", draft-pauly-taps-arch-00 (work in Transport Services", draft-ietf-taps-arch-00 (work in
progress), February 2018. progress), April 2018.
[I-D.trammell-taps-interface] [I-D.ietf-taps-interface]
Trammell, B., Welzl, M., Enghardt, T., Fairhurst, G., Trammell, B., Welzl, M., Enghardt, T., Fairhurst, G.,
Kuehlewind, M., Perkins, C., Tiesel, P., and C. Wood, "An Kuehlewind, M., Perkins, C., Tiesel, P., and C. Wood, "An
Abstract Application Layer Interface to Transport Abstract Application Layer Interface to Transport
Services", draft-trammell-taps-interface-00 (work in Services", draft-ietf-taps-interface-00 (work in
progress), March 2018. progress), April 2018.
[I-D.ietf-taps-minset]
Welzl, M. and S. Gjessing, "A Minimal Set of Transport
Services for End Systems", draft-ietf-taps-minset-04 (work
in progress), June 2018.
[RFC6458] Stewart, R., Tuexen, M., Poon, K., Lei, P., and V. [RFC6458] Stewart, R., Tuexen, M., Poon, K., Lei, P., and V.
Yasevich, "Sockets API Extensions for the Stream Control Yasevich, "Sockets API Extensions for the Stream Control
Transmission Protocol (SCTP)", RFC 6458, Transmission Protocol (SCTP)", RFC 6458,
DOI 10.17487/RFC6458, December 2011, DOI 10.17487/RFC6458, December 2011,
<https://www.rfc-editor.org/info/rfc6458>. <https://www.rfc-editor.org/info/rfc6458>.
[RFC7413] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP [RFC7413] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP
Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014, Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014,
<https://www.rfc-editor.org/info/rfc7413>. <https://www.rfc-editor.org/info/rfc7413>.
skipping to change at page 34, line 24 skipping to change at page 34, line 24
[RFC8305] Schinazi, D. and T. Pauly, "Happy Eyeballs Version 2: [RFC8305] Schinazi, D. and T. Pauly, "Happy Eyeballs Version 2:
Better Connectivity Using Concurrency", RFC 8305, Better Connectivity Using Concurrency", RFC 8305,
DOI 10.17487/RFC8305, December 2017, DOI 10.17487/RFC8305, December 2017,
<https://www.rfc-editor.org/info/rfc8305>. <https://www.rfc-editor.org/info/rfc8305>.
14.2. Informative References 14.2. Informative References
[I-D.ietf-quic-transport] [I-D.ietf-quic-transport]
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed
and Secure Transport", draft-ietf-quic-transport-12 (work and Secure Transport", draft-ietf-quic-transport-13 (work
in progress), May 2018. in progress), June 2018.
[I-D.ietf-tls-tls13] [I-D.ietf-tls-tls13]
Rescorla, E., "The Transport Layer Security (TLS) Protocol Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", draft-ietf-tls-tls13-28 (work in progress), Version 1.3", draft-ietf-tls-tls13-28 (work in progress),
March 2018. March 2018.
[NEAT-flow-mapping] [NEAT-flow-mapping]
"Transparent Flow Mapping for NEAT (in Workshop on Future "Transparent Flow Mapping for NEAT (in Workshop on Future
of Internet Transport (FIT 2017))", n.d.. of Internet Transport (FIT 2017))", n.d..
 End of changes. 15 change blocks. 
23 lines changed or deleted 23 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/