<?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 strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc subcompact="no"?>
<?rfc iprnotified="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-transport-indication-07" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title>CoAP Transport Indication</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-transport-indication-07"/>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <author fullname="Martine Sophie Lenders">
      <organization abbrev="TU Dresden">TUD Dresden University of Technology</organization>
      <address>
        <postal>
          <street>Helmholtzstr. 10</street>
          <city>Dresden</city>
          <code>D-01069</code>
          <country>Germany</country>
        </postal>
        <email>martine.lenders@tu-dresden.de</email>
      </address>
    </author>
    <date year="2024" month="October" day="22"/>
    <area>Internet</area>
    <workgroup>CoRE</workgroup>
    <keyword>CoRE, Web Linking, Proxy, URI, aliasing</keyword>
    <abstract>
      <?line 82?>

<t>The Constrained Application Protocol (CoAP, <xref target="RFC7252"/>) is available over different transports
(UDP, DTLS, TCP, TLS, WebSockets),
but lacks a way to unify these addresses.
This document provides terminology and provisions based on Web Linking <xref target="RFC8288"/>
and Service Bindings (SVCB, <xref target="RFC9460"/>)
to express alternative transports available to a device,
and to optimize exchanges using these.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://core-wg.github.io/transport-indication/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-transport-indication/"/>.
      </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/transport-indication"/>.</t>
    </note>
  </front>
  <middle>
    <?line 92?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) provides multiple transports mechanisms:
UDP and DTLS since <xref target="RFC7252"/>, and TCP, TLS and WebSockets since <xref target="RFC8323"/>.
Some additional transports being used in LwM2M <xref target="lwm2m"/>,
and even more being explored (<xref target="I-D.bormann-t2trg-slipmux"/>, <xref target="I-D.amsuess-core-coap-over-gatt"/>.
These are mutually incompatible on the wire,
but CoAP implementations commonly support several of them,
and proxies can translate between them.</t>
      <t>CoAP currently lacks a way to indicate which transports are available for a given resource,
and which endpoints are available for them.
This document introduces ways to discover
and how to use them.</t>
      <t>CoAP also lacks a unified scheme to label a resource in a transport-independent way.
This document does <em>not</em> attempt to introduce any new scheme here,
or raise a scheme to be the canonical one.
Instead, each host or application can pick a canonical address for its resources,
and advertise other transports in addition.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>Readers are expected to be familiar with the terms and concepts
described in CoAP <xref target="RFC7252"/>
and link format <xref target="RFC6690"/>
(or, equivalently, web links as described in <xref target="RFC8288"/>).</t>
        <t>The phrase "the transport indicated by (a URI)" is used as described in <xref target="identifying"/>.</t>
        <t>A protocol that implements CoAP request-response semantics for a lower layer
is called a "(CoAP) transport".</t>
        <t>When the term "endpoint" is used in this document,
it is generalized from the <xref target="RFC7252"/> definition
to mean the transport and any multiplexing information particular to that transport.</t>
      </section>
      <section anchor="goals">
        <name>Goals</name>
        <t>This document introduces provisions for the seamless use of different transport mechanisms for CoAP.
Combined, these provide:</t>
        <ol spacing="normal" type="1"><li>
            <t>Enablement: Inform clients of the availability of other transports of servers.</t>
          </li>
          <li>
            <t>No Aliasing: Any URI aliasing must be opt-in by the server. Any defined mechanisms must allow applications to keep working on the canonical URIs given by the server.</t>
          </li>
          <li>
            <t>Optimization: Do not incur per-request overhead from switching transports. This may depend on the server's willingness to create aliased URIs.</t>
          </li>
          <li>
            <t>Proxy usability: All information provided must be usable by aware proxies to reduce the need for duplicate cache entries.</t>
          </li>
          <li>
            <t>Proxy announcement: Allow third parties to announce that they provide alternative transports to a host.</t>
          </li>
        </ol>
        <t>For all these functions, security policies must be described that allow the client to use them as securely as the original transport.</t>
        <t>This document will not concern itself with changes in transport availability over time,
neither in causing them ("Please take up your TCP interface, I'm going to send a firmware update")
nor in advertising their availability in advance.
Hosts whose transport's availability changes over time can utilize
any suitable mechanism to keep client updated,
such as placing a suitable Max-Age value on their resources
or having them observable.</t>
      </section>
      <section anchor="core-principle-transport-endpoints-are-proxies">
        <name>Core principle: Transport endpoints are proxies</name>
        <t>CoAP does not need any special provisions to send the same request for a single resource through different transports:
A request to any globally addressable resource
can be sent to any endpoint
by phrasing it as a proxy request.</t>
        <t>Whether that endpoint is
trusted to,
capable to
and willing to
relay that request,
and how to find suitable endpoints
to serve as a proxy for a request
is discussed in this document.</t>
        <t>When resource identifiers have different meanings depending on the host.
the applicability of this document is limited.
<cref anchor="applicabilitylimited">Possibly not limited a lot, but we have not looked into those cases in detail yet. --CA</cref>
Examples of such resources are those whose URIs including loopback addresses or partially-qualified domain names.</t>
      </section>
      <section anchor="concepts">
        <name>Concepts</name>
        <dl>
          <dt>Same-host proxy:</dt>
          <dd>
            <t>A CoAP server that accepts forward proxy requests (i.e., requests carrying the Proxy-Scheme option)
exclusively for URIs that it is also the authoritative server for is defined as a "same-host proxy".</t>
          </dd>
          <dt/>
          <dd>
            <t>The distinction between a same-host and any other proxy is only relevant on a practical, server-implementation and illustrative level;
this specification does not use the distinction in normative requirements,
and clients need not make the distinction at all.</t>
          </dd>
        </dl>
        <t>When talking of proxy requests,
this document only talks of the Proxy-Scheme option.
Given that all URIs this is usable with can be expressed in decomposed CoAP URIs,
the need for using the Proxy-URI option should never arise.
The Proxy-URI option is still equivalent to the decomposed options,
and can be used if the server supports it.</t>
        <section anchor="identifying">
          <name>Using URIs to identify transport endpoints</name>
          <t>The URI <tt>coap://[2001:db8::1]</tt> identifies a particular resource, possibly a "welcome" text.
It is, colloquially, also used to identify the combination
of a CoAP transport and the transport specific details.</t>
          <t>For precision, this document uses the term
"the transport address indicated by (a URI)" to refer to the transport and its details (in the example, CoAP over UDP with an IPv6 address and the default port),
but otherwise no big deal is made of it.</t>
          <t>The transport indicated by a URI is not only influenced by the URI scheme,
but also by the authority component.
The transports and resolution mechanisms currently specified
make little use of this possibility,
mainly because the most prominent resolution mechanism (SVCB records) has not been available when <xref target="RFC8323"/> was published
and because it can not be expressed in IP literals.
The provisions of this document
enable this opportunistically for registered names
(<xref target="svcb-discovery"/>)
and for literals using the mechanism in <xref target="newlit"/>.</t>
          <t>When the resolution mechanism used for a registered name authority component yields multiple addresses,
all of those are possible ways to interact with the resource.
The resolution mechanism or other underlying transport can give guidance on how to find the best usable one.
With the currently specified transports and resolution mechanisms,
the most prominent example of making use of that information
is applying the Happy Eyeballs mechanism <xref target="RFC8305"/> to establish a TCP connection
when a name resolves to both IPv4 and IPv6 addresses,</t>
          <t>[ TBD: Do we want to extend this to HTTP proxies? Probably just not, and if so, only to those that can just take coap://... for a URI. ]</t>
        </section>
      </section>
    </section>
    <section anchor="finding-suitable-endpoints-for-a-uri">
      <name>Finding suitable endpoints for a URI</name>
      <t>When a CoAP request is created,
a typical starting point is the URI of the request's target resource.
To send the request,
a suitable endpoint needs to be discovered.
This section lists the ways one or more such endpoints can be found.</t>
      <t>In some situations,
a client decides to use a forward proxy to access the resource.
In that case, it relays all the URI components to the proxy,
which then decides on an endpoint to which to forward the request
using the tools described in this section.
<xref target="actualproxies"/> describes this in more detail.</t>
      <t>The endpoint (and thus transport)
used to access a resource does not alter the resource's URI.
If the URI scheme associated with the selected transport differs from the request URI's scheme,
a different host name is encountered as part of the resolution process
(e.g. due to a DNS CNAME or an explicit SVCB target name)
or a different port is used (as possible through SVCB),
the Proxy-Scheme, Uri-Host and Uri-Port options are set as needed
to ensure that the request keeps targetting the requested resource.
For servers that follow the common pattern of exposing the same resources on all transports (and thus having multiple aliased URIs for the same resource)
and that do not act as proxies for other systems,
the presence of the Proxy-Scheme option has little practical consequence:
such servers become same-host proxies,
and can ignore the Proxy-Scheme option as long as they recognize the Uri-Host value
(which they already have been required to process).</t>
      <t>While a server is at liberty to create aliases,
clients can not infer from the presence of a transport for a host
that URIs created from addressing that transport are present.
For example, if <tt>coap://h.example.net/sensors/temp</tt> is a known resource,
and CoAP-over-TCP on [2001:db8::1] is indicated as a transport endpoint,
there is no reason for the client to assume that <tt>coap+tcp://[2001:db8::1]/sensors/temp</tt> exists,
let alone is the same resource:
Clients that access the known resource by establishing a TCP connection
need to send the options Proxy-Scheme value "coap", the Uri-Host value "h.example.net"
and the Uri-Path values "sensors" and "temp".</t>
      <section anchor="processing-scheme-and-authority">
        <name>Processing scheme and authority</name>
        <t>To discover endpoints for a given URI,
the scheme and the authority component of the URI
are typical starting points.</t>
        <section anchor="transport-unaware-resolution">
          <name>Transport-unaware resolution</name>
          <t>The IP based transports specified so far (CoAP over UDP, DTLS, TCP, TLS and WebSockets)
all indicate the transport in their scheme,
and have a default port.
The only remaining details of multiplexing information required are the IP version(s) and IP address(es) of the server.</t>
          <t>If the host component of the URI is a literal,
that information is already available.</t>
          <t>If the host component of the URI is a registered name,
a name resolution service is used for a simple name lookup:
When DNS is used as a resolution service,
AAAA (or A) records of the name are looked up.</t>
          <t>Beyond the IP address,
the resolution service may provide some additional information,
such as the zone identifier (implied in DNS by using the zone the DNS response was obtained through)
or TLSA records (which can guide the (D)TLS certificate validation process but are out of scope for this document).</t>
          <t>Simple resolution services do not indicate which transports are available on the address.
Servers reached that way can resort to <xref target="hasproxy"/> to indicate alternative transports while exchanging initial data through the original transport,
or to store information in link format / web-link based information systems (such as a Resource Directory <xref target="RFC9176"/>).</t>
        </section>
        <section anchor="transport-aware-resolution-mechanisms">
          <name>Transport-aware resolution mechanisms</name>
          <t>Advanced resolution services
provide information about which transports are available.</t>
          <t>For the DNS resolution mechanism, SVCB lookups described in <xref target="svcb-discovery"/>
provide that information.</t>
          <t>It is recommended
that future transports are designed to utilize transport-aware resolution mechanisms; see <xref target="upcomingtransports"/> for details.</t>
        </section>
      </section>
      <section anchor="hasproxy">
        <name>Explicit proxy indication</name>
        <t>A server can advertise a recommended proxy
by publishing a Web Link with the "has-proxy" relation, defined in this document, to a URI indicating its transport address.
In particular (and that is a typical case),
it can indicate its own network address on an alternative transport when implementing same-host proxy functionality.</t>
        <t>The semantics of a link from S to P with relations has-proxy ("S has-proxy P", <tt>&lt;P&gt;;rel=has-proxy;anchor="S"</tt>)
are that for any resource that has the same origin as S, the transport address indicated by P can be used to obtain that resource.</t>
        <section anchor="example">
          <name>Example</name>
          <t>A constrained device at the address 2001:db8::1 that supports CoAP over TCP in addition to CoAP can self-describe like this:</t>
          <figure anchor="fig-has-proxy">
            <name>Discovery and follow-up request through a has-proxy relation</name>
            <artwork><![CDATA[
Req: to [ff02::fd]:5683 on UDP
Code: GET
Uri-Path: /.well-known/core
Uri-Query: if=tag:example.com,sensor

Res: from [2001:db8::1]:5683
Content-Format: application/link-format
Payload:
</sensors/temp>;if="tag:example.com,sensor",
<coap+tcp://[2001:db8::1]>;rel=has-proxy;anchor="/"


Req: to [2001:db8::1]:5683 on TCP
Code: GET
Proxy-Scheme: coap
Uri-Path: /sensors/temp
Observe: 0

Res: 2.05 Content
Observe: 0
Payload:
39.1°C
]]></artwork>
          </figure>
          <t>The discovery process yields two links:
The first describes the resource,
the second describes that an additional (TCP) endpoint is available for all resources on this host.</t>
          <t>Note that generating this discovery file needs to be dynamic based on its available addresses;
only if queried using a link-local source address, the server may also respond with a link-local address in the authority component of the proxy URI.</t>
        </section>
      </section>
    </section>
    <section anchor="operational-concerns-of-discovered-transport-endpoints">
      <name>Operational concerns of discovered transport endpoints</name>
      <section anchor="secctx-propagation">
        <name>Security context propagation</name>
        <t>Any security requirements posed by a server or client application on a CoAP request
MUST be applied independently of the transport that is used to perform the request.
If a transport can not be used to satisfy the requirements,
it is ineligible for use with the request (from a client's point of view),
and unauthorized (from a server's point of view).</t>
        <t>If the requirements contain transport layer security,
the proxy needs to present the credentials required of the server to the client,
and those of the client to the server;
this is only practical when the proxy is a same-host proxy.</t>
        <t>Some applications have requirements
exceeding the requirements of a secure connection,
e.g., (explicitly or implicitly) requiring that
name resolution happen through a secure process
and packets are only routed into networks where it trusts that they will not be intercepted on the path to the server.
Such applications need to extend their requirements to the the sources used to obtain the endpoints
(i.e., the source of any <tt>has-proxy</tt> statement or the SVCB data);
a sufficient (but maybe needlessly strict) requirement for <tt>has-proxy</tt> statements is to only follow those
that are part of the same resource that advertises the link currently being followed.
Section <xref target="proxy-foreign-advertisement"/> adds further considerations.</t>
      </section>
      <section anchor="choice-of-endpoints">
        <name>Choice of endpoints</name>
        <t>It is up to the client whether to use an advertised endpoint,
or (if multiple are provided) which to pick.</t>
        <t>Information about endpoints may be annotated with additional metadata that may help guide such a choice;
defining such metadata is out of scope for this document.</t>
        <t>Clients MAY switch between endpoints as long as the source describing them is fresh;
they may even do so per request.
(For example, they may perform individual requests using CoAP-over-UDP,
but choose CoAP-over-TCP for requests with large expected responses).
When the information about endpoints is obtained through CoAP (eg. as a <tt>has-proxy</tt> link),
the client can use the describing representation's ETag to efficiently renew its justification for using the alternative transport.</t>
      </section>
      <section anchor="selection-of-a-canonical-origin">
        <name>Selection of a canonical origin</name>
        <t>While a server is at liberty to provide the same resource independently on different transports (i.e. to create aliases),
it may make sense for it to pick a single scheme and authority under which it announces its resources.
Using only one address helps proxies keep their caches efficient,
and makes it easier for clients to avoid exploring the same server twice from different angles.</t>
        <t>When there is a predominant scheme and authority through which an existing service is discovered,
it makes sense to use these for the canonical addresses.</t>
        <t>Otherwise,
it is suggested to use the <tt>coap</tt> or <tt>coaps</tt> scheme
(given that these are the most basic and widespread ones),
and the most stable usable name the host has.</t>
        <section anchor="unreachable-canonical-origin-addresses">
          <name>Unreachable canonical origin addresses</name>
          <t>For devices that are not generally reachable at a stable address,
it may make sense to use a scheme and authority as the canonical address that can not actually be dereferenced.</t>
          <t>The registered names available for that purpose depend on the resolution mechanisms in use.
When the Domain Name System (DNS) is used,
such names would not be associated with any A or AAAA records
(but may still use, for example, TLSA records).</t>
          <t>Such URIs are <em>only</em> usable to clients that discover a suitable proxy along with the URI,
and which can place sufficient trust in that proxy.</t>
        </section>
      </section>
      <section anchor="advertisement-through-a-resource-directory">
        <name>Advertisement through a Resource Directory</name>
        <t>In the Resource Directory specification <xref target="rfc9176"/>,
protocol negotiation was anticipated to use multiple base values.
This approach was abandoned since then,
as it would incur heavy URI aliasing.</t>
        <t>Instead, devices can submit their has-proxy links to the Resource Directory like all their other metadata.</t>
        <t>A client performing resource lookup can ask the RD to provide available (same-host-)proxies in a follow-up request
by asking for <tt>?anchor=&lt;the-discovered-host&gt;&amp;rel=has-proxy</tt>.
<!-- We don't say that the RD can not do that, right? -->
The RD may also volunteer that information during resource lookups even though the has-proxy link itself does not match the search criteria.</t>
        <t>[</t>
        <t>It may be useful to define RD parameters for use with lookup here, which'd guide which available proxies to include.
For example, asking <tt>?if=tag:example.com,sensor&amp;proxy-links=tcp</tt> could give as a result:</t>
        <t><tt>&lt;coap://[2001:db8::1]/s&gt;;rt=tag:example.com,sensor,&lt;coap+tcp://[2001:db8::1]/&gt;;rel=has-proxy;anchor="coap://[2001:db8::1]/"</tt></t>
        <t>This is similar to the extension suggested in <xref section="5" sectionFormat="of" target="I-D.amsuess-core-resource-directory-extensions"/>.</t>
        <t>]</t>
      </section>
    </section>
    <section anchor="elision-of-proxy-scheme-and-uri-host">
      <name>Elision of Proxy-Scheme and Uri-Host</name>
      <t>A CoAP server may publish and accept multiple URIs for the same resource,
for example when it accepts requests on different IP addresses that do not carry a Uri-Host option,
or when it accepts requests both with and without the Uri-Host option carrying a registered name.
Likewise, the server may serve the same resources on different transports.
This makes for efficient requests (with no Proxy-Scheme or Uri-Host option),
but in general is discouraged <xref target="aliases"/>.</t>
      <t>To make efficient requests possible without creating URI aliases that propagate,
the "has-unique-proxy" specialization of the has-proxy relation
and the "is-unique-proxy" SVCB parameter are defined.</t>
      <t>If a proxy is unique,
it means that requests arriving at the proxy are treated the same
no matter whether the scheme, authority and port of the link context are set in the Proxy-Scheme, Uri-Host and Uri-Port options, respectively,
or whether all of them are absent.</t>
      <t>[ The following two paragraphs are both true but follow different approaches to explaining the observable and implementable behavior;
   it may later be decided to focus on one or the other in this document. ]</t>
      <t>While this creates URI aliasing in the requests as they are sent over the network,
applications that discover a proxy this way should not "think" in terms of these URIs,
but retain the originally discovered URIs (which, because Cool URIs Don't Change<xref target="cooluris"/>, should be long-term usable).
They use the proxy for as long as they have fresh knowledge of the has-(unique-)proxy statement.</t>
      <t>In a way, advertising <tt>has-unique-proxy</tt> can be viewed as a description of the link target in terms of SCHC <xref target="I-D.ietf-lpwan-coap-static-context-hc"/>:
In requests to that target, the link source's scheme and host are implicitly present.</t>
      <t>While applications retain knowledge of the originally requested URI
(even if it is not expressed in full on the wire),
the original URI is not accessible to caches both within the host and on the network
(for the latter, see <xref target="actualproxies"/>).
Thus, cached responses to the canonical and any aliased URI are mutually interchangeable
as long as both the response and the proxy statement are fresh.</t>
      <t>A client MAY use a unique-proxy like a proxy and still send the Proxy-Scheme and Uri-Host option;
such a client needs to recognize both relation types, as relations of the has-unique-proxy type
are a specialization of has-proxy and typically don't carry the latter (redundant) annotation.
[ To be evaluated -- on one hand, supporting it this way means that the server needs to identify all of its addresses and reject others.
   Then again, is a server that (like many now do) fully ignore any set Uri-Host correct at all? ]</t>
      <t>Example:</t>
      <figure anchor="fig-has-unique-proxy">
        <name>Follow-up request through a has-unique-proxy relation. Compared to the last example, 5 bytes of scheme indication are saved during the follow-up request.</name>
        <artwork><![CDATA[
Req: to [ff02::fd]:5683 on UDP
Code: GET
Uri-Path: /.well-known/core
Uri-Query: if=tag:example.com,sensor

Res: from [2001:db8::1]:5683
Content-Format: application/link-format
Payload:
</sensors/>;if="tag:example.com,collection",
<coaps+ws://[2001:db8::1]>;rel=has-unique-proxy;anchor="/"


Req: to [2001:db8::1] via WebSockets over HTTPS
Code: GET
Uri-Path: /sensors/

Res: 2.05 Content
Content-Format: application/link-format
Payload:
</sensors/temperature>;if="tag:example.com,sensor"
]]></artwork>
      </figure>
      <t>It is noteworthy that when the URI reference <tt>/sensors/temperature</tt> is resolved,
the base URI is <tt>coap://device0815.example.com</tt> and not its coaps+ws counterpart --
as the request is still for that URI, which both the client and the server are aware of.
However, this detail is of little practical importance:
A simplistic client that uses <tt>coaps+ws://device0815.proxy.rd.example.com</tt> as a base URI will still arrive at an identical follow-up request with no ill effect,
as long as it only uses the wrongly assembled URI for dereferencing resources,
the security context is the same,
the state is kept no longer than the has-unique-proxy statement is fresh,
and it does not (for example) pass the URI on to other devices.</t>
      <section anchor="impact-on-caches">
        <name>Impact on caches</name>
        <t>[ This section is written with the "there is implied URI aliasing" mindset;
it should be possible to write it with the "compression" mindset as well
(but there is no point in having both around in the document at this time).</t>
        <t>It is also slightly duplicating, but also more detailed than,
the brief note on the topic in <xref target="actualproxies"/>
]</t>
        <t>When a node that performs caching learns of a <tt>has-unique-proxy</tt> statement,
it can utilize the information about the implied URI aliasing:
As long as the <tt>has-unique-proxy</tt> statement is fresh and trusted,
requests for either of the origins can be served from the cache of the other origin.</t>
      </section>
      <section anchor="unique-security">
        <name>Using unique proxies securely</name>
        <t>The elision of the host name afforded by the <tt>unique-proxy</tt> relation
is only possible if the required security mechanisms verify the scheme and host of the server.</t>
        <t>This is given for OSCORE based mechanisms,
where "unprotected message fields (including Uri-Host [...]) MUST not lead to an OSCORE message becoming verified".</t>
        <t>With TLS based security mechanisms,
name and scheme can not be completely elided in general.
While the use of the SNI HostName field sets the default Uri-Host already,
the scheme still needs to be sent in a Proxy-Scheme option
to satisfy the requirement of <xref target="secctx-propagation"/>.</t>
        <t>[
It may be possible to relax this requirement
if the host publishes a <em>trustworthy</em> statement about serving the same content on all schemes;
however, no urgent need for this optimization is currently known that warrants the extra scrutiny.
]</t>
      </section>
      <section anchor="self-description-as-a-unique-proxy">
        <name>Self-description as a unique proxy</name>
        <t>The level of assurance a client needs from a server
to elide the Uri-Host option in a request that was created from a URI with no IP address literal
has been a controversial topic.
[ Should we dig up old conversations, link to https://github.com/core-wg/wiki/wiki/CoAP-FAQ#q4,
or just let the weight of a WG consensus-document-to-be do its work? ]</t>
        <t>The <tt>has-unique-proxy</tt> relation provides an easy way for a server
to indicate that this is in fact allowed:
A server can publish a statement such as <tt>&lt;/&gt;;rel=has-unique-proxy</tt> in its <tt>/.well-known/core</tt> file.
A client that receives and understands it can thus elide the Uri-Host option in requests to the server
as per the definition of the relation.</t>
      </section>
    </section>
    <section anchor="thirdparty">
      <name>Third party proxy services</name>
      <t>A server that is aware of a suitable cross proxy may use the has-proxy relation to advertise that proxy.
If the transport used towards the proxy provides name indication (as CoAP over TLS or WebSockets does),
or by using a large number of addresses or ports,
it can even advertise a (more efficient) has-unique-proxy relation.
This is particularly interesting when the advertisements are made available across transports,
for example in a Resource Directory.</t>
      <t>How the server can discover and trust such a proxy
is out of scope for this document,
but generally involves the same kind of links.
In particular, a server may obtain a link to a third party proxy from an administrator as part of its configuration.</t>
      <t>The proxy may advertise itself without the origin server's involvement;
in that case, the client needs to take additional care (see <xref target="proxy-foreign-advertisement"/>).</t>
      <figure anchor="fig-external-proxy">
        <name>HTTP based discovery and CoAP-over-WS request to a CoAP resource through a has-unique-proxy relation</name>
        <artwork><![CDATA[
Req: GET http://rd.example.com/rd-lookup?if=tag:example.com,sensor

Res:
Content-Format: application/link-format
Payload:
<coap://device0815.example.com/sensors/>;if="tag:example.com,collection",
<coap+wss://device0815.proxy.rd.example.com>;rel=has-unique-proxy;anchor="coap://device0815.example.com/"


Req: to device0815.proxy.rd.example.com on WebSocket
Host (indicated during upgrade): device0815.proxy.rd.example.com
Code: GET
Uri-Path: /sensors/

Res: 2.05 Content
Content-Format: application/link-format
Payload:
</sensors/temperature>;if="tag:example.com,sensor"
]]></artwork>
      </figure>
      <section anchor="generic-advertisements">
        <name>Generic proxy advertisements</name>
        <t>A third party proxy may advertise its availability to act as a proxy for arbitrary CoAP requests.
This use is not directly related to the transport indication in other parts of this document,
but sufficiently similar to warrant being described in the same document.</t>
        <t>The resource type "CPA-core.proxy" can be used to describe such a proxy.</t>
        <figure anchor="fig-6lbr-proxy">
          <name>A CoAP client discovers that its border router can also serve as a proxy, and uses that to access a resource on an HTTP server.</name>
          <artwork><![CDATA[
Req: GET coap://[fe80::1]/.well-known/core?rt=CPA-core.proxy

Res:
Content-Format: application/link-format
Payload:
<>;rt=CPA-core.proxy

Req: to [fe80::1] via CoAP
Code: GET
Proxy-Scheme: http
Uri-Host: example.com
Uri-Path: /motd
Accept: text/plain

Res: 2.05 Content
Content-Format: text/plain
Payload:
On Monday, October 25th 2021, there is no special message of the day.
]]></artwork>
        </figure>
        <t>The considerations of <xref target="proxy-foreign-advertisement"/> apply here.</t>
        <t>A generic advertised proxy is always a forward proxy,
and can not be advertised as a "unique" proxy as it would lack information about where to forward.</t>
        <t>A proxy may be limited in the URIs it can service,
for technical reasons (e.g. when none of the URI's transports are supported by the server)
or for policy reasons (only accessing servers inside an organizational structure).
Future documents (or versions of this document) may add target attributes
that allow specifying the capabilities of a proxy.
[
An earlier version of this document contained a proxy-schemes attribute.
This was discontinued because it could already not express whether a proxy could access IPv4 or IPv6 peers,
and because the use of schemes is becoming less useful given the new recommendation of incorporating details from registered name resolution into the transport selection.
]</t>
        <t>The use of a generic proxy can be limited to a set of devices that have permission to use it.
Clients can be allowed by their network address if they can be verified,
or by using explicit client authentication using the methods of <xref target="I-D.tiloca-core-oscore-capable-proxies"/>.</t>
      </section>
    </section>
    <section anchor="actualproxies">
      <name>Client picked proxies</name>
      <t>This section is purely informative,
and serves to illustrate that the mechanisms introduced in this document do not hinder the continued use of existing proxies.</t>
      <t>When a resource is accessed through an "actual" proxy (i.e., a host between the client and the server, which itself may have a same-host proxy in addition to that),
the proxy's choice of the upstream server is originally (i.e., without the mechanisms of this document)
either configured (as in a "chain" of proxies)
or determined by the request URI (where a proxy picks CoAP over TCP and resolves the given name for a request aimed at a coap+tcp URI).</t>
      <t>A proxy that has learned,
by active solicitation of the information or by consulting links in its cache,
that the requested URI is available through a (possibly same-host) proxy,
may use that information
in choosing the upstream transport,
to correct the URI associated with a cached response,
and to use responses obtained through one transport to satisfy requests on another.</t>
      <t>For example, if a host at coap://h1.example.com has advertised <tt>&lt;/res&gt;,&lt;coap+tcp://h1.example.com&gt;;rel=has-proxy;anchor="/"</tt>,
then a proxy that has an active CoAP-over-TCP connection to h1.example.com
can forward an incoming request for coap://h1.example.com/res through that CoAP-over-TCP connection
with a suitable Proxy-Scheme and Uri-Host on that connection.</t>
      <t>If the host had marked the proxy point as <tt>&lt;coap+tcp://h1.example.com&gt;;rel=has-unique-proxy</tt> instead,
then the proxy could elide the Proxy-Scheme and Uri-Host options,
and would (from the original CoAP caching rules) also be allowed
to use any fresh cache representation of coap+tcp://h1.example.com/res
to satisfy requests for coap://h1.example.com/res.</t>
      <t>A client that uses a forward proxy
and learns of a different proxy advertised to access a particular resource
will not change its behavior if its original proxy is part of its configuration.
If the forward proxy was only used out of necessity
(e.g., to access a resource whose indicated transport not supported by the client)
it can be practical for the client to use the advertised proxy instead.</t>
    </section>
    <section anchor="service-binding-parameters-for-coap-transports">
      <name>Service Binding Parameters for CoAP transports</name>
      <t>Discovery mechanisms that exist in DNS <xref target="RFC9460"/>, DHCP, Router Advertisements <xref target="RFC9463"/> or other mechanisms
can provide details already that would otherwise only be discovered later through proxy links.
For when those details are provided in the shape of Service Binding Parameters,
this section describes their interpretation in the context of CoAP transport indication.</t>
      <t>[ The following paragraph is outdated, but its replacement will depend on the outcome of IETF121 discussions. ]</t>
      <t>The subsections in this section are arranged to describe a consistent sequential full picture.
The capabilities of this big picture are not exercised by any application known at the time of draft publication.
It is instead backed by many small-scope use cases
(such as bootstrapping issues of proxy-link based CoAP scheme unification, <xref target="I-D.lenders-core-dnr"/>, <xref target="I-D.amsuess-t2trg-onion-coap"/> and also applications outside CoAP such as <xref target="SUIB"/>)
and presents a unified solution framework.</t>
      <section anchor="svcb-discovery">
        <name>Discovering transport indication details from name resolution</name>
        <t>This document registers the <tt>_coap</tt> attrleaf label
in <xref target="iana-underscored"/>
using the pattern described as described in <xref section="10.4.5" sectionFormat="of" target="RFC9460"/>,
and thus enables the use of SVCB records.
This path is chosen over the creation of a new SVCB RR "COAP"
because it is considered unlikely that DNS implementations would update their code bases to apply SVCB behavior;
this assumption will be revisited before registration.</t>
        <t>These can be used during the resolution of URIs that use any CoAP scheme.
The presence of an SVCB record for a registered name
implies that any transport advertised in the record is suitable for proxying to
resources of any CoAP scheme and that registered name,
provided that a resource is available at that URI in the first place.
This does not create URI aliasing:
Any resource is still accessed at its original URI through the advertised proxy endpoints.</t>
        <t>It is possible through this to advertise transports without transport layer security
for URIs with the schemes "coaps", "coaps+tcp" and "coaps+ws".
Unless the applications explicitly regards an object layer security mechanism as a sufficient replacement for transport layer security,
those transports can not be selected for operations on such URIs as per <xref target="secctx-propagation"/>.</t>
        <t>Some SVCB parameters have defaults; for "_coap", these are:</t>
        <ul spacing="normal">
          <li>
            <t>port: 5683</t>
          </li>
          <li>
            <t>ALPN: empty</t>
          </li>
        </ul>
        <t>As SVCB records were not specified for the existing CoAP transports originally,
generic CoAP clients are not required to use the SVCB lookup mechanism,
but MAY attempt it opportunistically in order to obtain a usable transport
(or to obtain it faster).
Applications built on CoAP MAY require clients to perform this kind of discovery.
Adding such a requirement is particularly useful if the application frequently advertises URIs with a scheme that defaults to a transport which its clients may not support,
or when the application makes use of functionality afforded by <xref target="RFC9460"/> such as apex domain redirection.
(Had the SVCB specification predated the first new CoAP transports,
that mechanism might have been used in the first place instead of additional schemes).</t>
        <t>[ The following paragraph may need to be revisited depending on the outcome of IETF121 discussions. ]</t>
        <t>The effects on a client of seeing SVCB parameters are similar
to those of seeing a "has-proxy" link from the origin to the URI built using {#svcblit}.
They differ in that SVCB parameters describe the server itself:
Credentials expressed apply end to end
(as opposed to credentials that describe the proxy in a "has-proxy" link),
and the client could conclude that the implied proxy is a same-host proxy
(if that had any impact on the client, which it does not).</t>
      </section>
      <section anchor="svcparams">
        <name>Service Parameters</name>
        <t>Several parameters are relevant in the context of CoAP,
independently of whether they are used with SVCB records or Service Binding Parameters transported outside of SVCB records,
and independently of whether they apply to the <tt>_coap</tt> service or another service that can be used on top of CoAP (such as <tt>_dns</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>port</tt>: The CoAP service using the transport described in this parameter is reachable on this port
(described in <xref target="RFC9460"/>).</t>
          </li>
          <li>
            <t><tt>alpn</tt>: The ALPN "coap" has been defined for CoAP-over-TLS <xref target="RFC8323"/>, and "co" for CoAP-over-DTLS in <xref target="I-D.ietf-core-coap-dtls-alpn"/>.  </t>
            <t>
If an ALPN service parameter is found, this indicates that the ALPN(s) and thus the CoAP transport that can be used on this address / port.
For example, "co" indicates that DTLS (and thus UDP) is used.</t>
          </li>
          <li>
            <t><tt>coaptransport</tt>: This is a new parameter defined in this document, and similar to the ALPN parameter.  </t>
            <t>
If a <tt>coaptransport</tt> parameter is present, the indicated transport(s) can be used on this address / port.  </t>
            <t>
The names registered for existing transports are identical to the URI schemes that indicate their use in the absence of Service Binding Parameters.  </t>
            <t>
[ It is left for review by SVCB experts whether these are a separate parameter space or we should just take ALPNs for them, like eg. h2c does. ]</t>
          </li>
          <li>
            <t><tt>is-unique-proxy</tt>: This is a new parameter defined in this document,
and equivalent to the <tt>has-unique-proxy</tt> in its semantics.  </t>
            <t>
Its value is empty.</t>
          </li>
          <li>
            <t><tt>edhoc-cred</tt>: This is a new parameter defined in this document, and describes that EDHOC can be used with the server, and which credentials can authenticate the server.  </t>
            <t>
The <tt>edhoc-cred</tt> parameter's value is a CBOR sequence of COSE Header maps as defined in <xref target="RFC9052"/>.
If the parameter is present, it indicates that EDHOC <xref target="RFC9528"/> can be used on the transport,
and that the server can be authenticated by any credential expressed in the sequence.
This is similar to the TLSA records specified in <xref target="RFC6698"/>.  </t>
            <t>
A COSE Header map can express many properties, not all of which are sufficient to authenticate a peer on any given security mechanism.
Without excluding applications that may process other entries,
a practical criterion for whether a header map is suitable for EDHOC is that the header map could also be used in EDHOC as <tt>ID_CRED_R</tt>
if the credential is sent by value.  </t>
            <t>
For example, a header map with a <tt>kccs</tt> entry can be used to indicate a public key including a Key ID (<tt>kid</tt>),
and that public key does not need to be sent during the EDHOC exchange.
Alternatively, a header map with an <tt>x5t</tt> identifies the end entity certificate the server presents by a thumbprint (hash).  </t>
            <t>
It is up to the application to define requirements for the provenance of the <tt>edhoc-cred</tt> parameter,
whether it needs to be provided through secure mechanism,
or whether the server is strictly required to present that credential.  </t>
            <t>
This is unlike TLSA, which needs to be transported through DNSSEC,
because a <tt>edhoc-cred</tt> parameter may be sent using other means than DNS
(for example in DHCPv6 responses or Router Advertisements).</t>
          </li>
          <li>
            <t><tt>edhoc-info</tt>: This is a new parameter defined in this document, describing how EDHOC can be used on the server.  </t>
            <t>
The value of the parameter is a CBOR map following the <tt>EDHOC_Information</tt> structure defined in <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>
and extended in <xref target="I-D.tiloca-lake-app-profiles"/>.  </t>
            <t>
It is optional to provide and optional to process, but can help speed up the establishment of a security context.</t>
          </li>
          <li>
            <t><tt>oauth-hints</tt>: This is a new parameter defined in this document,
describing how ACE-OAuth <xref target="RFC9200"/> can be used with this service.  </t>
            <t>
Its value is a CBOR map containing AS Request Creation Hints as described in <xref section="5.3" sectionFormat="of" target="RFC9200"/>.
While an empty map can be useful (hinting that the client should use its configured ACE-OAuth setup),
typical useful keys are
1 (AS, indicating the URI of the Authorization Server),
5 (audience, indicating the name under which the service is known to the Authorization Server),
and 9 (scope, when discovering a particular service rather than just getting transport information for a host).
That data is using the same shape the server might use when responding to an attempt at an unencrypted connection,
and can not only speed up the discovery of the right AS,
but can also protect that information (eg. when DNSSEC is used),
and avoids the need for an unprotected first request.  </t>
            <t>
It is up to the application to define requirements for the use of such data.
For example,
it may require that the audience matches the requested host name,
or may require that the scope matches the kind of service being discovered.  </t>
            <t>
When expressed in text format, e.g. in DNS zone files,
the CBOR diagnostic notation <xref target="I-D.ietf-cbor-edn-literals"/> can be used.</t>
          </li>
        </ul>
        <section anchor="examples-of-using-name-resolution-discovery-and-parameters">
          <name>Examples of using name resolution discovery and parameters</name>
          <section anchor="generic-client-discovering-transport-options">
            <name>Generic client discovering transport options</name>
            <t>A generic client is directed to obtain <tt>coap://dev1.example.com/log</tt>
requests the name to be resolved using the system's resolution mechanisms,
resulting in a DNS query for these records:</t>
            <artwork><![CDATA[
_coap.dev1.example.com IN SVCB
dev1.example.com       IN AAAA
]]></artwork>
            <t>The following records are returned:</t>
            <artwork><![CDATA[
_coap.dev1.example.com IN SVCB 1 . coaptransport=tcp,udp
_coap.dev1.example.com IN SVCB 1 . alpn=co,coap port=5684
_coap.dev1.example.com IN SVCB 1 . coaptransport=udp port=61616
dev1.example.com       IN AAAA 2001:db8:1::1
]]></artwork>
            <t>Exceeding the single option it had with just the IP address,
it may now also choose to establish a TCP connection on the default port,
to use port 61616 for UDP (which results in more compact frames on a 6LoWPAN link),
or to use either of the TLS based options.</t>
          </section>
          <section anchor="application-mandating-svcb">
            <name>Application mandating SVCB</name>
            <t>An application's policy is to mandate client support for SVCB records,
and to require that a security mechanism must be used where credentials are backed either by DNSSEC or by the Web PKI.</t>
            <t>A server operator is running in a legacy network that only provides an IPv4 address behind NAT with a dynamic public address,
but has PCP <xref target="RFC7291"/> available.
After running PCP to open a UDP port,
it learns that 1.2.3.4:5678 will be available for some time.</t>
            <t>It therefore updates its DNS record like this:</t>
            <artwork><![CDATA[
_coap.host.example.net 600 IN SVCB 1 publicudp.host.example.net       \
                       port=5678                                      \
                       edhoc-cred={14:{... /KCCS with its public key/}}
]]></artwork>
            <t>When a client starts using <tt>coap://host.example.net/interactive</tt>,
it looks up that record and verifies it using DNSSEC.
It then proceeds to send EDHOC requests over CoAP to 1.2.3.4 port 5678,
setting the Uri-Host option to "host.example.net".</t>
            <t>The client could also have initiated an EDHOC session if no edhoc-cred parameter had been present,
but then,
it would have required that the server present some credential that could be verified through the Web PKI,
for example an x5chain containing a Let's Encrypt certificate.</t>
          </section>
        </section>
      </section>
      <section anchor="svcb2uri">
        <name>Producing request for a discovered service</name>
        <t>If a service's discovery process does not produce a URI but an address, host name and/or Service Binding Parameters,
those can be converted to a CoAP URI,
for which transport hints are already encoded in the parameters the URI is constructed from.
An example of this is DNS server discovery <xref target="I-D.ietf-core-coap-dtls-alpn"/>.</t>
        <t>While it is up to the service to define the service's semantics,
this section applies to any service
whose use with CoAP is defined by a normative referencing this section:</t>
        <ul spacing="normal">
          <li>
            <t>The client tries the available services with their ALPNs and CoAP transports
according to its capabilities
and the priorities and mandatory parameters
as defined for Service Bindings.</t>
          </li>
          <li>
            <t>The service either defines a well-known path,
or it defines a Service Binding Parameter that describes the service's path on the described endpoint,
or it defines both (and the well-known path is the default in absence of the defined parameter).  </t>
            <t>
The value is a CBOR sequence <xref target="RFC8742"/> of text strings,
which represent Uri-Path options in a CoAP request,
or (equivalently) the path of a CRI reference
<xref target="I-D.ietf-core-href"/>.  </t>
            <t>
A parameter value that is not a well-formed CBOR sequence,
or any item is not a text string,
is considerd malformed.  </t>
            <t>
When expressed in text format, e.g. in DNS zone files,
the CBOR diagnostic notation <xref target="I-D.ietf-cbor-edn-literals"/> can be used.  </t>
            <t>
To access the service,
a client sets the text string values
of the used Service Binding parameter
as Uri-Path options in the request.  </t>
            <t>
If the resource is unavailable,
the client may continue with options that have a larger SvcPriority value associated
(if such a property exists in the discovery method).  </t>
            <t>
An example of such an option is <tt>docpath</tt>
as defined in <xref target="I-D.ietf-core-dns-over-coap"/>.
(As that document precedes this one,
it repeats the same rules explicitly rather than reusing these rules).</t>
          </li>
          <li>
            <t>A Service Binding is accompanied by a hostname:
For example,
this is the hostname of the Encrypted DNS Resolver or the Special-Use Domain Name
in the case of <xref target="RFC9462"/> lookups,
or the authentication-domain-name in case of <xref target="RFC9463"/> DHCP options or Router Advertisements.  </t>
            <t>
Unless its value is identical to the default value for Uri-Host
(which is the case on transports with Server Name Indication (SNI)),
the that name is added in the Uri-Host option.</t>
          </li>
          <li>
            <t>If the <tt>port</tt> Service Binding Parameter is set,
the Uri-Port option is set to the port that set in the port prefix of the query
(or the used CoAP transport's default port),
unless that is its default value anyway.</t>
          </li>
          <li>
            <t>No Proxy-Scheme option is set.</t>
          </li>
        </ul>
        <t>By following the rules of <xref section="6.5" sectionFormat="of" target="RFC7252"/>
or the equivalent rules for the respective CoAP transport,
<!-- I'd rather not need that, see https://github.com/core-wg/corrclar/issues/38 -->
the service can be translated into a URI.
This implies URI aliasing between the composed URIs of all transports
if any of the transports use different schemes.</t>
        <t>The rules for setting Uri-Host and Uri-Port result in the authority component of the URI
being equal to the Binding Authority defined in <xref target="RFC9461"/>.</t>
        <t>Note that since different security policies may apply to service discovery
and other application components that dereference URIs,
any connections established while using the service
and cache entries created by it
need to be treated carefully,
for example by using separate connection and cache pools.</t>
      </section>
      <section anchor="svcblit">
        <name>Expressing Service Parameters as literals</name>
        <t>A method for expressing Service Parameters in URIs that do not use registered names
is described in <xref target="newlit"/>.</t>
        <t>Among other things,
that mechanism allows encoding the full information obtained during service discovery in a URI
instead of just the one choice taken.
It is also required if different CoAP transports are using the same scheme
(as is recommended in <xref target="upcomingtransports"/>)
with IP address literals in URIs,
for which unlike for resolved names no service parameters are available.</t>
      </section>
    </section>
    <section anchor="upcomingtransports">
      <name>Guidance to upcoming transports</name>
      <t>When new transports are defined for CoAP,
it is recommended to use the "coap" scheme
(or "coaps" for TLS based transports).</t>
      <t>If the transport's identifiers are IP based and have identifiers typically resolved through DNS,
authors of new transports are encouraged to specify Service Binding records (<xref target="RFC9460"/>) for CoAP,
e.g., using an <tt>alpn</tt> or <tt>coaptransport</tt> parameter.
and if IP literals are relevant to the transport, to follow up on <xref target="newlit"/>.</t>
      <t>If the transport's native identifiers are compatible with the structure of the authority component of a URI,
those identifiers can be used as an authority as-is.
To help the host decide the resolution mechanism,
it may be helpful to register a subdomain of .arpa as described in <xref target="rfc3172"/>.
The guidence for users is to never attempt to resolve such a name,
and for the zone's implementation is to return NXDOMAIN unconditionally.</t>
      <t>For the purpose of specifying a transport protocol via Service Binding records, and to encourage
future authors more, this document specifies the <tt>coaptransport</tt> Service Parameter Key (SvcParamKey)
with the initial legal values "udp" and "tcp" which indicate either CoAP over UDP and CoAP over
TCP as the transport. The present of transport security is indicated by the <tt>alpn</tt> SvcParamKey. If
it the <tt>alpn</tt> SvcParamKey is not provided, but <tt>coaptransport</tt> is, the transport is unencrypted.<cref anchor="_1">Wondering if "udp" or "tcp" should be strings or numeric representations as value. The later
  would need an extra table or is there something we could reuse, e.g. from
  <xref target="I-D.ietf-core-href"/>?</cref></t>
      <t>If the transport's native identifiers are incompatible with that structure
(e.g. because they contain colons),
the document may define some transformation.</t>
      <t>If a transport's native identifiers are only local,
the zone .alt <xref target="rfc9476"/> may be used instead.</t>
      <t>For example,
CoAP over GATT <xref target="I-D.amsuess-core-coap-over-gatt"/>
removes the colons from Bluetooth Low Energy MAC addresses like 00:11:22:33:44:55
and combines them into authority compoennts such as <tt>001122334455.ble.arpa</tt>.
Slipmux <xref target="I-D.bormann-t2trg-slipmux"/>
might use the locally significant device name <tt>/dev/ttyUSB0</tt>
as <tt>coap://ttyUSB0.dev.alt/</tt>.</t>
      <t>URIs created from such names may not indicate the protocol uniquely:
Additional transports specified later may also provide CoAP services for the same name.
In the sense of <xref target="identifying"/>,
both transport would be identified by that URI.
That is not an issue as long as the protocols underneath the CoAP transport
provide a means of advertising the precise protocol used.
For example,
a hypothetical CoAP transport for BLE that is not GATT based
can be selected for the same scheme and authority based on data in the BLE advertisement.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <section anchor="security-context-propagation">
        <name>Security context propagation</name>
        <t>Clients need to strictly enforce the rules of <xref target="secctx-propagation"/>.
Failure to do so,
in particular using a thusly announced proxy based on a certificate that attests the proxy's name,
would allow attackers to circumvent the client's security expectation.</t>
        <t>When security is terminated at proxies (as is in DTLS and TLS),
a third party proxy can usually not satisfy this requirement;
these transports are limited to same-host proxies.</t>
      </section>
      <section anchor="proxy-foreign-advertisement">
        <name>Traffic misdirection</name>
        <t>Accepting arbitrary proxies,
even with security context propagation performed properly,
would allow attackers to redirect traffic through systems under their control.
Not only does that impact availability,
it also allows an attacker to observe traffic patterns.</t>
        <t>This affects both OSCORE and (D)TLS,
as neither protect the participants' network addresses.</t>
        <t>Other than the security context propagation rules,
there are no hard and general rules about when an advertised proxy is a suitable candidate.
Aspects for consideration are:</t>
        <ul spacing="normal">
          <li>
            <t>When no direct connection is possible
(e.g. because the resource to be accessed is served as coap+tcp and TCP is not implemented in the client,
or because the resource's host is available on IPv6 while the client has no default IPv6 route),
using a proxy is necessary if complete service disruption is to be avoided.  </t>
            <t>
While an adversary can cause such a situation (e.g. by manipulating routing or DNS entries),
such an adversary is usually already in a position to observe traffic patterns.</t>
          </li>
          <li>
            <t>A proxy advertised by the device hosting the resource to be accessed is less risky to use than one advertised by a third party.  </t>
            <t>
The <tt>/.well-known/core</tt> resource is regarded as a source of authoritative information on the endpoint's CoAP related metadata,
and can be queried early in the discovery process,
or queried for verification (with filtering applied) after discovery through an RD.
Other resources may be less trustworthy as they may be controlled by entities not trusted with the endpoint's traffic.</t>
          </li>
        </ul>
        <!-- Note that these aspects' applicability is mutually exclusive:
When the advertisement was obtained from the target host,
that needs to be reachable. -->

<t><xref target="ead"/> describes an extension to <xref target="I-D.ietf-lake-edhoc"/> by which the client can verify that the proxy used by the client is recognized by the server.
This is similar to querying <tt>/.well-known/core</tt> for any proxies advertised there,
but happens earlier in the connection establishment,
and leaves the decision whether the proxy is legitimate to the server.</t>
        <t>It only conveys information about the URI of the proxy.
The mapping of any host name inside it to an IP address,
or of an IP address to a routing decision,
is left to the security mechanisms of the respective layers.</t>
      </section>
      <section anchor="protecting-the-proxy">
        <name>Protecting the proxy</name>
        <t>A widely published statement about a host's availability as a proxy can cause many clients to attempt to use it.</t>
        <t>This is mitigated in well-behaved clients by observing the rate limits of <xref target="RFC7252"/>,
and by ceasing attempts to reach a proxy for the Max-Age of received errors.</t>
        <t>Operators can further limit ill-effects
by ensuring that their client systems do not needlessly use proxies advertised in an unsecured way,
and by providing own proxies when their clients need them<!-- in a sense, avoid having starving clients that grab any straw at connectivity -->.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA considerations</name>
      <section anchor="link-relation-types">
        <name>Link Relation Types</name>
        <t>IANA is asked to add two entries into the Link Relation Type Registry last updated in <xref target="RFC8288"/>:</t>
        <table anchor="tab-iana">
          <name>New Link Relation types</name>
          <thead>
            <tr>
              <th align="left">Relation Name</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">has-proxy</td>
              <td align="left">The link target can be used as a proxy to reach URIs inside the origin of the link context.</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">has-unique-proxy</td>
              <td align="left">Like has-proxy, and using this proxy implies scheme and host of the target.</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="resource-types">
        <name>Resource Types</name>
        <t>IANA is asked to add an entry into the "Resource Type (rt=) Link Target Attribute Values" registry under the Constrained RESTful Environments (CoRE) Parameters:</t>
        <t>[ The RFC Editor is asked to replace any occurrence of CPA-core.proxy with the actually registered attribute value. ]</t>
        <t>Attribute Value: core.proxy</t>
        <t>Description: Forward proxying services</t>
        <t>Reference: [ this document ]</t>
      </section>
      <section anchor="service-parameter-key-svcparamkey">
        <name>Service Parameter Key (SvcParamKey)</name>
        <t>IANA is NOT YET requested to add the following entries to the SVCB Service Parameters
registry (<xref target="RFC9460"/>). The definition of this parameter can be found in <xref target="upcomingtransports"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Number</th>
              <th align="left">Name</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">10 (suggested)</td>
              <td align="left">coaptransport</td>
              <td align="left">CoAP transport protocol</td>
            </tr>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">edhoc-cred</td>
              <td align="left">EDHOC credentials identifying the server</td>
            </tr>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">edhoc-info</td>
              <td align="left">EDHOC profile information</td>
            </tr>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">oauth-hints</td>
              <td align="left">Describes how to obtain a token at an ACE Authorization Server</td>
            </tr>
          </tbody>
        </table>
        <t>All entries have in common that their Reference is this this document, <xref target="svcparams"/>},
and that their change controller is IETF.</t>
      </section>
      <section anchor="iana-underscored">
        <name>Underscored and Globally Scoped DNS Node Names</name>
        <t>IANA is NOT YET requested to add the following entry to the Underscored and Globally Scoped DNS Node Names registry
(in the DNS Parameters group)
established in <xref target="RFC8552"/>
and thus enables its use with SVCB records:</t>
        <ul spacing="normal">
          <li>
            <t>SVCB, <tt>_coap</tt>, <xref target="svcb-discovery"/> of this document</t>
          </li>
        </ul>
        <t>The request for registration is deliberately not expressed at this point
because it is yet to be revisited whether the creation of a "COAP" RR
similar to the "HTTPS" RR would be preferable.</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>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <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="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="I-D.ietf-core-href">
          <front>
            <title>Constrained Resource Identifiers</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="24" month="July" year="2024"/>
            <abstract>
              <t>   The Constrained Resource Identifier (CRI) is a complement to the
   Uniform Resource Identifier (URI) that represents the URI components
   in Concise Binary Object Representation (CBOR) instead of in a
   sequence of characters.  This simplifies parsing, comparison, and
   reference resolution in environments with severe limitations on
   processing power, code size, and memory size.

   This RFC updates RFC 7595 to add a note on how the URI Schemes
   registry RFC 7595 describes cooperates with the CRI Scheme Numbers
   registry created by the present RFC.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present revision –16 of this draft continues -15 by picking up
   // more comments; it was made specifically for IETF 120.  This
   // revision still contains open issues and is intended to serve as a
   // snapshot.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-16"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="aliases" target="https://www.w3.org/TR/webarch/#uri-aliases">
          <front>
            <title>Architecture of the World Wide Web, Section 2.3.1 URI aliases</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="cooluris" target="https://www.w3.org/Provider/Style/URI">
          <front>
            <title>Cool URIs don't change</title>
            <author initials="T." surname="BL" fullname="Tim BL">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="lwm2m" target="https://omaspecworks.org/white-paper-lightweight-m2m-1-1/">
          <front>
            <title>White Paper – Lightweight M2M 1.1</title>
            <author>
              <organization>OMA SpecWorks</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="22" month="January" year="2024"/>
            <abstract>
              <t>   This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a
   very compact and lightweight authenticated Diffie-Hellman key
   exchange with ephemeral keys.  EDHOC provides mutual authentication,
   forward secrecy, and identity protection.  EDHOC is intended for
   usage in constrained scenarios and a main use case is to establish an
   OSCORE security context.  By reusing COSE for cryptography, CBOR for
   encoding, and CoAP for transport, the additional code size can be
   kept very low.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-23"/>
        </reference>
        <reference anchor="w3address" target="http://info.cern.ch/hypertext/WWW/Addressing/BNF.html#43">
          <front>
            <title>W3 address syntax: BNF</title>
            <author initials="T." surname="BL" fullname="Tim BL">
              <organization/>
            </author>
            <date year="1992" month="June" day="29"/>
          </front>
        </reference>
        <reference anchor="noproxy" target="https://about.gitlab.com/blog/2021/01/27/we-need-to-talk-no-proxy/">
          <front>
            <title>We need to talk: Can we standardize NO_PROXY?</title>
            <author initials="S." surname="Hu" fullname="Stan Hu">
              <organization/>
            </author>
            <date year="2021" month="January" day="27"/>
          </front>
        </reference>
        <reference anchor="evossl" target="https://www.digicert.com/blog/evolution-of-ssl">
          <front>
            <title>The Evolution of SSL and TLS</title>
            <author initials="E." surname="Baier" fullname="Elizabeth Baier">
              <organization/>
            </author>
            <date year="2015" month="February" day="02"/>
          </front>
        </reference>
        <reference anchor="SUIB" target="https://manysecured.net/wp-content/uploads/2022/09/ManySecured-SUIB-White-Paper.pdf">
          <front>
            <title>Router and IoT Vulnerabilities: Insecure by Design</title>
            <author>
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </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="I-D.bormann-t2trg-slipmux">
          <front>
            <title>Slipmux: Using an UART interface for diagnostics, configuration, and packet transfer</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universitaet Bremen TZI</organization>
            </author>
            <author fullname="Tobias Kaupat" initials="T." surname="Kaupat">
              <organization>Lobaro UG</organization>
            </author>
            <date day="4" month="November" year="2019"/>
            <abstract>
              <t>   Many research and maker platforms for Internet of Things
   experimentation offer a serial interface.  This is often used for
   programming, diagnostic output, as well as a crude command interface
   ("AT interface").  Alternatively, it is often used with SLIP
   (RFC1055) to transfer IP packets only.

   The present report describes how to use a single serial interface for
   diagnostics, configuration commands and state readback, as well as
   packet transfer.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-t2trg-slipmux-03"/>
        </reference>
        <reference anchor="I-D.amsuess-core-coap-over-gatt">
          <front>
            <title>CoAP over GATT (Bluetooth Low Energy Generic Attributes)</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="25" month="September" year="2024"/>
            <abstract>
              <t>   Interaction from computers and cell phones to constrained devices is
   limited by the different network technologies used, and by the
   available APIs.  This document describes a transport for the
   Constrained Application Protocol (CoAP) that uses Bluetooth GATT
   (Generic Attribute Profile) and its use cases.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-core-coap-over-gatt-07"/>
        </reference>
        <reference anchor="RFC8305">
          <front>
            <title>Happy Eyeballs Version 2: Better Connectivity Using Concurrency</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>Many communication protocols operating over the modern Internet use hostnames. These often resolve to multiple IP addresses, each of which may have different performance and connectivity characteristics. Since specific addresses or address families (IPv4 or IPv6) may be blocked, broken, or sub-optimal on a network, clients that attempt multiple connections in parallel have a chance of establishing a connection more quickly. This document specifies requirements for algorithms that reduce this user-visible delay and provides an example algorithm, referred to as "Happy Eyeballs". This document obsoletes the original algorithm description in RFC 6555.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8305"/>
          <seriesInfo name="DOI" value="10.17487/RFC8305"/>
        </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="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="I-D.amsuess-core-resource-directory-extensions">
          <front>
            <title>CoRE Resource Directory Extensions</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   A collection of extensions to the Resource Directory [rfc9176] that
   can stand on their own, and have no clear future in specification
   yet.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the Constrained RESTful
   Environments Working Group mailing list (core@ietf.org), which is
   archived at https://mailarchive.ietf.org/arch/browse/core/.

   Source for this draft and an issue tracker can be found at
   https://gitlab.com/chrysn/resource-directory-extensions.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-core-resource-directory-extensions-10"/>
        </reference>
        <reference anchor="I-D.ietf-lpwan-coap-static-context-hc">
          <front>
            <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Ana Minaburo" initials="A." surname="Minaburo">
              <organization>Acklio</organization>
            </author>
            <author fullname="Laurent Toutain" initials="L." surname="Toutain">
              <organization>Institut MINES TELECOM; IMT Atlantique</organization>
            </author>
            <author fullname="Ricardo Andreasen" initials="R." surname="Andreasen">
              <organization>Universidad de Buenos Aires</organization>
            </author>
            <date day="8" month="March" year="2021"/>
            <abstract>
              <t>This document defines how to compress Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework.  SCHC defines a header compression mechanism adapted for Constrained Devices.  SCHC uses a static description of the header to reduce the header's redundancy and size.  While RFC 8724 describes the SCHC compression and fragmentation framework, and its application for IPv6/UDP headers, this document applies SCHC to CoAP headers.  The CoAP header structure differs from IPv6 and UDP, since CoAP uses a flexible header with a variable number of options, themselves of variable length.  The CoAP message format is asymmetric: the request messages have a header format different from the format in the response messages.  This specification gives guidance on applying SCHC to flexible headers and how to leverage the asymmetry for more efficient compression Rules.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lpwan-coap-static-context-hc-19"/>
        </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>
        <reference anchor="RFC9463">
          <front>
            <title>DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="T. Reddy.K" initials="T." role="editor" surname="Reddy.K"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="N. Cook" initials="N." surname="Cook"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies new DHCP and IPv6 Router Advertisement options to discover encrypted DNS resolvers (e.g., DNS over HTTPS, DNS over TLS, and DNS over QUIC). Particularly, it allows a host to learn an Authentication Domain Name together with a list of IP addresses and a set of service parameters to reach such encrypted DNS resolvers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9463"/>
          <seriesInfo name="DOI" value="10.17487/RFC9463"/>
        </reference>
        <reference anchor="I-D.lenders-core-dnr">
          <front>
            <title>Discovery of Network-designated OSCORE-based Resolvers: Problem Statement</title>
            <author fullname="Martine Sophie Lenders" initials="M. S." surname="Lenders">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </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>TUD Dresden University of Technology &amp; Barkhausen Institut</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   This document states problems when designing DNS SVCB records to
   discover endpoints that communicate over Object Security for
   Constrained RESTful Environments (OSCORE) [RFC8613].  As a
   consequence of learning about OSCORE, this discovery will allow a
   host to learn both CoAP servers and DNS over CoAP resolvers that use
   OSCORE to encrypt messages and Ephemeral Diffie-Hellman Over COSE
   (EDHOC) [RFC9528] for key exchange.  Challenges arise because SVCB
   records are not meant to be used to exchange security contexts, which
   is required in OSCORE scenarios.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lenders-core-dnr-03"/>
        </reference>
        <reference anchor="I-D.amsuess-t2trg-onion-coap">
          <front>
            <title>Using onion routing with CoAP</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <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="17" month="May" year="2024"/>
            <abstract>
              <t>   The CoAP protocol was designed with direct connections and proxies in
   mind.  This document defines mechanisms by which chains of proxies
   can be set up.  In combination, they enable the operation of hidden
   services and client similar to how Tor (The Onion Router) enables it
   for TCP based protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-t2trg-onion-coap-02"/>
        </reference>
        <reference anchor="I-D.ietf-core-coap-dtls-alpn">
          <front>
            <title>ALPN ID Specification for CoAP over DTLS</title>
            <author fullname="Martine Sophie Lenders" initials="M. S." surname="Lenders">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </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>TUD Dresden University of Technology &amp; Barkhausen Institut</organization>
            </author>
            <date day="5" month="September" year="2024"/>
            <abstract>
              <t>   This document specifies an Application-Layer Protocol Negotiation
   (ALPN) ID for transport-layer-secured CoAP services.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-dtls-alpn-00"/>
        </reference>
        <reference anchor="RFC6698">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schlyter" initials="J." surname="Schlyter"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>Encrypted communication on the Internet often uses Transport Layer Security (TLS), which depends on third parties to certify the keys used. This document improves on that situation by enabling the administrators of domain names to specify the keys used in that domain's TLS servers. This requires matching improvements in TLS client software, but no change in TLS server software. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6698"/>
          <seriesInfo name="DOI" value="10.17487/RFC6698"/>
        </reference>
        <reference anchor="I-D.ietf-ace-edhoc-oscore-profile">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC) and Object Security for Constrained Environments (OSCORE) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  It
   utilizes Ephemeral Diffie-Hellman Over COSE (EDHOC) for achieving
   mutual authentication between an ACE-OAuth Client and Resource
   Server, and it binds an authentication credential of the Client to an
   ACE-OAuth access token.  EDHOC also establishes an Object Security
   for Constrained RESTful Environments (OSCORE) Security Context, which
   is used to secure communications when accessing protected resources
   according to the authorization information indicated in the access
   token.  This profile can be used to delegate management of
   authorization information from a resource-constrained server to a
   trusted host with less severe limitations regarding processing power
   and memory.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-06"/>
        </reference>
        <reference anchor="I-D.tiloca-lake-app-profiles">
          <front>
            <title>Coordinating the Use of Application Profiles for Ephemeral Diffie-Hellman Over COSE (EDHOC)</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="21" month="October" year="2024"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol Ephemeral Diffie-
   Hellman Over COSE (EDHOC) requires certain parameters to be agreed
   out-of-band, in order to ensure its successful completion.  To this
   end, application profiles specify the intended use of EDHOC to allow
   for the relevant processing and verifications to be made.  This
   document defines a number of means to coordinate the use and
   discovery of EDHOC application profiles.  Also, it defines a
   canonical, CBOR-based representation that can be used to describe,
   distribute, and store EDHOC application profiles.  Finally, this
   document defines a set of well-known EDHOC application profiles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tiloca-lake-app-profiles-03"/>
        </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.ietf-cbor-edn-literals">
          <front>
            <title>CBOR Extended Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="1" month="September" year="2024"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR) (STD 94, RFC 8949) is
   a data format whose design goals include the possibility of extremely
   small code size, fairly small message size, and extensibility without
   the need for version negotiation.

   In addition to the binary interchange format, CBOR from the outset
   (RFC 7049) defined a text-based "diagnostic notation" in order to be
   able to converse about CBOR data items without having to resort to
   binary data.  RFC 8610 extended this into what is known as Extended
   Diagnostic Notation (EDN).

   This document consolidates the definition of EDN, sets forth a
   further step of its evolution, and is intended to serve as a single
   reference target in specifications that use EDN.

   It specifies an extension point for adding application-oriented
   extensions to the diagnostic notation.  It then defines two such
   extensions that enhance EDN with text representations of epoch-based
   date/times and of IP addresses and prefixes (RFC 9164).

   A few further additions close some gaps in usability.  The document
   modifies one extension originally specified in Appendix G.4 of RFC
   8610 to enable further increasing usability.  To facilitate tool
   interoperation, this document specifies a formal ABNF grammar, and it
   adds media types.


   // The present revision -12 reflects the branch "roll-up" in the
   // repository, an attempt to contain the entire specification of EDN
   // in this document, instead of describing updates to the existing
   // documents RFC 8949 and RFC 8610.  While the WG hasn't taken a
   // decision to follow this updated editorial approach, the feedback
   // has been sufficiently positive that the author believes it is not
   // misleading to make this revision available as the current WG
   // Internet-Draft as well.  That said, this is still a snapshot.  The
   // editorial work on the branch "roll-up" is not complete.  Content
   // will continue to move between sections.  The exact reflection of
   // this document being a replacement for both Section 8 of RFC 8949
   // and Appendix G of RFC 8610 needs to be recorded in the metadata
   // and in abstract and introduction.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-12"/>
        </reference>
        <reference anchor="RFC7291">
          <front>
            <title>DHCP Options for the Port Control Protocol (PCP)</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair"/>
            <author fullname="R. Penno" initials="R." surname="Penno"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document specifies DHCP (IPv4 and IPv6) options to configure hosts with Port Control Protocol (PCP) server IP addresses. The use of DHCPv4 or DHCPv6 depends on the PCP deployment scenarios. The set of deployment scenarios to which DHCPv4 or DHCPv6 can be applied is outside the scope of this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7291"/>
          <seriesInfo name="DOI" value="10.17487/RFC7291"/>
        </reference>
        <reference anchor="I-D.ietf-core-dns-over-coap">
          <front>
            <title>DNS over CoAP (DoC)</title>
            <author fullname="Martine Sophie Lenders" initials="M. S." surname="Lenders">
              <organization>TUD Dresden University of Technology</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>NeuralAgent GmbH</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>TUD Dresden University of Technology &amp; Barkhausen Institut</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <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-ietf-core-dns-over-coap-09"/>
        </reference>
        <reference anchor="RFC9462">
          <front>
            <title>Discovery of Designated Resolvers</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document defines Discovery of Designated Resolvers (DDR), a set of mechanisms for DNS clients to use DNS records to discover a resolver's encrypted DNS configuration. An Encrypted DNS Resolver discovered in this manner is referred to as a "Designated Resolver". These mechanisms can be used to move from unencrypted DNS to encrypted DNS when only the IP address of a resolver is known. These mechanisms are designed to be limited to cases where Unencrypted DNS Resolvers and their Designated Resolvers are operated by the same entity or cooperating entities. It can also be used to discover support for encrypted DNS protocols when the name of an Encrypted DNS Resolver is known.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9462"/>
          <seriesInfo name="DOI" value="10.17487/RFC9462"/>
        </reference>
        <reference anchor="RFC9461">
          <front>
            <title>Service Binding Mapping for DNS Servers</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>The SVCB DNS resource record type expresses a bound collection of endpoint metadata, for use when establishing a connection to a named service. DNS itself can be such a service, when the server is identified by a domain name. This document provides the SVCB mapping for named DNS servers, allowing them to indicate support for encrypted transport protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9461"/>
          <seriesInfo name="DOI" value="10.17487/RFC9461"/>
        </reference>
        <reference anchor="rfc3172">
          <front>
            <title>Management Guidelines &amp; Operational Requirements for the Address and Routing Parameter Area Domain ("arpa")</title>
            <author fullname="G. Huston" initials="G." role="editor" surname="Huston"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo describes the management and operational requirements for the address and routing parameter area ("arpa") domain. 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="52"/>
          <seriesInfo name="RFC" value="3172"/>
          <seriesInfo name="DOI" value="10.17487/RFC3172"/>
        </reference>
        <reference anchor="rfc9476">
          <front>
            <title>The .alt Special-Use Top-Level Domain</title>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document reserves a Top-Level Domain (TLD) label "alt" to be used in non-DNS contexts. It also provides advice and guidance to developers creating alternative namespaces.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9476"/>
          <seriesInfo name="DOI" value="10.17487/RFC9476"/>
        </reference>
        <reference anchor="RFC8552">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="RFC7838">
          <front>
            <title>HTTP Alternative Services</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <author fullname="J. Reschke" initials="J." surname="Reschke"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This document specifies "Alternative Services" for HTTP, which allow an origin's resources to be authoritatively available at a separate network location, possibly accessed with a different protocol configuration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7838"/>
          <seriesInfo name="DOI" value="10.17487/RFC7838"/>
        </reference>
        <reference anchor="I-D.amsuess-t2trg-rdlink">
          <front>
            <title>rdlink: Robust distributed links to constrained devices</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="23" month="September" year="2019"/>
            <abstract>
              <t>   Thing to thing communication in Constrained RESTful Environments
   (CoRE) relies on URIs to link to servers.  Next to hierarchical
   configuration and short-lived IP addresses, this document introduces
   a naming scheme for devices based on cryptographic identifiers.  A
   special purpose domain is reserved for expressing those identifiers,
   and mechanisms for constrained devices to announce their names and to
   look them up are described.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-t2trg-rdlink-01"/>
        </reference>
        <reference anchor="RFC2616">
          <front>
            <title>Hypertext Transfer Protocol -- HTTP/1.1</title>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="J. Gettys" initials="J." surname="Gettys"/>
            <author fullname="J. Mogul" initials="J." surname="Mogul"/>
            <author fullname="H. Frystyk" initials="H." surname="Frystyk"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <date month="June" year="1999"/>
            <abstract>
              <t>HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as "HTTP/1.1", and is an update to RFC 2068. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2616"/>
          <seriesInfo name="DOI" value="10.17487/RFC2616"/>
        </reference>
        <reference anchor="RFC5952">
          <front>
            <title>A Recommendation for IPv6 Address Text Representation</title>
            <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text. While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users. This document defines a canonical textual representation format. It does not define a format for internal storage, such as within an application or database. It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5952"/>
          <seriesInfo name="DOI" value="10.17487/RFC5952"/>
        </reference>
        <reference anchor="RFC1123">
          <front>
            <title>Requirements for Internet Hosts - Application and Support</title>
            <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
            <date month="October" year="1989"/>
            <abstract>
              <t>This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="3"/>
          <seriesInfo name="RFC" value="1123"/>
          <seriesInfo name="DOI" value="10.17487/RFC1123"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </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="I-D.silverajan-core-coap-protocol-negotiation">
          <front>
            <title>CoAP Protocol Negotiation</title>
            <author fullname="Bill Silverajan" initials="B." surname="Silverajan">
              <organization>TUT</organization>
            </author>
            <author fullname="Mert Ocak" initials="M." surname="Ocak">
              <organization>Ericsson</organization>
            </author>
            <date day="2" month="July" year="2018"/>
            <abstract>
              <t>   CoAP has been standardised as an application-level REST-based
   protocol.  When multiple transport protocols exist for exchanging
   CoAP resource representations, this document introduces a way forward
   for CoAP endpoints as well as intermediaries to agree upon alternate
   transport and protocol configurations as well as URIs for CoAP
   messaging.  Several mechanisms are proposed: Extending the CoRE
   Resource Directory with new parameter types, introducing a new CoAP
   Option with which clients can interact directly with servers without
   needing the Resource Directory, and finally a new CoRE Link Attribute
   allowing exposing alternate locations on a per-resource basis.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-silverajan-core-coap-protocol-negotiation-09"/>
        </reference>
      </references>
    </references>
    <?line 1172?>

<section anchor="change-log">
      <name>Change log</name>
      <t>Since draft-ietf-core-transport-indication-06:</t>
      <ul spacing="normal">
        <li>
          <t>Split introduction into terminology (with new definitions), goals and concepts.</t>
        </li>
        <li>
          <t>Add principle of operation into abstract, elevating SVCB and has-proxy to equally ranked sources of endpoint information.</t>
        </li>
        <li>
          <t>Restructure document to split overview and operations from the concrete methods of obtaining endpoints.</t>
        </li>
        <li>
          <t>Add is-unique-proxy SVCB parameter equivalent to has-unique-proxy relation.</t>
        </li>
        <li>
          <t>Remove <tt>_coaps</tt> service, describing <tt>_coap</tt> as applying to all CoAP transports.</t>
        </li>
        <li>
          <t>Add SVCB to abstract.</t>
        </li>
        <li>
          <t>Remove distracting text on URIs identifying transports/endpoints.</t>
        </li>
        <li>
          <t>Editorial changes.</t>
        </li>
        <li>
          <t>IANA considerations: Set change controller to IETF.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-05:</t>
      <ul spacing="normal">
        <li>
          <t>Semantics for where a has-proxy applies were changed from "wherever there is a <tt>hosts</tt> relation" to "across the same origin".  </t>
          <t>
The <tt>hosts</tt> relation has received complaints about its complexity,
and there were no strong voices in either direction during or after IETF119 when the question has been asked;
going for the easier version.</t>
        </li>
        <li>
          <t>Use of SVCB is added as a section. Underscore prefixes are registered for CoAP, enabling the use of SVCB DNS records for applications that opt in to it (rather than processing it as an alternative history).  </t>
          <t>
While the alternative history section was appreciated during IETF119,
the authors found it highly impractical to provide SVCB ground work without having the actual registrations
(it would have worked only because DNS discovery acts on a separate <tt>_dns</tt> prefix anyway),
and chose the consistent approach of allowing SVCB lookups.</t>
        </li>
        <li>
          <t>Material from the DNS and DNR for CoAP documents was moved in (and overhauled in the process):  </t>
          <ul spacing="normal">
            <li>
              <t>Constructing CoAP requests from Service Parameters that did not result from a host name lookup is described.</t>
            </li>
            <li>
              <t>The coaptransport SVCB parameter is defined.</t>
            </li>
            <li>
              <t>SVCB hints for ACE/OAuth are defined.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Section on how a host can tell that Uri-Host is optional was moved from Open Questions into a section.  </t>
          <t>
This had been around for ages,
and gathering some more experience with the matter,
looks like the obvious approach.</t>
        </li>
        <li>
          <t>Editorial:  </t>
          <ul spacing="normal">
            <li>
              <t>Style for unallocated registrations changed from TBD to CPA</t>
            </li>
            <li>
              <t>References updated</t>
            </li>
            <li>
              <t>Tooling updates</t>
            </li>
            <li>
              <t>Minor fixes</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-04:</t>
      <ul spacing="normal">
        <li>
          <t>Not just the scheme, but also the authority value influences the transport selection.
          </t>
          <ul spacing="normal">
            <li>
              <t>Add guidance section for new transports.</t>
            </li>
            <li>
              <t>Point out that registerd names already can fan out to different addresses.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Rephrase and simplify security considerations, especially by limiting unique proxying for TLS.</t>
        </li>
        <li>
          <t>Add recommendation to new scheme authors to use "coap"/"coaps" and let the resolution process guide the selection.
          </t>
          <ul spacing="normal">
            <li>
              <t>Remove proxy-schemes attribute from core.proxy because of its greatly reduced value.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Update "Related work" appendix to cover SVCB instead of SRV records</t>
        </li>
        <li>
          <t>Rename to "Transport Indication", using "protocol" only for other protocols, in established phrases, or when referring to CoAP as a general protocol.</t>
        </li>
        <li>
          <t>Add note linking CoAP-over-WS's .well-known/coap to dohpath</t>
        </li>
        <li>
          <t>Remove OSCORE vs. unique-proxy open point</t>
        </li>
        <li>
          <t>EDHOC EAD: Describe response option content</t>
        </li>
        <li>
          <t>Editorial updates</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-03:</t>
      <ul spacing="normal">
        <li>
          <t>Added appendices on alternative history and Literals beyond IP addresses.
The remaining document was not brought in sync with those new parts.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-02:</t>
      <ul spacing="normal">
        <li>
          <t>Added EAD appendix, adjusted security considerations to match.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-01:</t>
      <ul spacing="normal">
        <li>
          <t>Simplify same-host proxy behavior by referring to existing RFC7252 mandate.</t>
        </li>
        <li>
          <t>proxy-links= lookup: Refer to prior art.</t>
        </li>
      </ul>
      <t>Since draft-ietf-core-transport-indication-00:</t>
      <ul spacing="normal">
        <li>
          <t>Add section on canonical URIs that are not necessarily reachable.</t>
        </li>
        <li>
          <t>Clarify that the the "hosts" relation is followed transitively.</t>
        </li>
        <li>
          <t>Cross reference with compatible multicast-notifications concept.</t>
        </li>
      </ul>
      <t>Since draft-amsuess-core-transport-indication-03:</t>
      <ul spacing="normal">
        <li>
          <t>No changes (merely changing the name after WG adoption)</t>
        </li>
      </ul>
      <t>Since -02 (mainly processing reviews from Marco and Klaus):</t>
      <ul spacing="normal">
        <li>
          <t>Acknowledge that 'coap://hostname/' is not the proxy but a URI that (in a particular phrasing) is used to stand in for the proxy's address (while it regularly identifies a resurce on the server)</t>
        </li>
        <li>
          <t>Security: Referencing traffic misdirection already in the first security block.</t>
        </li>
        <li>
          <t>Security: Add (incomplete) considerations for unique-proxy case.</t>
        </li>
        <li>
          <t>Narrow down "unique" proxy semantics to those properties used by the client, allowing unique proxies to be co-hosted with forward proxies.</t>
        </li>
        <li>
          <t>"Client picked proxies" clarified to merely illustrate how this is compatible with them.</t>
        </li>
        <li>
          <t>Use of "hosts" relation sharpened.</t>
        </li>
        <li>
          <t>Precision on how this does and does not consider changing transports.</t>
        </li>
        <li>
          <t>"Related work" section demoted to appendix.</t>
        </li>
        <li>
          <t>Add note on DTLS session resumption.</t>
        </li>
        <li>
          <t>Variable renaming.</t>
        </li>
        <li>
          <t>Various editorial fixes.</t>
        </li>
      </ul>
      <t>Since -01:</t>
      <ul spacing="normal">
        <li>
          <t>Removed suggestion for generally trusted proxies;
now stating that with (D)TLS,
"a third party proxy can usually not satisfy [the security context propagation requirement]".</t>
        </li>
        <li>
          <t>State more clearly that valid cache entries for resources aliased through has-unique-proxy can be used.</t>
        </li>
        <li>
          <t>Added considerations for Multipath TCP.</t>
        </li>
        <li>
          <t>Added concrete suggestion and example for advertisement of general proxies.</t>
        </li>
        <li>
          <t>Added concrete suggestion for RD lookup extension that provides proxies.</t>
        </li>
        <li>
          <t>Minor editorial and example changes.</t>
        </li>
      </ul>
      <t>Since -00:</t>
      <ul spacing="normal">
        <li>
          <t>Added introduction</t>
        </li>
        <li>
          <t>Added examples</t>
        </li>
        <li>
          <t>Added SCHC analogy</t>
        </li>
        <li>
          <t>Expanded security considerations</t>
        </li>
        <li>
          <t>Added guidance on choice of transport, and canonical addresses</t>
        </li>
        <li>
          <t>Added subsection on interaction with a Resource Directory</t>
        </li>
        <li>
          <t>Added comparisons with related work, including rdlink and DNS-SD sketches</t>
        </li>
        <li>
          <t>Added IANA considerations</t>
        </li>
        <li>
          <t>Added section on open questions</t>
        </li>
      </ul>
    </section>
    <section anchor="related-work-and-applicability-to-related-fields">
      <name>Related work and applicability to related fields</name>
      <section anchor="on-http">
        <name>On HTTP</name>
        <t>The mechanisms introduced here are similar to the Alt-Svc header of <xref target="RFC7838"/>
in that they do not create different application-visible addresses,
but provide dispatch through lower transport implementations.</t>
        <t>In HTTP, different versions of the protocol (i.e., different transports)
are distinguished using a protocol identifier equivalent to an ALPN.
This works well because all relevant transports use transport layer security and thus can use ALPNs.
In contrast, the currently specified CoAP transports predate ALPNs,
and specified per-transport schemes, which enable the use of URIs that indicate transports.</t>
        <t>To accommodate the message size constraints typical of CoRE environments,
and accounting for the differences between HTTP headers and CoAP options,
information is delivered once at discovery time.</t>
        <t>Using the has-proxy and has-unique-proxy with HTTP URIs as the context is NOT RECOMMENDED;
the HTTP provisions of the Alt-Svc header and ALPN are preferred.</t>
      </section>
      <section anchor="using-dns">
        <name>Using DNS</name>
        <t>DNS Service Binding resource records (SVCB RRs)
described in <xref target="RFC9460"/> can carry many of the details otherwise negotiated using the proxy relations.
In HTTP, they can be used in a way similar to Alt-Svc headers.</t>
        <t>SVCB records were not specified when CoAP was specified for TCP.</t>
        <t>If at any point SVCB records for CoAP are defined,
name resolution produces a set of transport details that can be used immediately
without the need for a <tt>has-proxy</tt> link.
Explicit <tt>has-proxy</tt> links would still be relevant for third party advertised proxies.</t>
      </section>
      <section anchor="using-names-outside-regular-dns">
        <name>Using names outside regular DNS</name>
        <t>Names that are resolved through different mechanisms than DNS,
or names which are defined within the scope of DNS but have no universally valid answers to A/AAAA requests,
can be advertised using the relation types defined here and CoAP discovery.</t>
        <t>In <xref target="fig-rdlink"/>, a server using a cryptographic name as described in <xref target="I-D.amsuess-t2trg-rdlink"/> is discovered and used.</t>
        <figure anchor="fig-rdlink">
          <name>Obtaining a sensor value from a local device with a global name</name>
          <artwork><![CDATA[
Req: to [ff02::fd]:5683 on UDP
Code: GET
Uri-Path: /.well-known/core
Uri-Query: rel=has-proxy
Uri-Query: anchor=coap://nbswy3dpo5xxe3denbswy3dpo5xxe3de.ab.rdlink.arpa

Res: from [2001:db8::1]:5683
Content-Format: application/link-format
Payload:
<coap+tcp://[2001:db8::1]>;rel=has-unique-proxy;
  anchor="coap://nbswy3dpo5xxe3denbswy3dpo5xxe3de.ab.rdlink.arpa"


Req: to [2001:db8::1]:5683 on TCP
Code: GET
OSCORE: ...
Uri-Path: /sensors/temp
Observe: 0

Res: 2.05 Content
OSCORE: ...
Observe: 0
Payload:
39.1°C
]]></artwork>
        </figure>
      </section>
      <section anchor="multipath-tcp">
        <name>Multipath TCP</name>
        <t>When CoAP-over-TCP is used over Multipath TCP
and no Uri-Host option is sent,
the implicit assumption is that there is aliasing between URIs containing any of the endpoints' addresses.</t>
        <t>As these are negotiated within MPTCP,
this works independently of this document's mechanisms.
As long as all the server's addresses are equally reachable,
there is no need to advertise multiple addresses that can later be discovered through MPTCP anyway.
When advertisements are long-lived and there is no single more stable address,
several available addresses can be advertised (independently of whether MPTCP is involved or not).
If a client uses an address that is merely a proxy address (and not a unique proxy address),
but during MPTCP finds out that the network location being accessed is actually an MPTCP alternative address of the used one,
the client MAY forego sending of the Proxy-Scheme and Uri-Path option.</t>
        <t>[ This follows from multiple addresses being valid for that TCP connection;
at some point we may want to say something about what that means for the default value of the Uri-Host option --
maybe something like "has the default value of any of the associated addresses, but the server may only enable MPTCP if there is implicit aliasing between all of them" (similar to OSCORE's statement)?  ]</t>
        <t>[ TBD: Do we need a section analog to this that deals with (D)TLS session resumption in absence of SNI? ]</t>
      </section>
    </section>
    <section anchor="open-questions-further-ideas">
      <name>Open Questions / further ideas</name>
      <ul spacing="normal">
        <li>
          <t>Advertising under a stable name:  </t>
          <t>
If a host wants to advertise its host name rather than its IP address during multicast, how does it best do that?  </t>
          <t>
Options, when answering from 2001:db8::1 to a request to ff02::fd are:  </t>
          <artwork><![CDATA[
<coap://myhostname/foo>,...,
<coap://[2001:db8::1]>;rel=has-unique-proxy;anchor="coap://myhostname"
]]></artwork>
          <t>
which is verbose but formally clear, and  </t>
          <artwork><![CDATA[
</foo>,...,
<coap://[2001:db8::1]>;rel=has-unique-proxy;anchor="coap://myhostname"
]]></artwork>
          <t>
which is compatible with unaware clients,
but its correctness with respect to canonical URIs needs to be argued by the client, in this sequence  </t>
          <ul spacing="normal">
            <li>
              <t>understanding the has-unique-proxy line,</t>
            </li>
            <li>
              <t>understanding that the request that went to 2001:db8::1 was really a Proxy-Scheme/Uri-Host-elided version of a request to coap://myhostname, and then</t>
            </li>
            <li>
              <t>processing any relative reference with this new base in mind.</t>
            </li>
          </ul>
          <t>
(Not that it'd need to happen in software in that sequence,
but that's the sequence needed to understand how the <tt>/foo</tt> here is really <tt>coap://myhostname/foo</tt>).  </t>
          <t>
If CoRAL is used during discovery, a base directive or reverse relation to has-unique-proxy would make this easier.</t>
        </li>
      </ul>
    </section>
    <section anchor="ead">
      <name>EDHOC EAD for verifying legitimate proxies</name>
      <t>This document sketches an extension to <xref target="I-D.ietf-lake-edhoc"/> that informs the server of the public address the client is using,
allowing it to detect undesired reverse proxies.</t>
      <t>[ This section is immature, and written up as a discussion starting point. Further research into prior art is still necessary. ]</t>
      <t>The External Authorization Data (EAD) item with name "Proxy CRI", label 24-CPA, is defined for use with messages 1, 2 and 3.</t>
      <t>A client can set this label in uncritical form, followed by a CRI (<xref target="I-D.ietf-core-href"/>) that is CBOR-encoded in a byte string as a CBOR sequence.
The transport indicated by the URI is the proxy the client chose from information advertised about the server.</t>
      <t>If a server can not determine its set of legitimate proxies,
it ignores the option (as does any EDHOC implementation that is unaware of it).</t>
      <t>If it recognizes the CRI as belonging to a legitimate proxy,
it places the empty label in its non-critical form in the next message to confirm the proxy choice.
Otherwise, it places the label in its critical form, either empty or containing a recommended CRI.
The client may then decide to discontinue using the proxy,
or to use more extensive padding options to sidestep the attack.
Both the client and the server may alert their administrators of a possible traffic misdirection.</t>
      <t>[ While using an EDHOC EAD is suitable for connection setup,
   such a mechanism may also be useful at a later time,
   eg. to re-check a server's address after a name change;
   establishing an equivalent CoAP option is being considered,
   also oin light of the discussion around https://github.com/core-wg/corrclar/pull/40 and https://github.com/core-wg/groupcomm-proxy/issues/3.
   ]</t>
    </section>
    <section anchor="newlit">
      <name>Literals beyond IP addresses</name>
      <t>[
This section is placed here preliminarily:
After initial review in CoRE, this may be better moved into a separate document aiming for a wider IETF audience.
]</t>
      <section anchor="motivation-for-new-literal-ish-names">
        <name>Motivation for new literal-ish names</name>
        <t>IP literals were part of URIs from the start <xref target="w3address"/>.
Initially, they were equivalent to host names in their expressiveness,
save for their inherent difference that the former can be used without a shared resolver,
and the latter can be switched to a different network address.</t>
        <t>This equivalence got lost gradually:
Certificates for TLS (its precursor SSL has been available since 1995 <xref target="evossl"/>)
<!-- TBD cite - https://en.wikipedia.org/wiki/HTTPS or  ? -->
have only practically been available to host names.
The Host header introduced in HTTP 1.1 <xref section="14.23" sectionFormat="of" target="RFC2616"/>
introduced name based virtual hosting in 1999.
DANE <xref target="RFC6698"/>, which provides TLS public keys augmenting the or outside of the public key infrastructure,
is only available for host names resolved through DNSSEC.
SVCB records <xref target="RFC9460"/> introduced in 2023
allow starting newer HTTP transports without going through HTTP/1.1 first,
enables load balancing, fail-over,
and enable Encrypted Client Hello --
again, only for host names resolved through DNS.</t>
        <t>This document proposes an expression for the host component of a URI
that fills that gap.
Note that no attempt is yet made to register <tt>service.arpa</tt> in the .ARPA Zone Management;
that name is used only for the purpose of discussion.</t>
        <t><cref anchor="prelim">The structure and even more the syntax used here is highly preliminary.
They serves to illustrate that the desired properties can be obtained,
and do not claim to be optimal.
As one of many aspects, they are missing considerations for normalization
and for internationalization.</cref></t>
      </section>
      <section anchor="structure-of-servicearpa">
        <name>Structure of <tt>service.arpa</tt></name>
        <t>Names under service.arpa are structured into
an optional custom prefix,
an ordered list of key-value component pairs,
and the common suffix <tt>service.arpa</tt>.</t>
        <t>The custom prefix can contain user defined components.
The intended use is labelling, and to differentiate services provided by a single host.
Any data is allowed within the structure of a URI (ABNF reg-name) and DNS name rules (63 bytes per segment).
(While not ever carried by DNS,
this upholds the constraints of DNS for names.
That decision may be revised later,
but is upheld while demonstrating that the desired properties can be obtained).</t>
        <t>Component pairs consist of a registered component type
(no precise registry is proposed at this early point)
followed by encoded data.
The component type "--" is special in that it concatenates the values to its left and to its right,
creating component values that may exceed 63 bytes in length.</t>
        <t>Initial component types are:</t>
        <ul spacing="normal">
          <li>
            <t>"6": The value encodes an IPv6 address
in <xref target="RFC5952"/> format, with the colon character (":") replaced with a dash ("-").  </t>
            <t>
It indicates an address of a host providing the service.  </t>
            <t>
If any address information is present,
a client SHOULD use that information to access the service.</t>
          </li>
          <li>
            <t>"4": The value encodes an IPv4 address
in dotted decimal format <xref target="RFC1123"/>, with the dot character (".") replaced with a dash ("-").  </t>
            <t>
It indicates an address of a host providing the service.</t>
          </li>
          <li>
            <t>"tlsa": The data of a DNS TLSA record <xref target="RFC6698"/> encoded in base32 <xref target="RFC4648"/>.  </t>
            <t>
Depending on the usage, this describes TLS credentials through which the service can be authenticated.  </t>
            <t>
If present,
a client MUST establish a secure connection,
and MUST fail the connection if the TLSA record's requirements are not met.</t>
          </li>
          <li>
            <t>"edhoc-cred", "edhoc-info", "oauth-info": SvcbParams in base32 encoding of their wire format.</t>
          </li>
          <li>
            <t>"coaptransport": SvcbParam in its text encoding.</t>
          </li>
          <li>
            <t>"s": Other Service Parameters that do not have an explicit component type.
SvcbParams in base32 encoding of their wire format.  </t>
            <t>
TBD: There is likely a transformation of the parameters' presentation format that is compatible with the requirements of the authority component,
but this will require some more work on the syntax.  </t>
            <t>
If present,
a client SHOULD use these hints to establish a connection.  </t>
            <t>
TBD: Encoding only the SvcParams and not priorities and targets appears to be the right thing to do for the immediate record,
but does not enable load balancing and failover.
Further work is required to explore how those can be expressed,
and how data pertaining to the target can be expressed,
possibly in a nested structure.</t>
          </li>
        </ul>
      </section>
      <section anchor="syntax-of-servicearpa">
        <name>Syntax of <tt>service.arpa</tt></name>
        <sourcecode type="abnf"><![CDATA[
name = [ custom ".-." ] *(component) "service.arpa"

custom = reg-name
component = 1*63nodot "." comptype "."
comptype = nodotnodash /  2*63nodot

; unreserved/subdelims without dot
nodot  = nodotnodash / "-"
; unreserved/subdelims without dot or dash
nodotnodash = ALPHA / DIGIT / "_" / "~" / sub-delims

; reg-name and sub-delims as in RFC3986
]]></sourcecode>
        <t>Due to <xref target="RFC3986"/>'s rules,
all components are case insensitive and canonically lowercase.</t>
        <t>Note that while using the IPvFuture mechanism of <xref target="RFC3986"/> would avoid compatibility issues around the 63 character limit
and some of the character restrictions,
it would not resolve the larger limitation of case insensitivity.</t>
      </section>
      <section anchor="processing-servicearpa">
        <name>Processing <tt>service.arpa</tt></name>
        <t>A client accessing a resource under a service.arpa name
does not consult DNS,
but obtains information equivalent to the results of a DNS query from parsing the name.</t>
        <t>DNS resolvers should refuse to resolve service.arpa names.
(They would have all the information needed to produce sensible results,
but operational aspects would need a lot of consideration;
future versions of this document may revise this).</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>TBD: For SvcParams, the examples are inconsistent with the base32 recommendation;
they serve to explore the possible alternatives.</t>
        <ul spacing="normal">
          <li>
            <t>http://s.alpn_h2c.6.2001-db8--1.service.arpa/ -- The server is reachable on 2001:db8::1 using HTTP/2</t>
          </li>
          <li>
            <t>https://mail.-.tlsa.amaqckrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrk.service.arpa/ -- No address information is provided, the client needs to resort to other discovery mechanisms.
Any server is eligible to serve the resource if it can present a (possibly self-signed) certificate whose public key SHA256 matches the encoded value.
The "mail.-." part is provided to the server as part of the Host header,
and can be used for name based virtual hosting.</t>
          </li>
          <li>
            <t>coap://coaptransport.tcp.edhoc-cred.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgyr.--.ai3ouj4a.6.2001-db8--1.service.arpa/ -- The server is reachable using CoAP over TCP with EDHOC security at 2001:db8::1, and the service is identifiable by the use of a KCCS credential describing an X25519 public key.</t>
          </li>
          <li>
            <t>coap://edhoc-cred.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgyr.--.ai3ouj4a.service.arpa/ -- The same server without any discoverability hints; it is up to the client to discover a (possibly short-lived) connection opportunities to the server identified by that key.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document heavily builds on concepts
explored by Bill Silverajan and Mert Ocak in <xref target="I-D.silverajan-core-coap-protocol-negotiation"/>,
and together with Ines Robles and Klaus Hartke inside T2TRG.</t>
      <t>[ TBD: reviewers
Marco
Klaus
]</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9296XYjV5Im+N+fwgtxTgepBsAllgwhUqmiyJAUpxRLBalS
1Sizkw7AAXqGwx3p7ggGkh155h3mRfoB5lfPm8yTjNlnZndxgCEpe3rOzKjO
yQqSvly/i62ffTYajZIPk/RRknRFV+aT9Lw+e5teNVnVruumS19W82KWdUVd
JfN6VmUrumTeZItuVOTdYjSrm3zU2dWjwl09Ov5d0nZZNf9zVtYV3dQ1mzxJ
PuTVJp8kabrKinKS8u3/zA8a182SfrssupvNVH4/ul0e7XsyXVZmXd52k3Rw
03XrdnJ0pNeP5f5xUe+982iQJMW6wVja7vT4+Mvj04T+NEnbbk6jbfJsNUlf
vrj6NlkXPEj6VTGjPz/c5u1D+rmrZ9EP83zd3dBvHvHP7XbV5IvWX9DS2+Pf
zOrVOgsfSL9Y5VVHl9Av+JbN1F9T1XwJDbiqu2JR5HP9XUbjpGFWXd5UeZfc
LnnR3r1I3t/KP4bpT/k0/aGo3hfVcpi+beqP22H647uXwzQri6yl3ybZprup
m0kySouK3n4+Ts9W7f/xv7c8CFnk85umaLsiq4K/zOpN1TXbSXq24anJ6Fe5
LqRd/c/Zqt3kbTum76CnLzZlKc97lTVdUeXpZb2+KfL0h7ya5w0/lFZ+kl79
eJFeNHk7z6v0x6r4QH8qum1aL9KrfHZT1WW93NK12XTa5B/4crtaVinPacK+
z8vVTV12f6NfjNOTYx4wPWQSXDqr5zSUi9HxyfHTL8MP+i5vVlm19R+0kuGO
SxnnP3eb0VweM57nSVEtarqho4HyPsG05i3/k/aFnKOzZnZTdPms2zQ5f0d3
k6c/1U05T38q5jkv0TC9pD/TvkxPx4/GJ7xC9iQ8yNYoxX+Ypp8encs7smbJ
n2z7//b2dnz7iA/R0dW7o9t8mtHbjx5smmLknzir65J+Ew/znH7Jb27TeV09
7Gghs2qZ73m/rOJVsUq/+eGXxkBb7gN9ZHN02W3L/Igez4f2dnW6it79E09Q
+jZb5036f/6v/xtt2eVNd5vz/6avTl+lJ+OT+ybizauz9HKdz2hG37d7h1Ov
spYuuOULMKhbfttozW8blf5NIxrV6GR0ckRPeTm6GEOsldn7fJTPb+i8069v
H2VzXvx45gY/PUr193T2qy77OEm/ef3t4LfOHY2Vt9N4Rsd5TKt2s6URdvnH
7uinn346OpM30Jk9ooePb7pV+eDxIzxkTlJwkp58+eXp6Pjp6JT3c1Wv+bT3
xpmnVZ7PSWDRe8v3tOZ0qG/zFOI5a+bF3/L09Zs/v3335t//4+v7h39Jl6ff
b/ZOdjatNx1L3zKb8sk/mtKBPTo9Pj05Oj45Ov0dbckRj2HU1SMew6iqRxjp
UfAlfDmdzNHp7/gYfqjbtow+5IpO0IsPtIdxZuhIXV7+kNInpFc/XN476hdl
8bdsmnc36TdZkTf37tx5sSxoBTo/+txeNaoXIxpLNNKTJ6NjmvZT+uXljy+/
iSf8HU0GbWke2sv6Kv23TVnlTTYtyqIrSEqQ6G7zGYuF6Ta9yNtiWQ32josl
klw5H5OkP7pdk74lsV91R5t1WWfzlqf49Oj4y6NXdOmlXDriAY1wtkY4W+P1
fNGb5iQZjUYkTUlSkq5JEp7a87riH0nozdOz9bpUpcn6g1QdSYkDNg2G6d3d
P7379vx3p09OP306TIs2zT6QxMymJYk5ktvpvFgs8oYGmTod3CYHP17QrRe0
UsP06pz+iX+RELysZ+/zrj0cJtNNR4p99p4emN5mW96um6pYbFlytrkdtbwd
02gLFlezDevOdC3Cpk1pzleFqArMPf7Q0ie06ZRE4Dyljwk0I33I1/Qhz06f
Pfv0KeEbLvPmA22C9Bs2Gaplmx5c/tv5N/zFdN2Xj58e0wcnNKz84xqnPitZ
BUMLBN8azAddm6XznB86xBvoF/W6K1Z85PKPImvbdMPHWz5zLCuzKubzksyl
B6zmm3q+ET1x96AIfvz0W9bt0M/TalN2xbqMxrzKeTBFuyIZR0uF+ePVSmlo
NCMyVbLmQzlzuoj4wa9jdP2zR6ePPn0aJ5f1CutX8LiyMnzvNOdP3/DqFFX6
wy2L/bs7qAp6E+YsJ5sxXdV8XHAxzX5JP83TA3oLS+wpq+KqGnWnXbMctWWx
Xm0+8jj172qRiK06q7P1iPfpaJl1HY/uSrYXPX+16TZZWW5pKLDCugKbuoLu
vi2aXDYpLORiRTPI+w+T3cKSqyu6t92sYTi3NO6GPlZU/0q+hWUeiYB0RqIU
s8CWLH0X6aIcr1nRBsDz6SjzGaIH9s6EmrM0oJtidhPtO/oEv/fIQKGblgXP
Hu3WetPYJpQbya5Z17Sd9t0nA4mPme08Gj2NpOWhzIt2xlOJp97UtziyNJfh
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
AA==

-->

</rfc>
