draft-ietf-taps-interface-17.txt   draft-ietf-taps-interface-18.txt 
TAPS Working Group B. Trammell, Ed. TAPS Working Group B. Trammell, Ed.
Internet-Draft Google Switzerland GmbH Internet-Draft Google Switzerland GmbH
Intended status: Standards Track M. Welzl, Ed. Intended status: Standards Track M. Welzl, Ed.
Expires: 31 March 2023 University of Oslo Expires: 27 April 2023 University of Oslo
T. Enghardt T. Enghardt
Netflix Netflix
G. Fairhurst G. Fairhurst
University of Aberdeen University of Aberdeen
M. Kuehlewind M. Kuehlewind
Ericsson Ericsson
C. Perkins C. Perkins
University of Glasgow University of Glasgow
P. Tiesel P. Tiesel
SAP SE SAP SE
T. Pauly T. Pauly
Apple Inc. Apple Inc.
27 September 2022 24 October 2022
An Abstract Application Layer Interface to Transport Services An Abstract Application Layer Interface to Transport Services
draft-ietf-taps-interface-17 draft-ietf-taps-interface-18
Abstract Abstract
This document describes an abstract application programming This document describes an abstract application programming
interface, API, to the transport layer that enables the selection of interface, API, to the transport layer that enables the selection of
transport protocols and network paths dynamically at runtime. This transport protocols and network paths dynamically at runtime. This
API enables faster deployment of new protocols and protocol features API enables faster deployment of new protocols and protocol features
without requiring changes to the applications. The specified API without requiring changes to the applications. The specified API
follows the Transport Services architecture by providing follows the Transport Services architecture by providing
asynchronous, atomic transmission of messages. It is intended to asynchronous, atomic transmission of messages. It is intended to
skipping to change at page 2, line 10 skipping to change at page 2, line 10
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 31 March 2023. This Internet-Draft will expire on 27 April 2023.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 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 (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 4, line 27 skipping to change at page 4, line 27
10. Connection Termination . . . . . . . . . . . . . . . . . . . 74 10. Connection Termination . . . . . . . . . . . . . . . . . . . 74
11. Connection State and Ordering of Operations and Events . . . 76 11. Connection State and Ordering of Operations and Events . . . 76
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 77 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 77
13. Privacy and Security Considerations . . . . . . . . . . . . . 77 13. Privacy and Security Considerations . . . . . . . . . . . . . 77
14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 79 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 79
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 79 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 79
15.1. Normative References . . . . . . . . . . . . . . . . . . 79 15.1. Normative References . . . . . . . . . . . . . . . . . . 79
15.2. Informative References . . . . . . . . . . . . . . . . . 80 15.2. Informative References . . . . . . . . . . . . . . . . . 80
Appendix A. Implementation Mapping . . . . . . . . . . . . . . . 84 Appendix A. Implementation Mapping . . . . . . . . . . . . . . . 84
A.1. Types . . . . . . . . . . . . . . . . . . . . . . . . . . 84 A.1. Types . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.2. Events and Errors . . . . . . . . . . . . . . . . . . . . 85 A.2. Events and Errors . . . . . . . . . . . . . . . . . . . . 84
A.3. Time Duration . . . . . . . . . . . . . . . . . . . . . . 85 A.3. Time Duration . . . . . . . . . . . . . . . . . . . . . . 85
Appendix B. Convenience Functions . . . . . . . . . . . . . . . 85 Appendix B. Convenience Functions . . . . . . . . . . . . . . . 85
B.1. Adding Preference Properties . . . . . . . . . . . . . . 85 B.1. Adding Preference Properties . . . . . . . . . . . . . . 85
B.2. Transport Property Profiles . . . . . . . . . . . . . . . 85 B.2. Transport Property Profiles . . . . . . . . . . . . . . . 85
B.2.1. reliable-inorder-stream . . . . . . . . . . . . . . . 85 B.2.1. reliable-inorder-stream . . . . . . . . . . . . . . . 85
B.2.2. reliable-message . . . . . . . . . . . . . . . . . . 86 B.2.2. reliable-message . . . . . . . . . . . . . . . . . . 86
B.2.3. unreliable-datagram . . . . . . . . . . . . . . . . . 86 B.2.3. unreliable-datagram . . . . . . . . . . . . . . . . . 86
Appendix C. Relationship to the Minimal Set of Transport Services Appendix C. Relationship to the Minimal Set of Transport Services
for End Systems . . . . . . . . . . . . . . . . . . . . . 87 for End Systems . . . . . . . . . . . . . . . . . . . . . 87
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 90 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 90
skipping to change at page 42, line 32 skipping to change at page 42, line 32
might not contain information about all possible local interfaces; it might not contain information about all possible local interfaces; it
is valid only for a Rendezvous happening at the same time as the is valid only for a Rendezvous happening at the same time as the
resolution. Care should be taken in using these values in any other resolution. Care should be taken in using these values in any other
context. context.
An application that uses Rendezvous() to establish a peer-to-peer An application that uses Rendezvous() to establish a peer-to-peer
connection in the presence of NATs will configure the Preconnection connection in the presence of NATs will configure the Preconnection
object with at least one a Local Endpoint that supports NAT binding object with at least one a Local Endpoint that supports NAT binding
discovery. It will then Resolve() the Preconnection, and pass the discovery. It will then Resolve() the Preconnection, and pass the
resulting list of Local Endpoint candidates to the peer via a resulting list of Local Endpoint candidates to the peer via a
signalling protocol, for example as part of an ICE [RFC5245] exchange signalling protocol, for example as part of an ICE [RFC8445] exchange
within SIP [RFC3261] or WebRTC [RFC7478]. The peer will then, via within SIP [RFC3261] or WebRTC [RFC7478]. The peer will then, via
the same signalling channel, return the Remote Endpoint candidates. the same signalling channel, return the Remote Endpoint candidates.
The set of Remote Endpoint candidates are then configured onto the The set of Remote Endpoint candidates are then configured onto the
Preconnection: Preconnection:
Preconnection.AddRemote([]RemoteEndpoint) Preconnection.AddRemote([]RemoteEndpoint)
The Rendezvous() Action can be initiated once both the Local Endpoint The Rendezvous() Action can be initiated once both the Local Endpoint
candidates and the Remote Endpoint candidates retrieved from the peer candidates and the Remote Endpoint candidates retrieved from the peer
via the signalling channel have been added to the Preconnection. via the signalling channel have been added to the Preconnection.
skipping to change at page 69, line 24 skipping to change at page 69, line 24
9.2.6. Priority and the Transport Services API 9.2.6. Priority and the Transport Services API
The Transport Services API provides two properties to allow a sender The Transport Services API provides two properties to allow a sender
to signal the relative priority of data transmission: msgPriority to signal the relative priority of data transmission: msgPriority
Section 9.1.3.2 and connPriority Section 8.1.2. These properties are Section 9.1.3.2 and connPriority Section 8.1.2. These properties are
designed to allow the expression and implementation of a wide variety designed to allow the expression and implementation of a wide variety
of approaches to transmission priority in the transport and of approaches to transmission priority in the transport and
application layer, including those which do not appear on the wire application layer, including those which do not appear on the wire
(affecting only sender-side transmission scheduling) as well as those (affecting only sender-side transmission scheduling) as well as those
that do (e.g. [I-D.ietf-httpbis-priority]. that do (e.g. [RFC9218].
A Transport Services system gives no guarantees about how its A Transport Services system gives no guarantees about how its
expression of relative priorities will be realized. However, the expression of relative priorities will be realized. However, the
Transport Services system will seek to ensure that performance of Transport Services system will seek to ensure that performance of
relatively-prioritized connections and messages is not worse with relatively-prioritized connections and messages is not worse with
respect to those connections and messages than an equivalent respect to those connections and messages than an equivalent
configuration in which all prioritization properties are left at configuration in which all prioritization properties are left at
their defaults. their defaults.
The Transport Services API does order connPriority over msgPriority. The Transport Services API does order connPriority over msgPriority.
skipping to change at page 79, line 50 skipping to change at page 79, line 50
good questions based on implementation experience and for good questions based on implementation experience and for
contributing text, e.g., on multicast. contributing text, e.g., on multicast.
15. References 15. References
15.1. Normative References 15.1. Normative References
[I-D.ietf-taps-arch] [I-D.ietf-taps-arch]
Pauly, T., Trammell, B., Brunstrom, A., Fairhurst, G., and Pauly, T., Trammell, B., Brunstrom, A., Fairhurst, G., and
C. Perkins, "An Architecture for Transport Services", Work C. Perkins, "An Architecture for Transport Services", Work
in Progress, Internet-Draft, draft-ietf-taps-arch-13, 27 in Progress, Internet-Draft, draft-ietf-taps-arch-15, 20
June 2022, <https://datatracker.ietf.org/doc/html/draft- October 2022, <https://datatracker.ietf.org/doc/html/
ietf-taps-arch-13>. draft-ietf-taps-arch-15>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>. <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41,
RFC 2914, DOI 10.17487/RFC2914, September 2000, RFC 2914, DOI 10.17487/RFC2914, September 2000,
<https://www.rfc-editor.org/rfc/rfc2914>. <https://www.rfc-editor.org/rfc/rfc2914>.
skipping to change at page 80, line 26 skipping to change at page 80, line 26
<https://www.rfc-editor.org/rfc/rfc8084>. <https://www.rfc-editor.org/rfc/rfc8084>.
[RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage [RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage
Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085,
March 2017, <https://www.rfc-editor.org/rfc/rfc8085>. March 2017, <https://www.rfc-editor.org/rfc/rfc8085>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC8303] Welzl, M., Tuexen, M., and N. Khademi, "On the Usage of
Transport Features Provided by IETF Transport Protocols",
RFC 8303, DOI 10.17487/RFC8303, February 2018,
<https://www.rfc-editor.org/rfc/rfc8303>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/rfc/rfc8446>. <https://www.rfc-editor.org/rfc/rfc8446>.
[RFC8981] Gont, F., Krishnan, S., Narten, T., and R. Draves, [RFC8981] Gont, F., Krishnan, S., Narten, T., and R. Draves,
"Temporary Address Extensions for Stateless Address "Temporary Address Extensions for Stateless Address
Autoconfiguration in IPv6", RFC 8981, Autoconfiguration in IPv6", RFC 8981,
DOI 10.17487/RFC8981, February 2021, DOI 10.17487/RFC8981, February 2021,
<https://www.rfc-editor.org/rfc/rfc8981>. <https://www.rfc-editor.org/rfc/rfc8981>.
15.2. Informative References 15.2. Informative References
[I-D.ietf-httpbis-priority]
Oku, K. and L. Pardue, "Extensible Prioritization Scheme
for HTTP", Work in Progress, Internet-Draft, draft-ietf-
httpbis-priority-12, 17 January 2022,
<https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-
priority-12>.
[I-D.ietf-taps-impl] [I-D.ietf-taps-impl]
Brunstrom, A., Pauly, T., Enghardt, R., Tiesel, P. S., and Brunstrom, A., Pauly, T., Enghardt, R., Tiesel, P. S., and
M. Welzl, "Implementing Interfaces to Transport Services", M. Welzl, "Implementing Interfaces to Transport Services",
Work in Progress, Internet-Draft, draft-ietf-taps-impl-13, Work in Progress, Internet-Draft, draft-ietf-taps-impl-14,
31 August 2022, <https://datatracker.ietf.org/doc/html/ 20 October 2022, <https://datatracker.ietf.org/doc/html/
draft-ietf-taps-impl-13>. draft-ietf-taps-impl-14>.
[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black,
"Definition of the Differentiated Services Field (DS "Definition of the Differentiated Services Field (DS
Field) in the IPv4 and IPv6 Headers", RFC 2474, Field) in the IPv4 and IPv6 Headers", RFC 2474,
DOI 10.17487/RFC2474, December 1998, DOI 10.17487/RFC2474, December 1998,
<https://www.rfc-editor.org/rfc/rfc2474>. <https://www.rfc-editor.org/rfc/rfc2474>.
[RFC2597] Heinanen, J., Baker, F., Weiss, W., and J. Wroclawski, [RFC2597] Heinanen, J., Baker, F., Weiss, W., and J. Wroclawski,
"Assured Forwarding PHB Group", RFC 2597, "Assured Forwarding PHB Group", RFC 2597,
DOI 10.17487/RFC2597, June 1999, DOI 10.17487/RFC2597, June 1999,
skipping to change at page 81, line 36 skipping to change at page 81, line 27
A., Peterson, J., Sparks, R., Handley, M., and E. A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261, Schooler, "SIP: Session Initiation Protocol", RFC 3261,
DOI 10.17487/RFC3261, June 2002, DOI 10.17487/RFC3261, June 2002,
<https://www.rfc-editor.org/rfc/rfc3261>. <https://www.rfc-editor.org/rfc/rfc3261>.
[RFC4594] Babiarz, J., Chan, K., and F. Baker, "Configuration [RFC4594] Babiarz, J., Chan, K., and F. Baker, "Configuration
Guidelines for DiffServ Service Classes", RFC 4594, Guidelines for DiffServ Service Classes", RFC 4594,
DOI 10.17487/RFC4594, August 2006, DOI 10.17487/RFC4594, August 2006,
<https://www.rfc-editor.org/rfc/rfc4594>. <https://www.rfc-editor.org/rfc/rfc4594>.
[RFC5245] Rosenberg, J., "Interactive Connectivity Establishment
(ICE): A Protocol for Network Address Translator (NAT)
Traversal for Offer/Answer Protocols", RFC 5245,
DOI 10.17487/RFC5245, April 2010,
<https://www.rfc-editor.org/rfc/rfc5245>.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
<https://www.rfc-editor.org/rfc/rfc5280>. <https://www.rfc-editor.org/rfc/rfc5280>.
[RFC5482] Eggert, L. and F. Gont, "TCP User Timeout Option", [RFC5482] Eggert, L. and F. Gont, "TCP User Timeout Option",
RFC 5482, DOI 10.17487/RFC5482, March 2009, RFC 5482, DOI 10.17487/RFC5482, March 2009,
<https://www.rfc-editor.org/rfc/rfc5482>. <https://www.rfc-editor.org/rfc/rfc5482>.
skipping to change at page 82, line 46 skipping to change at page 82, line 32
Stream Control Transmission Protocol", RFC 8260, Stream Control Transmission Protocol", RFC 8260,
DOI 10.17487/RFC8260, November 2017, DOI 10.17487/RFC8260, November 2017,
<https://www.rfc-editor.org/rfc/rfc8260>. <https://www.rfc-editor.org/rfc/rfc8260>.
[RFC8293] Ghanwani, A., Dunbar, L., McBride, M., Bannai, V., and R. [RFC8293] Ghanwani, A., Dunbar, L., McBride, M., Bannai, V., and R.
Krishnan, "A Framework for Multicast in Network Krishnan, "A Framework for Multicast in Network
Virtualization over Layer 3", RFC 8293, Virtualization over Layer 3", RFC 8293,
DOI 10.17487/RFC8293, January 2018, DOI 10.17487/RFC8293, January 2018,
<https://www.rfc-editor.org/rfc/rfc8293>. <https://www.rfc-editor.org/rfc/rfc8293>.
[RFC8303] Welzl, M., Tuexen, M., and N. Khademi, "On the Usage of
Transport Features Provided by IETF Transport Protocols",
RFC 8303, DOI 10.17487/RFC8303, February 2018,
<https://www.rfc-editor.org/rfc/rfc8303>.
[RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive [RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive
Connectivity Establishment (ICE): A Protocol for Network Connectivity Establishment (ICE): A Protocol for Network
Address Translator (NAT) Traversal", RFC 8445, Address Translator (NAT) Traversal", RFC 8445,
DOI 10.17487/RFC8445, July 2018, DOI 10.17487/RFC8445, July 2018,
<https://www.rfc-editor.org/rfc/rfc8445>. <https://www.rfc-editor.org/rfc/rfc8445>.
[RFC8489] Petit-Huguenin, M., Salgueiro, G., Rosenberg, J., Wing, [RFC8489] Petit-Huguenin, M., Salgueiro, G., Rosenberg, J., Wing,
D., Mahy, R., and P. Matthews, "Session Traversal D., Mahy, R., and P. Matthews, "Session Traversal
Utilities for NAT (STUN)", RFC 8489, DOI 10.17487/RFC8489, Utilities for NAT (STUN)", RFC 8489, DOI 10.17487/RFC8489,
February 2020, <https://www.rfc-editor.org/rfc/rfc8489>. February 2020, <https://www.rfc-editor.org/rfc/rfc8489>.
skipping to change at page 84, line 5 skipping to change at page 83, line 40
[RFC8922] Enghardt, T., Pauly, T., Perkins, C., Rose, K., and C. [RFC8922] Enghardt, T., Pauly, T., Perkins, C., Rose, K., and C.
Wood, "A Survey of the Interaction between Security Wood, "A Survey of the Interaction between Security
Protocols and Transport Services", RFC 8922, Protocols and Transport Services", RFC 8922,
DOI 10.17487/RFC8922, October 2020, DOI 10.17487/RFC8922, October 2020,
<https://www.rfc-editor.org/rfc/rfc8922>. <https://www.rfc-editor.org/rfc/rfc8922>.
[RFC8923] Welzl, M. and S. Gjessing, "A Minimal Set of Transport [RFC8923] Welzl, M. and S. Gjessing, "A Minimal Set of Transport
Services for End Systems", RFC 8923, DOI 10.17487/RFC8923, Services for End Systems", RFC 8923, DOI 10.17487/RFC8923,
October 2020, <https://www.rfc-editor.org/rfc/rfc8923>. October 2020, <https://www.rfc-editor.org/rfc/rfc8923>.
[RFC9218] Oku, K. and L. Pardue, "Extensible Prioritization Scheme
for HTTP", RFC 9218, DOI 10.17487/RFC9218, June 2022,
<https://www.rfc-editor.org/rfc/rfc9218>.
[TCP-COUPLING] [TCP-COUPLING]
Islam, S., Welzl, M., Hiorth, K., Hayes, D., Armitage, G., Islam, S., Welzl, M., Hiorth, K., Hayes, D., Armitage, G.,
and S. Gjessing, "ctrlTCP: Reducing Latency through and S. Gjessing, "ctrlTCP: Reducing Latency through
Coupled, Heterogeneous Multi-Flow TCP Congestion Control", Coupled, Heterogeneous Multi-Flow TCP Congestion Control",
IEEE INFOCOM Global Internet Symposium (GI) workshop (GI IEEE INFOCOM Global Internet Symposium (GI) workshop (GI
2018) , 2018. 2018) , 2018.
Appendix A. Implementation Mapping Appendix A. Implementation Mapping
The way the concepts from this abstract API map into concrete APIs in The way the concepts from this abstract API map into concrete APIs in
 End of changes. 14 change blocks. 
31 lines changed or deleted 22 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/