<?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.40 (Ruby 4.0.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-kennedy-dnssd-data-block-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="DNS-SD Data Block">DNS-SD Data Block Encoding for Non-DNS Transports</title>
    <seriesInfo name="Internet-Draft" value="draft-kennedy-dnssd-data-block-00"/>
    <author fullname="Smith Kennedy">
      <organization/>
      <address>
        <email>smitty.standards@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="26"/>
    <keyword>dns-sd</keyword>
    <keyword>service discovery</keyword>
    <keyword>bluetooth low energy</keyword>
    <keyword>nfc</keyword>
    <abstract>
      <?line 69?>

<t>The DNS-SD Data Block (DDB) is a compact TLV encoded container for conveying DNS-SD service information over non-IP transports, such as short-range peer-to-peer or proximity-based advertisement and discovery technologies (for example, the Bluetooth Low Energy Transport Discovery Service or NFC Verb NDEF Records).</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-kennedy-dnssd-data-block/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        dnssd Working Group mailing list (<eref target="mailto:dnssd@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dnssd/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dnssd/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 73?>

<section anchor="intro">
      <name>Introduction</name>
      <t>DNS-based Service Discovery <xref target="RFC6763"/> is widely deployed for service advertisement on IP networks. Printers, media servers, file-sharing, and many other types of services are advertised and discovered via DNS-SD.</t>
      <t>There are circumstances where ancillary advertisement and discovery technologies can improve service advertisement and discovery coverage. Some network environments may have non-trivial network infrastructure topologies that complicate the use of mDNS <xref target="RFC6762"/>, but that are also not provisioned with infrastructure DNS-SD. There are also peer-to-peer wireless IP networking technologies used for transient communications and could support DNS-SD services, but that suffer from a poor user experience due to a lack of a standard way to provide the DNS-SD service information before a connection has been established (what is sometimes referred to as "pre-association service discovery"). Both of these could benefit from using ancillary short range peer-to-peer or proximity focused advertisement and discovery technologies to convey DNS-SD service information.</t>
      <t>Examples include the following:</t>
      <ul spacing="normal">
        <li>
          <t>An IPP printer in an office with a segmented network topology and limited DNS-SD infrastructure advertises its IPP print service using Bluetooth Low Energy Transport Discovery Service (TDS) <xref target="BT-TDS"/> to provide service information to physically proximate clients.</t>
        </li>
        <li>
          <t>A television with an NFC interface in a hotel room advertises its media streaming services and supported carrier types using NFC Verb NDEF Records <xref target="NFC-VERB"/>. A client tapped to the TV reviews the advertised connection carriers and services and offers its user a selected optimal pathway before engaging in the process of connecting to the TV.</t>
        </li>
      </ul>
      <t>For each of these scenarios and the ancillary discovery technologies used, there is a need to represent DNS-SD service information in a format that is not native to the technology's transport. The standards organizations responsible for these ancillary technologies are scoped to MAC/PHY-layer specification and do not consider DNS-SD service semantics to be within their area of expertise; defining such an encoding independently in each of those venues would risk incompatible, non-interoperable results. These organizations have accordingly deferred definition of this encoding to the DNS-SD community.</t>
      <t>This document defines the DDB format and its associated encoding and decoding rules for interoperable use. The DDB is designed to:</t>
      <ul spacing="normal">
        <li>
          <t>Fit within the small payload sizes typical of short-range advertisement and proximity discovery technologies.</t>
        </li>
        <li>
          <t>Be self-describing and forward-compatible (unknown fields are skipped by receivers that do not understand them).</t>
        </li>
        <li>
          <t>Round-trip losslessly to and from DNS-SD SRV + TXT records for the fields it encodes.</t>
        </li>
      </ul>
      <t>Use of DDB in specific external registries or protocol elements may still require assignment or approval by the relevant standards body (e.g., Bluetooth SIG, NFC Forum). In defining DDB, this document supplies the DNS-SD encoding that these standards bodies have identified as needed but outside their own scope to define, so that each can reference a single interoperable IETF-defined convention rather than specifying its own.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used:</t>
      <dl>
        <dt>DDB (DNS-SD Data Block):</dt>
        <dd>
          <t>The compact binary encoding defined in this specification.</t>
        </dd>
        <dt>Service Name:</dt>
        <dd>
          <t>The DNS-SD service name label pair, consisting of an Application Protocol label and a Transport Protocol label, for example "_ipp._tcp" or "_http._tcp", as defined in <xref target="RFC6763"/>, Section 7.</t>
        </dd>
        <dt>Service Instance Name:</dt>
        <dd>
          <t>The full DNS name of a DNS-SD service instance, as defined in <xref target="RFC6763"/>, Section 4.1.</t>
        </dd>
        <dt>Instance Name:</dt>
        <dd>
          <t>The &lt;Instance&gt; component of a Service Instance Name, as defined in <xref target="RFC6763"/>, Section 4.1.1.</t>
        </dd>
        <dt>TXT Data:</dt>
        <dd>
          <t>The DNS-SD TXT record payload, encoded as a sequence of length-prefixed strings, each string being a UTF-8 key=value pair or a bare key, as specified in <xref target="RFC6763"/>, Section 6.</t>
        </dd>
        <dt>UUID:</dt>
        <dd>
          <t>A Universally Unique Identifier as defined in <xref target="RFC9562"/> (formerly <xref target="RFC4122"/>), encoded as 16 octets in network byte order following the binary representation defined therein.</t>
        </dd>
        <dt>TLV:</dt>
        <dd>
          <t>Type-Length-Value - a binary encoding scheme consisting of a type code field indicating the type, a length field indicating the length of the value field, and a value field containing the actual payload. The size of the type and length fields are typically fixed.</t>
        </dd>
      </dl>
    </section>
    <section anchor="dns-sd-data-block-ddb-format">
      <name>DNS-SD Data Block (DDB) Format</name>
      <section anchor="applicability-and-directionality">
        <name>Applicability and Directionality</name>
        <t>A DDB describes a service being offered by the sender; it is not a request or query for a service. Any seek/query semantics (e.g., a seek/query flag defined by the surrounding transport container's own framing) are properties of that container, not of the DDB payload itself. In particular, a DDB with an absent or empty Instance Name field (see <xref target="instance-name"/>) indicates only that no specific instance is being named, not that the sender is seeking rather than providing the service.</t>
        <ul empty="true">
          <li>
            <t>OPEN ISSUE: This directionality constraint has not yet been discussed with the working group. If a future revision wants to support DDB content in a query/request role (e.g., a client advertising interest in a service type before association), this section will need to define how that role is distinguished from a service offer.</t>
          </li>
        </ul>
      </section>
      <section anchor="block-header">
        <name>Block Header</name>
        <t>A DDB begins with a single-octet Version field:</t>
        <figure>
          <name>DDB Block Header</name>
          <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Version    |               TLV Fields ...                  |
+-+-+-+-+-+-+-+-+                                               +
|                             ...                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <dl>
          <dt>Version (1 octet):</dt>
          <dd>
            <t>The version of this DDB encoding. This specification defines version 0x01. A decoder that encounters an unknown version value <bcp14>SHOULD</bcp14> treat the entire block as uninterpretable and <bcp14>MUST NOT</bcp14> attempt to parse the TLV fields.</t>
          </dd>
          <dt/>
          <dd>
            <t>Additive, backward-compatible extensions <bcp14>SHOULD</bcp14> be introduced by defining new TLV Type values or related registry entries without changing the Version value. The Version value is intended for wire-format or processing changes that are not backward compatible with earlier versions.</t>
          </dd>
        </dl>
        <t>The remainder of the DDB is a sequence of zero or more TLV fields as defined in <xref target="tlv-field-structure"/>.</t>
      </section>
      <section anchor="tlv-field-structure">
        <name>TLV Field Structure</name>
        <t>Each TLV field in a DDB has the following structure:</t>
        <figure>
          <name>TLV Field Structure</name>
          <artwork type="ascii-art"><![CDATA[
 0                   1
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+----------//----------+
|     Type      |    Length     |         Value        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+----------//----------+
]]></artwork>
        </figure>
        <dl>
          <dt>Type (1 octet):</dt>
          <dd>
            <t>Identifies the type of the field. Values are defined in <xref target="field-type-registry"/>. Value 0xFF is reserved. Values 0x09-0xEF are reserved for future assignment. Values 0xF0-0xFE are available for private/experimental use and <bcp14>MUST NOT</bcp14> be used in interoperability contexts.</t>
          </dd>
          <dt/>
          <dd>
            <t>The special value 0x00 is defined as a padding (NOP) octet. A 0x00 byte in the TLV stream is consumed as a single padding byte with no associated Length or Value fields. Encoders <bcp14>MUST NOT</bcp14> emit padding bytes except when byte-alignment is required by a specific transport framing. Decoders <bcp14>MUST</bcp14> skip 0x00 bytes and continue parsing the next TLV field.</t>
          </dd>
          <dt>Length (1 octet):</dt>
          <dd>
            <t>The length of the Value field in octets. A Length of 0x00 indicates an empty value (valid for some field types; see individual field definitions).</t>
          </dd>
          <dt/>
          <dd>
            <t>When a length of 255 octets is insufficient for a given field (notably TXT Data for rich service descriptions), the following extended-length encoding is used: if the Length octet is 0xFF, it is followed by two additional octets that carry the actual length as a 16-bit unsigned integer in network byte order, and the Value starts after those two octets. This extended form <bcp14>MUST NOT</bcp14> be used when the actual length is &lt;= 254 octets.</t>
          </dd>
          <dt>Value (Length octets):</dt>
          <dd>
            <t>The field value. Encoding is field-type-specific; see <xref target="field-type-registry"/>.</t>
          </dd>
        </dl>
        <t>TLV fields <bcp14>MUST</bcp14> be processed in the order they appear. Encoders <bcp14>MUST NOT</bcp14> include more than one TLV field with the same Type value. Decoders that encounter duplicate Type values <bcp14>MUST</bcp14> use the last instance and discard earlier ones, in order to remain robust against malformed input.</t>
        <t>An implementation <bcp14>MUST</bcp14> ignore (skip past) any TLV field whose Type it does not recognize.</t>
      </section>
      <section anchor="field-type-registry">
        <name>Field Type Registry</name>
        <t>The following Type values are defined by this specification.</t>
        <table>
          <name>DDB Field Types</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Name</th>
              <th align="left">Required/Optional</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x00</td>
              <td align="left">Padding (NOP)</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">0x01</td>
              <td align="left">Service Name</td>
              <td align="left">Required</td>
            </tr>
            <tr>
              <td align="left">0x02</td>
              <td align="left">Instance Name</td>
              <td align="left">Optional</td>
            </tr>
            <tr>
              <td align="left">0x03</td>
              <td align="left">TXT Data</td>
              <td align="left">Optional</td>
            </tr>
            <tr>
              <td align="left">0x04</td>
              <td align="left">UUID</td>
              <td align="left">Optional</td>
            </tr>
            <tr>
              <td align="left">0x05</td>
              <td align="left">Domain</td>
              <td align="left">Optional</td>
            </tr>
            <tr>
              <td align="left">0x06</td>
              <td align="left">Port</td>
              <td align="left">Optional</td>
            </tr>
            <tr>
              <td align="left">0x07</td>
              <td align="left">Subtype List</td>
              <td align="left">Optional</td>
            </tr>
            <tr>
              <td align="left">0x08</td>
              <td align="left">Hostname</td>
              <td align="left">Optional</td>
            </tr>
            <tr>
              <td align="left">0x09-0xEF</td>
              <td align="left">Unassigned</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">0xF0-0xFE</td>
              <td align="left">Private Use</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">0xFF</td>
              <td align="left">Reserved</td>
              <td align="left">N/A</td>
            </tr>
          </tbody>
        </table>
        <t>A DDB <bcp14>MUST</bcp14> include exactly one Service Name field (Type 0x01); all other field types defined in this registry are optional.</t>
        <section anchor="service-name">
          <name>Service Name (Type 0x01)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>A UTF-8 string containing the Service Name (the Application Protocol label and Transport Protocol label, joined by a period), as defined in <xref target="RFC6763"/>, Section 7. For example: "_ipp._tcp" or "_snmp._udp" or "_https._tcp". The trailing ".&lt;domain&gt;" portion (e.g., ".local") is NOT included; this is encoded separately using the Domain type (Type 0x05); see <xref target="domain"/>.</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>Length and character constraints follow <xref target="RFC6763"/>, Section 7 and <xref target="RFC6335"/>. The string <bcp14>MUST NOT</bcp14> be null-terminated.</t>
            </dd>
            <dt>Example:</dt>
            <dd>
              <t>The Service Name "_ipp._tcp" (9 octets) encodes as:</t>
            </dd>
          </dl>
          <artwork><![CDATA[
01 09                   ; Type=Service Name, Length=9
5F 69 70 70 2E 5F 74 63 ;
70                      ; "_ipp._tcp"
]]></artwork>
        </section>
        <section anchor="instance-name">
          <name>Instance Name (Type 0x02)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>A UTF-8 string containing the Instance Name, as defined in <xref target="RFC6763"/>, Section 4.1.1 (e.g., "My Color Printer"). It <bcp14>MUST NOT</bcp14> include the Service Name or Domain components.</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>Length constraints follow <xref target="RFC6763"/>, Section 4.1.1. A Length of 0 indicates that no specific Instance Name is being advertised (e.g., for general service-name discovery without an instance identifier). The string <bcp14>MUST NOT</bcp14> be null-terminated.</t>
            </dd>
            <dt/>
            <dd>
              <t>When the underlying transport already conveys an equivalent human-readable name of its own, senders <bcp14>MAY</bcp14> omit the Instance Name field and rely on that transport-native name instead, to avoid redundant encoding of the same information.</t>
            </dd>
            <dt>Example:</dt>
            <dd>
              <t>The Instance Name "My Color Printer" (16 octets) encodes as:</t>
            </dd>
          </dl>
          <artwork><![CDATA[
02 10                   ; Type=Instance Name, Length=16
4D 79 20 43 6F 6C 6F 72 ;
20 50 72 69 6E 74 65 72 ; "My Color Printer"
]]></artwork>
        </section>
        <section anchor="txt-data-type-0x03">
          <name>TXT Data (Type 0x03)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>The DNS-SD TXT record RDATA, verbatim, as defined in <xref target="RFC6763"/>, Section 6. Because the field's own length-prefixed string encoding is self-terminating, no separator or terminator is added; the end of the field is indicated by the TLV Length.</t>
            </dd>
            <dt/>
            <dd>
              <t>Receivers that already implement DNS-SD TXT record parsing can reuse that code to parse this field directly.</t>
            </dd>
            <dt/>
            <dd>
              <t>TLV extended-length encoding <bcp14>MUST</bcp14> be used if the TXT data exceeds 254 octets; see <xref target="tlv-field-structure"/>.</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>The TXT Data field <bcp14>MAY</bcp14> represent an empty TXT record, encoded as a single string-length octet of 0x00 with a TLV Length of 0x01. This is equivalent to the DNS TXT RDATA for an empty record and is a valid encoding. When TXT metadata is present, the field contains one or more length-prefixed strings as described above. If the TXT Data field is omitted entirely, receivers <bcp14>MUST NOT</bcp14> infer any default TXT record content.</t>
            </dd>
            <dt>Example:</dt>
            <dd>
              <t>TXT strings "txtvers=1" (9 octets), "pdl=image/pwg-raster" (20 octets), and "rp=ipp/print" (12 octets), encoded as:</t>
            </dd>
          </dl>
          <artwork><![CDATA[
03 2C                   ; Type=TXT Data, Length=44
09                      ; string length 9
74 78 74 76 65 72 73 3D ;
31                      ; "txtvers=1"
14                      ; string length 20
70 64 6C 3D 69 6D 61 67 ;
65 2F 70 77 67 2D 72 61 ;
73 74 65 72             ; "pdl=image/pwg-raster"
0C                      ; string length 12
72 70 3D 69 70 70 2F 70 ;
72 69 6E 74             ; "rp=ipp/print"
]]></artwork>
          <t>: Total: 3 + 9 + 20 + 12 = 44 octets.</t>
        </section>
        <section anchor="uuid-type-0x04">
          <name>UUID (Type 0x04)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>A 128-bit (16-octet) UUID in the binary representation defined in <xref target="RFC9562"/>, stored in network byte order. The UUID <bcp14>SHOULD</bcp14> be a UUID that uniquely identifies the specific service instance or the device hosting it. As an example, for an IPP print service, the value would match the value of the "UUID" key in the DNS-SD TXT record (where it is encoded as a hyphenated ASCII UUID string).</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>Length <bcp14>MUST</bcp14> be exactly 16 (0x10) octets. If a UUID is not available (nil UUID), omit the field rather than encoding all-zeros. (Encoding a nil UUID is valid if the sender intends to signal "UUID explicitly unknown/nil".)</t>
            </dd>
            <dt>Example:</dt>
            <dd>
              <t>The UUID "12345678-1234-5678-1234-567812345678" encodes as:</t>
            </dd>
          </dl>
          <artwork><![CDATA[
04 10                   ; Type=UUID, Length=16
12 34 56 78 12 34 56 78 ;
12 34 56 78 12 34 56 78 ; UUID bytes
]]></artwork>
        </section>
        <section anchor="domain">
          <name>Domain (Type 0x05)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>A UTF-8 string containing the DNS domain in which this service is registered, without a trailing dot. For example: "local" (for mDNS) or "example.com" (for unicast DNS-SD).</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>Optional. If absent, receivers <bcp14>MUST</bcp14> assume the domain is "local" (i.e., the service is on the local link and discoverable via mDNS). Length 1 through 253 octets.</t>
            </dd>
            <dt>Note:</dt>
            <dd>
              <t>In the vast majority of short-range proximity scenarios, the domain is "local" and this field can be omitted to save space.</t>
            </dd>
          </dl>
        </section>
        <section anchor="port-type-0x06">
          <name>Port (Type 0x06)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>A 2-octet unsigned integer in network byte order containing the TCP or UDP port on which the service listens. This is the same value that would appear in the SRV record for this service instance.</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>Optional. Length <bcp14>MUST</bcp14> be exactly 2 (0x02) octets if present. For services where the port is deterministic from the Service Name (e.g., port 80 for "_http._tcp") this field may be omitted; its primary value is when the device is using a non-standard port.</t>
            </dd>
          </dl>
        </section>
        <section anchor="subtype-list-type-0x07">
          <name>Subtype List (Type 0x07)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>A sequence of length-prefixed UTF-8 strings, one per DNS-SD subtype that the service instance supports. Each subtype string is the subtype label only (without the "_sub.&lt;service&gt;.&lt;domain&gt;" suffix), preceded by its 1-octet length. Example: the subtype "_print" (defined by IPP Everywhere <xref target="IPPEVE"/>) would be encoded as 0x0A followed by "_print" (6 octets).</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>Optional. Included only when the service advertises one or more DNS-SD subtypes. Each individual subtype label <bcp14>MUST NOT</bcp14> exceed 63 octets.</t>
            </dd>
          </dl>
        </section>
        <section anchor="hostname">
          <name>Hostname (Type 0x08)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>An ASCII string containing the fully qualified DNS hostname of the host providing the service, as it would appear in the RDATA of a DNS SRV record (target field). The hostname is the DNS name to which A or AAAA records are registered, and is the name used for TLS Server Name Indication (SNI) when connecting to the service. For example: "device-abc.example.com".</t>
            </dd>
            <dt/>
            <dd>
              <t>The string is encoded in ASCII (not UTF-8) and <bcp14>MUST</bcp14> consist only of DNS label characters (letters, digits, hyphens) and period separators, per the preferred name syntax of <xref target="RFC1035"/>, Section 2.3.1. Internationalized hostnames (IDN) <bcp14>MUST</bcp14> be encoded in their ACE (ASCII-Compatible Encoding) form per <xref target="RFC5891"/>. The string <bcp14>MUST NOT</bcp14> include a trailing dot and <bcp14>MUST NOT</bcp14> be null-terminated.</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>Optional. Length <bcp14>MUST</bcp14> be between 1 and 253 octets, consistent with the maximum length of a fully qualified domain name. If absent, the client <bcp14>MUST</bcp14> obtain the SRV target hostname via DNS-SD once an IP connection is established. Including this field is <bcp14>RECOMMENDED</bcp14> when the hostname is needed for TLS SNI certificate validation prior to IP-level name resolution.</t>
            </dd>
            <dt>Note:</dt>
            <dd>
              <t>This field carries the SRV record target hostname only. IP address resolution still requires DNS-SD or mDNS once an IP association is available. This field does not replace the SRV record; it carries its target hostname for contexts where TLS validation metadata is beneficial pre-connection.</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="encoding-rules">
        <name>Encoding Rules</name>
        <ol spacing="normal" type="1"><li>
            <t>Begin the DDB with the Version octet (0x01 for this version).</t>
          </li>
          <li>
            <t>Encode the Service Name field (Type 0x01) first. This is the primary identifier of what kind of service is being described.</t>
          </li>
          <li>
            <t>Encode remaining fields in no required order, though the ordering Service Name -&gt; Instance Name -&gt; TXT -&gt; UUID -&gt; others is <bcp14>RECOMMENDED</bcp14> as it places the most informative fields first, which is useful when receivers truncate parsing on constrained implementations.</t>
          </li>
          <li>
            <t>Omit any optional field that has no value to convey, to minimize encoded size.</t>
          </li>
          <li>
            <t>All string values are UTF-8 encoded and <bcp14>MUST NOT</bcp14> be null-terminated, except the Hostname field (<xref target="hostname"/>), which is restricted to ASCII as specified in its own field definition. String lengths in TLV Length fields count octets, not characters.</t>
          </li>
          <li>
            <t>A single TLV field using extended-length encoding may carry a value of at most 65,535 octets, occupying 1 (Type) + 3 (0xFF escape + 2-octet extended length) + 65,535 (Value) = 65,539 octets. No absolute maximum is imposed on the total DDB length; practical transports impose far tighter limits, and implementations <bcp14>SHOULD</bcp14> reject DDBs that exceed the limit imposed by the transport in use.</t>
          </li>
        </ol>
      </section>
      <section anchor="decoding-rules-and-forward-compatibility">
        <name>Decoding Rules and Forward Compatibility</name>
        <ol spacing="normal" type="1"><li>
            <t>Read the Version octet. If not 0x01, treat the block as uninterpretable (do not attempt TLV parsing).</t>
          </li>
          <li>
            <t>Process TLV fields in order. For each field:  </t>
            <t>
a. Read the Type octet. If Type is 0x00, this is a padding byte; consume it and continue to the next field.  </t>
            <t>
b. Read the Length octet. If Length is 0xFF, read the next two octets as a 16-bit big-endian extended length.  </t>
            <t>
c. Read Value octets (count given by the resolved length).  </t>
            <t>
d. If the Type is known, process according to <xref target="field-type-registry"/>.  </t>
            <t>
e. If the Type is unknown, skip the Value bytes.</t>
          </li>
          <li>
            <t>Continue until all octets of the DDB have been consumed.</t>
          </li>
          <li>
            <t>A DDB parses successfully as long as its octets form well-formed TLV fields (including a DDB consisting of nothing but padding octets after the Version octet). However, a decoded DDB that contains no Service Name field (Type 0x01) is not a conformant DDB per <xref target="field-type-registry"/> and <bcp14>MUST</bcp14> be discarded by the receiver. Implementations <bcp14>MUST NOT</bcp14> generate a DDB lacking a Service Name field.</t>
          </li>
          <li>
            <t>A DDB that is truncated (insufficient octets to complete the current TLV) <bcp14>MUST</bcp14> be treated as malformed; already-decoded fields <bcp14>MAY</bcp14> be used at the discretion of the application.</t>
          </li>
        </ol>
      </section>
      <section anchor="ddb-payload-identity">
        <name>DDB Payload Identity and Media Types</name>
        <t>The canonical DDB payload is the exact octet sequence defined by <xref target="ddb-format"/>: one Version octet followed by zero or more TLV fields. A container that carries a DDB carries this payload without altering its internal format.</t>
        <t anchor="ddb-format">When a content-type identifier is needed, a DDB payload is identified by the MIME media type "application/vnd.dnssd.ddb".</t>
      </section>
    </section>
    <section anchor="relationship-to-dns-sd">
      <name>Relationship to DNS-SD</name>
      <section anchor="deriving-dns-sd-records-from-a-ddb">
        <name>Deriving DNS-SD Records from a DDB</name>
        <t>Given a DDB and an IP address for the device, a client can synthesize the corresponding PTR, SRV, and TXT records using the owner-name conventions of <xref target="RFC6763"/>, Section 4.1, with the domain defaulting to "local" if the Domain field is absent:</t>
        <dl>
          <dt>PTR record:</dt>
          <dd>
            <t>RDATA is the Service Instance Name, built from the Instance Name, Service Name, and domain.</t>
          </dd>
          <dt>SRV record:</dt>
          <dd>
            <t>RDATA is &lt;priority&gt; &lt;weight&gt; &lt;port&gt; &lt;hostname&gt;, using the Port field and, if present, the Hostname field (Type 0x08) as the target. If Hostname is absent, the SRV target is not known until DNS-SD is queried after IP association.</t>
          </dd>
          <dt>TXT record:</dt>
          <dd>
            <t>RDATA is the TXT Data field verbatim.</t>
          </dd>
        </dl>
        <t>If the UUID field is present but the TXT Data field does not already contain a "UUID=..." key=value pair, a client <bcp14>SHOULD</bcp14> synthesize the UUID TXT record key from the binary UUID (formatted as a lowercase hyphen-separated hex string) and add it to the reconstructed TXT record.</t>
      </section>
      <section anchor="constructing-a-ddb-from-dns-sd-records">
        <name>Constructing a DDB from DNS-SD Records</name>
        <t>To serialize DNS-SD records into a DDB: set Version = 0x01; extract the Service Name and Instance Name from the PTR and Service Instance Name; copy the TXT record RDATA verbatim into TXT Data (extracting a "UUID" key into the UUID field, if present); copy Port from the SRV record; copy the SRV target hostname into Hostname (Type 0x08) if pre-connection hostname knowledge is needed; and omit Domain if it is "local".</t>
      </section>
      <section anchor="domain-handling">
        <name>Domain Handling</name>
        <t>The Domain field <bcp14>SHOULD</bcp14> be omitted when the domain is "local", and <bcp14>MUST</bcp14> be included otherwise (e.g., for Wide-Area DNS-SD per <xref target="RFC6763"/>, Section 11). A DDB decoder that finds no Domain field <bcp14>MUST</bcp14> assume "local".</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="minimal-printer-service-ddb">
        <name>Minimal Printer Service DDB</name>
        <t>This DDB conveys only the Service Name, sufficient for a "this device provides IPP printing" beacon:</t>
        <artwork><![CDATA[
01                       ; Version = 1
01 09                    ; Type=Service Name, Length=9
5F 69 70 70 2E 5F 74 63 ;
70                       ; "_ipp._tcp"
]]></artwork>
        <t>Total: 12 octets.</t>
      </section>
      <section anchor="full-printer-service-ddb-with-txt-and-uuid">
        <name>Full Printer Service DDB with TXT and UUID</name>
        <t>A more complete DDB for an IPP printer named "Conference Room Printer" (23 UTF-8 octets):</t>
        <artwork><![CDATA[
01                       ; Version = 1

01 09                    ; Type=Service Name, Length=9
5F 69 70 70 2E 5F 74 63 ;
70                       ; "_ipp._tcp"

02 17                    ; Type=Instance Name, Length=23
43 6F 6E 66 65 72 65 6E ;
63 65 20 52 6F 6F 6D 20 ;
50 72 69 6E 74 65 72     ; "Conference Room Printer"

03 2C                    ; Type=TXT Data, Length=44
09                       ; string length 9
74 78 74 76 65 72 73 3D ;
31                       ; "txtvers=1"
14                       ; string length 20
70 64 6C 3D 69 6D 61 67 ;
65 2F 70 77 67 2D 72 61 ;
73 74 65 72              ; "pdl=image/pwg-raster"
0C                       ; string length 12
72 70 3D 69 70 70 2F 70 ;
72 69 6E 74              ; "rp=ipp/print"

04 10                    ; Type=UUID, Length=16
A1 B2 C3 D4 E5 F6 07 08 ;
89 9A AB BC CD DE EF F0  ; UUID bytes

06 02                    ; Type=Port, Length=2
02 7F                    ; port 631 (0x027F)
]]></artwork>
        <t>Total: 1 + (2+9) + (2+23) + (2+44) + (2+16) + (2+2) = 105 octets.</t>
      </section>
    </section>
    <section anchor="design-notes-and-alternatives-considered">
      <name>Design Notes and Alternatives Considered</name>
      <section anchor="why-tlv-and-not-cbor-or-json">
        <name>Why TLV and Not CBOR or JSON</name>
        <t>CBOR <xref target="RFC8949"/> and JSON <xref target="RFC8259"/> are both viable encoding options with good tooling. TLV was chosen for the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t>Minimal overhead per field: a simple string field costs 2 octets of overhead (Type + Length) versus CBOR's 1+ octets for a key plus 1+ octets for the string header -- comparable at small scale, but TLV's fixed 2-octet overhead per field is more predictable.</t>
          </li>
          <li>
            <t>Implementation simplicity: TLV parsing requires only arithmetic on byte arrays; no recursive descent or schema lookup is needed. This supports implementation on very constrained devices (e.g., embedded firmware).</t>
          </li>
          <li>
            <t>DNS-SD TXT data is already in a length-prefixed string encoding; embedding it verbatim in a TLV field avoids any re-encoding.</t>
          </li>
          <li>
            <t>CBOR is a strong alternative and <bcp14>SHOULD</bcp14> be explored in a future revision, particularly if the broader IETF context moves toward CBOR-based service advertisement encodings.</t>
          </li>
        </ul>
      </section>
      <section anchor="why-dns-sd-string-encoding-and-not-numeric-types">
        <name>Why DNS-SD String Encoding and Not Numeric Types</name>
        <t>An alternative design would replace the human-readable Service Name string with a compact numeric identifier (similar to how Bluetooth has 16-bit Service Class UUIDs). This was considered and rejected for the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t>DNS-SD's value proposition is that service names are declared using DNS labels, which are human-readable and do not require a centralized numeric registry for new service names.</t>
          </li>
          <li>
            <t>Introducing numeric type codes would require an IANA registry cross-referencing DNS-SD service names, tying the DDB format to an ongoing registration process.</t>
          </li>
          <li>
            <t>The string representation is compact enough for the vast majority of service names (e.g., "_ipp._tcp" is 9 octets).</t>
          </li>
        </ul>
        <t>The UUID field (Type 0x04) uses a binary encoding (16 octets) rather than the hyphenated ASCII form (36 octets) because the numeric form saves 20 octets and is unambiguously reversible.</t>
      </section>
      <section anchor="why-tlv-type-values-are-not-dns-rr-type-values">
        <name>Why TLV Type Values Are Not DNS RR TYPE Values</name>
        <t>An alternative design would assign TLV Type values from the DNS RR TYPE registry itself (e.g., using 16 for a TXT Data field, mirroring the wire-format TYPE value assigned to TXT records), rather than defining a separate registry in <xref target="field-type-registry"/>. This was considered and rejected for the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t>Most DDB fields do not correspond to a whole DNS resource record. Instance Name, UUID, Port, and Domain are individual components extracted from SRV, TXT, and PTR RDATA, not complete records, so they have no DNS RR TYPE value to borrow. Only TXT Data has a clean one-to-one correspondence.</t>
          </li>
          <li>
            <t>The DNS RR TYPE namespace is a 16-bit space administered by IANA for an unrelated purpose (identifying resource record types generally), and is not guaranteed to stay within 1 octet: for example, CAA is assigned TYPE 257. Tying the DDB Type field to that registry would risk outgrowing the field's 1-octet width for reasons entirely outside this document's control.</t>
          </li>
          <li>
            <t>A DDB-specific registry (<xref target="iana"/>) keeps the Type namespace small, dense, and scoped to exactly the fields this format defines, which is more appropriate for a constrained, self-contained encoding.</t>
          </li>
        </ul>
      </section>
      <section anchor="txt-record-encoding">
        <name>TXT Record Encoding</name>
        <t>Reusing the DNS TXT RDATA wire format for the TXT Data field means that existing DNS-SD TXT record parsers can process this field without modification. An alternative was to encode each key=value pair as a separate TLV sub-field; this was rejected as it would add complexity and would not reduce size for typical TXT records.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This specification, if published, requests the following IANA actions:</t>
      <section anchor="dns-sd-data-block-tlv-type-registry">
        <name>DNS-SD Data Block TLV Type Registry</name>
        <t>IANA is requested to create a new registry "DNS-SD Data Block TLV Types" under a new "DNS-SD Data Block" registry group. The registry uses the following columns:</t>
        <dl>
          <dt>Value:</dt>
          <dd>
            <t>1-octet TLV Type value.</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>Short descriptive name of the field.</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>RFC or other document defining the field.</t>
          </dd>
          <dt>Notes:</dt>
          <dd>
            <t>Additional information.</t>
          </dd>
        </dl>
        <t>Registration Policy: Values 0x01-0xEF use "Specification Required" <xref target="RFC8126"/>. Values 0xF0-0xFE are "Private Use". Value 0xFF is "Reserved". Value 0x00 is defined as a Padding (NOP) octet (<xref target="tlv-field-structure"/>) and does not participate in the assignment pool.</t>
        <t>Initial entries (defined by this specification):</t>
        <table>
          <name>DNS-SD Data Block TLV Types</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x00</td>
              <td align="left">Padding (NOP)</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x01</td>
              <td align="left">Service Name</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x02</td>
              <td align="left">Service Instance Name</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x03</td>
              <td align="left">TXT Data</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x04</td>
              <td align="left">UUID</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x05</td>
              <td align="left">Domain</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x06</td>
              <td align="left">Port</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x07</td>
              <td align="left">Subtype List</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x08</td>
              <td align="left">Hostname</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x09-0xEF</td>
              <td align="left">Unassigned</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0xF0-0xFE</td>
              <td align="left">Private Use</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0xFF</td>
              <td align="left">Reserved</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="mime-type-registration">
        <name>MIME Type Registration</name>
        <t>A request to register the MIME media type "application/vnd.dnssd.ddb", identifying the DDB payload defined in <xref target="ddb-payload-identity"/>, should be submitted to IANA per <xref target="RFC6838"/>. This specification does not formally request that registration at this draft stage.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>DDBs are typically carried in unauthenticated, short-range broadcast or proximity transports. The following security considerations apply:</t>
      <section anchor="spoofing-and-impersonation">
        <name>Spoofing and Impersonation</name>
        <t>Any device within range of the carrying transport can transmit a DDB claiming any Service Name, Instance Name, or UUID. Receivers <bcp14>MUST NOT</bcp14> rely on DDB content alone to establish trust. A DDB is a discovery aid; any security-relevant properties (authentication, authorization) <bcp14>MUST</bcp14> be established over the application protocol after connectivity is established (e.g., TLS over IPP, 802.1X, device attestation).</t>
      </section>
      <section anchor="privacy-persistent-identifiers">
        <name>Privacy: Persistent Identifiers</name>
        <t>The UUID field, if reused across proximity events, constitutes a stable identifier that can be used to track a device's location or owner. Devices <bcp14>SHOULD</bcp14> use randomized UUIDs for DDBs carried in broadcast advertising if the service UUID is not already stable (e.g., print services that expose a stable mDNS UUID publicly may choose to accept this). This mirrors similar address- and identifier-randomization considerations found in other short-range broadcast technologies: a persistent service identifier in an advertisement creates the same tracking surface as a persistent link-layer address.</t>
        <t>The Instance Name often contains human-readable device names (e.g., "Jane's MacBook Printer") which are personally identifying. Devices <bcp14>SHOULD</bcp14> allow users to customize or omit Instance Names in proximity advertisements.</t>
      </section>
      <section anchor="denial-of-service">
        <name>Denial of Service</name>
        <t>A malicious sender can flood receivers with large numbers of DDB-carrying advertisements or messages. Receivers <bcp14>SHOULD</bcp14> implement rate limiting and deduplication.</t>
      </section>
      <section anchor="data-integrity">
        <name>Data Integrity</name>
        <t>DDB transport containers typically do not provide cryptographic integrity protection. An on-path attacker in close physical proximity could modify advertisement contents. Applications that require integrity <bcp14>SHOULD</bcp14> sign DDB content using an application-layer digital signature (e.g., a device certificate or vendor-defined signing mechanism) conveyed out-of-band or in a companion record, if the transport and deployment context support it.</t>
      </section>
      <section anchor="sensitive-data-in-txt-records">
        <name>Sensitive Data in TXT Records</name>
        <t>The TXT Data field can carry arbitrary key=value pairs. Senders <bcp14>MUST NOT</bcp14> include long-lived secrets (Wi-Fi PSKs, passwords, private keys) in the TXT Data field of a DDB, as this data is transmitted in cleartext over short-range radio.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <reference anchor="RFC5891">
          <front>
            <title>Internationalized Domain Names in Applications (IDNA): Protocol</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document is the revised protocol definition for Internationalized Domain Names (IDNs). The rationale for changes, the relationship to the older specification, and important terminology are provided in other documents. This document specifies the protocol mechanism, called Internationalized Domain Names in Applications (IDNA), for registering and looking up IDNs in a way that does not require changes to the DNS itself. IDNA is only meant for processing domain names, not free text. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5891"/>
          <seriesInfo name="DOI" value="10.17487/RFC5891"/>
        </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="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="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC9562">
          <front>
            <title>Universally Unique IDentifiers (UUIDs)</title>
            <author fullname="K. Davis" initials="K." surname="Davis"/>
            <author fullname="B. Peabody" initials="B." surname="Peabody"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This specification defines UUIDs (Universally Unique IDentifiers) --
also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform
Resource Name namespace for UUIDs. A UUID is 128 bits long and is
intended to guarantee uniqueness across space and time. UUIDs were
originally used in the Apollo Network Computing System (NCS), later
in the Open Software Foundation's (OSF's) Distributed Computing
Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the OSF DCE specification with the
kind permission of the OSF (now known as "The Open Group"). Information from earlier versions of the OSF DCE specification have
been incorporated into this document. This document obsoletes RFC
4122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9562"/>
          <seriesInfo name="DOI" value="10.17487/RFC9562"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4122">
          <front>
            <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="July" year="2005"/>
            <abstract>
              <t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier). A UUID is 128 bits long, and can guarantee uniqueness across space and time. UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group). Information from earlier versions of the DCE specification have been incorporated into this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4122"/>
          <seriesInfo name="DOI" value="10.17487/RFC4122"/>
        </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="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="BT-TDS" target="https://www.bluetooth.com/specifications/specs/transport-discovery-service-1-1/">
          <front>
            <title>Transport Discovery Service 1.1</title>
            <author>
              <organization>Bluetooth SIG</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="NFC-VERB" target="https://nfc-forum.org/build/specifications/">
          <front>
            <title>Verb RTD Technical Specification</title>
            <author>
              <organization>NFC Forum</organization>
            </author>
            <date year="2015"/>
          </front>
          <seriesInfo name="Version" value="1.0"/>
        </reference>
        <reference anchor="IPPEVE" target="https://ftp.pwg.org/pub/pwg/candidates/cs-ippeve11-20200515-5100.14.pdf">
          <front>
            <title>PWG 5100.14-2020: IPP Everywhere v1.1</title>
            <author>
              <organization>ISTO Printer Working Group</organization>
            </author>
            <date year="2020"/>
          </front>
          <seriesInfo name="Version" value="1.1"/>
        </reference>
      </references>
    </references>
    <?line 581?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TBD -- to be populated during the IETF process.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
pH4AAA==

-->

</rfc>
