<?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  (Ruby 3.1.2) -->
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc subcompact="no"?>
<?rfc iprnotified="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-transport-indication-06" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title>CoAP Transport Indication</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-transport-indication-06"/>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <author fullname="Martine Sophie Lenders">
      <organization abbrev="TU Dresden">TUD Dresden University of Technology</organization>
      <address>
        <postal>
          <street>Helmholtzstr. 10</street>
          <city>Dresden</city>
          <code>D-01069</code>
          <country>Germany</country>
        </postal>
        <email>martine.lenders@tu-dresden.de</email>
      </address>
    </author>
    <date year="2024" month="July" day="09"/>
    <area>Internet</area>
    <workgroup>CoRE</workgroup>
    <keyword>CoRE, Web Linking, Proxy, URI, aliasing</keyword>
    <abstract>
      <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"/>
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>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) provides transports mechanisms
(UDP and DTLS since <xref target="RFC7252"/>, TCP, TLS and WebSockets since <xref target="RFC8323"/>),
with some additional 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 to indicate that a device is prepared to serve as a proxy;
this document solves both by introducing the "has-proxy" terminology to Web Linking <xref target="RFC8288"/> that expresses the former through the latter.
The additional "has-unique-proxy" term is introduced
to negate any per-request overhead that would otherwise be introduced in the course of this.</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>
        <dl>
          <dt>Same-host proxy:</dt>
          <dd>
            <t>A CoAP server that accepts forward proxy requests (i.e., requests carrying the Proxy-Scheme option)
exclusively for URIs that it is also the authoritative server for is defined as a "same-host proxy".</t>
          </dd>
          <dt/>
          <dd>
            <t>The distinction between a same-host and any other proxy is only relevant on a practical, server-implementation and illustrative level;
this specification does not use the distinction in normative requirements,
and clients need not make the distinction at all.</t>
          </dd>
        </dl>
        <t>When talking of proxy requests,
this document only talks of the Proxy-Scheme option.
Given that all URIs this is usable with can be expressed in decomposed CoAP URIs,
the need for using the Proxy-URI option should never arise.
The Proxy-URI option is still equivalent to the decomposed options,
and can be used if the server supports it.</t>
        <section anchor="identifying">
          <name>Using URIs to identify transport endpoints</name>
          <t>The URI <tt>coap://[2001:db8::1]</tt> identifies a particular resource, possibly a "welcome" text.
It is, colloquially, also used to identify the combination
of a CoAP transport and the transport specific details.</t>
          <t>For precision, this document uses the term
"the transport address indicated by (a URI)" to refer to the transport and its details (in the example, CoAP over UDP with an IPv6 address and the default port),
but otherwise no big deal is made of it.</t>
          <t>The transport indicated by a URI is not only influenced by the URI scheme,
but also by the authority component.
The transports and resolution mechanisms currently specified
make little use of this possibility,
mainly because the most prominent resolution mechanism (SVCB records) has not been avaialble when <xref target="RFC8323"/> was published
and because it can not be expressed in IP literals.
The provisions of this document
enable this opportunistically for registered names
(<xref target="svcb-discovery"/>)
and for literals using the mechanism in <xref target="newlit"/>.</t>
          <t>When the resolution mechanism used for a registered name authority component yields multiple addresses,
all of those are possible ways to interact with the resource.
The resolution mechanism or other underlying transport can give guidance on how to find the best usable one.
With the currently specified transports and resolution mechanisms,
the most prominent example of making use of that information
is applying <xref target="RFC8305"/>'s Happy Eyeballs mechanism to establish a TCP connection
when a name resolves to both IPv4 and IPv6 addresses,</t>
          <section anchor="paths-in-uris-that-indicate-transport-addresses">
            <name>Paths in URIs that indicate transport addresses</name>
            <t>For the CoAP schemes (coap, coaps, coap+tcp, coaps+tcp, coap+ws, coaps+ws),
URIs indicating a transport are always given with an empty path
(which under their URI normalization rules is equivalent to a path containing a single slash).
For the coap and coap+tcp schemes, URIs with different host names
can indicate the same transport as long as the names resolve to the same addresses.
For the others, the given host name informs the name set in TLS's Server Name Indication (SNI)
and/or the host sent in the "Host" header of the underlying HTTP request.</t>
            <t>If an update to this document extends the list,
for new schemes it might be allowed to have paths, queries or fragment identifiers present in the URI indicating the transport address.
No guidance can be given here for these,
as no realistic example is known.
(Note that while the coap+ws scheme does use the well-known path <tt>/.well-known/coap</tt> internally,
that is used purely on the HTTP side, and not part of the CoAP URI, not even for indicating the transport address).
<cref anchor="svcbpathparam">It is conceivable that a path such as the <tt>/.well-known/coap</tt> of CoAP-over-WebSockets would be indicated in an SVCB discovery's parameters similar to dohpath. This does not immediately help with the question of whether a URI indicating a transport can have a path, though. --CA</cref></t>
          </section>
          <section anchor="existing-use">
            <name>Existing use</name>
            <t>A similar concept is used in <xref target="I-D.ietf-core-observe-multicast-notifications"/> (expressed as pieces of its <tt>tp_info</tt> parameter),
but not expressed with URIs yet.
As that document migrates towards using CRIs (<xref target="I-D.ietf-core-href"/>),
it is expected that its transport addresses coincide with the URIs (CRIs, equivalently) indicating a transport.</t>
            <t>URIs indicating a transport are especially useful when talking about proxies;
this use is aligned with the way they are expressed in the conventional environment variables <tt>http_proxy</tt> etc.
<xref target="noproxy"/>.
Furthermore, URIs processing is widespread in CoAP systems,
and when that changes (e.g. through the introduction of <xref target="I-D.ietf-core-href"/>),
URIs indicating a transport will still be efficient to encode.
And last but not least, it lines up well with the colloquial identity mentioned above.
(An alternative would be using a dedicated naming scheme, say, <tt>transport:coap:device.example.com:port</tt>,
but that would needlessly introduce implementation complexity).</t>
            <t>Note that this mechanism can only used with proxies that use CoAP's native address indication mechanisms.
Proxies that perform URI mapping
(as described in Section 5 of <xref target="RFC8075"/>, especially using URI templates)
are not supported in this document.</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="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>
    <section anchor="indicating-alternative-transports">
      <name>Indicating alternative transports</name>
      <t>While CoAP can set the authority component of the requested URI in all requests (by means of Uri-Host and Uri-Port),
setting the scheme of a requested URI (by means of Proxy-Scheme) makes the request implicitly a proxy request.
However, this needs to be of only little practical concern:
Any device can serve as a proxy for itself (a "same-host proxy")
by accepting requests that carry the Proxy-Scheme option.
<xref section="5.7.2" sectionFormat="of" target="RFC7252"/> already mandates that a proxy recognize its own addresses.
A minimal same-host proxy supports only those and respond with 5.05 (Proxying Not Supported).
In many cases (precisely: on hosts that alias their resources across transports),
this is equivalent to ignoring the Proxy-Scheme option in that request.</t>
      <t>A server can advertise a recommended proxy
by serving a Web Link with the "has-proxy" relation to a URI indicating its transport address.
In particular (and that is a typical case),
it can indicate its own transport 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>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>
        <t>Unless the device makes resources discoverable at <tt>coap+tcp://[2001:db8::1]/.well-known/core</tt> or another discovery mechanism,
clients may not assume that <tt>coap+tcp://[2001:db8::1]/sensors/temp</tt> is a valid resource (let alone is equivalent to the other resource on the same path).
The server advertising itself like this may reject any request on CoAP-over-TCP unless it contains a Proxy-Scheme option.</t>
        <t>Clients that want to access the device using CoAP-over-TCP would send a request
by connecting to 2001:db8::1 TCP port 5683
and sending a GET with the options Proxy-Scheme: coap, no Uri-Host or -Port options (utilizing their default values),
and the Uri-Paths "sensors" and "temp".</t>
      </section>
      <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 source of the <tt>has-proxy</tt> statement;
a sufficient (but maybe needlessly strict) requirement is to only follow <tt>has-proxy</tt> statements
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-transports">
        <name>Choice of transports</name>
        <t>It is up to the client whether to use an advertised proxy transport,
or (if multiple are provided) which to pick.</t>
        <t>Links to proxies 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 advertised transports as long as the document 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 describing document approaches expiry,
the client can use the 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 locally defined host or service name registry.
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 is 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="transport-indication-from-non-link-sources-service-binding-parameters">
      <name>Transport indication from non-link sources: Service Binding Parameters</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 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>When a host finds a CoAP transport from a URI
and the URI's authority component does not contain a precise address literal,
the resolution mechanisms which it may try generally depend on the CoAP transports and their variation which it supports.
For example, if it supports CoAP-over-UDP and IPv6,
it requests AAAA records through DNS and look them up in a host file.</t>
        <t>This document extends this and registers the <tt>_coap</tt> and <tt>_coaps</tt> attrleaf labels
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 pair "COAP" / "COAPS"
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 using the "coap" or "coaps" schemes, respectively.
No such labels are registered for other CoAP schemes that have been registered,
as it is expected that applications that use them will prefer leaving the more detailed transport choice to the parameters.
The "coaps" scheme comes with the expectation of using a secured transport.
While discovered parameters can override this, components and applications
MUST NOT select a transport and security mechanism combination with a reduced security level.</t>
        <t>[ There is no formal description of what the requirements following "coaps" really are.
Would it make sense to only register "coap" here, unifying the scheme space even further,
given that any applications needs to describe its security requirements anyway,
and can just as well apply them to "coap"? ]</t>
        <t>Some SVCB parameters have defaults; for those new services, these are:
* port: 5683 for <tt>_coap</tt>, 5684 for <tt>_coaps</tt>
* ALPN: empty for <tt>_coap</tt>, "co" for <tt>_coaps</tt>
* coaptransport: "udp" for <tt>_coap</tt>, empty for <tt>_coaps</tt></t>
        <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 effects on a client of seeing SVCB parameters are similar
to those of seeing a "has-proxy" link from the origin to the URI built using {#svcblit}.
They differ in that SVCB parameters describe the server itself:
Credentials expressed apply end to end
(as opposed to credentials that describe the proxy in a "has-proxy" link),
and the client could conclude that the implied proxy is a same-host proxy
(if that had any impact on the client, which it does not).</t>
      </section>
      <section anchor="svcparams">
        <name>Service Parameters</name>
        <t>Several parameters are relevant in the context of CoAP,
independently of whether they are used with SVCB records or Service Binding Parameters transported outside of SVCB records,
and independently of whether they apply to the <tt>_coap</tt> / <tt>_coaps</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.lenders-core-coap-dtls-svcb"/>.  </t>
            <t>
If an ALPN service parameter is found, this indicates that the ALPN(s) and thus the CoAP transport that can be used on this address / port.
For example, "co" indicates that DTLS (and thus UDP) is used.</t>
          </li>
          <li>
            <t><tt>coaptransport</tt>: This is a new parameter defined in this document, and similar to the ALPN parameter.  </t>
            <t>
If a <tt>coaptransport</tt> parameter is present, the indicated transport(s) can be used on this address / port.  </t>
            <t>
The names registered for existing transports are identical to the URI schemes that indicate their use in the absence of Service Binding Parameters.  </t>
            <t>
[ It is left for review by SVCB experts whether these are a separate parameter space or we should just take ALPNs for them, like eg. h2c does. ]</t>
          </li>
          <li>
            <t><tt>edhoc-cred</tt>: This is a new parameter defined in this document, and describes that EDHOC can be used with the server, and which credentials can authenticate the server.  </t>
            <t>
The <tt>edhoc-cred</tt> parameter's value is a CBOR sequence of COSE Header maps as defined in <xref target="RFC9052"/>.
If the parameter is present, it indicates that EDHOC <xref target="RFC9528"/> can be used on the transport,
and that the server can be authenticated by any credential expressed in the sequence.
This is similar to the TLSA records specified in <xref target="RFC6698"/>.  </t>
            <t>
A COSE Header map can express many properties, not all of which are sufficient to authenticate a peer on any given security mechanism.
Without excluding applications that may process other entries,
a practical criterion for whether a header map is suitable for EDHOC is that the header map could also be used in EDHOC as <tt>ID_CRED_R</tt>
if the credential is sent by value.  </t>
            <t>
For example, a header map with a <tt>kccs</tt> entry can be used to indicate a public key including a Key ID (<tt>kid</tt>),
and that public key does not need to be sent during the EDHOC exchange.
Alternatively, a header map with an <tt>x5t</tt> identifies the end entity certificate the server presents by a thumbprint (hash).  </t>
            <t>
It is up to the application to define requirements for the provenance of the <tt>edhoc-cred</tt> parameter,
whether it needs to be provided through secure mechanism,
or whether the server is strictly required to present that credential.  </t>
            <t>
This is unlike TLSA, which needs to be transported through DNSSEC,
because a <tt>edhoc-cred</tt> parameter may be sent using other means than DNS
(for example in DHCPv6 responses or Router Advertisements).</t>
          </li>
          <li>
            <t><tt>edhoc-info</tt>: This is a new parameter defined in this document, describing how EDHOC can be used on the server.  </t>
            <t>
The value of the parameter is a CBOR map following the <tt>EDHOC_Information</tt> structure defined in <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>
and extended in <xref target="I-D.tiloca-lake-app-profiles"/>.  </t>
            <t>
It is optional to provide and optional to process, but can help speed up the establishment of a security context.</t>
          </li>
          <li>
            <t><tt>oauth-hints</tt>: This is a new parameter defined in this document,
describing how ACE-OAuth <xref target="RFC9200"/> can be used with this service.  </t>
            <t>
Its value is a CBOR map containing AS Request Creation Hints as described in <xref section="5.3" sectionFormat="of" target="RFC9200"/>.
While an empty map can be useful (hinting that the client should use its configured ACE-OAuth setup),
typical useful keys are
1 (AS, indicating the URI of the Authorization Server),
5 (audience, indicating the name under which the service is known to the Authorization Server),
and 9 (scope, when discovering a particular service rather than just getting transport information for a host).
That data is using the same shape the server might use when responding to an attempt at an unencrypted connection,
and can not only speed up the discovery of the right AS,
but can also protect that information (eg. when DNSSEC is used),
and avoids the need for an unprotected first request.  </t>
            <t>
It is up to the application to define requirements for the use of such data.
For example,
it may require that the audience matches the requested host name,
or may require that the scope matches the kind of service being discovered.  </t>
            <t>
When expressed in text format, e.g. in DNS zone files,
the CBOR diagnostic notation <xref target="I-D.ietf-cbor-edn-literals"/> can be used.</t>
          </li>
        </ul>
        <section anchor="examples-of-using-name-resolution-discovery-and-parameters">
          <name>Examples of using name resolution discovery and parameters</name>
          <section anchor="generic-client-discovering-transport-options">
            <name>Generic client discovering transport options</name>
            <t>A generic client is directed to obtain <tt>coap://dev1.example.com/log</tt>
requests the name to be resolved using the system's resolution mechanisms,
resulting in a DNS query for these records:</t>
            <t><tt>
_coap.dev1.example.com IN SVCB
dev1.example.com       IN AAAA
</tt></t>
            <t>The following records are returned:</t>
            <t><tt>
_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
</tt></t>
            <t>Exceeding the single option it had with just the IP address,
it may now also choose to establish a TCP connection on the default port,
to use port 61616 for UDP (which results in more compact frames on a 6LoWPAN link),
or to use either of the TLS based options.</t>
          </section>
          <section anchor="application-mandating-svcb">
            <name>Application mandating SVCB</name>
            <t>An application's policy is to mandate client support for SVCB records,
and to require that a security mechanism must be used where credentials are backed either by DNSSEC or by the Web PKI.</t>
            <t>A server operator is running in a legacy network that only provides an IPv4 address behind NAT with a dynamic public address,
but has PCP <xref target="RFC7291"/> available.
After running PCP to open a UDP port,
it learns that 1.2.3.4:5678 will be available for some time.</t>
            <t>It therefore updates its DNS record like this:</t>
            <t><tt>
_coap.host.example.net 600 IN SVCB 1 publicudp.host.example.net       \
                       port=5678                                      \
                       edhoc-cred={14:{... /KCCS with its public key/}}
</tt></t>
            <t>When a client starts using <tt>coap://host.example.net/interactive</tt>,
it looks up that record and verifies it using DNSSEC.
It then proceeds to send EDHOC requests over CoAP to 1.2.3.4 port 5678,
setting the Uri-Host option to "host.example.net".</t>
            <t>The client could also have initiated an EDHOC session if no edhoc-cred parameter had been present,
but then,
it would have required that the server present some credential that could be verified through the Web PKI,
for example an x5chain containing a Let's Encrypt certificate.</t>
          </section>
        </section>
      </section>
      <section anchor="svcb2uri">
        <name>Producing request for a discovered service</name>
        <t>If a service's discovery process does not produce a URI but an address, host name and/or Service Binding Parameters,
those can be converted to a CoAP URI,
for which transport hints are already encoded in the parameters the URI is constructed from.
An example of this is DNS server discovery <xref target="I-D.lenders-core-dnr"/>.</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 serivces 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>
Th 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
as Uri-Path options in the request.  </t>
            <t>
If the resource is unavailable,
the client may continue with options that have a larger SvcPriority value associated
(if such a property exists in the discovery method).  </t>
            <t>
An example of such an option is <tt>docpath</tt>
as defined in <xref target="I-D.ietf-core-dns-over-coap"/>.
(As that document precedes this one,
it repeats the same rules explicitly rather than reusing these rules).</t>
          </li>
          <li>
            <t>A Service Binding is accompanied by a hostname:
For example,
this is the hostname of the Encrypted DNS Resolver or the Special-Use Domain Name
in the case of <xref target="RFC9462"/> lookups,
or the authentication-domain-name in case of <xref target="RFC9463"/> DHCP options or Router Advertisements.  </t>
            <t>
Unless its value is identical to the default value for Uri-Host
(which is the case on transports with Server Name Indication (SNI)),
the that name is added in the Uri-Host option.</t>
          </li>
          <li>
            <t>If the <tt>port</tt> Service Binding Parameter is set,
the Uri-Port option is set to the port that set in the port prefix of the query
(or the used CoAP transport's default port),
unless that is its default value anyway.</t>
          </li>
          <li>
            <t>No Proxy-Scheme option is set.</t>
          </li>
        </ul>
        <t>By following the rules of <xref section="6.5" sectionFormat="of" target="RFC7252"/>
or the equivalent rules for the respective CoAP transport,
<!-- I'd rather not need that, see https://github.com/core-wg/corrclar/issues/38 -->
the service can be translated into a URI.
This implies URI aliasing between the composed URIs of all transports
if any of the transports use different schemes.</t>
        <t>The rules for setting Uri-Host and Uri-Port result in the authority component of the URI
being equal to the Binding Authority defined in <xref target="RFC9461"/>.</t>
        <t>Note that since different security policies may apply to service discovery
and other application components that dereference URIs,
any connections established while using the service
and cache entries created by it
need to be treated carefully,
for example by using separate connection and cache pools.</t>
      </section>
      <section anchor="svcblit">
        <name>Expressing Service Parameters as literals</name>
        <t>A method for expressing Service Parameters in URIs that do not use registered names
is described in <xref target="newlit"/>.</t>
        <t>Among other things,
that mechanism allows encoding the full information obtained during service discovery in a URI
instead of just the one choice taken.
It is also required if different CoAP transports are using the same scheme
(as is recommended in <xref target="upcomingtransports"/>)
with IP address literals in URIs,
for which unlike for resolved names no service parameters are available.</t>
      </section>
    </section>
    <section anchor="upcomingtransports">
      <name>Guidance to upcoming transports</name>
      <t>When new transports are defined for CoAP,
it is recommended to use the "coap" scheme
(or "coaps" for TLS based transports).</t>
      <t>If the transport's identifiers are IP based and have identifiers typically resolved through DNS,
authors of new transports are encouraged to specify Service Binding records (<xref target="RFC9460"/>) for CoAP,
e.g., using an <tt>alpn</tt> or <tt>coaptransport</tt> parameter.
and if IP literals are relevant to the transport, to follow up on <xref target="newlit"/>.</t>
      <t>If the transport's native identifiers are compatible with the structure of the authority component of a URI,
those identifiers can be used as an authority as-is.
To help the host decide the resolution mechanism,
it may be helpful to register a subdomain of .arpa as described in <xref target="rfc3172"/>.
The guidence for users is to never attempt to resolve such a name,
and for the zone's implementation is to return NXDOMAIN unconditionally.</t>
      <t>For the purpose of specifying a transport protocol via Service Binding records, and to encourage
future authors more, this document specifies the <tt>coaptransport</tt> Service Parameter Key (SvcParamKey)
with the initial legal values "udp" and "tcp" which indicate either CoAP over UDP and CoAP over
TCP as the transport. The present of transport security is indicated by the <tt>alpn</tt> SvcParamKey. If
it the <tt>alpn</tt> SvcParamKey is not provided, but <tt>coaptransport</tt> is, the transport is unencrypted.<cref anchor="_1">Wondering if "udp" or "tcp" should be strings or numeric representations as value. The later
  would need an extra table or is there something we could reuse, e.g. from
  <xref target="I-D.ietf-core-href"/>?</cref></t>
      <t>If the transport's native identifiers are incompatible with that structure
(e.g. because they contain colons),
the document may define some transformation.</t>
      <t>If a transport's native identifiers are only local,
the zone .alt <xref target="rfc9476"/> may be used instead.</t>
      <t>For example,
CoAP over GATT <xref target="I-D.amsuess-core-coap-over-gatt"/>
removes the colons from Bluetooth Low Energy MAC addresses like 00:11:22:33:44:55
and combines them into authority compoennts such as <tt>001122334455.ble.arpa</tt>.
Slipmux <xref target="I-D.bormann-t2trg-slipmux"/>
might use the locally significant device name <tt>/dev/ttyUSB0</tt>
as <tt>coap://ttyUSB0.dev.alt/</tt>.</t>
      <t>URIs created from such names may not indicate the protocol uniquely:
Additional transports specified later may also provide CoAP services for the same name.
In the sense of <xref target="identifying"/>,
both transport would be identified by that URI.
That is not an issue as long as the protocols underneath the CoAP transport
provide a means of advertising the precise protocol used.
For example,
a hypothetical CoAP transport for BLE that is not GATT based
can be selected for the same scheme and authority based on data in the BLE advertisement.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <section anchor="security-context-propagation">
        <name>Security context propagation</name>
        <t>Clients need to strictly enforce the rules of <xref target="secctx-propagation"/>.
Failure to do so,
in particular using a thusly announced proxy based on a certificate that attests the proxy's name,
would allow attackers to circumvent the client's security expectation.</t>
        <t>When security is terminated at proxies (as is in DTLS and TLS),
a third party proxy can usually not satisfy this requirement;
these transports are limited to same-host proxies.</t>
      </section>
      <section anchor="proxy-foreign-advertisement">
        <name>Traffic misdirection</name>
        <t>Accepting arbitrary proxies,
even with security context propagation performed properly,
would allow attackers to redirect traffic through systems under their control.
Not only does that impact availability,
it also allows an attacker to observe traffic patterns.</t>
        <t>This affects both OSCORE and (D)TLS,
as neither protect the participants' network addresses.</t>
        <t>Other than the security context propagation rules,
there are no hard and general rules about when an advertised proxy is a suitable candidate.
Aspects for consideration are:</t>
        <ul spacing="normal">
          <li>
            <t>When no direct connection is possible
(e.g. because the resource to be accessed is served as coap+tcp and TCP is not implemented in the client,
or because the resource's host is available on IPv6 while the client has no default IPv6 route),
using a proxy is necessary if complete service disruption is to be avoided.  </t>
            <t>
While an adversary can cause such a situation (e.g. by manipulating routing or DNS entries),
such an adversary is usually already in a position to observe traffic patterns.</t>
          </li>
          <li>
            <t>A proxy advertised by the device hosting the resource to be accessed is less risky to use than one advertised by a third party.  </t>
            <t>
The <tt>/.well-known/core</tt> resource is regarded as a source of authoritative information on the endpoint's CoAP related metadata,
and can be queried early in the discovery process,
or queried for verification (with filtering applied) after discovery through an RD.
Other resources may be less trustworthy as they may be controlled by entities not trusted with the endpoint's traffic.</t>
          </li>
        </ul>
        <!-- Note that these aspects' applicability is mutually exclusive:
When the advertisement was obtained from the target host,
that needs to be reachable. -->

<t><xref target="ead"/> describes an extension to <xref target="I-D.ietf-lake-edhoc"/> by which the client can verify that the proxy used by the client is recognized by the server.
This is similar to querying <tt>/.well-known/core</tt> for any proxies advertised there,
but happens earlier in the connection establishment,
and leaves the decision whether the proxy is legitimate to the server.</t>
        <t>It only conveys information about the URI of the proxy.
The mapping of any host name inside it to an IP address,
or of an IP address to a routing decision,
is left to the security mechanisms of the respective layers.</t>
      </section>
      <section anchor="protecting-the-proxy">
        <name>Protecting the proxy</name>
        <t>A widely published statement about a host's availability as a proxy can cause many clients to attempt to use it.</t>
        <t>This is mitigated in well-behaved clients by observing the rate limits of <xref target="RFC7252"/>,
and by ceasing attempts to reach a proxy for the Max-Age of received errors.</t>
        <t>Operators can further limit ill-effects
by ensuring that their client systems do not needlessly use proxies advertised in an unsecured way,
and by providing own proxies when their clients need them<!-- in a sense, avoid having starving clients that grab any straw at connectivity -->.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA considerations</name>
      <section anchor="link-relation-types">
        <name>Link Relation Types</name>
        <t>IANA is asked to add two entries into the Link Relation Type Registry last updated in <xref target="RFC8288"/>:</t>
        <table anchor="tab-iana">
          <name>New Link Relation types</name>
          <thead>
            <tr>
              <th align="left">Relation Name</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">has-proxy</td>
              <td align="left">The link target can be used as a proxy to reach URIs inside the origin of the link context.</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">has-unique-proxy</td>
              <td align="left">Like has-proxy, and using this proxy implies scheme and host of the target.</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="resource-types">
        <name>Resource Types</name>
        <t>IANA is asked to add an entry into the "Resource Type (rt=) Link Target Attribute Values" registry under the Constrained RESTful Environments (CoRE) Parameters:</t>
        <t>[ The RFC Editor is asked to replace any occurrence of CPA-core.proxy with the actually registered attribute value. ]</t>
        <t>Attribute Value: core.proxy</t>
        <t>Description: Forward proxying services</t>
        <t>Reference: [ this document ]</t>
      </section>
      <section anchor="service-parameter-key-svcparamkey">
        <name>Service Parameter Key (SvcParamKey)</name>
        <t>IANA is NOT YET requested to add the following entries to the SVCB Service Parameters
registry (<xref target="RFC9460"/>). The definition of this parameter can be found in <xref target="upcomingtransports"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Number</th>
              <th align="left">Name</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">10 (suggested)</td>
              <td align="left">coaptransport</td>
              <td align="left">CoAP transport protocol</td>
            </tr>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">edhoc-cred</td>
              <td align="left">EDHOC credentials identifying the server</td>
            </tr>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">edhoc-info</td>
              <td align="left">EDHOC profile information</td>
            </tr>
            <tr>
              <td align="left">to be assigned</td>
              <td align="left">oauth-hints</td>
              <td align="left">Describes how to obtain a token at an ACE Authorization Server</td>
            </tr>
          </tbody>
        </table>
        <t>All entries have in common that their Reference is this this document, <xref target="svcparams"/>}</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 entries 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>
          <li>
            <t>SVCB, <tt>_coaps</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" / "COAPS" RR pair
similar to the "HTTPS" RR would be preferable.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <reference anchor="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
      </references>
      <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="18" month="March" 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-06"/>
        </reference>
        <reference anchor="RFC8305">
          <front>
            <title>Happy Eyeballs Version 2: Better Connectivity Using Concurrency</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>Many communication protocols operating over the modern Internet use hostnames. These often resolve to multiple IP addresses, each of which may have different performance and connectivity characteristics. Since specific addresses or address families (IPv4 or IPv6) may be blocked, broken, or sub-optimal on a network, clients that attempt multiple connections in parallel have a chance of establishing a connection more quickly. This document specifies requirements for algorithms that reduce this user-visible delay and provides an example algorithm, referred to as "Happy Eyeballs". This document obsoletes the original algorithm description in RFC 6555.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8305"/>
          <seriesInfo name="DOI" value="10.17487/RFC8305"/>
        </reference>
        <reference anchor="I-D.ietf-core-observe-multicast-notifications">
          <front>
            <title>Observe Notifications as CoAP Multicast Responses</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>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP) allows clients to
   "observe" resources at a server, and receive notifications as unicast
   responses upon changes of the resource state.  In some use cases,
   such as based on publish-subscribe, it would be convenient for the
   server to send a single notification addressed to all the clients
   observing a same target resource.  This document updates RFC7252 and
   RFC7641, and defines how a server sends observe notifications as
   response messages over multicast, synchronizing all the observers of
   a same resource on a same shared Token value.  Besides, this document
   defines how Group OSCORE can be used to protect multicast
   notifications end-to-end between the server and the observer clients.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-observe-multicast-notifications-09"/>
        </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="21" month="April" year="2024"/>
            <abstract>
              <t>   The Constrained Resource Identifier (CRI) is a complement to the
   Uniform Resource Identifier (URI) that represents the URI components
   in Concise Binary Object Representation (CBOR) instead of in a
   sequence of characters.  This simplifies parsing, comparison, and
   reference resolution in environments with severe limitations on
   processing power, code size, and memory size.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present revision –15 of this draft continues -14 by picking up
   // more comments, such as moving to a CRI scheme number registration
   // system based on unsigned numbers.  This revision still contains
   // open issues and is intended to serve as a snapshot.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-15"/>
        </reference>
        <reference anchor="RFC8075">
          <front>
            <title>Guidelines for Mapping Implementations: HTTP to the Constrained Application Protocol (CoAP)</title>
            <author fullname="A. Castellani" initials="A." surname="Castellani"/>
            <author fullname="S. Loreto" initials="S." surname="Loreto"/>
            <author fullname="A. Rahman" initials="A." surname="Rahman"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="E. Dijk" initials="E." surname="Dijk"/>
            <date month="February" year="2017"/>
            <abstract>
              <t>This document provides reference information for implementing a cross-protocol network proxy that performs translation from the HTTP protocol to the Constrained Application Protocol (CoAP). This will enable an HTTP client to access resources on a CoAP server through the proxy. This document describes how an HTTP request is mapped to a CoAP request and how a CoAP response is mapped back to an HTTP response. This includes guidelines for status code, URI, and media type mappings, as well as additional interworking advice.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8075"/>
          <seriesInfo name="DOI" value="10.17487/RFC8075"/>
        </reference>
        <reference anchor="rfc9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="I-D.amsuess-core-resource-directory-extensions">
          <front>
            <title>CoRE Resource Directory Extensions</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   A collection of extensions to the Resource Directory [rfc9176] that
   can stand on their own, and have no clear future in specification
   yet.

Discussion Venues

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-core-resource-directory-extensions-10"/>
        </reference>
        <reference anchor="I-D.ietf-lpwan-coap-static-context-hc">
          <front>
            <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Ana Minaburo" initials="A." surname="Minaburo">
              <organization>Acklio</organization>
            </author>
            <author fullname="Laurent Toutain" initials="L." surname="Toutain">
              <organization>Institut MINES TELECOM; IMT Atlantique</organization>
            </author>
            <author fullname="Ricardo Andreasen" initials="R." surname="Andreasen">
              <organization>Universidad de Buenos Aires</organization>
            </author>
            <date day="8" month="March" year="2021"/>
            <abstract>
              <t>This document defines how to compress Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework.  SCHC defines a header compression mechanism adapted for Constrained Devices.  SCHC uses a static description of the header to reduce the header's redundancy and size.  While RFC 8724 describes the SCHC compression and fragmentation framework, and its application for IPv6/UDP headers, this document applies SCHC to CoAP headers.  The CoAP header structure differs from IPv6 and UDP, since CoAP uses a flexible header with a variable number of options, themselves of variable length.  The CoAP message format is asymmetric: the request messages have a header format different from the format in the response messages.  This specification gives guidance on applying SCHC to flexible headers and how to leverage the asymmetry for more efficient compression Rules.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lpwan-coap-static-context-hc-19"/>
        </reference>
        <reference anchor="I-D.tiloca-core-oscore-capable-proxies">
          <front>
            <title>OSCORE-capable Proxies</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   Object Security for Constrained RESTful Environments (OSCORE) can be
   used to protect CoAP messages end-to-end between two endpoints at the
   application layer, also in the presence of intermediaries such as
   proxies.  This document defines how to use OSCORE for protecting CoAP
   messages also between an origin application endpoint and an
   intermediary, or between two intermediaries.  Also, it defines how to
   secure a CoAP message by applying multiple, nested OSCORE
   protections, e.g., both end-to-end between origin application
   endpoints, as well as between an application endpoint and an
   intermediary or between two intermediaries.  Thus, this document
   updates RFC 8613.  The same approach can be seamlessly used with
   Group OSCORE, for protecting CoAP messages when group communication
   with intermediaries is used.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-capable-proxies-07"/>
        </reference>
        <reference anchor="RFC9463">
          <front>
            <title>DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR)</title>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="T. Reddy.K" initials="T." role="editor" surname="Reddy.K"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="N. Cook" initials="N." surname="Cook"/>
            <author fullname="T. Jensen" initials="T." surname="Jensen"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies new DHCP and IPv6 Router Advertisement options to discover encrypted DNS resolvers (e.g., DNS over HTTPS, DNS over TLS, and DNS over QUIC). Particularly, it allows a host to learn an Authentication Domain Name together with a list of IP addresses and a set of service parameters to reach such encrypted DNS resolvers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9463"/>
          <seriesInfo name="DOI" value="10.17487/RFC9463"/>
        </reference>
        <reference anchor="I-D.lenders-core-dnr">
          <front>
            <title>Discovery of Network-designated OSCORE-based Resolvers: Problem Statement</title>
            <author fullname="Martine Sophie Lenders" initials="M. S." surname="Lenders">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Thomas C. Schmidt" initials="T. C." surname="Schmidt">
              <organization>HAW Hamburg</organization>
            </author>
            <author fullname="Matthias Wählisch" initials="M." surname="Wählisch">
              <organization>TUD Dresden University of Technology &amp; Barkhausen Institut</organization>
            </author>
            <date day="29" month="June" year="2024"/>
            <abstract>
              <t>   This document states problems when designing DNS SVCB records to
   discover endpoints that communicate over Object Security for
   Constrained RESTful Environments (OSCORE) [RFC8613].  As a
   consequence of learning about OSCORE, this discovery will allow a
   host to learn both CoAP servers and DNS over CoAP resolvers that use
   OSCORE to encrypt messages and Ephemeral Diffie-Hellman Over COSE
   (EDHOC) [RFC9528] for key exchange.  Challenges arise because SVCB
   records are not meant to be used to exchange security contexts, which
   is required in OSCORE scenarios.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-t2trg-onion-coap-02"/>
        </reference>
        <reference anchor="I-D.lenders-core-coap-dtls-svcb">
          <front>
            <title>Service Binding and Parameter Specification for CoAP over (D)TLS</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="21" month="June" year="2024"/>
            <abstract>
              <t>   This document specifies the usage of Service Parameters as used in
   SVCB ("Service Binding") DNS resource records for the discovery of
   transport-layer-secured CoAP services.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-05"/>
        </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="8" month="July" 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, it
   defines a well-known EDHOC application profile.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tiloca-lake-app-profiles-02"/>
        </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="4" month="July" year="2024"/>
            <abstract>
              <t>   The Concise Binary Object Representation, CBOR (STD 94, RFC 8949),
   defines a "diagnostic notation" in order to be able to converse about
   CBOR data items without having to resort to binary data.  RFC 8610
   extends this into what is known as Extended Diagnostic Notation
   (EDN).

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

   It specifies how to add application-oriented extensions to the
   diagnostic notation.  It then defines two such extensions for text
   representations of epoch-based date/times and of IP addresses and
   prefixes (RFC 9164).

   A few further additions close some gaps in usability.  It modifies
   one extension specified in Appendix G.4 of RFC 8610 to enable further
   increasing usability.  To facilitate tool interoperation, this
   document specifies a formal ABNF definition for EDN as defined today,
   and it adds media types.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-10"/>
        </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>Huawei Technologies</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="28" month="June" year="2024"/>
            <abstract>
              <t>   This document defines a protocol for sending DNS messages over the
   Constrained Application Protocol (CoAP).  These CoAP messages are
   protected by DTLS-Secured CoAP (CoAPS) or Object Security for
   Constrained RESTful Environments (OSCORE) to provide encrypted DNS
   message exchange for constrained devices in the Internet of Things
   (IoT).

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

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


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

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

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

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

; reg-name and sub-delims as in RFC3986
]]></sourcecode>
        <t>Due to <xref target="RFC3986"/>'s rules,
all components are case insensitive and canonically lowercase.</t>
        <t>Note that while using the IPvFuture mechanism of <xref target="RFC3986"/> would avoid compatibility issues around the 63 character limit
and some of the character restrictions,
it would not resolve the larger limitation of case insensitivity.</t>
      </section>
      <section anchor="processing-servicearpa">
        <name>Processing <tt>service.arpa</tt></name>
        <t>A client accessing a resource under a service.arpa name
does not consult DNS,
but obtains information equivalent to the results of a DNS query from parsing the name.</t>
        <t>DNS resolvers should refuse to resolve service.arpa names.
(They would have all the information needed to produce sensible results,
but operational aspects would need a lot of consideration;
future versions of this document may revise this).</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>TBD: For SvcParams, the examples are inconsistent with the base32 recommendation;
they serve to explore the possible alternatives.</t>
        <ul spacing="normal">
          <li>
            <t>http://s.alpn_h2c.6.2001-db8--1.service.arpa/ -- The server is reachable on 2001:db8::1 using HTTP/2</t>
          </li>
          <li>
            <t>https://mail.-.tlsa.amaqckrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrkfivcukrk.service.arpa/ -- No address information is provided, the client needs to resort to other discovery mechanisms.
Any server is eligible to serve the resource if it can present a (possibly self-signed) certificate whose public key SHA256 matches the encoded value.
The "mail.-." part is provided to the server as part of the Host header,
and can be used for name based virtual hosting.</t>
          </li>
          <li>
            <t>coap://coaptransport.tcp.edhoc-cred.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgyr.--.ai3ouj4a.6.2001-db8--1.service.arpa/ -- The server is reachable using CoAP over TCP with EDHOC security at 2001:db8::1, and the service is identifiable by the use of a KCCS credential describing an X25519 public key.</t>
          </li>
          <li>
            <t>coap://edhoc-cred.ueekcandaeasabbblaqlxq2jmbjg5jgtf2kazljkenaurxocc6i2ckx3zowjgyr.--.ai3ouj4a.service.arpa/ -- The same server without any discoverability hints; it is up to the client to discover a (possibly short-lived) connection opportunities to the server identified by that key.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document heavily builds on concepts
explored by Bill Silverajan and Mert Ocak in <xref target="I-D.silverajan-core-coap-protocol-negotiation"/>,
and together with Ines Robles and Klaus Hartke inside T2TRG.</t>
      <t>[ TBD: reviewers
Marco
Klaus
]</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA92963IjV5Im+D+eIpppNklqAPCSF2VCpVJTZEpK67x1klnq
XpVGDAABMCoDEaiIAJmonCzbd9gXmQeYXzNvsk+y7p+7n0sATEnVO2u7qzbr
SpJAxLn48eOXzz8fDofJzTh9kCRd0ZX5OD2rT9+kl01Wtau66dLn1ayYZl1R
V8msnlbZkj4ya7J5Nyzybj6c1k0+7OzTw8J9enj0OGm7rJr9kpV1RV/qmnWe
JDd5tc7HSZous6Icp/z1f+YHjepmQb9dFN31eiK/H94uDnc9mT5WZl3eduN0
77rrVu348FA/P5Lvj4p65zcP95KkWDUYS9udHB09PTpJ6E/jtO1mNNomz5bj
9Pmzy++SVcGDpF8VU/rz/U3e3qefu3oa/TDLV901/eYB/9xulk0+b/0HWnp7
/JtpvVxl4QPpF8u86ugj9Av+ynriP1PV/BEacFV3xbzIZ/q7jMZJw6y6vKny
Lrld8Ka9fZa8v5V/DNIf80n6oqjeF9VikL5p6g+bQfru7fNBmpVF1tJvk2zd
XdfNOBmmRUVvPxulp8v2f/73lgchm3x23RRtV2RV8Jdpva66ZjNOT9e8NBn9
KteNtE//c7Zs13nbjmge9PT5uizleS+zpiuqPL2oV9dFnr7Iq1ne8ENp58fp
5bvz9LzJ21lepe+q4ob+VHSbtJ6nl/n0uqrLerGhz2aTSZPf8Mft07JLeU4L
9kNeLq/rsvsb/WKUHh/xgOkh4+Cj03pGQzkfHh0fPX4aTuj7vFlm1cZPaCnD
HZUyzn/u1sOZPGY0y5Oimtf0hY4GynKCZc1b/ifJhZyj02Z6XXT5tFs3Oc+j
u87TH+umnKU/FrOct2iQXtCfSS7Tk9GD0THvkD0JD7I9SvEflunHB2fyjqxZ
8JRN/m9vb0e3D/gQHV6+PbzNJxm9/fDeuimG/onTui7pN/Ewz+iX/OY2ndXV
/Y42MqsW+Y73yy5eFsv02xe/NgYSuRuaZHN40W3K/JAez4f2dnmyjN79Iy9Q
+iZb5U36f/7v/weJ7OK6u835/6cvT16mx6Pjuxbi9cvT9GKVT2lF37c7h1Mv
s5Y+cMsfwKBu+W3DFb9tWPo3DWlUw+Ph8SE95fnwfAS1Vmbv82E+u6bzTr++
fZDNePPjldv78UGqv6ezX3XZh3H67avv9n7v2tFYWZxGUzrOI9q16w2NsMs/
dIc//vjj4am8gc7sIT18dN0ty3sPH+AhM9KC4/T46dMTUrbDE5bnql7xae+N
M0+rPJ+RwqL3lu9pz+lQ3+Yp1HPWzIq/5emr17+8efv63/79m7uHf0EfT39Y
71zsbFKvO9a+ZTbhk384oQN7eHJ0cnx4dHx48iWJ5JDHMOzqIY9hWNVDjPQw
mAl/nE7m8ORLPoY3dduW0UQu6QQ9uyEZxpmhI3Vx8SKlKaSXLy7uHPWzsvhb
Nsm76/TbrMibOyV3ViwK2oHOjz63Vw3r+ZDGEo30+NHwiJb9hH558e75t/GC
v6XFIJHmoT2vL9M/rcsqb7JJURZdQVqCVHebT1ktTDbped4Wi2pv57hYI8kn
ZyPS9Ie3K7pvSe1X3eF6VdbZrOUlPjk8enr4kj56IR8d8oCGOFtDnK3Rajbv
LXOSDIdD0qakKemuSRJe2rO64h9J6c3S09Wq1EuT7w+66khL7LNpMEg/fvyn
t9+dfXny6OTTp4O0aNPshjRmNilJzZHeTmfFfJ43NMjU3cFtsv/unL56Tjs1
SC/P6J/4FynBi3r6Pu/ag0EyWXd0sU/f0wPT22zD4rquivmGNWeb21HL2xGN
tmB1NV3z3ZmuRNm0Ka35spCrAmuPP7Q0hTadkAqcpTSZ4GakiXxDE3ly8uTJ
p08JvS3/sMJhzkq+WaHcgykE06TPZuksvyGBGST8JvpFveqKJZ+k/IOo0DZd
86mV0Y9kwZfFbFaSFXSPb++mnq1F/X+8VwQ/fvo923EQTN8PdZnzGIp2KQuP
1eC1T2lE01wnLjvotwOf8jsSffbJg5MHtNuD5JYMLDJsltiPggeUlekk54mu
eYmLKn1xy7r740foe1pZfmxOdl+6rFnk8Vla6pJ+mqX79HzWuhO+Tqtq2J10
zWLYlsVquf7Ao9O/q1Uh9ua0zlZDlrXhIus6GheLBGSEXrBcd+usLDc0FJhS
XQHJrHAB3xZNLpIGM7dYrsqchQhL28Icqyv6brtewfptaeANzVDu76XsNisu
OsfplPQhFp3NUZoYXSg5XrOk7cbz6TzyQaAH9gRbbVIa0HUxvY6kjKbgJY2s
DPrSouDlI9ms100gcu4h3XXWOYnkE0lyvMoaUflt3pAcZ/xyaNyvki46Pm1d
3tBkJjVt7IRXTSRRRZdM7KwVVb0XHTB6cnyW/smdJRmPniYWzGtMZEm6obtu
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
AtBVrZROb02eJVR7Y3W1sfhsXdWWWtgP8fEHwYpJJbbWEVWKX3XtTndhH0cC
/Z3z7Jy4RHDlPsfNQHiaQDfElLS9U7ljIbXlb389YVp2rruXyL5DNOgNcMfl
kEkoRgI24YPDBL5SOQTNTYcF12XVgkQwQ1WbRzn3o59VclmJSY4vaoNBV3PE
hAwTrUugoY2yZpXtyPRzp8wHx18C48eXJToN8vHRpoRNq6H/KgfBp+aH8SYI
lHkpksDkbTNjhH3D+22vOlCfJimo9NW/nb9+efr8FZ37KeehBabBJXeoE4X1
pi1Z2ZvxNFJh4cfKGnwy8dsdwingSuD/VaSTuTBd2QngbIv1ZzDnxkCBWhHa
k9atKwRosn127Pg39IPqvu7aQq4l0g+lOqlasgQYdjelf6kpbqg1jdh4ahmr
inW/SUA208ayPULYxyIXYXd2b1wESGzP7y7nMhj/iIz0RLqS7virhRYM6iWQ
mv4qFVIPFmIZ2hBYMPrpvxz/DAVI+o7/PU5/rDl2CGdvrmvEihRL5PshaLSG
/1TRdnGyN6bSgFEgSEKsCFgHNK+g3XZzCYELibegHCVlhPQJwtS4wxlNLOFp
9lRzjYFwbFSftzuS803yezQPyFl6uifrvPIRSouQaGzjSr1J/GnCSqrk5JfV
g4ZUJT3Eg3AmhnUR/A1DQ4IMbZDlDQj7jDKylrXX7kPutRu0O50FbBeRR+6F
+fvTy8t+ab+vMUDgYUHqhryeJl/WRqQkE5Xiom9pa7uaY4cvGOVW5c1ik748
PQv4l2FNHB2Nj4/HJyfjBw/GDx+OHz0SOxblo/LYpfoqsVrPKzafXRnI0dHx
8cnJgwcPHz56NGJzg1Xq1Si5KIvVcv3B5jLh9a0qpSlo5Y80Cw+94XlYT+m2
WAgLAoMact9O+opBCYddt3l38e3RFVcMW6JKf8fZc96BQxpBArs1InoPOktb
GVwI1/dKU/hyys0YpXyGk/N2gAdGC2uHa7BrALuwDKbX1lSagT43sGFloQ7r
rkUniyvctTmjK+SzE+6kUFWUNODheyqIhFbCNtFr+ufm1wqkq8ozVcSxlZs4
mKCCOFEy5zv9yaOERMEvGUKUkVhn6fVmxUa/BF76NA700W9fPItCuBB/WG6J
6/ZRKm4pXMOdDdE1rV8p7ksWmN8Q0WrCHr4IkIsBJ6cWjfVa7QT9GxJH5GdO
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

-->

</rfc>
