<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cui-dawn-local-llm-api-discovery-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="Local LLM API Discovery">Discovery of LLM API Services in Local Networks</title>
    <seriesInfo name="Internet-Draft" value="draft-cui-dawn-local-llm-api-discovery-00"/>
    <author initials="Y." surname="Cui" fullname="Yong Cui">
      <organization>Tsinghua University</organization>
      <address>
        <email>cuiyong@tsinghua.edu.cn</email>
      </address>
    </author>
    <date year="2026" month="November"/>
    <area>Internet</area>
    <workgroup>Discovery of Agents With Names</workgroup>
    <keyword>LLM API</keyword>
    <keyword>DNS-SD</keyword>
    <keyword>mDNS</keyword>
    <keyword>local discovery</keyword>
    <abstract>
      <?line 45?>

<t>Large Language Model (LLM) API services can be hosted on workstations, local servers, and other devices in a local network. AI applications commonly access these services through manually configured API base URLs and interface settings. When an application joins a different network or a service address changes, these settings may need to be updated even when a suitable local service is already available.</t>
      <t>This document specifies a DNS-Based Service Discovery (DNS-SD) profile for discovering LLM API services on a local link. An advertiser publishes the service location and a small set of API connection parameters. A discovery client resolves these records and offers the resulting connection information to an AI application or its configuration adapter. Subsequent LLM API requests are sent directly to the discovered service, not through the advertiser or discovery client. Discovery does not establish trust, distribute credentials, select models, or define an application's configuration file format.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-cui-dawn-local-llm-api-discovery/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        dawn Working Group mailing list (<eref target="mailto:dawn@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dawn/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dawn/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 51?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>An LLM API running on a workstation or an enterprise server may be reachable over a local network, yet an AI application cannot use it without knowing its API address and interface conventions. Today these settings are often entered manually. For example, a developer may need to edit an AI coding tool's base URL when moving from an office network to a home network, even though both networks offer accessible LLM services.</t>
      <t>Multicast DNS (mDNS) <xref target="RFC6762"/> and DNS-SD <xref target="RFC6763"/> already provide a way to discover network services without prior knowledge of their addresses. This document does not define another discovery transport. It defines how an LLM API service is advertised through DNS-SD, how a client obtains the minimum API connection information, and how that information may be passed to an AI tool after local approval.</t>
      <t>The advertised endpoint is the <strong>actual LLM API service</strong>. The component that publishes DNS-SD records may be a separate process and does not need to receive or forward model inference requests.</t>
    </section>
    <section anchor="problem">
      <name>Problem Statement</name>
      <t>A locally deployed LLM service is typically configured in an AI application by supplying a base URL, an API interface type, and, when applicable, authentication and model settings. These settings are specific to a deployment rather than to the network service-discovery mechanisms already available to the operating system.</t>
      <t>This creates a recurring configuration problem. A laptop can move between an enterprise network, a home network, and a temporary development network, each with its own LLM API services. A service can also move to another host or port without changing its function. A client with a previously configured static endpoint does not automatically learn that a different local service is now available.</t>
      <t>The problem is <strong>initial discovery and configuration of an accessible API endpoint</strong>, not discovery of GPU hardware or selection of the best model. A common DNS-SD service profile is needed so that an advertiser and an independently implemented discovery client agree on (1) which local services are LLM APIs, (2) where their API endpoints are located, and (3) which API interface the client must support. The discovery result can then be supplied to an AI application without requiring the user to re-enter the endpoint manually.</t>
    </section>
    <section anchor="scope">
      <name>Scope and Terminology</name>
      <t>This document specifies discovery on a single local link using mDNS and DNS-SD. It covers directly hosted LLM API services as well as LLM APIs hosted behind a local proxy; the discovery procedure does not depend on the server's internal deployment architecture.</t>
      <t>It defines the service advertisement, minimum fields, discovery and resolution behavior, and the handoff of a candidate configuration. It does not define LLM inference messages, credential issuance, API key discovery, model selection, model catalogs, GPU resource discovery, or the configuration format of a particular AI application. Discovery across subnets, VLANs, or the public Internet is outside scope. This initial revision defines an API Profile binding for Open Responses. Additional LLM API interfaces can be supported through separately specified bindings.</t>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<ul spacing="normal">
        <li>
          <t><strong>LLM API Service:</strong> The HTTP-based <xref target="RFC9110"/> endpoint that receives LLM API requests. It may be hosted directly by a model server or exposed by a proxy.</t>
        </li>
        <li>
          <t><strong>Discovery Advertiser:</strong> A component configured by the service operator to publish DNS-SD records for an LLM API Service. It may run in the service process or separately.</t>
        </li>
        <li>
          <t><strong>Discovery Client:</strong> A component that browses DNS-SD services, resolves and checks their records, and constructs candidate API connection information.</t>
        </li>
        <li>
          <t><strong>AI Application:</strong> An AI coding tool, assistant, or other application that uses an LLM API. A local adapter or plugin may pass discovery results into the application's settings.</t>
        </li>
        <li>
          <t><strong>API Profile:</strong> An identifier for the application-layer API convention expected at a discovered endpoint. It is distinct from a model name.</t>
        </li>
        <li>
          <t><strong>Candidate Configuration:</strong> A discovered API address and profile that has not yet been approved or authenticated for use.</t>
        </li>
      </ul>
    </section>
    <section anchor="architecture">
      <name>Use Cases and Architecture</name>
      <t>The principal use case is a laptop running an AI application that moves between networks. On the office network, an authorized local LLM service is advertised by the enterprise. On the home network, a workstation exposes a different LLM API. In either location, the discovery client can locate an available API and present a candidate configuration. The application can use that configuration only after the applicable approval and security checks.</t>
      <t>The following diagram illustrates the discovery and configuration handoff process. Subsequent LLM API communication is not shown.</t>
      <sourcecode type="text"><![CDATA[
+------------------+    +-------------+
| LLM API Service  |--->| Discovery   |
| (Actual Server)  |    | Advertiser  |
+------------------+    +-------------+
    Service Info          mDNS / DNS-SD
                               |
                               v
                     +-----------------+    +-----------------+
                     | Discovery       |--->| AI Tool         |
                     | Client / Plugin |    | (Configuration) |
                     +-----------------+    +-----------------+
                          API Connection Info
]]></sourcecode>
      <t>The advertiser <bcp14>MUST</bcp14> obtain its service information from the operator or another authorized local configuration source. This document does not define the advertiser-to-server configuration interface. The discovery client may be implemented as a plugin within an AI application or as a local helper. How it writes or updates application-specific settings is outside the wire protocol.</t>
    </section>
    <section anchor="advertisement">
      <name>LLM API Service Advertisement</name>
      <section anchor="service-type">
        <name>Service Type and DNS-SD Records</name>
        <t>This document proposes <tt>_llm-api._tcp</tt> as the DNS-SD service type for LLM API endpoints. On the local link, the corresponding browse name is <tt>_llm-api._tcp.local.</tt>. The service name is proposed for registration and is not assumed to be already assigned.</t>
        <t>The advertiser <bcp14>MUST</bcp14> publish the DNS-SD information needed to browse and resolve a service instance:</t>
        <ul spacing="normal">
          <li>
            <t><strong>PTR:</strong> Identifies an advertised LLM API service instance.</t>
          </li>
          <li>
            <t><strong>SRV:</strong> Identifies the service host and listening port.</t>
          </li>
          <li>
            <t><strong>TXT:</strong> Carries the minimum API connection parameters specified below.</t>
          </li>
          <li>
            <t><strong>A/AAAA:</strong> Resolves the SRV target to an address reachable in the intended local-link context.</t>
          </li>
        </ul>
        <t>One instance describes one API Profile at one API base path on one listener. A listener that supports multiple distinct API Profiles <bcp14>MAY</bcp14> publish a separate service instance for each. A service offering several models through the same API Profile does not need one discovery instance per model.</t>
        <t>A Discovery Advertiser <bcp14>MUST NOT</bcp14> place credentials, prompts, complete model catalogs, or GPU resource details in TXT records. SRV already carries the host and port, which <bcp14>MUST NOT</bcp14> be duplicated in TXT <xref target="RFC6763"/>.</t>
      </section>
      <section anchor="parameters">
        <name>TXT Parameters</name>
        <t>This version proposes the following TXT keys. All keys and values follow the DNS-SD TXT encoding rules in <xref target="RFC6763"/>. The table defines the <strong>discovery interface</strong>, not a model invocation API.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Key</th>
              <th align="left">Requirement</th>
              <th align="left">Meaning</th>
              <th align="left">Example</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>txtvers</tt></td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Version of this TXT record format</td>
              <td align="left">
                <tt>txtvers=1</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>api</tt></td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Identifier of the advertised API Profile</td>
              <td align="left">
                <tt>api=openresponses</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>protovers</tt></td>
              <td align="left">Conditional</td>
              <td align="left">Version of the API Profile, when required by its binding</td>
              <td align="left">
                <tt>protovers=2026-04-24</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>scheme</tt></td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">URL scheme, <tt>http</tt> or <tt>https</tt></td>
              <td align="left">
                <tt>scheme=https</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>base</tt></td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Path component of the API base URL</td>
              <td align="left">
                <tt>base=/v1</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>auth</tt></td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Authentication hint: <tt>required</tt> or <tt>none</tt></td>
              <td align="left">
                <tt>auth=required</tt></td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>txtvers</tt>, <tt>api</tt>, <tt>scheme</tt>, and <tt>base</tt> parameters <bcp14>MUST</bcp14> be present and nonempty. The advertiser <bcp14>SHOULD</bcp14> place <tt>txtvers</tt> first in the TXT record, as recommended by <xref target="RFC6763"/>. A Discovery Client <bcp14>MUST NOT</bcp14> interpret an unsupported TXT format version using version 1 rules. Unknown TXT keys <bcp14>MUST</bcp14> be ignored in accordance with <xref target="RFC6763"/>.</t>
        <t>The <tt>protovers</tt> parameter <bcp14>MUST</bcp14> be present when required by the selected API Profile binding. An unknown API Profile <bcp14>MUST NOT</bcp14> be treated as supported. An absent <tt>auth</tt> parameter indicates that the authentication requirement is unknown; <tt>auth=none</tt> does not constitute authorization.</t>
        <t>The <tt>base</tt> value <bcp14>MUST</bcp14> be either <tt>/</tt> or an absolute URI path beginning with <tt>/</tt> and not ending with <tt>/</tt>. It <bcp14>MUST NOT</bcp14> contain a scheme, authority, query, fragment, or userinfo, and <bcp14>MUST NOT</bcp14> contain <tt>.</tt> or <tt>..</tt> path segments. The Discovery Client <bcp14>MUST</bcp14> reject malformed values rather than silently repairing them.</t>
        <t>The API base URL is constructed using the advertised scheme, the SRV target host, the SRV port, and the base path, following <xref target="RFC3986"/>. Operation-specific paths are appended according to the selected API Profile binding without introducing duplicate slashes or additional version prefixes.</t>
        <t>For example, an SRV target <tt>llm-node.local.</tt>, port <tt>8443</tt>, <tt>scheme=https</tt>, and <tt>base=/v1</tt> produce the candidate API base URL <tt>https://llm-node.local:8443/v1</tt>. No fixed port or universal <tt>/v1</tt> prefix is required: the path is taken from the actual service advertisement.</t>
      </section>
      <section anchor="api-binding">
        <name>API Profile Binding</name>
        <t>The <tt>api</tt> parameter identifies the API Profile exposed by the discovered service. An API Profile defines the interface convention and the rules for interpreting the advertised API base URL. A Discovery Client <bcp14>MUST NOT</bcp14> assume that different API Profiles are interchangeable.</t>
        <t>This document defines an initial binding for <tt>api=openresponses</tt>, using <tt>protovers=2026-04-24</tt> to identify the Open Responses specification <xref target="OPENRESPONSES"/>. For this binding, the response creation operation uses HTTP POST at the relative path <tt>responses</tt>. For example, a base path of <tt>/v1</tt> yields <tt>/v1/responses</tt>. An advertiser using this binding <bcp14>MUST</bcp14> set <tt>auth=required</tt>.</t>
        <t>Other interfaces, including Chat Completions-style APIs, may be supported through additional API Profile bindings. Each binding needs to specify its identifier, applicable protocol version, and endpoint construction rules. The existence of an API Profile identifier does not by itself establish compatibility between different server implementations.</t>
      </section>
    </section>
    <section anchor="procedure">
      <name>Discovery Procedure and Application Handoff</name>
      <t>The following diagram illustrates the logical flow of LLM API discovery, from service advertisement to the delivery of candidate connection information to an AI tool. The diagram covers discovery and configuration handoff only; subsequent API communication is outside the discovery process.</t>
      <sourcecode type="text"><![CDATA[
  LLM API     Discovery       Discovery        User/Local       AI
  Service     Advertiser      Client/Plugin    Policy          Tool
     |            |                 |               |            |
     |-- Info --->|                 |               |            |
     |            |                 |               |            |
     |            |  Publish DNS-SD |               |            |
     |            |  service records|               |            |
     |            |                 |               |            |
     |            |<--- Browse -----|               |            |
     |            |---- PTR ------->|               |            |
     |            |                 |               |            |
     |            |<--- Resolve ----|               |            |
     |            |---- SRV/TXT --->|               |            |
     |            |    A/AAAA       |               |            |
     |            |                 |               |            |
     |            |          Validate records       |            |
     |            |          Construct API Base URL |            |
     |            |                 |               |            |
     |            |                 |-- Candidate ->|            |
     |            |                 |<-- Decision --|            |
     |            |                 |               |            |
     |            |                 |-- Approved Configuration ->|
     |            |                 |               |            |
]]></sourcecode>
      <ol spacing="normal" type="1"><li>
          <t><strong>Service preparation.</strong> The LLM API Service is already running. Its operator supplies the endpoint and API Profile to the advertiser; this may be an internal process configuration, not a network exchange.</t>
        </li>
        <li>
          <t><strong>Advertisement.</strong> The advertiser publishes the DNS-SD service instance on the authorized local interface, following mDNS procedures in <xref target="RFC6762"/>.</t>
        </li>
        <li>
          <t><strong>Discovery.</strong> The client browses <tt>_llm-api._tcp.local.</tt>, resolves the chosen instance, and obtains the SRV and TXT information.</t>
        </li>
        <li>
          <t><strong>Resolution.</strong> The client validates the parameters and constructs the candidate API base URL and API Profile. It does not make an inference request to verify discovery.</t>
        </li>
        <li>
          <t><strong>Approval.</strong> The Discovery Client presents the candidate connection information to the user or an independently established local authorization policy. Approval <bcp14>MUST NOT</bcp14> rely solely on the advertised service name.</t>
        </li>
        <li>
          <t><strong>Configuration handoff.</strong> After approval, the Discovery Client or its adapter <bcp14>MAY</bcp14> provide the API base URL and API Profile to the AI application's configuration mechanism. Application-specific configuration formats are outside the scope of this document. Any required model identifier or credential is obtained separately.</t>
        </li>
        <li>
          <t><strong>API use.</strong> The AI application communicates directly with the LLM API Service. The service identity <bcp14>MUST</bcp14> be verified before transmitting credentials or sensitive application data. The Discovery Advertiser and Discovery Client do not forward inference requests.</t>
        </li>
      </ol>
      <t>On an attachment change, the Discovery Client <bcp14>MUST</bcp14> stop offering candidates from the previous attachment for new connections and rediscover on the current one. It <bcp14>MUST</bcp14> respect DNS-SD record lifetimes and withdrawals. A prior approval or API credential <bcp14>MUST NOT</bcp14> be carried to a newly discovered service merely because the instance name or API Profile matches. Automatic replacement of an active model connection is outside scope.</t>
    </section>
    <section anchor="example">
      <name>Example</name>
      <t>The following illustrative DNS-SD records describe an LLM API Server whose API base URL is <tt>https://llm-node.local:8443/v1</tt>.</t>
      <sourcecode type="text"><![CDATA[
_llm-api._tcp.local. PTR Office-LLM._llm-api._tcp.local.
Office-LLM._llm-api._tcp.local. SRV 0 0 8443 llm-node.local.
Office-LLM._llm-api._tcp.local. TXT (
    "txtvers=1"
    "api=openresponses"
    "protovers=2026-04-24"
    "scheme=https"
    "base=/v1"
    "auth=required"
)

llm-node.local. A 192.168.10.20
]]></sourcecode>
      <t>The discovery client can pass the following <em>candidate</em> values to an application adapter:</t>
      <sourcecode type="text"><![CDATA[
API profile:    openresponses (2026-04-24)
API base URL:   https://llm-node.local:8443/v1
API operation:  POST /v1/responses
Authentication: required (hint only)
]]></sourcecode>
      <t>This example does not supply a model identifier, issue a credential, or make a trust decision. The client must be able to authenticate and authorize the intended local endpoint before sending sensitive prompts or credentials.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>mDNS and DNS-SD advertisements on a local network are not inherently trustworthy. A malicious device may forge a service instance, replace the advertised address or API base path, or impersonate a familiar display name. A Discovery Client <bcp14>MUST</bcp14> treat discovery records as untrusted input and <bcp14>MUST NOT</bcp14> transmit credentials or prompts merely because a valid-looking service has been discovered.</t>
      <t>Clients <bcp14>MUST</bcp14> validate advertised URL components and apply local destination restrictions. For HTTPS endpoints, TLS server identity verification <bcp14>MUST</bcp14> follow <xref target="RFC9525"/>. TLS verification of a name learned only from unauthenticated DNS-SD is not, by itself, sufficient authorization to release existing application credentials or private information; trusted service identity and allowed endpoint scope need an independent policy or trust arrangement. Plain HTTP is permitted as an advertised endpoint for deployments that explicitly allow it, but it <bcp14>MUST NOT</bcp14> be treated as confidentiality- or integrity-protected, and clients <bcp14>MUST NOT</bcp14> send sensitive data or credentials over it.</t>
      <t>Advertisers <bcp14>SHOULD</bcp14> publish only on intended interfaces and <bcp14>SHOULD</bcp14> avoid disclosing sensitive project or model details. A local network may not be private merely because it uses mDNS. An application <bcp14>MUST NOT</bcp14> reuse a cloud-provider API key for a newly discovered local service without separate authorization. Redirects to a different destination require fresh validation and authorization.</t>
      <t>This document does not define cryptographic integrity protection for the DNS-SD advertisement. Consequently, discovery records <bcp14>MUST</bcp14> be treated as untrusted information until the intended service and destination have been independently authorized.</t>
      <t>Authentication of the subsequent HTTPS connection does not, by itself, authenticate the original DNS-SD records. An interoperable mechanism for protecting discovery information and binding it to an authorized service identity remains to be specified or referenced in a future revision.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests registration of the service name <tt>llm-api</tt> for TCP in the Service Name and Transport Protocol Port Number Registry, following <xref target="RFC6335"/>, with the description "LLM API service discovery" and this document as the reference. The registration is for the service name only; no fixed port number is requested. For an assignment resulting from an IETF-stream RFC, the assignee and contact follow the defaults in <xref target="RFC6335"/>. The registered service name is used in DNS-SD as <tt>_llm-api._tcp</tt>.</t>
      <t>No new DNS resource record type or port number is requested. This text is a proposed IANA action, not a statement that the service name has already been registered.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <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="RFC6762">
        <front>
          <title>Multicast DNS</title>
          <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
          <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
          <date month="February" year="2013"/>
          <abstract>
            <t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
            <t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
            <t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6762"/>
        <seriesInfo name="DOI" value="10.17487/RFC6762"/>
      </reference>
      <reference anchor="RFC6763">
        <front>
          <title>DNS-Based Service Discovery</title>
          <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
          <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
          <date month="February" year="2013"/>
          <abstract>
            <t>This document specifies how DNS resource records are named and structured to facilitate service discovery. Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6763"/>
        <seriesInfo name="DOI" value="10.17487/RFC6763"/>
      </reference>
      <reference anchor="RFC9110">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
          <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
            <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="97"/>
        <seriesInfo name="RFC" value="9110"/>
        <seriesInfo name="DOI" value="10.17487/RFC9110"/>
      </reference>
      <reference anchor="RFC9525">
        <front>
          <title>Service Identity in TLS</title>
          <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
          <author fullname="R. Salz" initials="R." surname="Salz"/>
          <date month="November" year="2023"/>
          <abstract>
            <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
            <t>This document obsoletes RFC 6125.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9525"/>
        <seriesInfo name="DOI" value="10.17487/RFC9525"/>
      </reference>
      <reference anchor="RFC6335">
        <front>
          <title>Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry</title>
          <author fullname="M. Cotton" initials="M." surname="Cotton"/>
          <author fullname="L. Eggert" initials="L." surname="Eggert"/>
          <author fullname="J. Touch" initials="J." surname="Touch"/>
          <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
          <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
          <date month="August" year="2011"/>
          <abstract>
            <t>This document defines the procedures that the Internet Assigned Numbers Authority (IANA) uses when handling assignment and other requests related to the Service Name and Transport Protocol Port Number registry. It also discusses the rationale and principles behind these procedures and how they facilitate the long-term sustainability of the registry.</t>
            <t>This document updates IANA's procedures by obsoleting the previous UDP and TCP port assignment procedures defined in Sections 8 and 9.1 of the IANA Allocation Guidelines, and it updates the IANA service name and port assignment procedures for UDP-Lite, the Datagram Congestion Control Protocol (DCCP), and the Stream Control Transmission Protocol (SCTP). It also updates the DNS SRV specification to clarify what a service name is and how it is registered. This memo documents an Internet Best Current Practice.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="165"/>
        <seriesInfo name="RFC" value="6335"/>
        <seriesInfo name="DOI" value="10.17487/RFC6335"/>
      </reference>
      <reference anchor="OPENRESPONSES" target="https://www.openresponses.org/specification/2026-04-24">
        <front>
          <title>Open Responses Specification (2026-04-24)</title>
          <author>
            <organization>Open Responses</organization>
          </author>
          <date year="2026" month="April"/>
        </front>
      </reference>
    </references>
    <?line 262?>

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The author would like to thank Chenguang Du and Yihan Chao for their valuable discussions and contributions to the development of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8Vc63LbRpb+z6folX/EVkjKsh0nUZKZYWRnolpb0kpysqmt
rSEINEWMQYCDBiRzbOdZ9ln2yfZcG90AZecylZV/mASB7tOnz+U7l8ZkMhk1
eVPYI/Msd2l1Y+utqZbmxYuXZnZ+Yi5tfZOn1pm8NC+qNCnMqW1uq/q1GyWL
RW1vjuSyPuBHGaVJY6+rentkXJONsiotkzVMk9XJspmkbT7JkttyUuDTk6JY
T5INXNKnJw8fjly7WOfO5VXZbDfw5Mnzq+9GZbte2PrIlG1RjDKY4sh88ujh
o6eTw8PJw8NPRkDQ41FS2wTuLxtbl7YZIb3XddVujsxetMrZtS0bZ37Mm5U5
Berc3ui13cLt2dFookuCT89OLyeXz+DDGj7Bf0S08cSObmzZ2qORMTILrgy+
Mdk/wux5eW3+ir/B1XWSF3zLX3LbLKdVfQ1XkzpdHZlV02zc0cEB3oNX8hs7
1ZsO8MLBoq5unT3Axw9GSdusqhppXQI7mL8/VTDXcZvDmHmZN3lSOLg4ha+u
rfkW/hWGTMr8n0kDDD4yVw5oXLWJeVXCpLXLmy3cY5lY2K0tDPuXRm6a2qyd
puWorOo1PH9Da7/47vjR4eGX8vGLw8+fyMfHX37xVD4+/fzpo+7jY/n45eHh
Q/342aPP9IbHj+nj2fnz04vnl+dnp5fPL/ECMJYl9mxjS3Nh3aYqHYjo5cam
+TJPaUXmPknFwyeTR08e8ENJfW2bjse3t7fTCkaodQBisgsHOejGoCFCeaOr
n9Bl3Qb8POnxNaZxNJ1OR6PJZGKShWvqJG1GoxdIl3mRlNdtAh9eVpktzH0Q
vgekUE41ME1Ks7BmVbnGZgZWSGrY0DxuLDKJd8PujU1Swj3NytYms16DE7mr
ZB2emtmJSTabQpYLc1TrdVUWW5Ok8IgzMICzHQnNCmT4egUiXLZJAbelVbnM
r9saCEJaFwnc/erihaPpc9S/ZZLiAE0DkuOm5scVsAMWEsxq/l7lMHUC+rRc
2ho0UukDVsJlmd0kWVYjTekKWGVhiUocjw1EbeFBoKSpkE/tBncrMxaU09zS
tKABeZMsChswC0fOYfYCTEYG675BzYNbYJuuVvAD2K12jTSJYFikFO3Bt7DW
TO1jYDzvs7F4YDZ1tcxhriWsQk0F2gG1lJ6rVbcxRV7irsCFDO5ucrjHbNpF
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
fRqR3xZFV3w9tXuTxyBVNPo/g4/QM3tRAAA=

-->

</rfc>
