Draft: draft-ietf-core-coap-tcp-tls

Commentary: I 'm finding " CoAP over protocol " to be too verbose - especially in text that references or compares multiple protocol bindings . Can we agree on a shorthand ? CoAP protocol such as CoAP UDP , CoAP TCP / TLS , CoAP WebSockets CoAP+protocol such as CoAP+UDP , CoAP+TCP / TLS , CoAP+WebSockets 
 The URI scheme component provides a reasonably good shorthand form to reflect the protocol bindings and the " Terminology " section could perhaps reflect that ? It would be approximately lead to something like the following text : In this document , references to the various transport bindings for conveying CoAP messages adopt the following abbreviations : CoAP+TCP refers to CoAP over TCP , and CoAP+WS refers to CoAP over WebSockets . Using " CoAPS+ " instead of " CoAP+ " implies the use of their corresponding TLS - based secure counterparts . CoAP and CoAPS refer to CoAP over UDP and CoAP over DTLS , respectively .
The request/response interaction model of CoAP TCP/TLS is the same as
CoAP UDP.  The primary differences are in the message layer.  CoAP
UDP supports optional reliability by defining four types of messages:
Confirmable, Non-confirmable, Acknowledgement, and Reset.  TCP
eliminates the need for the message layer to support reliability.  As
a result, message types are not defined in CoAP TCP/TLS.
Conceptually, CoAP TCP/TLS replaces most of the CoAP UDP message
layer with a framing mechanism on top of the byte stream provided by
TCP/TLS, conveying the length information for each message that on
datagram transports is provided by the UDP/DTLS datagram layer.
TCP ensures reliable message transmission, so the CoAP TCP/TLS
messaging layer is not required to support acknowledgements or
detection of duplicate messages.  As a result, both the Type and
Message ID fields are no longer required and are removed from the
CoAP over TCP message format.  All messages are also untyped.
The request/response interaction model of CoAP over TCP is the same
as CoAP over UDP.  The primary differences are in the message layer.
CoAP over UDP supports optional reliability by defining four types of
messages: Confirmable, Non-confirmable, Acknowledgement, and Reset.
TCP eliminates the need for the message layer to support reliability.
As a result, message types are not defined in CoAP over TCP.
Conceptually, CoAP over TCP replaces most of the CoAP over UDP
message layer with a framing mechanism on top of the byte stream
provided by TCP/TLS, conveying the length information for each
message that on datagram transports is provided by the UDP/DTLS
datagram layer.
TCP ensures reliable message transmission, so the CoAP over TCP
messaging layer is not required to support acknowledgements or
detection of duplicate messages.  As a result, both the Type and
Message ID fields are no longer required and are removed from the
CoAP over TCP message format.  All messages are also untyped.
In CoAP over TCP/TLS, Empty messages can always be sent and will be
ignored.  This provides a basic keep-alive function that can refresh
NAT bindings.  In contrast, Ping and Pong messages are a
bidirectional exchange.
In CoAP over TCP, Empty messages can always be sent and will be
ignored.  This provides a basic keep-alive function that can refresh
NAT bindings.  In contrast, Ping and Pong messages are a
bidirectional exchange.