draft-ietf-taps-arch-03.txt | draft-ietf-taps-arch-04.txt | |||
---|---|---|---|---|
TAPS Working Group T. Pauly, Ed. | TAPS Working Group T. Pauly, Ed. | |||
Internet-Draft Apple Inc. | Internet-Draft Apple Inc. | |||
Intended status: Standards Track B. Trammell, Ed. | Intended status: Standards Track B. Trammell, Ed. | |||
Expires: September 12, 2019 Google | Expires: January 9, 2020 Google | |||
A. Brunstrom | A. Brunstrom | |||
Karlstad University | Karlstad University | |||
G. Fairhurst | G. Fairhurst | |||
University of Aberdeen | University of Aberdeen | |||
C. Perkins | C. Perkins | |||
University of Glasgow | University of Glasgow | |||
P. Tiesel | P. Tiesel | |||
TU Berlin | TU Berlin | |||
C. Wood | C. Wood | |||
Apple Inc. | Apple Inc. | |||
March 11, 2019 | July 08, 2019 | |||
An Architecture for Transport Services | An Architecture for Transport Services | |||
draft-ietf-taps-arch-03 | draft-ietf-taps-arch-04 | |||
Abstract | Abstract | |||
This document provides an overview of the architecture of Transport | This document provides an overview of the architecture of Transport | |||
Services, a model for exposing transport protocol features to | Services, a model for exposing transport protocol features to | |||
applications for network communication. In contrast to what is | applications for network communication. In contrast to what is | |||
provided by most existing Application Programming Interfaces (APIs), | provided by most existing Application Programming Interfaces (APIs), | |||
Transport Services is based on an asynchronous, event-driven | Transport Services is based on an asynchronous, event-driven | |||
interaction pattern; it uses messages for representing data transfer | interaction pattern; it uses messages for representing data transfer | |||
to applications; and it assumes an implementation that can use | to applications; and it assumes an implementation that can use | |||
skipping to change at page 2, line 4 ¶ | skipping to change at page 2, line 4 ¶ | |||
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 September 12, 2019. | This Internet-Draft will expire on January 9, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 6, line 28 ¶ | skipping to change at page 6, line 28 ¶ | |||
o the ability to provide control of reliability, choosing which | o the ability to provide control of reliability, choosing which | |||
messages to retransmit in the event of packet loss, and how best | messages to retransmit in the event of packet loss, and how best | |||
to make use of the data that arrived; | to make use of the data that arrived; | |||
o the ability to manage dependencies between messages, when the | o the ability to manage dependencies between messages, when the | |||
transport system could decide to not deliver a message, either | transport system could decide to not deliver a message, either | |||
following packet loss or because it has missed a deadline. In | following packet loss or because it has missed a deadline. In | |||
particular, this can avoid (re-)sending data that relies on a | particular, this can avoid (re-)sending data that relies on a | |||
previous transmission that was never received. | previous transmission that was never received. | |||
o the ability to automatically assign messages and connections to | ||||
underlaying transport connections to utilize multi-streaming and | ||||
pooled connections. | ||||
Allowing applications to interact with messages is backwards- | Allowing applications to interact with messages is backwards- | |||
compatible with existings protocols and APIs, as it does not change | compatible with existings protocols and APIs, as it does not change | |||
the wire format of any protocol. Instead, it gives the protocol | the wire format of any protocol. Instead, it gives the protocol | |||
stack additional information to allow it to make better use of modern | stack additional information to allow it to make better use of modern | |||
transport services, while simplifying the application's role in | transport services, while simplifying the application's role in | |||
parsing data. | parsing data. | |||
1.4. Flexibile Implementation | 1.4. Flexibile Implementation | |||
Sockets, for protocols like TCP, are generally limited to connecting | Sockets, for protocols like TCP, are generally limited to connecting | |||
skipping to change at page 14, line 10 ¶ | skipping to change at page 14, line 10 ¶ | |||
* Transport Properties: Transport Properties can be specified as | * Transport Properties: Transport Properties can be specified as | |||
part of a Preconnection to allow the application to configure | part of a Preconnection to allow the application to configure | |||
the Transport System and express their requirements, | the Transport System and express their requirements, | |||
prohibitions, and preferences. There are three kinds of | prohibitions, and preferences. There are three kinds of | |||
Transport Properties: Selection Properties (Section 4.1.2), | Transport Properties: Selection Properties (Section 4.1.2), | |||
Connection Properties (Section 4.1.2), and Message Properties | Connection Properties (Section 4.1.2), and Message Properties | |||
(Section 4.1.4). Message Properties can also be specified | (Section 4.1.4). Message Properties can also be specified | |||
during data transfer to affect specific Messages. | during data transfer to affect specific Messages. | |||
o Connection: A Connection object represents an active transport | o Connection: A Connection object represents one or more active | |||
protocol instance that can send and/or receive Messages between | transport protocol instances that can send and/or receive Messages | |||
local and remote systems. It holds state pertaining to the | between local and remote systems. It holds state pertaining to | |||
underlying transport protocol instance and any ongoing data | the underlying transport protocol instances and any ongoing data | |||
transfer. This represents, for example, an active connection in a | transfers. This represents, for example, an active connection in | |||
connection-oriented protocol such as TCP, or a fully-specified | a connection-oriented protocol such as TCP, or a fully-specified | |||
5-tuple for a connectionless protocol such as UDP. | 5-tuple for a connectionless protocol such as UDP. It can also | |||
represent a pool of transport protocol instance, e.g., a set of | ||||
TCP and QUIC connections to equivalent endpoints, or a stream of a | ||||
multi-streaming transport protocol instance. | ||||
o Listener: A Listener object accepts incoming transport protocol | o Listener: A Listener object accepts incoming transport protocol | |||
connections from remote systems and generates corresponding | connections from remote systems and generates corresponding | |||
Connection objects. It is created from a Preconnection object | Connection objects. It is created from a Preconnection object | |||
that specifies the type of incoming connections it will accept. | that specifies the type of incoming connections it will accept. | |||
4.1.2. Pre-Establishment | 4.1.2. Pre-Establishment | |||
o Endpoint: An Endpoint represents an identifier for one side of a | o Endpoint: An Endpoint represents an identifier for one side of a | |||
transport connection. Endpoints can be Local Endpoints or Remote | transport connection. Endpoints can be Local Endpoints or Remote | |||
skipping to change at page 23, line 11 ¶ | skipping to change at page 23, line 11 ¶ | |||
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. | |||
8. Informative References | 8. Informative References | |||
[I-D.ietf-taps-impl] | [I-D.ietf-taps-impl] | |||
Brunstrom, A., Pauly, T., Enghardt, T., Grinnemo, K., | Brunstrom, A., Pauly, T., Enghardt, T., Grinnemo, K., | |||
Jones, T., Tiesel, P., Perkins, C., and M. Welzl, | Jones, T., Tiesel, P., Perkins, C., and M. Welzl, | |||
"Implementing Interfaces to Transport Services", draft- | "Implementing Interfaces to Transport Services", draft- | |||
ietf-taps-impl-02 (work in progress), October 2018. | ietf-taps-impl-03 (work in progress), March 2019. | |||
[I-D.ietf-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-ietf-taps-interface-02 (work in | Services", draft-ietf-taps-interface-03 (work in | |||
progress), October 2018. | progress), March 2019. | |||
[I-D.ietf-taps-minset] | [I-D.ietf-taps-minset] | |||
Welzl, M. and S. Gjessing, "A Minimal Set of Transport | Welzl, M. and S. Gjessing, "A Minimal Set of Transport | |||
Services for End Systems", draft-ietf-taps-minset-11 (work | Services for End Systems", draft-ietf-taps-minset-11 (work | |||
in progress), September 2018. | in progress), September 2018. | |||
[I-D.ietf-taps-transport-security] | [I-D.ietf-taps-transport-security] | |||
Wood, C., Enghardt, T., Pauly, T., Perkins, C., and K. | Wood, C., Enghardt, T., Pauly, T., Perkins, C., and K. | |||
Rose, "A Survey of Transport Security Protocols", draft- | Rose, "A Survey of Transport Security Protocols", draft- | |||
ietf-taps-transport-security-06 (work in progress), March | ietf-taps-transport-security-06 (work in progress), March | |||
skipping to change at page 25, line 31 ¶ | skipping to change at page 25, line 31 ¶ | |||
Colin Perkins | Colin Perkins | |||
University of Glasgow | University of Glasgow | |||
School of Computing Science | School of Computing Science | |||
Glasgow G12 8QQ | Glasgow G12 8QQ | |||
United Kingdom | United Kingdom | |||
Email: csp@csperkins.org | Email: csp@csperkins.org | |||
Philipp S. Tiesel | Philipp S. Tiesel | |||
TU Berlin | TU Berlin | |||
Marchstrasse 23 | Einsteinufer 25 | |||
10587 Berlin | 10587 Berlin | |||
Germany | Germany | |||
Email: philipp@inet.tu-berlin.de | Email: philipp@tiesel.net | |||
Chris Wood | Chris Wood | |||
Apple Inc. | Apple Inc. | |||
One Apple Park Way | One Apple Park Way | |||
Cupertino, California 95014 | Cupertino, California 95014 | |||
United States of America | United States of America | |||
Email: cawood@apple.com | Email: cawood@apple.com | |||
End of changes. 10 change blocks. | ||||
16 lines changed or deleted | 23 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |