<?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.18 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-core-corr-clar-04" category="std" consensus="true" submissionType="IETF" updates="6690, 7252, 7641, 7959, 8132, 8323" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="Corrections and Clarifications to CoAP">Constrained Application Protocol (CoAP): Corrections and Clarifications</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-core-corr-clar-04"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2024" month="July" day="02"/>
    <abstract>
      <?line 52?>

<t>RFC 7252 defines the Constrained Application Protocol (CoAP), along
with a number of additional specifications, including RFC 7641, RFC
7959, RFC 8132, and RFC 8323.
RFC 6690 defines the link format that is used in CoAP self-description
documents.</t>
      <t>Some parts of the specification may be unclear or even contain errors
that may lead to misinterpretations that may impair interoperability
between different implementations.
The present document provides corrections, additions, and
clarifications to the RFCs cited; this document thus updates these
RFCs.
In addition, other clarifications related to the use of CoAP in other
specifications, including RFC 7390 and RFC 8075, are also provided.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bormann-core-corr-clar/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        core Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/corrclar"/>.</t>
    </note>
  </front>
  <middle>
    <?line 70?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC7252"/> defines the Constrained Application Protocol (CoAP), along
with a number of additional specifications, including <xref target="RFC7641"/>,
<xref target="RFC7959"/>, <xref target="RFC8132"/>, and <xref target="RFC8323"/>.
<xref target="RFC6690"/> defines the link format that is used in CoAP
self-description documents.</t>
      <t>During implementation and interoperability testing of these RFCs, and
in their practical use, some ambiguities and common misinterpretations
have been identified, as well as a few errors.</t>
      <t>The present document summarizes identified issues and provides
corrections needed for implementations of CoAP to interoperate, i.e.,
it constitutes an update to the RFCs referenced.  This document also
provides other clarifications related to common misinterpretations of
the specification.  References to CoAP should, therefore, also include
this document.</t>
      <t>In addition, some clarifications and corrections are also provided for
documents that are related to CoAP, including RFC 7390 and RFC 8075.</t>
      <section anchor="process">
        <name>Process</name>
        <section anchor="original-text">
          <name>Original text</name>
          <t>The present document is an Internet-Draft, which is not intended to be
published as an RFC quickly.  Instead, it will be maintained as a
running document of the CoRE WG, probably for a number of years, until
the need for new entries tails off and the document can finally be
published as an RFC.  (This paragraph to be rephrased when that
happens.)</t>
          <t>The status of this document as a running document of the WG implies a
consensus process that is applied in making updates to it.  The rest
of this subsection provides more details about this consensus process.
(This is the intended status; currently, the document is an individual submission only.)</t>
          <t>(Consensus process TBD, but it will likely be based on an editor's
version in a publicly accessible git repository, as well as periodic
calls for consensus that lead to a new published Internet-Draft.)</t>
        </section>
        <section anchor="proposed-text-based-on-ietf-117-and-2023-08-30-core-wg-interim-discussion">
          <name>Proposed text based on IETF 117 and 2023-08-30 CoRE WG interim discussion</name>
          <t>This section describes the process that will be used for developing
the present document (called "-corr-clar" colloquially).</t>
          <t>This process might be revised as its execution progresses.</t>
          <ol spacing="normal" type="1" start="0"><li>
              <t>(Done as of this a draft): include the present process proposal.<br/>
The document can then already be considered for WG adoption.</t>
            </li>
            <li>
              <t>Go through the following available material and revise/create
Github issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref> as needed:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Existing issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>More to be opened by Jon Shallow regarding Block-wise, see <eref target="https://datatracker.ietf.org/doc/minutes-interim-2023-core-11-202307051400/#attacks-on-the-constrained-application-protocol-coap-christian-amsuss-jon-shallow">JON-ISSUES</eref></t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>CoAP FAQ at the CoRE WIKI <eref target="https://github.com/core-wg/wiki/wiki/CoAP-FAQ">WIKI-FAQ</eref>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>Each point likely to become a new, short issue</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>Categorize the Github issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref> as to the topics they relate to, by tagging them.<br/>
Completing a first round of this will be a task for a dedicated team.</t>
            </li>
            <li>
              <t>For each issue or set of issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref>, confirm with the CoRE
WG and gather feedback from affected protocol
designers/implementors if the issue is best to be:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Included and covered in -corr-clar, as is or revised</t>
                </li>
                <li>
                  <t>Simply omitted in -corr-clar</t>
                </li>
                <li>
                  <t>Omitted in -corr-clar and left for a possible -bis document.<br/>
(For example, this might be the case for some specific points related to RFC 7959.)</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Reshape the -corr-clar document in order to reflect a sequence of
 pairs (Diagnosis, Therapy), where:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Diagnosis is the gist of a set of Github issues to cover, and</t>
                </li>
                <li>
                  <t>Therapy is the correction or clarification to address those.</t>
                </li>
              </ul>
              <t>
Even though at a high-level, the scope should be already clear by
looking at the table of contents.
That is, at this stage, there is no need to necessarily elaborate
the Therapy in detail, but it is necessary to make a reader
understand "what we are dealing with and taking which direction".</t>
            </li>
            <li>
              <t>WG document work can then focus on improving the therapy parts,
until all points are satisfactorily addressed and documented.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>When a section of this document makes formal corrections, additions
or invalidations to text in a referenced RFC, this is clearly summarized.
The text from the RFC that is being addressed is given and labeled
"INCOMPLETE", "INCORRECT", or "INCORRECT AND INVALIDATED", followed
by the correct text labeled "CORRECTED", where applicable.  When text
is added that does not simply correct text in previous
specifications, it is given with the label "FORMAL ADDITION".</t>
        <t>Where a resolution has not yet been agreed, the resolution is marked PENDING.</t>
        <t>In this document, a reference to a section in RFC nnnn is written
as RFC nnnn-&lt;number&gt;, where &lt;number&gt; is the section number.</t>
      </section>
    </section>
    <section anchor="rfc-7252">
      <name>RFC 7252</name>
      <section anchor="rfc7252-12-terminology-request-uri">
        <name>RFC7252-1.2: Terminology (Request-URI)</name>
        <t><xref target="RFC7252"/> uses the term "request URI" repeatedly, but only provides a
vague definition in <xref section="5.7.2" sectionFormat="of" target="RFC7252"/>.
Text should be added to the definitions in Section <xref target="RFC7252" section="1.2" sectionFormat="bare">Terminology</xref> of <xref target="RFC7252"/>.</t>
        <dl newline="true">
          <dt>INCOMPLETE; FORMAL ADDITION (Section 1.2):</dt>
          <dd>
            <dl>
              <dt>Request URI:</dt>
              <dd>
                <t>The URI that identifies a resource on a server intended to be
addressed by a request; constructed from the context of the
request combined with Options present in the request using the
process defined in Section <xref target="RFC7252" section="6.5" sectionFormat="bare">Composing URIs from Options</xref> of <xref target="RFC7252"/>, see Section <xref target="RFC7252" section="5.7.2" sectionFormat="bare">Forward-Proxies</xref> of <xref target="RFC7252"/> for further details.
Related to the HTTP concept of "target URI"; see Section <xref target="RFC9110" section="7.1" sectionFormat="bare">Determining the Target Resource</xref> of <xref target="RFC9110"/>; previously called
"effective request URI" in Section <xref target="RFC7230" section="5.5" sectionFormat="bare">Effective Request URI</xref> of <xref target="RFC7230"/>.</t>
              </dd>
            </dl>
          </dd>
        </dl>
        <t>PENDING.</t>
        <t>Note that a similar, but distinct concept is the "base URI", relative
to which relative URIs are resolved.
This is more complex in CoAP than in HTTP because CoAP can multicast
requests <xref section="8" sectionFormat="of" target="RFC7252"/>, expecting unicast responses; these need
to be interpreted relative to the unicast source address from which
the responses come.</t>
        <t><xref section="8.2" sectionFormat="of" target="RFC7252"/> has:</t>
        <blockquote>
          <t>For the purposes of interpreting the Location-* options and any links
   embedded in the representation, the request URI (i.e., the base URI
   relative to which the response is interpreted) is formed by replacing
   the multicast address in the Host component of the original request
   URI by the literal IP address of the endpoint actually responding.</t>
        </blockquote>
        <t>Similarly, <xref section="8.2.1" sectionFormat="of" target="RFC7252"/> (Caching) says:</t>
        <blockquote>
          <t>A response received in reply to a GET request to a multicast group
   <bcp14>MAY</bcp14> be used to satisfy a subsequent request on the related unicast
   request URI.  The unicast request URI is obtained by replacing the
   authority part of the request URI with the transport-layer source
   address of the response message.</t>
        </blockquote>
        <t>Further discussion of a more generalized response concept can be found in
<xref target="I-D.bormann-core-responses"/>.</t>
      </section>
      <section anchor="rfc7252-5105-max-age">
        <name>RFC7252-5.10.5: Max-Age</name>
        <t>In the discussion of <xref target="RFC8516"/>, a comment was
made that it would be needed to define the point in time relative to
which Max-Age is defined.  A sender might reference it to the time it
actually sends the message containing the option (and paragraph 3 of
RFC7252-5.10.5 indeed requests that Max-Age be updated each time a
message is retransmitted).  The receiver of the message does not have
reliable information about the time of sending, though.  It may
instead reference the Max-Age to the time of reception.  This in
effect extends the time of Max-Age by the latency of the packet.
This extension was deemed acceptable for the purposes of <xref target="RFC8516"/>,
but may be suboptimal when Max-Age is about the lifetime of a response
object.</t>
        <dl newline="true">
          <dt>INCOMPLETE:</dt>
          <dd>
            <t>The value is intended to be current at the time of transmission.</t>
          </dd>
        </dl>
        <t>PENDING.</t>
      </section>
      <section anchor="rfc7252-64-decomposing-uris-into-options">
        <name>RFC7252-6.4: Decomposing URIs into Options</name>
        <t><xref target="Err4895"/> notes (text updated with newer link):</t>
        <blockquote>
          <t>The current specification for decomposing a URI into CoAP Options
(Section 6.4) is correct; however the text may still be unclear to
implementers who may think that the phrase "not including the
delimiting slash characters" means simply omitting a trailing slash
character in the URI path. This is incorrect. See the discussion
outcome in email thread
<eref target="https://mailarchive.ietf.org/arch/msg/core/vqOiUreodGXqWZGeGOTREChCsKY/">https://mailarchive.ietf.org/arch/msg/core/vqOiUreodGXqWZGeGOTREChCsKY/</eref>.</t>
        </blockquote>
        <t><xref target="Err4895"/> proceeds to propose adding another note at the end of
<xref section="6.4" sectionFormat="of" target="RFC7252"/>.
A slightly updated version of the proposed note might be:</t>
        <dl newline="true">
          <dt>INCOMPLETE; FORMAL ADDITION at the end of <xref section="6.4" sectionFormat="of" target="RFC7252"/>:</dt>
          <dd>
            <t>Also note that a trailing slash character in the &lt;path&gt; component
represents a separate, zero-character path segment (see the ABNF in
<xref section="3.3" sectionFormat="of" target="RFC3986"/>).
This is encoded using a Uri-Path Option of zero length.
The exception at the start of step 8 means that no such
zero-character path segment is added for a trailing slash that
immediately follows the authority (host and port).
</t>
            <aside>
              <t>This means that for a CoAP server, no difference is visible
between a request that was generated from the URI
<tt>coap://authority/</tt> and one that was generated from the URI
<tt>coap://authority</tt> -- in both cases, there is no Uri-Path Option in
the request.</t>
              <t>Note that this does not mean that a client cannot create a request
with a single empty Uri-Path Option (which cannot be generated from
a URI according to the algorithm given here), or that a server is
compelled to treat a request with such a single empty Uri-Path
Option the same way as one without any Uri-Path Option — the
exception at the start of step 8 is only about generating CoAP
Options from a URI.</t>
              <t>Note also that there is a difference between requests generated
from <tt>coap://authority/</tt>, <tt>coap://authority//</tt>, and
<tt>coap://authority///</tt>, respectively:
The first has no Uri-Path Options (due to the special exception),
the second, two (empty ones), the third, three (empty ones).</t>
              <t>Similarly, for <tt>coap://authority/foo</tt> a single Uri-Path Option
with the value <tt>foo</tt> is generated, while for <tt>coap://authority/foo/</tt>
that Uri-Path Option is followed by an empty one.</t>
            </aside>
          </dd>
        </dl>
        <t>PENDING: Enough examples now?</t>
      </section>
      <section anchor="rfc7252-721-ct-attribute-content-format-code">
        <name>RFC7252-7.2.1: "ct" Attribute (content-format code)</name>
        <t>As has been noted in <xref target="Err5078"/>, there is no information in <xref target="RFC7252"/>
about whether the "ct" target attribute can be present multiply or
not.</t>
        <t>The text does indicate that the value of the attribute <bcp14>MAY</bcp14> be "a
space-separated sequence of Content-Format codes, indicating that
multiple content-formats are available", but it does not repeat the
prohibition of multiple instances that the analogously structured "rt"
and "if" attributes in Sections <xref target="RFC6690" section="3.1" sectionFormat="bare"/> and <xref target="RFC6690" section="3.2" sectionFormat="bare"/> of <xref target="RFC6690"/> have.</t>
        <t>This appears to be an oversight.
Published examples in <xref section="4.1" sectionFormat="of" target="RFC9148"/> and <xref section="4.3" sectionFormat="of" target="RFC9176"/> further illustrate that the space-separated approach is
generally accepted to be the one to be used.
There is no gain to be had from allowing both variants, and it would
be likely to cause interoperability problems.</t>
        <t>At the 2022-11-23 CoRE WG interim meeting, there was agreement that
<xref target="Err5078"/> should be marked "VERIFIED", which was done on 2023-01-18.</t>
        <dl newline="true">
          <dt>INCOMPLETE; FORMAL ADDITION:</dt>
          <dd>
            <t>The Content-Format code attribute <bcp14>MUST NOT</bcp14> appear more than once in a
link.</t>
          </dd>
        </dl>
      </section>
      <section anchor="rfc7252-911912-match-boxing">
        <name>RFC7252-9.1.1/9.1.2: (match boxing)</name>
        <t>Sections <xref target="RFC7252" section="9.1.1" sectionFormat="bare"/> and <xref target="RFC7252" section="9.1.2" sectionFormat="bare"/> of <xref target="RFC7252"/> provide details about using CoAP
over DTLS connections; in particular they restrict both message-id
matching and request/response matching to within a single combination
of DTLS session/DTLS epoch.</t>
        <t>At the time, this was a decision to be very conservative based on the
wide variety of security implications a new DTLS epoch might have
(which also were not widely understood, e.g., for a re-authentication).
The normally short time between a request and a response made this
rather strict boxing appear acceptable.</t>
        <t>However, with the Observe functionality <xref target="RFC7641"/>, it is quite likely
that significant time elapses between a request and the arrival of a
notification that is sent back as a response, causing a need for the
latter to use a different box from the original request.</t>
        <t>Also, additions to CoAP such as CoAP over connection-oriented
transports <xref target="RFC8323"/> and OSCORE <xref target="RFC8613"/> create similar matching
boxes that also do not fit certain likely use cases of these additions
(e.g., with short-lived TCP connections as discussed in <xref section="4.3" sectionFormat="of" target="RFC9006"/>).</t>
        <t>The match boxing semantics of the current protocol are clearly
defined, but can be unsatisfactory given the current requirements.
Therefore, enhancements may be called for:</t>
        <ol spacing="normal" type="1"><li>
            <t>Protocols such as OSCORE <xref target="RFC8613"/>, as enhanced by the proposed
KUDOS mechanism <xref target="I-D.ietf-core-oscore-key-update"/>, need to define how the matching functions
are impacted by state transitions of the underlying transport and
security sessions.
Where extensions are already actively being developed, this work
should be done in the context of the extension effort.  </t>
            <ol spacing="normal" type="a"><li>
                <t>Protocol mechanisms that have been defined for stitching
together connections or phases of an underlying connection, such
as Connection Identifiers for DTLS 1.2 <xref target="RFC9146"/>, may enable
keeping the session/epoch unchanged and even to change the
transport address (ip-address/port), once appropriately modified
match boxing rules are specified for the stitching mechanism.
(These rules either need to be defined to be implicitly active
for any use of the mechanism or they may require negotiation,
see below.)</t>
              </li>
            </ol>
          </li>
          <li>
            <t>Optimizations such as Eclipse/Californium EndpointContextMatcher
<xref target="CF-MATCHER"/> might not work properly unless both sides of the
communication agree on the extent of the matching boxes.
Mechanisms to indicate capabilities and choices selected may need
to be defined; also, a way to define the progression of matching
boxes needs to be defined that is compatible with the security
properties of the underlying protocols.
This may require new efforts, to be initiated based on some
formative contributions.</t>
          </li>
        </ol>
        <t>PENDING.</t>
        <t>Relevant starting points for retrieving existing discussion of this
issue include:</t>
        <ul spacing="normal">
          <li>
            <t><eref target="https://mailarchive.ietf.org/arch/msg/core/biDJ8n4w0kBQATzyh9xHlKnGy1o/">https://mailarchive.ietf.org/arch/msg/core/biDJ8n4w0kBQATzyh9xHlKnGy1o/</eref><br/>
("DTLS and Epochs")</t>
          </li>
          <li>
            <t><eref target="https://mailarchive.ietf.org/arch/msg/core/TsyyKIHQ1FJtAvAo0ODNEt2Ileo/">https://mailarchive.ietf.org/arch/msg/core/TsyyKIHQ1FJtAvAo0ODNEt2Ileo/</eref><br/>
("Connection ID")</t>
          </li>
          <li>
            <t><eref target="https://github.com/core-wg/corrclar/issues/9">https://github.com/core-wg/corrclar/issues/9</eref><br/>
("Clarify/revise language around epochs in section 9.1.1 #9")</t>
          </li>
        </ul>
      </section>
      <section anchor="ct">
        <name>RFC 7252-12.3: Content-Format Registry</name>
        <t><xref section="12.3" sectionFormat="of" target="RFC7252"/> established the CoAP Content-Formats
Registry, which maps a combination of an Internet Media Type
with an HTTP Content Coding, collectively called a Content-Format, to
a concise numeric identifier for that Content-Format.
The "Media Type" is more than a Media-Type-Name (see <xref target="RFC9193"/> for an
extensive discussion), i.e., it may contain parameters beyond the mere
combination of a type-name and a subtype-name registered in
<xref target="IANA.media-types"/>, as per <xref target="RFC6838"/>, conventionally identified by
the two names separated by a slash.
This construct is often called a Content Type to reduce the confusion
with a Media-Type-Name (e.g., in <xref section="8.3" sectionFormat="of" target="RFC9110"/>, which then
however also opts to use the term Media Type for the same information set).</t>
        <t>The second column of the Content-Format registry is the Content
Coding, which is defined in <xref section="8.4.1" sectionFormat="of" target="RFC9110"/>.
For historical reasons, the HTTP header field that actually carries
the content coding is called Content-Encoding; this often leads to the
misnaming of Content Coding as "content encoding".</t>
        <t>As has been noted in <xref target="Err4954"/>, the text in <xref section="12.3" sectionFormat="of" target="RFC7252"/>
incorrectly uses these terms in the context of content types and
content coding:</t>
        <ol spacing="normal" type="1"><li>
            <t>The field that describes the Content Type is called "Media Type".
This can lead to the misunderstanding that this column just carries
a Media-Type-Name (such as "<tt>text/plain</tt>"), while it actually also
can carry media type parameters (as in "<tt>text/plain; charset=UTF-8</tt>").</t>
          </li>
          <li>
            <t>The field that describes the Content Coding uses the incorrect name
"Content Encoding".</t>
          </li>
        </ol>
        <dl newline="true">
          <dt>INCORRECT, CORRECTED:</dt>
          <dd>
            <t>The VERIFIED Errata Report <xref target="Err4954"/> corrects the usage of
"Content-Encoding" in the text and changes the name of the first
column of the Content-Format registry to "Content Type" and the name
of the second field to "Content Coding".
This change has been carried out by IANA.</t>
          </dd>
        </dl>
        <t><xref target="Err4954"/> also has some notes on what would be valid or invalid
Content-Format registrations.
These are not repeated here; they are however quite useful as a
reference when preparing additional Content-Format registrations.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no new requests to IANA.</t>
      <t>Individual clarifications may contain IANA considerations; as for
example in <xref target="ct"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document provides a number of corrections and clarifications to
existing RFCs, but it does not make any changes with regard to the security
aspects of the protocol.  As a consequence, the security
considerations of the referenced RFCs apply without additions.</t>
      <t>(To be changed when that is no longer true; probably the security
considerations will then be on the individual clarifications.)</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <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>
        <reference anchor="RFC7641">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful application protocol for constrained nodes and networks. The state of a resource on a CoAP server can change over time. This document specifies a simple protocol extension for CoAP that enables CoAP clients to "observe" resources, i.e., to retrieve a representation of a resource and keep this representation updated by the server over a period of time. The protocol follows a best-effort approach for sending new representations to clients and provides eventual consistency between the state observed by each client and the actual resource state at the server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7641"/>
          <seriesInfo name="DOI" value="10.17487/RFC7641"/>
        </reference>
        <reference anchor="RFC7959">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="Z. Shelby" initials="Z." role="editor" surname="Shelby"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful transfer protocol for constrained nodes and networks. Basic CoAP messages work well for small payloads from sensors and actuators; however, applications will need to transfer larger payloads occasionally -- for instance, for firmware updates. In contrast to HTTP, where TCP does the grunt work of segmenting and resequencing, CoAP is based on datagram transports such as UDP or Datagram Transport Layer Security (DTLS). These transports only offer fragmentation, which is even more problematic in constrained nodes and networks, limiting the maximum size of resource representations that can practically be transferred.</t>
              <t>Instead of relying on IP fragmentation, this specification extends basic CoAP with a pair of "Block" options for transferring multiple blocks of information from a resource representation in multiple request-response pairs. In many important cases, the Block options enable a server to be truly stateless: the server can handle each block transfer separately, with no need for a connection setup or other server-side memory of previous block transfers. Essentially, the Block options provide a minimal way to transfer larger representations in a block-wise fashion.</t>
              <t>A CoAP implementation that does not support these options generally is limited in the size of the representations that can be exchanged, so there is an expectation that the Block options will be widely used in CoAP implementations. Therefore, this specification updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7959"/>
          <seriesInfo name="DOI" value="10.17487/RFC7959"/>
        </reference>
        <reference anchor="RFC8132">
          <front>
            <title>PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="A. Sehgal" initials="A." surname="Sehgal"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>The methods defined in RFC 7252 for the Constrained Application Protocol (CoAP) only allow access to a complete resource, not to parts of a resource. In case of resources with larger or complex data, or in situations where resource continuity is required, replacing or requesting the whole resource is undesirable. Several applications using CoAP need to access parts of the resources.</t>
              <t>This specification defines the new CoAP methods, FETCH, PATCH, and iPATCH, which are used to access and update parts of a resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8132"/>
          <seriesInfo name="DOI" value="10.17487/RFC8132"/>
        </reference>
        <reference anchor="RFC8323">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="S. Lemay" initials="S." surname="Lemay"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
            <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
            <date month="February" year="2018"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
              <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8323"/>
          <seriesInfo name="DOI" value="10.17487/RFC8323"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8516">
          <front>
            <title>"Too Many Requests" Response Code for the Constrained Application Protocol</title>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>A Constrained Application Protocol (CoAP) server can experience temporary overload because one or more clients are sending requests to the server at a higher rate than the server is capable or willing to handle. This document defines a new CoAP response code for a server to indicate that a client should reduce the rate of requests.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8516"/>
          <seriesInfo name="DOI" value="10.17487/RFC8516"/>
        </reference>
        <reference anchor="I-D.bormann-core-responses">
          <front>
            <title>CoAP: Non-traditional response forms</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="3" month="March" year="2024"/>
            <abstract>
              <t>   In CoAP as defined by RFC 7252, responses are always unicast back to
   a client that posed a request.  The present memo describes two forms
   of responses that go beyond that model.  These descriptions are not
   intended as advocacy for adopting these approaches immediately, they
   are provided to point out potential avenues for development that
   would have to be carefully evaluated.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-core-responses-02"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="Err4895" target="https://www.rfc-editor.org/errata/eid4895" quoteTitle="false">
          <front>
            <title>RFC Errata Report 4895</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="Err4954" target="https://www.rfc-editor.org/errata/eid4954" quoteTitle="false">
          <front>
            <title>RFC Errata Report 4954</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="Err5078" target="https://www.rfc-editor.org/errata/eid5078" quoteTitle="false">
          <front>
            <title>RFC Errata Report 5078</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-key-update">
          <front>
            <title>Key Update for OSCORE (KUDOS)</title>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This document defines Key Update for OSCORE (KUDOS), a lightweight
   procedure that two CoAP endpoints can use to update their keying
   material by establishing a new OSCORE Security Context.  Accordingly,
   it updates the use of the OSCORE flag bits in the CoAP OSCORE Option
   as well as the protection of CoAP response messages with OSCORE, and
   it deprecates the key update procedure specified in Appendix B.2 of
   RFC 8613.  Thus, this document updates RFC 8613.  Also, this document
   defines a procedure that two endpoints can use to update their OSCORE
   identifiers, run either stand-alone or during a KUDOS execution.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-07"/>
        </reference>
        <reference anchor="CF-MATCHER" target="https://github.com/eclipse-californium/californium/blob/main/element-connector/src/main/java/org/eclipse/californium/elements/EndpointContextMatcher.java">
          <front>
            <title>EndpointContextMatcher.java</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC9146">
          <front>
            <title>Connection Identifier for DTLS 1.2</title>
            <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="A. Kraus" initials="A." surname="Kraus"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
              <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
              <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
              <t>This document updates RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9146"/>
          <seriesInfo name="DOI" value="10.17487/RFC9146"/>
        </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="RFC7230">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7230"/>
          <seriesInfo name="DOI" value="10.17487/RFC7230"/>
        </reference>
        <reference anchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Raza" initials="S." surname="Raza"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </reference>
        <reference anchor="RFC9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="RFC9006">
          <front>
            <title>TCP Usage Guidance in the Internet of Things (IoT)</title>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <author fullname="J. Crowcroft" initials="J." surname="Crowcroft"/>
            <author fullname="M. Scharf" initials="M." surname="Scharf"/>
            <date month="March" year="2021"/>
            <abstract>
              <t>This document provides guidance on how to implement and use the Transmission Control Protocol (TCP) in Constrained-Node Networks (CNNs), which are a characteristic of the Internet of Things (IoT). Such environments require a lightweight TCP implementation and may not make use of optional functionality. This document explains a number of known and deployed techniques to simplify a TCP stack as well as corresponding trade-offs. The objective is to help embedded developers with decisions on which TCP features to use.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9006"/>
          <seriesInfo name="DOI" value="10.17487/RFC9006"/>
        </reference>
        <reference anchor="RFC9193">
          <front>
            <title>Sensor Measurement Lists (SenML) Fields for Indicating Data Value Content-Format</title>
            <author fullname="A. Keränen" initials="A." surname="Keränen"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Sensor Measurement Lists (SenML) media types support multiple types of values, from numbers to text strings and arbitrary binary Data Values. In order to facilitate processing of binary Data Values, this document specifies a pair of new SenML fields for indicating the content format of those binary Data Values, i.e., their Internet media type, including parameters as well as any content codings applied.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9193"/>
          <seriesInfo name="DOI" value="10.17487/RFC9193"/>
        </reference>
        <reference anchor="IANA.media-types" target="http://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
      </references>
    </references>
    <?line 494?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The present document is modeled after RFC 4815 and the Internet-Drafts
of the ROHC WG that led to it.  Many thanks to the co-chairs of the
ROHC WG and WG members that made this a worthwhile and successful
experiment at the time.</t>
      <!--  LocalWords:  interoperate invalidations retransmitted ROHC
 -->
<!--  LocalWords:  suboptimal
 -->

</section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
