<?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.3.7) -->
<?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-08" 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-08"/>
    <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="2025" month="March" day="04"/>
    <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="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="registered-names-and-transport-setup">
        <name>Registered names and transport setup</name>
        <t>The CoAP specification is intentionally open about the resolution services
by which indirect identifiers in the host portion of a CoAP URI are resolved,
giving DNS as one example without going into details (<xref section="6.1" sectionFormat="of" target="RFC7252"/>).</t>
        <t>This document does not change any of that,
but it does point out in <xref target="findendpoint"/> the breadth of information that such a service can provide
(e.g. providing multiple addresses, or metadata on services used on them),
and gives a concrete example of the information that modern DNS idioms deliver
(which it enables by performing a registration in <xref target="iana-underscored"/>).</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,
but otherwise no big deal is made of it.</t>
          <t>Note that as such a URI may contain a registered name:
as with any CoAP URI, resolution services apply.
Therefore, it may indicate multiple transport endpoints.</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="findendpoint">
      <name>Finding suitable endpoints for a URI</name>
      <t>When a CoAP request is created by a client,
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:
either because it is explicitly configured to do so (<xref target="actualproxies"/>),
or because it has discovered a preferred proxy (<xref target="hasproxy"/>).
In that case, it
finds the endpoint of the configured proxy (using <xref target="processing-scheme-authority"/>, if not given explicitly).
The proxy then decides on an endpoint to which to forward the request for its own,
(again using the tools described in this section).
Otherwise, it uses the information of scheme and authority,
often through a resolution service (<xref target="processing-scheme-authority"/>).</t>
      <t>No matter how the endpoint (and thus transport) was discovered and whether a proxy is involved,
it does not alter the URI of the resource being requested.
The Proxy-Scheme, Uri-Host and Uri-Port options are set as needed
to ensure that the request keeps targeting the requested resource.
This happens, respectively,
if the URI scheme associated with the selected transport differs from the request URI's scheme
(or a proxy is used),
when the host name is not the default one for the transport
(e.g. if it is not an IP literal in the UDP or TCP cases, or a proxy is used;
DNS CNAME entries or SVCB target do not alter the URI's host name at all)
or a different port is used (as possible through SVCB),
(Outside proxy cases,
<xref section="6.4" sectionFormat="of" target="RFC7252"/> only talks of setting the Uri-Host to preserve the URI, and not of setting Proxy-Scheme or Uri-Port.
That is because at the time of writing, no mechanisms were available to select a different transport or port).</t>
      <t>Note that there is no meaningful difference in a client's behavior between
when it is configured with a proxy,
has discovered a proxy through links
or has discovered a completely different transport:
this is the essence of "transport endpoints are proxis" <xref target="endpoints-are-proxies"/>.</t>
      <t><cref anchor="moveme">The following two paragraphs may need a new home eventually to keep this section to the point. --CA</cref></t>
      <t>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 introduced by using alternative transports 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-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 for resolution services.</t>
        <t>The outcome of any resolution service is a list.
It may be partially sorted, and may arrive piece by piece.</t>
        <t>Conceptually, each entry contains:</t>
        <ul spacing="normal">
          <li>
            <t>Which CoAP transport is used (e.g. CoAP-over-TCP).</t>
          </li>
          <li>
            <t>The transport's address details (e.g. an IP address and port number).</t>
          </li>
          <li>
            <t>Any additional metadata that facilitates communication (e.g. public keys for <xref target="I-D.ietf-tls-esni"/>).</t>
          </li>
        </ul>
        <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 either use their default port or indicate the port explicitly.
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.
The /etc/hosts file and nsswitch "host" database can provide that same information.</t>
          <t>Additional metadata provided by this resolution service
are 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 (e.g. 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 IETF122 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 application 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 IETF122 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}.
The precise implications of any DNSSec-backed applicable credentials expressed in SVCB parameters
are subject to ongoing discussion (especially with regard to whether they apply to the proxy or the origin server).</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 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 e.g. 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>cred</tt>: This is a new parameter defined in this document, and describes COSE credentials that can authenticate the server, e.g. when used with EDHOC.  </t>
            <t>
The <tt>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
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>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>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 (e.g. 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 example 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                                      \
                       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 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 requests 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 components 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">cred</td>
              <td align="left">COSE 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="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="3" month="March" year="2025"/>
            <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) rather than as a
   sequence of characters.  This approach 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 of RFC 7595 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 –19 addresses WGLC comments.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-19"/>
        </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="I-D.ietf-tls-esni">
          <front>
            <title>TLS Encrypted Client Hello</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <author fullname="Kazuho Oku" initials="K." surname="Oku">
              <organization>Fastly</organization>
            </author>
            <author fullname="Nick Sullivan" initials="N." surname="Sullivan">
              <organization>Cryptography Consulting LLC</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="19" month="February" year="2025"/>
            <abstract>
              <t>   This document describes a mechanism in Transport Layer Security (TLS)
   for encrypting a ClientHello message under a server public key.

Discussion Venues

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

   Source for this draft and an issue tracker can be found at
   https://github.com/tlswg/draft-ietf-tls-esni
   (https://github.com/tlswg/draft-ietf-tls-esni).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-23"/>
        </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="6" month="November" 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-11"/>
        </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="3" month="March" year="2025"/>
            <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-05"/>
        </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="November" 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 of clients 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-03"/>
        </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="3" month="March" year="2025"/>
            <abstract>
              <t>   This document specifies an Application-Layer Protocol Negotiation
   (ALPN) ID for transport-layer-secured Constrained Application
   Protocol (CoAP) services.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-dtls-alpn-02"/>
        </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="3" month="March" year="2025"/>
            <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 between the client and resource
   server 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-07"/>
        </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="8" month="January" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing EDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies and uses registry-based extension points, using one
   to support text representations of epoch-based dates/times and of IP
   addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present
   // revision (–16) addresses the first half of the WGLC comments,
   // except for the issues around the specific way how to best achieve
   // pluggable ABNF grammars for application-extensions.  It is
   // intended for use as a reference document for the mid-WGLC CBOR WG
   // interim meeting on 2025-01-08.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-16"/>
        </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="3" month="March" year="2025"/>
            <abstract>
              <t>   This document defines a protocol for exchanging DNS messages over the
   Constrained Application Protocol (CoAP).  These CoAP messages can be
   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-13"/>
        </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 1196?>

<section anchor="change-log">
      <name>Change log</name>
      <t><cref anchor="remove-changelog">This section is to be removed before publication.</cref></t>
      <t>Since draft-ietf-core-transport-indication-07:</t>
      <ul spacing="normal">
        <li>
          <t>Update sections 1 and 2:
          </t>
          <ul spacing="normal">
            <li>
              <t>Work more explicitly with 7252's resolution services.</t>
            </li>
            <li>
              <t>List (coarsely) the information received from resolution services.</t>
            </li>
            <li>
              <t>Homogenize treatment of proxy URIs and other resolution service outcomes.</t>
            </li>
            <li>
              <t>Point out parallels to /etc/hosts.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Phrase possible differences w/rt hop-to-hop vs. end-to-end encryption more carefully.</t>
        </li>
        <li>
          <t>SVCB: Rename edhoc-cred to cred.</t>
        </li>
        <li>
          <t>Rework literals following discussion around onion-coap.</t>
        </li>
        <li>
          <t>Point out the fates of appendices.</t>
        </li>
        <li>
          <t>Editorial fixes.</t>
        </li>
      </ul>
      <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>
      <t><cref anchor="remove-relatedwork">This section is to be removed before submission to the IESG, with at least the MP-TCP section worked into corr-clar.</cref></t>
      <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>
      <t><cref anchor="remove-openquestions">This section is to be either converted into concrete guidance, or removed before submission to the IESG.</cref></t>
      <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><cref anchor="remove-edhocead">This section is to be moved into another document, possibly <tt>groupcomm-proxy</tt>.</cref></t>
      <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,
   e.g. 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 ordered list of key-value component pairs,
and the common suffix <tt>service.arpa</tt>.</t>
        <t>These pairs represent the very items also produced by <xref target="processing-scheme-authority"/>.
In the current version, they can <em>not</em> express multiple entries with different structures.
They can express different entries, but any repeated items (e.g. different ALPNs and IP addresses)
only produce their product
(i.e., no "TCP on this or that address, TLS on another").</t>
        <t>Keeping with the style of DNS (least significant component first),
pairs are expressed with their data a first label, followed by the key in a separate label.
Data items ending with a "-" character are concatenated with their previous label to avoid overflowing the 63-octet limit of DNS
(even though those do not wind up in DNS serialization).</t>
        <t>For example, "world.hello-.label.8080.port" contains,
in that order,
information about port 8080 and the label "helloworld".</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>"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>"alpn": The ALPN(s) in hexadecimal encoding, separated by dashes.</t>
          </li>
        </ul>
        <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://683263.alpn.2001-db8--1.6.service.arpa/ -- The server is reachable on 2001:db8::1 using HTTP/2 (h2c is 683263 in hex)</t>
          </li>
          <li>
            <t>https://amaqckrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrk.tlsa.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.</t>
          </li>
          <li>
            <t>coap://tcp.coaptransport.2001-db8--1.6.rai3ouj4a.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgy-.cred.service.arpa/ -- The server is reachable using CoAP over TCP with any security mechanism at 2001:db8::1, and the service is identifiable by the use of a KCCS credential describing an X25519 public key (which is currently only usable with EDHOC).</t>
          </li>
          <li>
            <t>coap://rai3ouj4a.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgyr-.cred.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:
H4sIAAAAAAAAA92963YbV5Ym+D+eIgpaq0W6AVCkLilBdrpoUra10rqUSJer
xulOBoAAGKlABDIiIArJVq95h3mRfoD+1f0m8ySz97f3PpcAKNvZPbNmxrVW
pUjG5cS57Ou3vz0ajZIPk/RhknRFV+aT9Kw+fZteNlnVruumS19W82KWdUVd
JfN6VmUrumTeZItuVOTdYjSrm3zU2dWjwl09evA0abusmv8lK+uKbuqaTZ4k
H/Jqk0+SNF1lRTlJ+fZ/5geN62ZJv10W3fVmKr8f3SyP9j2ZLiuzLm+7STq4
7rp1Ozk60uvHcv+4qPfeeTRIkmLdYCxtd/LgwbMHJwn9aZK23ZxG2+TZapK+
fHH5bbIueJD0q2JGf76/zdv79HNXz6If5vm6u6bfPOSf2+2qyRetv6Clt8e/
mdWrdRY+kH6xyquOLqFf8C2bqb+mqvkSGnBVd8WiyOf6u4zGScOsuryp8i65
WfKivXuRvL+RfwzTn/Jp+kNRvS+q5TB929Qft8P0x3cvh2lWFllLv02yTXdd
N5NklBYVvf1snJ6u2v/x31oehCzy2XVTtF2RVcFfZvWm6prtJD3d8NRk9Ktc
F9Ku/uds1W7yth3Td9DTF5uylOe9ypquqPL0ol5fF3n6Q17N84YfSis/SS9/
PE/Pm7yd51X6Y1V8oD8V3TatF+llPruu6rJebunabDpt8g98uV0tq5TnNGHf
5+Xqui67v9MvxunxAx4wPWQSXDqr5zSU89GD4wdPnoUf9F3erLJq6z9oJcMd
lzLOf+42o7k8ZjzPk6Ja1HRDRwPlfYJpzVv+J+0LOUenzey66PJZt2ly/o7u
Ok9/qptynv5UzHNeomF6QX+mfZmejB+Oj3mF7El4kK1Riv8wTT89PJN3ZM2S
P9n2/83NzfjmIR+io8t3Rzf5NKO3H93bNMXIP3FW1yX9Jh7mGf2S39ym87q6
39FCZtUy3/N+WcXLYpV+88OvjYG23Af6yObootuW+RE9ng/tzepkFb37J56g
9G22zpv0//zf/w/assvr7ibn/5++OnmVHo+P75qIN69O04t1PqMZfd/uHU69
ylq64IYvwKBu+G2jNb9tVPo3jWhUo+PR8RE95eXofAyxVmbv81E+v6bzTr++
eZjNefHjmRv89DDV39PZr7rs4yT95vW3g987dzRW3k7jGR3nMa3a9ZZG2OUf
u6Offvrp6FTeQGf2iB4+vu5W5b1HD/GQOUnBSXr87NnJ6MGT0Qnv56pe82nv
jTNPqzyfk8Ci95bvac3pUN/kKcRz1syLv+fp6zd/efvuzb/9+9d3D/+CLk+/
3+yd7GxabzqWvmU25ZN/NKUDe3Ty4OT46MHx0ckfaEuOeAyjrh7xGEZVPcJI
j4Iv4cvpZI5O/sDH8EPdtmX0IZd0gl58oD2MM0NH6uLih5Q+Ib384eLOUb8o
i79n07y7Tr/Jiry5c+fOi2VBK9D50ef2qlG9GNFYopEePx49oGk/oV9e/Pjy
m3jC39Fk0Jbmob2sL9N/3ZRV3mTToiy6gqQEie42n7FYmG7T87wtltVg77hY
IsmV8zFJ+qObNelbEvtVd7RZl3U2b3mKT44ePDt6RZdeyKUjHtAIZ2uEszVe
zxe9aU6S0WhE0pQkJemaJOGpPasr/pGE3jw9Xa9LVZqsP0jVkZQ4YNNgmN7e
/tO7b8/+cPL45NOnw7Ro0+wDScxsWpKYI7mdzovFIm9okKnTwW1y8OM53XpO
KzVML8/on/gXCcGLevY+79rDYTLddKTYZ+/pgelNtuXtuqmKxZYlZ5vbUcvb
MY22YHE127DuTNcibNqU5nxViKrA3OMPLX1Cm05JBM5T+phAM9KHfE0f8vTk
6dNPnxK+4SJvPtAmSL9hk6FatunBxb+efcNfTNc9e/TkAX1wQsPKP65x6rOS
VTC0QPCtwXzQtVk6z/mhQ7yBflGvu2LFRy7/KLK2TTd8vOUzx7Iyq2I+L8lc
usdqvqnnG9ETt/eK4MdPv2fdDv08rTZlV6zLaMyrnAdTtCuScbRUmD9erZSG
RjMiUyVrPpQzp4uIH/w6Rtc/fXjy8NOncXJRr7B+BY8rK8P3TnP+9A2vTlGl
P9yw2L+9haqgN2HOcrIZ01XNxwUX0+yX9NM8PaC3sMSesiquqlF30jXLUVsW
69XmI49T/64Widiqszpbj3ifjpZZ1/HoLmV70fNXm26TleWWhgIrrCuwqSvo
7puiyWWTwkIuVjSDvP8w2S0subqie9vNGoZzS+Nu6GNF9a/kW1jmkQhIZyRK
MQtsydJ3kS7K8ZoVbQA8n44ynyF6YO9MqDlLA7ouZtfRvqNP8HuPDBS6aVnw
7NFurTeNbUK5keyadU3bad99MpD4mNnOo9HTSFoeyrxoZzyVeOp1fYMjS3MZ
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
AA==

-->

</rfc>
