IETF DataTracker: draft-ietf-taps-interface
This version updates the discussion of security parameters and the
choice of security protocols to try to address review comments from
This is a minor update, to note that protocol-specific properties "MUST
be specified in an IETF document published in the RFC Series", updating
the requirement from "SHOULD be published in response to an AD review
The major changes in this version of the draft are to expand discussion
of IP multicast, protocol-specific endpoints, and security; clarify use
of domain names when creating endpoints and how to represent endpoints
with multiple IP addresses; better explain the role and use of the
Preconnection; consistently use
RFC 2119 language
for normative requirements; clarify types and terminology; and to
improve consistency of presentation. There are also numerous minor
editorial fixes throughout.
This version clarifies the types of certain parameters, expands the
discussion of multicast and updates the multicast examples, updates
the description of Transport Properties, and expands the discussion
of how this abstract API is to be instantiated in concrete
This version clarifies that the specification is not prescriptive on
the form of the implementation; clarifies behaviour when handling of
errors setting properties; clarifies that as application MUST NOT
assume that it can receive any further data on a Connection for which
it has called Close; removes the zeroRttMsgMaxLen parameter, which was
determined not to be useful; and updates the text to use consistent
capitalisation for message types, etc.
This version includes a clarification around assignment of multiple
identifies of the same type to an Endpoint.
This version makes minor clarifications to address AD review comments.
This version updates the references. There are no content changes.
This version updates and fixes the handling of multicast transports,
specifies that ConnectionReceived events are generated when new streams
are opened in multi-streaming transport protocols, highlights
additional security considerations when using 0-RTT session resumption,
and fixes terminology and use of normative languages.
This version includes clarifications around selection and connection
properties, improves consistency of terminology, and better specifies
numeric types for properties noting where integer property values are
This version includes various minor clarifications around message
contexts and message properties. The set of authors is also updated.
This version includes a number of minor corrections and clarifications
expanding the peer-to-peer rendezvous example;
clarifications around transport property names;
clarifications around service identifiers and how they map to
well-known services and DNS SRV records;
clarifications around interfaces names and scopes;
clarifications and additional examples relating to multicast;
additional discussion of Constraining Interfaces for Endpoints;
clarifications around the set of local endpoints returned when
resolving a Preconnection;
additional discussion around the implications of Adding and Removing
Endpoints on a Connection;
expanding discussion of managing connection and handling connection-
and protocol-specific properties;
and expanding the examples around partial receives.
This version updates the Abstract and Introduction to more clearly
state the benefits of the Transport Services framework, and updates
the API summary to more clearly show use of the API.
It expands the discussion of the use and role of Preconnection
objects, preferences, provisioning domains, connection groups, and
And it explains how to disable security in the Transport Services API,
when talking with legacy endpoints such as TCP servers that don't use
TLS, while noting that this use is not recommended.
This is a minor updates that makes some clarifications around transport
properties and multipath transport, adds a Connection.CloseGroup()
action, and updates the state diagram to include the closing state.
This version clarifies the use of types; updates examples; clarifies
the use of multiple endpoints in the pre-establishment phase; updates
the description of Rendezvous() and peer-to-peer connection establishment;
updates the connection properties; adds the Connection.AbortGroup()
method; updates the privacy considerations; and updates the appendix on
This version is a major update that
clarifies use of message properties;
expands discussion of how to specifying endpoints, multicast endpoints, and endpoint aliases;
adds the keep-alive preference and removes the retransmitNotify preference;
expands discussion of Rendezvous();
clarifies use of framers with connection groups;
expands the set of properties supported;
adds a path change event and removes the excessive retransmission event;
adds discussion of message priorities;
updates the examples;
and includes numerous minor fixes and clarifications throughout.
This version restructures the document to present the material in a
more logical way. There are no technical changes.
This version clarifies behaviour of connection groups, message framers,
and the "Interactive" property for multipath connections.
This version of the Transport Services API draft adds some discussion
of advertising alternative addresses for multipath connections, and of
connections where the initiating side is not the first to write. It
better explains the model for connection property negotiation, and adds
properties to signal multi-path transports and bounds on send and
receive rate. It also includes a large number of minor updates,
clarifications, and fixes throughout.
This version version is a major update. It updates the introductory
remarks; clarifies that some events might have default handlers in
certain implementations, and that it's not necessarily safe ignore
events; expands the examples; expands discussion of transport properties
and other parameters; adds discussion of multicast; clarifies the
relation between Initiate() and Preconnection
objects; clarifies the behaviour of passive listen and peer-to-peer
rendezvous; clarifies and role and behaviour of cloned connections and
connection groups; clarifies the role of framers; expands discussion of
Message Contexts; clarifies that maxLength and
minIncompleteLength are used to manage buffering and are
unrelated to message ordering; updates protocol-specific properties;
and expands the security considerations.
This version clarifies meaning of defaults;
provides for reason codes for errors;
provides for rate limiting of inbound connections;
updates the discussion of message framers, much of which has moved to
adds an appendix containing convenience functions; and
clarifies the relation to the
Minimal Set of Transport Services for End Systems.
Editorial clarifications throughout, including clarification of
Clarifications around idempotent data, connection cloning, and
message contexts and replies.
More clearly specify defaults for message properties.
Expand discussion of message contexts and message framers;
specify an initial framer API.
This versions provides some initial usage examples. It expands the
discussion of transport and connection properties, and gives each
property a well-known name. The InitiateWithIdempotentSend() call
is renamed to InitiateWithSend() and idempotency is specified by
a message property.
This version expands and reorganises the discussion of Transport
Properties; updates the discussion of how properties apply to
Preconnections, and how Preconnections and Connections relate;
updates the discussion around name resolution; and expands the
discussion of connection groups. The InitiateWithIdempotentSend()
action is added, along with some discussion about managing
A discussion of Connection State and Ordering of Operations and
Events is added.
Finally, Appendix C explains the Relationship to the Minimal Set of
Transport Services for End Systems.
This version reorganises the parameters and options into a new
transport properties section, and makes some clarifications to
the security properties. There are also some clarifications to
the state machine and the ordering of events, and some updates
to the text around sending and receiving partial messages.
This draft was adopted as a work item of the TAPS working group at IETF
101 in London in March 2018. In addition to a number of editorial fixes,
the draft removes the ability to clone Preconnections;
expands discussion of property negotiation;
removes immediate acknowledgement and adds batching sends;
and clarifies the response to ICMP soft errors.
This draft replaces