<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.14 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-amsuess-core-coap-kitchensink-06" category="info" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title>Everything over CoAP</title>
    <seriesInfo name="Internet-Draft" value="draft-amsuess-core-coap-kitchensink-06"/>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="19"/>
    <workgroup>CoRE</workgroup>
    <keyword>CoAP, NTP</keyword>
    <abstract>
      <?line 77?>

<t>The Constrained Application Protocol (CoAP) has become the base of applications
both inside of the constrained devices space it originally aimed for
and outside.
This document gives an overview of applications that
are, can, may,
and would better not be implemented on top of CoAP.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Constrained RESTful Environments Working Group mailing list (core@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://gitlab.com/chrysn/coap-kitchensink"/>.</t>
    </note>
  </front>
  <middle>
    <?line 86?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>[ See abstract for now ]</t>
    </section>
    <section anchor="applications">
      <name>Applications</name>
      <section anchor="publish-subscribe-services">
        <name>Publish-Subscribe services</name>
        <t>Publish-subscribe services (pubsub) are a widespread tool for the some of the fundamental use cases of Internet of Things (IoT) protocols:
acquiring sensor data and controlling actuators.</t>
        <t>A pubsub implementation has been in development since shorlty after the original CoAP publication
and is as of now still in draft status, as <xref target="I-D.ietf-core-coap-pubsub"/>.</t>
        <dl>
          <dt>Competing with</dt>
          <dd>
            <t>MQTT</t>
          </dd>
          <dt>Strong points</dt>
          <dd>
            <t>Once a topic is set up, data can be sent and received
by CoAP clients that are not even aware of pubsub,
as long as they can PUT or GET (possibly with observation) data to and from configured URIs.</t>
          </dd>
          <dt>Weak points</dt>
          <dd>
            <t>To implement a pubsub broker that supports arbitrarily many topics,
some (potentially difficult-to-implement) compromises have to be made.</t>
          </dd>
        </dl>
      </section>
      <section anchor="remote-configuration">
        <name>Remote configuration</name>
        <t>The OMA LwM2M protocol
(which caters for several applications at the granularity of this document)
includes provisions for configuring and monitoring devices over the network,
setting properties such as a time server
and reading properties such as a network interface's packet count.</t>
        <t>In parallel, the NETCONF protocol and its YANG modelling language
have been ported to the constrained ecosystem as CORECONF <xref target="I-D.ietf-core-comi"/>.
By using numeric identifiers with good compression properties,
it can efficiently express data both from shared and from bespoke models in single requests.</t>
        <dl>
          <dt>Competing with</dt>
          <dd>
            <t>SNMP [ ? ], Puppet [ ? ]</t>
          </dd>
        </dl>
        <section anchor="network-status-monitoring">
          <name>Network status monitoring</name>
          <t>Related to remote configuration,
CoAP is used as the signalling channel of DOTS (<xref target="RFC132"/>).</t>
          <dl>
            <dt>Strong points</dt>
            <dd>
              <t>CoAP over UDP/DTLS provides operational signalling on links under attack,
on which a TCP/TLS based connection would fail.</t>
            </dd>
            <dt/>
            <dd>
              <t>CoAP's consistency across transports
makes it easy to adjust to situations in which UDP is uanvailable,
sacrificing some properties but leaving the high-level protocol unmodified.</t>
            </dd>
            <dt>Weak points</dt>
            <dd>
              <t>CoAP's default parameters for flow control (such as <tt>PROBING_RATE</tt>) are unsuitable for this application
and need to be customized.</t>
            </dd>
          </dl>
        </section>
        <section anchor="runtime-configuration">
          <name>Runtime configuration</name>
          <t>Related to remote network configuration,
but used without human intervention,
CoAP is used negotiate cryptographic keys and other short-lived network configuration,
eg. in <xref target="CoJP"/>, <xref target="ace-key-groupcomm-oscore"/>, and <xref target="OpenThread_Multicast"/>.
This is comparable to how <xref target="DHCP"/> or <xref target="IGMP"/> exchanges configuration.</t>
          <dl>
            <dt>Strong points</dt>
            <dd>
              <t>When the exchanged communication is essential to joining the network in the first place,
CoAP traffic exchanged over a temporary link can easily be proxied into the actual network,
even when routing is not an option yet.</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="software-updates">
        <name>Software updates</name>
        <t>The SUIT manifest format <xref target="I-D.ietf-suit-manifest"/> can be used to describe firmware updates
that can be performed over CoAP or any other protocol that is expressible in terms of URIs.</t>
        <t>The OMA LwM2M protocol also contains provisions for firmware updates over CoAP.</t>
      </section>
      <section anchor="network-file-system">
        <name>Network file system</name>
        <t>Using CoAP as a backend for a no-frills file service
is a simple composition and is provided as a demo by the aiocoap library and a module in the RIOT operating system.</t>
        <t>It has never been specified and described;
that gap is closed in <xref target="coap-filesystem"/>.</t>
        <dl>
          <dt>Competing with</dt>
          <dd>
            <t>WebDAV, NFS, FTP</t>
          </dd>
          <dt>Strong points</dt>
          <dd>
            <t>CoAP protocol already provides random read access (through the Block2 option),
optimistic locking and cache (through the ETag and If-Match options)
and change notification (through the Observe option).</t>
          </dd>
          <dt/>
          <dd>
            <t>Files can be used in other CoAP protocols without the client's awareness (e.g. for SUIT)</t>
          </dd>
          <dt>Weak points</dt>
          <dd>
            <t>Transfer of large files is inefficient due to the repetition of file names in block-wise requests
(mitigated when using CoAP-over-TCP and BERT).</t>
          </dd>
          <dt/>
          <dd>
            <t>Advanced file system functionality (file metadata, server-to-server copies, renaming, locking)
would need additional specifications.</t>
          </dd>
        </dl>
      </section>
      <section anchor="network-address-resolution">
        <name>Network address resolution</name>
        <t>The Domain Name System (DNS) can be utilized from CoAP using the mechanisms described in <xref target="I-D.draft-lenders-dns-over-coap"/>.</t>
        <dl>
          <dt>Strong points</dt>
          <dd>
            <t>Savings in firmware complexity by using infrastructure shared with other applications.</t>
          </dd>
          <dt/>
          <dd>
            <t>Potential for traffic (and thus energy) reduction by using request-response binding.</t>
          </dd>
          <dt>Weak points</dt>
          <dd>
            <t>Not deployed in existing networks.</t>
          </dd>
        </dl>
      </section>
      <section anchor="time-service">
        <name>Time service</name>
        <t>A primitive time service can be assembled by creating a CoAP resource that returns the server's current time,
e.g., in a UNIX time stamp represented in decimal ASCII, or in CBOR using any of timestamp tags (0, 1 or 1001).</t>
        <t>Such services have been in use since at least 2013,
and are easy to operate and scale.</t>
        <t>There is a (currently long expired) document describing a lightweight authenticated time synchronization protocol
that is embedded into the ACE framework <xref target="RFC9200"/> in <xref target="I-D.navas-ace-secure-time-synchronization"/>
and typically used with CoAP.</t>
        <dl>
          <dt>Competing with</dt>
          <dd>
            <t>SNTP, NTP, NTS</t>
          </dd>
          <dt>Strong points</dt>
          <dd>
            <t>Savings in firmware complexity by using infrastructure shared with other applications.</t>
          </dd>
          <dt/>
          <dd>
            <t>Compact messages.</t>
          </dd>
          <dt/>
          <dd>
            <t>Reuse of existing security associations.</t>
          </dd>
          <dt>Weak points</dt>
          <dd>
            <t>None of the advanced features of (S)NTP, such as distinction between receive and transmit timestamps.
Not even leap seconds are advertised
(but that can be mitigated by using a time scale that is not affected by them, such as TAI).</t>
          </dd>
          <dt/>
          <dd>
            <t>Generally only suitable for the last hop in time synchronization.</t>
          </dd>
          <dt/>
          <dd>
            <t>NTS supports key identifiers for stateless operations. <xref target="I-D.amsuess-core-stateless-oscore"/> is explorative work to bring OSCORE to and above parity.</t>
          </dd>
        </dl>
      </section>
      <section anchor="terminal-access">
        <name>Terminal access</name>
        <t>Virtual terminal access was one of the first network applications described in an RFC (<xref target="RFC15"/>),
and popular to date.</t>
        <t>There is no full specification yet as to how to express the data streams
of character based user input
and character based text responses in CoAP.
Necessary components,
as well as optional future extensions,
have been sketched and implemented for the RIOT operating system at <eref target="https://forum.riot-os.org/t/coap-remote-shell/3340/5">https://forum.riot-os.org/t/coap-remote-shell/3340/5</eref>
and implemented in <eref target="https://docs.rs/coap-scroll-ring-server/latest/coap_scroll_ring_server/struct.BufferHandler.html">coap-scroll-ring-server</eref>.
Unlike SSH,
that sketch assumes the presence of a single virtual terminal
(as opposed to one created per connection).
On platforms with dynamic resources and per-process output capture,
an SSH-like muliplexing can be created based on the resource collection pattern described in <xref target="I-D.ietf-core-interfaces"/>.</t>
        <dl>
          <dt>Competing with</dt>
          <dd>
            <t>SSH</t>
          </dd>
          <dt>Strong points</dt>
          <dd>
            <t>The head-of-line blocking that occasionally plagues TCP based connections is eliminiated
in favor of on-demand recovery
(i.e., observing the last output will produce the latest chunk of output,
and the terminal may recover skipped data later if it is still in the device's back-scroll buffer).</t>
          </dd>
          <dt>Weak points</dt>
          <dd>
            <t>The default retransmission characteristics of CoAP make operations painfully slow when encountering packet loss.
Tuning of parameters or the implementation of advanced flow control as described in <xref target="I-D.ietf-core-fasor"/> are necessary for smooth operation.</t>
          </dd>
          <dt/>
          <dd>
            <t>On-demand recovery is incompatible with regular terminals,
and requires either fully managed terminals (where the full output is reprinted when lost fragments are recovered)
or accepting the loss of data where printed exceeding the network speed.
(Data is still lost gracefully, as the loss is detected and can be indicated visually).</t>
          </dd>
        </dl>
      </section>
      <section anchor="chat-services">
        <name>Chat services</name>
        <t>The CoMatrix project <eref target="https://comatrix.eu/">https://comatrix.eu/</eref> has demonstrated that the Matrix chat protocol
can be simplified to the point where it becomes usable transparently with constrained devices.</t>
      </section>
      <section anchor="web-browsing">
        <name>Web browsing</name>
        <dl>
          <dt>Competing with</dt>
          <dd>
            <t>HTTP <xref target="RFC9110"/> over its various transports; Gemini (<xref target="gemini"/>).</t>
          </dd>
        </dl>
        <t>By virtue of cross proxying to HTTP,
CoAP is generally capable of transporting web pages the same way as HTTP,
albeit at a reduced feature set (in particular, most HTTP headers can not be expressed in CoAP).</t>
        <t>CoAP offers only niche benefits over HTTP when combined with HTML,
the predominant markup language on the web:
Any benefits of a more compact transport or implementation are dwarved by the typical size of pages and the complexity of the HTML ecosystem.</t>
        <t>CoAP might be a suitable transport for Small Web environments such as Gemini <xref target="gemini"/>,
which can be rendered even by constrained devices.</t>
      </section>
      <section anchor="e-mail">
        <name>E-Mail</name>
        <t>While E-Mail was part of the considerations that led to the definition of the Proxy-Uri option
(which would technically allow a cross-proxy to accept POST requests to, say, <tt>mailto:office@example.com?subject=Sensor%20failure</tt>),
no attempts are known to send or receive E-Mail over CoAP.</t>
      </section>
      <section anchor="video-streaming">
        <name>Video streaming</name>
        <t>The use of CoAP for real time video streaming and telemetry from Unmanned Aerial Vehicles (UAVs)
has been explored in <xref target="I-D.bhattacharyya-core-a-realist"/>.</t>
        <t>It is unclear whether CoAP could actually outperform unconstrained streaming protocols such as WebRTC,
or whether devices that produce and consume video benefit from the constraints of CoAP.</t>
      </section>
      <section anchor="tunneling">
        <name>Tunneling</name>
        <t>Unlike HTTP,
CoAP does neither provide a dedicated method for encapsulating streaming or packet based network connections
(HTTP has a CONNECT method for streaming, <xref section="9.3.6" sectionFormat="of" target="RFC9110"/>)
nor has a means of encapsulating network traffic been specified
(HTTP has BOSH <xref target="XEP-0124"/> for streaming connections; VPNs such as OpenVPN can be operated over HTTP proxies <xref target="OpenVPNproxy"/>).
Early versions (up to -10) of <xref target="I-D.ietf-anima-constrained-join-proxy-10"/> sketched a means of transporting UDP in a CoAP-like way.</t>
        <t>However,
CoAP can aggregate exchanges with multiple peers
inside a single CoAP hop.
This can serve to protect the user's privacy
(by using (D)TLS or <xref target="I-D.tiloca-core-oscore-capable-proxies"/> on the hop to the proxy, hiding which servers a client is communicating with from its local network)
and for efficiency reasons
(by using a single outgoing TCP connection from a device in a cellular network,
or even a more power optimized hop such as <xref target="CoAP-over-NB-IoT"/>
to keep observations active on multiple unrelated services).
This bears similarity with the approach of <xref target="OHAI"/>,
but leverages CoAP's proxying mechanisms instead of using a gateway or relay resource.</t>
      </section>
      <section anchor="one-off-experiments">
        <name>One-off experiments</name>
        <t>CoAP has been used to provide location services (directions from a given point)
and calendar information (meeting agenda)
for events <xref target="summit2023"/>.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="gemini" target="https://gemini.circumlunar.space/docs/specification.html">
          <front>
            <title>Project Gemini, speculative specification, v0.16.1</title>
            <author initials="" surname="solderpunk">
              <organization/>
            </author>
            <date year="2022" month="January" day="30"/>
          </front>
        </reference>
        <reference anchor="CoJP">
          <front>
            <title>Constrained Join Protocol (CoJP) for 6TiSCH</title>
            <author fullname="M. Vučinić" initials="M." role="editor" surname="Vučinić"/>
            <author fullname="J. Simon" initials="J." surname="Simon"/>
            <author fullname="K. Pister" initials="K." surname="Pister"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes the minimal framework required for a new device, called a "pledge", to securely join a 6TiSCH (IPv6 over the Time-Slotted Channel Hopping mode of IEEE 802.15.4) network. The framework requires that the pledge and the JRC (Join Registrar/Coordinator, a central entity), share a symmetric key. How this key is provisioned is out of scope of this document. Through a single CoAP (Constrained Application Protocol) request-response exchange secured by OSCORE (Object Security for Constrained RESTful Environments), the pledge requests admission into the network, and the JRC configures it with link-layer keying material and other parameters. The JRC may at any time update the parameters through another request-response exchange secured by OSCORE. This specification defines the Constrained Join Protocol and its CBOR (Concise Binary Object Representation) data structures, and it describes how to configure the rest of the 6TiSCH communication stack for this join process to occur in a secure manner. Additional security mechanisms may be added on top of this minimal framework.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9031"/>
          <seriesInfo name="DOI" value="10.17487/RFC9031"/>
        </reference>
        <reference anchor="ace-key-groupcomm-oscore">
          <front>
            <title>Key Management for OSCORE Groups in ACE</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Jiye Park" initials="J." surname="Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="6" month="March" year="2023"/>
            <abstract>
              <t>   This document defines an application profile of the ACE framework for
   Authentication and Authorization, to request and provision keying
   material in group communication scenarios that are based on CoAP and
   are secured with Group Object Security for Constrained RESTful
   Environments (Group OSCORE).  This application profile delegates the
   authentication and authorization of Clients, that join an OSCORE
   group through a Resource Server acting as Group Manager for that
   group.  This application profile leverages protocol-specific
   transport profiles of ACE to achieve communication security, server
   authentication and proof-of-possession for a key owned by the Client
   and bound to an OAuth 2.0 Access Token.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-oscore-16"/>
        </reference>
        <reference anchor="OpenThread_Multicast" target="https://openthread.io/codelabs/openthread-border-router-ipv6-multicast#0">
          <front>
            <title>Thread Border Router – Thread 1.2 Multicast</title>
            <author initials="" surname="Simon Lin">
              <organization/>
            </author>
            <date year="2022" month="March" day="15"/>
          </front>
        </reference>
        <reference anchor="DHCP">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="November" year="2018"/>
            <abstract>
              <t>This document describes the Dynamic Host Configuration Protocol for IPv6 (DHCPv6): an extensible mechanism for configuring nodes with network configuration parameters, IP addresses, and prefixes. Parameters can be provided statelessly, or in combination with stateful assignment of one or more IPv6 addresses and/or IPv6 prefixes. DHCPv6 can operate either in place of or in addition to stateless address autoconfiguration (SLAAC).</t>
              <t>This document updates the text from RFC 3315 (the original DHCPv6 specification) and incorporates prefix delegation (RFC 3633), stateless DHCPv6 (RFC 3736), an option to specify an upper bound for how long a client should wait before refreshing information (RFC 4242), a mechanism for throttling DHCPv6 clients when DHCPv6 service is not available (RFC 7083), and relay agent handling of unknown messages (RFC 7283). In addition, this document clarifies the interactions between models of operation (RFC 7550). As such, this document obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083, RFC 7283, and RFC 7550.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8415"/>
          <seriesInfo name="DOI" value="10.17487/RFC8415"/>
        </reference>
        <reference anchor="IGMP">
          <front>
            <title>Internet Group Management Protocol, Version 3</title>
            <author fullname="B. Cain" initials="B." surname="Cain"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="I. Kouvelas" initials="I." surname="Kouvelas"/>
            <author fullname="B. Fenner" initials="B." surname="Fenner"/>
            <author fullname="A. Thyagarajan" initials="A." surname="Thyagarajan"/>
            <date month="October" year="2002"/>
          </front>
          <seriesInfo name="RFC" value="3376"/>
          <seriesInfo name="DOI" value="10.17487/RFC3376"/>
        </reference>
        <reference anchor="OpenVPNproxy" target="https://openvpn.net/community-resources/connecting-to-an-openvpn-server-via-an-http-proxy/">
          <front>
            <title>Connecting to an OpenVPN server via an HTTP proxy</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="XEP-0124" target="https://xmpp.org/extensions/xep-0124.html">
          <front>
            <title>Bidirectional-streams Over Synchronous HTTP (BOSH)</title>
            <author initials="" surname="Ian Paterson">
              <organization/>
            </author>
            <author initials="" surname="Dave Smith">
              <organization/>
            </author>
            <author initials="" surname="Peter Saint-Andre">
              <organization/>
            </author>
            <author initials="" surname="Jack Moffitt">
              <organization/>
            </author>
            <author initials="" surname="Lance Stout">
              <organization/>
            </author>
            <author initials="" surname="Winfried Tilanus">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CoAP-over-NB-IoT" target="http://openmobilealliance.org/RELEASE/LightweightM2M/V1_1-20180612-C/OMA-TS-LightweightM2M_Transport-V1_1-20180612-C.pdf">
          <front>
            <title>Lightweight Machine to Machine Technical Specification: Transport Layer</title>
            <author initials="" surname="Open Mobile Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OHAI">
          <front>
            <title>Oblivious HTTP</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="January" year="2024"/>
            <abstract>
              <t>This document describes Oblivious HTTP, a protocol for forwarding encrypted HTTP messages. Oblivious HTTP allows a client to make multiple requests to an origin server without that server being able to link those requests to the client or to identify the requests as having come from the same client, while placing only limited trust in the nodes used to forward the messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9458"/>
          <seriesInfo name="DOI" value="10.17487/RFC9458"/>
        </reference>
        <reference anchor="summit2023" target="http://summit.riot-os.org/2023/wp-content/uploads/sites/18/2023/09/2023-09-Summit-Welcome.pdf#page=7">
          <front>
            <title>Welcome to the RIOT Summit 2023</title>
            <author initials="" surname="Oleg Hahm">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.ietf-core-coap-pubsub">
          <front>
            <title>A publish-subscribe architecture for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Jaime Jimenez" initials="J." surname="Jimenez">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>Dogtiger Labs</organization>
            </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <date day="18" month="April" year="2024"/>
            <abstract>
              <t>   This document describes a publish-subscribe architecture for the
   Constrained Application Protocol (CoAP), extending the capabilities
   of CoAP communications for supporting endpoints with long breaks in
   connectivity and/or up-time.  CoAP clients publish on and subscribe
   to a topic via a corresponding topic resource at a CoAP server acting
   as broker.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-pubsub-14"/>
        </reference>
        <reference anchor="I-D.ietf-core-comi">
          <front>
            <title>CoAP Management Interface (CORECONF)</title>
            <author fullname="Michel Veillette" initials="M." surname="Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>consultant</organization>
            </author>
            <author fullname="Alexander Pelov" initials="A." surname="Pelov">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="23" month="July" year="2024"/>
            <abstract>
              <t>   This document describes a network management interface for
   constrained devices and networks, called CoAP Management Interface
   (CORECONF).  The Constrained Application Protocol (CoAP) is used to
   access datastore and data node resources specified in YANG, or SMIv2
   converted to YANG.  CORECONF uses the YANG to CBOR mapping and
   converts YANG identifier strings to numeric identifiers for payload
   size reduction.  CORECONF extends the set of YANG based protocols,
   NETCONF and RESTCONF, with the capability to manage constrained
   devices and networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-comi-18"/>
        </reference>
        <reference anchor="RFC132">
          <front>
            <title>Typographical Error in RFC 107</title>
            <author fullname="J.E. White" initials="J.E." surname="White"/>
            <date month="April" year="1971"/>
          </front>
          <seriesInfo name="RFC" value="132"/>
          <seriesInfo name="DOI" value="10.17487/RFC0132"/>
        </reference>
        <reference anchor="I-D.ietf-suit-manifest">
          <front>
            <title>A Concise Binary Object Representation (CBOR)-based Serialization Format for the Software Updates for Internet of Things (SUIT) Manifest</title>
            <author fullname="Brendan Moran" initials="B." surname="Moran">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Koen Zandberg" initials="K." surname="Zandberg">
              <organization>Inria</organization>
            </author>
            <author fullname="Øyvind Rønningstad" initials="O." surname="Rønningstad">
              <organization>Nordic Semiconductor</organization>
            </author>
            <date day="25" month="July" year="2024"/>
            <abstract>
              <t>   This specification describes the format of a manifest.  A manifest is
   a bundle of metadata about code/data obtained by a recipient (chiefly
   the firmware for an IoT device), where to find the code/data, the
   devices to which it applies, and cryptographic information protecting
   the manifest.  Software updates and Trusted Invocation both tend to
   use sequences of common operations, so the manifest encodes those
   sequences of operations, rather than declaring the metadata.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-suit-manifest-27"/>
        </reference>
        <reference anchor="I-D.draft-lenders-dns-over-coap">
          <front>
            <title>DNS over CoAP (DoC)</title>
            <author fullname="Martine Sophie Lenders" initials="M. S." surname="Lenders">
              <organization>Freie Universität Berlin</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Cenk Gündoğan" initials="C." surname="Gündoğan">
              <organization>HAW Hamburg</organization>
            </author>
            <author fullname="Thomas C. Schmidt" initials="T. C." surname="Schmidt">
              <organization>HAW Hamburg</organization>
            </author>
            <author fullname="Matthias Wählisch" initials="M." surname="Wählisch">
              <organization>Freie Universität Berlin</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <abstract>
              <t>   This document defines a protocol for sending DNS messages over the
   Constrained Application Protocol (CoAP).  These CoAP messages are
   protected by DTLS-Secured CoAP (CoAPS) or Object Security for
   Constrained RESTful Environments (OSCORE) to provide encrypted DNS
   message exchange for constrained devices in the Internet of Things
   (IoT).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lenders-dns-over-coap-04"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="I-D.navas-ace-secure-time-synchronization">
          <front>
            <title>Lightweight Authenticated Time (LATe) Synchronization Protocol</title>
            <author fullname="Renzo Navas" initials="R." surname="Navas">
              <organization>Telecom Bretagne</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>SICS Swedish ICT</organization>
            </author>
            <date day="31" month="October" year="2016"/>
            <abstract>
              <t>   This documents defines the Lightweight Authenticated Time (LATe)
   Synchronization Protocol, a secure time synchronization protocol for
   constrained environments.  The messages are encoded using Concise
   Binary Object Representation (CBOR) and basic security services are
   provided by CBOR Object Signing and Encryption (COSE).  A secure
   source of time is a base assumption for many other services,
   including security services.  LATe Synchronization protocol enables
   these time-dependent services to run in the context of a constrained
   environment.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-navas-ace-secure-time-synchronization-00"/>
        </reference>
        <reference anchor="I-D.amsuess-core-stateless-oscore">
          <front>
            <title>Stateless OSCORE</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="16" month="October" year="2024"/>
            <abstract>
              <t>   OSCORE (Object Security for Constrained Restful Environemnts,
   [RFC8613]) provides secure communication between peers that share
   symmetric key material.  This document describes how a server can
   operate with an arbitrarily large number of peers, and how key
   material for this kind of operation can be provisioned to the client.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-core-stateless-oscore-01"/>
        </reference>
        <reference anchor="RFC15">
          <front>
            <title>Network subsystem for time sharing hosts</title>
            <author fullname="C.S. Carr" initials="C.S." surname="Carr"/>
            <date month="September" year="1969"/>
          </front>
          <seriesInfo name="RFC" value="15"/>
          <seriesInfo name="DOI" value="10.17487/RFC0015"/>
        </reference>
        <reference anchor="I-D.ietf-core-interfaces">
          <front>
            <title>Reusable Interface Definitions for Constrained RESTful Environments</title>
            <author fullname="Zach Shelby" initials="Z." surname="Shelby">
              <organization>ARM</organization>
            </author>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>SmartThings</organization>
            </author>
            <author fullname="Christian Groves" initials="C." surname="Groves">
         </author>
            <author fullname="Jintao Zhu" initials="J." surname="Zhu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Bill Silverajan" initials="B." surname="Silverajan">
              <organization>Tampere University</organization>
            </author>
            <date day="11" month="March" year="2019"/>
            <abstract>
              <t>   This document defines a set of Constrained RESTful Environments
   (CoRE) Link Format Interface Descriptions [RFC6690] applicable for
   use in constrained environments.  These include the: Actuator,
   Parameter, Read-only parameter, Sensor, Batch, Linked Batch and Link
   List interfaces.

   The Batch, Linked Batch and Link List interfaces make use of resource
   collections.  This document further describes how collections relate
   to interfaces.

   Many applications require a set of interface descriptions in order
   provide the required functionality.  This document defines an
   Interface Description attribute value to describe resources
   conforming to a particular interface.

   Editor's notes:

   o  The git repository for the draft is found at https://github.com/
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-interfaces-14"/>
        </reference>
        <reference anchor="I-D.ietf-core-fasor">
          <front>
            <title>Fast-Slow Retransmission Timeout and Congestion Control Algorithm for CoAP</title>
            <author fullname="Ilpo Järvinen" initials="I." surname="Järvinen">
              <organization>University of Helsinki</organization>
            </author>
            <author fullname="Markku Kojo" initials="M." surname="Kojo">
              <organization>University of Helsinki</organization>
            </author>
            <author fullname="Iivo Raitahila" initials="I." surname="Raitahila">
              <organization>University of Helsinki</organization>
            </author>
            <author fullname="Zhen Cao" initials="Z." surname="Cao">
              <organization>Huawei</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>   This document specifies an alternative retransmission timeout (RTO)
   and congestion control back off algorithm for the CoAP protocol,
   called Fast-Slow RTO (FASOR).

   The algorithm specified in this document employs an appropriate and
   large enough back off of RTO as the major congestion control
   mechanism to allow acquiring unambiguous RTT samples with high
   probability and to prevent building a persistent queue when
   retransmitting.  The algorithm also aims to retransmit quickly using
   an accurately managed RTO when link-errors are occuring, basing RTO
   calculation on unambiguous round-trip time (RTT) samples.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-fasor-02"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="I-D.bhattacharyya-core-a-realist">
          <front>
            <title>Adaptive RESTful Real-time Live Streaming for Things (A-REaLiST)</title>
            <author fullname="Abhijan Bhattacharyya" initials="A." surname="Bhattacharyya">
              <organization>TATA CONSULTANCY SERVICES LTD.</organization>
            </author>
            <author fullname="Suvrat Agrawal" initials="S." surname="Agrawal">
              <organization>TATA CONSULTANCY SERVICES LTD.</organization>
            </author>
            <author fullname="Hemant Kumar Rath" initials="H. K." surname="Rath">
              <organization>TATA CONSULTANCY SERVICES LTD.</organization>
            </author>
            <author fullname="Arpan Pal" initials="A." surname="Pal">
              <organization>TATA CONSULTANCY SERVICES LTD.</organization>
            </author>
            <author fullname="Balamurali Purushothaman" initials="B." surname="Purushothaman">
              <organization>TATA CONSULTANCY SERVICES LTD.</organization>
            </author>
            <date day="5" month="February" year="2019"/>
            <abstract>
              <t>   This draft presents extensions to Constrained Application Protocol
   (CoAP) to enable RESTful Real-time Live Streaming for improving the
   Quality of Experience (QoE) for delay-sensitive Internet of Things
   (IoT) applications. The overall architecture is termed "Adaptive
   RESTful Real-time Live Streaming for Things (A-REaLiST)". It is
   particularly designed for applications which rely on real-time
   augmented vision through live First Person View (FPV) feed from
   constrained remote agents like Unmanned Aerial Vehicle (UAV), etc.
   These extensions provide the necessary hooks to help solution
   designers ensure low-latency transfer of streams and, for contents
   like video, a quick recovery from freeze and corruption without
   incurring undue lag. A-REaLiST is an attempt to provide an
   integrated approach to maintain the balance amongst QoE, resource-
   efficiency and loss resilience. It provides the necessary hooks to
   optimize system performance by leveraging contextual intelligence
   inferred from instantaneous information segments in flight. These
   extensions equip CoAP with a standard for efficient RESTful
   streaming for Internet of Things (IoT) contrary to HTTP-streaming in
   conventional Internet.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bhattacharyya-core-a-realist-02"/>
        </reference>
        <reference anchor="I-D.ietf-anima-constrained-join-proxy-10">
          <front>
            <title>Constrained Join Proxy for Bootstrapping Protocols</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>vanderstok consultancy</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Cisco Systems</organization>
            </author>
            <date day="14" month="April" year="2022"/>
            <abstract>
              <t>   This document extends the work of Bootstrapping Remote Secure Key
   Infrastructures (BRSKI) by replacing the Circuit-proxy between Pledge
   and Registrar by a stateless/stateful constrained Join Proxy.  The
   constrained Join Proxy is a mesh neighbor of the Pledge and can relay
   a DTLS session originating from a Pledge with only link-local
   addresses to a Registrar which is not a mesh neighbor of the Pledge.

   This document defines a protocol to securely assign a Pledge to a
   domain, represented by a Registrar, using an intermediary node
   between Pledge and Registrar.  This intermediary node is known as a
   "constrained Join Proxy".  An enrolled Pledge can act as a
   constrained Join Proxy.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-join-proxy-10"/>
        </reference>
        <reference anchor="I-D.tiloca-core-oscore-capable-proxies">
          <front>
            <title>OSCORE-capable Proxies</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   Object Security for Constrained RESTful Environments (OSCORE) can be
   used to protect CoAP messages end-to-end between two endpoints at the
   application layer, also in the presence of intermediaries such as
   proxies.  This document defines how to use OSCORE for protecting CoAP
   messages also between an origin application endpoint and an
   intermediary, or between two intermediaries.  Also, it defines how to
   secure a CoAP message by applying multiple, nested OSCORE
   protections, e.g., both end-to-end between origin application
   endpoints, as well as between an application endpoint and an
   intermediary or between two intermediaries.  Thus, this document
   updates RFC 8613.  The same approach can be seamlessly used with
   Group OSCORE, for protecting CoAP messages when group communication
   with intermediaries is used.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-capable-proxies-07"/>
        </reference>
      </references>
    </references>
    <?line 353?>

<section anchor="coap-filesystem">
      <name>CoAP File Service</name>
      <t>This sketches [ TBD: describes ] a file transfer protocol / remote file system built on top of CoAP.</t>
      <t>A file server works similar to a WebDAV server, and follows these rules
(which are sometimes expressed from the point of view of the server,
but apply when a client maps them back into a file system in such a way that operations can round-trip):</t>
      <ul spacing="normal">
        <li>
          <t>Directories are unconditionally represented by URIs with a trailing slash; files by those without one.  </t>
          <t>
The GET operation is used to list them (for there is no PROPFIND operation in CoAP).
Different media types migth be used depending on the capabilities of the parties,
with application/link-format as a base line.  </t>
          <t>
(Note that application/link-format is not particularly efficient for this purpose,
as the directory listing needs to repeat the requested resource's full path for each entry).  </t>
          <t>
Clients need to be prepared for links that do not follow the regular pattern of a directory advertising its children,
but (as with all unknown links) may ignore them.</t>
        </li>
        <li>
          <t>Paths are constructed by placing directory names and either an empty string (for the trailing slash) or the unescaped file name in Uri-Path options.</t>
        </li>
        <li>
          <t>Clients may attempt to treat any URI composed of the file server entry URI and additional path segments as files on the file server.
Consequently, any additional services the file server may provide
(e.g., as resources specified in extensions)
are necessarily assigned URIs with a query,
for these can not be inadvertedly constructed in an attempt to access a file.</t>
        </li>
        <li>
          <t>For lack of a HEAD option,
file metadata can only be obtained by performing a GET on the directory containing the file,
or a FETCH for efficiency if suitable media types are defined.  </t>
          <t>
All metadata is provided on a best-effort basis,
and the supported directory formats limit what can be expressed.
Typical supported metadata are the media type (expressed as <tt>ct</tt> in link format)
and the size (<tt>sz</tt>).</t>
        </li>
        <li>
          <t>If write support is available and permissions allow,
a client can create files by performing a PUT operation on a previously nonexistent resource.  </t>
          <t>
Files can be overwritten by PUTting a new representation.
Files sent with block-wise transfer should be processed atomically by the server
unless explicitly negotiated otherwise.
(On POSIX file systems,
this can be implemented without additional state by storing the blocks in a temporary file
whose name contains the original file name and the block key of the request,
and renaming it to the target name when receiving the last block).  </t>
          <t>
Directories can be created with PUT as well
(it is clear from their path that they are directories);
these would typically be empty and not have a content format,
but may use a content format that already describes directory metadata.
(It is up to the client to fall back to plain directory creation,
if that is a viable option for it -- it would be if it's just about unimportant metadata, but might not if the initial metadata indicates an ACL).</t>
        </li>
        <li>
          <t>Files and directories can be removed using the DELETE operation,
subject ot the same conditions as writing to resources.  </t>
          <t>
Deleting directories is recursive;
client that desire POSIX semantics need to check whether the directory is empty
and use the If-Match option with the empty directory's ETag to avoid race conditions.</t>
        </li>
        <li>
          <t>Regular CoAP extensions apply if the parties support them, for example:  </t>
          <ul spacing="normal">
            <li>
              <t>Observation can be used to watch files or directories for changes.</t>
            </li>
            <li>
              <t>ETags (e.g. derived from the file's stats) can be used to ensure that large files are assembled correctly by the client,
and to perform file updates with optimistic locking by using the If-Match option.      </t>
              <t>
Note that ETags are always "strong" in CoAP:
They indicate that a precise representation of a resource has not changed.
If a resource has different representations (eg. a directory listing may be available in different media types),
they may have different ETags.
They may also have identical ETags,
but that means that if one format carries less information,
its ETag needs to change when any representation changes,
not just the selected one.      </t>
              <t>
Consequently,
if a client learns of a resource's ETag
and revalidates that that ETag is still valid,
it can not know which properties of the resource have stayed constant.
(In the extreme case, the representation might merely express that the resource exists).
Only when knowing the representation,
or at least relevant metadata of the tagged representation,
can the client be sure that an ETag's validity has any meaning
beyond that the resource still exists.      </t>
              <t>
For file services backed by content based naming systems (such as git),
it is tempting to use content identifiers for ETags --
consequently, a directory will be flagged as changed when any file below it changes.
To allow monitoring directories for additions and removal of files,
it is RECOMMENDED that a representation is provided that does not contain the contained files' and directories' ETags,
and has a stable ETag that is distinct from any representation that does include them.
There is no recommendation as to whether the default representation
should contain ETags or not.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Additional features can be specified and advertised separately,
either per resoource or by a named specification that provides templates for further operations.  </t>
          <t>
For example,
a specification might say that when a file system is advertised with a given interface (<tt>if</tt> parameter of link format),
for each file and directory there is an associated resource at <tt>?acl</tt> that describes access control applicable to that file,
and can be used with GET and PUT as per the ACL's policies.  </t>
          <t>
Additional operations can use their custom media types and methods,
and possibly create more resources.
For example,
a server-to-server copy (again, advertised by a suitable interface parameter)
could provide a <tt>?copy</tt> resource under any directory,
to which a CBOR list containing two CRIs (source and destination) would be posted.
That specification might describe that if copies are not completed instantly,
the response might indicate a new location using Uri-Path and Uri-Query options
(the latter might be necessary to not conflict with existing files)
which tracks the status of the operation.</t>
        </li>
        <li>
          <t>File service is compatible with "index.html" style directory indices provided statically in the file system.
It is recommended to not serve index files of typical directory listing formats (such as application/link-format)
as these might mislead the client about the file system's content,
and prevent clients that access the server as a file server from even seeing the providing file's name.  </t>
          <t>
These files still need to be written to or deleted in their file version (e.g. as "index.html");
the file server may use yet to be specified link relations to point out which files are being served as the index files.</t>
        </li>
      </ul>
      <t>Some implementation guidance should be provided around the interaction between idempotent requests that have no actual effect and preconditions:
If a DELETE with If-Match is transmitted again on a new token (by a proxy relying on its idempotence),
should the server respond Deleted rather than Not Found?
If a PUT with If-Match is transmitted again after it has been acted on,
should the server respond Changed rather than Precondition Failed?
(Probably "No" to both, as the former is easily recognizable by the client,
and the latter would delay faulting by long,
but still needs further thought.)</t>
    </section>
    <section anchor="change-log">
      <name>Change log</name>
      <t>From -05 to -06:</t>
      <ul spacing="normal">
        <li>
          <t>Reference use of CoAP for meeting calendars and routing.</t>
        </li>
        <li>
          <t>Details for comparison to NTS.</t>
        </li>
        <li>
          <t>Link to implementation of terminal.</t>
        </li>
      </ul>
      <t>From -04 to -05:</t>
      <ul spacing="normal">
        <li>
          <t>(Properly) reference ace-secure-time-synchronization</t>
        </li>
        <li>
          <t>Update references</t>
        </li>
        <li>
          <t>Minor editorial fixes</t>
        </li>
      </ul>
      <t>From -03 to -04:</t>
      <ul spacing="normal">
        <li>
          <t>Add section about tunneling</t>
        </li>
        <li>
          <t>Extend notes on theuse of ETags on file servers</t>
        </li>
      </ul>
      <t>From -02 to -03:</t>
      <ul spacing="normal">
        <li>
          <t>Added Runtime configuration section</t>
        </li>
        <li>
          <t>Terminal access now has an implementation</t>
        </li>
      </ul>
      <t>From -01 to -02:</t>
      <ul spacing="normal">
        <li>
          <t>Added "Web browsing" section</t>
        </li>
      </ul>
      <t>From -00 to -01:</t>
      <ul spacing="normal">
        <li>
          <t>Added details to file service</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA71c3XLjRna+51OgxpWyuEXob2zvWk7iaCSNR6kZSStx7E0l
W54m0SSxAgEEDUjDnZqqvENeJ3d5kzxJvu+c7gZIaeK9ii88Egl0nz6/3/lp
pWk6avO2sCfJi4sH22zaVV4ukwo/JmfV6c2LUVbNS7PG91ljFm1q1q6zzqXz
qrH4n6nT+7ydr2zp8vI+PfxulNfNSdI2nWuPDw+/PzweudaU2a+mqEorX9jR
3LQnSV4uqtHj8gTb3F6M7h9PZL9JcjW9GZmuXVXNySjFUw5f7Cena/ff/+Xc
KEmUmLNVk7s2N+Xgm3nVlW2zOUlOsXmTG3xk1yYvTpJ5ePqfPPn782o9Kqtm
bdr8wZ7gydvXZ78//vb4ZES6Bp8v7Tovc/6UJJ5RN031Fztvk5/kq0niajvv
CnlDfs4XOU6YV+UkeTjcP/pu/0jeDodK5L/U/5voEV1VZLapu/JePs9Mi42O
D4+P08Oj9OWhfKh0hQXeTN+9PUlWbVu7k4MDJXN/njfzbl10pWn2XW3m9gDi
cwdbVO2v2nWBRc6qf7454bm/P3xJCvF0em836bKpuhr8WaeVo5RPksv0fD+3
7SL90iN4+7q25XTVWJMl77qixV6u3eKa//JV1eCgyW3Vtfjnf/7jP8MXR/vH
/Zu/zbC7fF2Vydu8fMKvl+nRt7/JrwrktrLxfl4dzKvMFmbmBh+nMyE0bYTQ
NK8fvkvXgbyvKJDzN2fKvz98Ixte/vROf3/58vffeY78fHNVN9XHzRYnzqqy
hP7QztoqgQr7JxNnG9rdQ2746Zvp9CaRt/+m0zzU5X5p2wOKpSvzdpM21lVd
M7cOn4Ud07ZKTZn6F1LdMcWO/JTLpbLjAbb508UNlO/4my3aX+VZ3nCpqjRF
CjOzsKjkmmTfbUrYWVVWnVPa915d370Z/7YoL3HYGwiwcVX5/BPnBqZ1t87b
1fPf31gq053JyzY9LTNRyGce+2czv0/eVYtF3rbPP/HWlHPs1ELozz/wC9xD
k9ssmeaFKTv3m6L5uK7r/apZHtiPLZ1kVbqDj7YWzvaWeHqT0uWmV6/Sy2q6
xfEXb/Plqn20/H/yzszhny31Jvw4tfNVCa0skruhlcPgGlO6umpanGpjmxey
KDZx8u2Lo/2jF89Qf3P+Won3arWuZnlhTVHkZI2c5Pbi7cXp3cXBgLB3x+8O
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
Nw71jaPBG5mXJ6ugw5vS/wtuyvuQKFIAAA==

-->

</rfc>
