<?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-01" 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-01"/>
    <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 70?>

<t>The DNS-SD Data Block (DDB) is a compact TLV encoded container for conveying DNS-SD service information over non-IP transports used by short-range peer-to-peer or proximity-based advertisement and discovery technologies such as 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 74?>

<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>This problem is related to, but distinct from, the scaling problem addressed by <xref target="RFC7558"/>: solutions to that problem extend DNS-SD's reach within IP networks that already have IP connectivity established. DDB instead addresses the complementary case of conveying DNS-SD service information before IP connectivity exists at all, or where none is expected to exist. In deployments where physical proximity between devices can be assumed, such as the segmented-network scenario below, DDB carried over an ancillary technology can also serve as an alternative to deploying <xref target="RFC7558"/>-class scaling solutions, sidestepping the network-segmentation problem entirely rather than solving it via Scalable DNS-SD.</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="RFC7558">
          <front>
            <title>Requirements for Scalable DNS-Based Service Discovery (DNS-SD) / Multicast DNS (mDNS) Extensions</title>
            <author fullname="K. Lynn" initials="K." surname="Lynn"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Blanchet" initials="M." surname="Blanchet"/>
            <author fullname="D. Migault" initials="D." surname="Migault"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>DNS-based Service Discovery (DNS-SD) over Multicast DNS (mDNS) is widely used today for discovery and resolution of services and names on a local link, but there are use cases to extend DNS-SD/mDNS to enable service discovery beyond the local link. This document provides a problem statement and a list of requirements for scalable DNS-SD.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7558"/>
          <seriesInfo name="DOI" value="10.17487/RFC7558"/>
        </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 584?>

<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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
t0LHQlsb9P0Zj1RUUHcb29HQ5upSyxSvUVPFbE5XaD3E2ItJexSkuTSN4CUB
jCS/WcKNhGW+/mjNDC089ADgdWQQtHtz+eZcOv2w18c7j+37PB5Rl9YRwARM
7k/H5jsPOlhDeo1lM4imc+QmhZgLIrSwS55ruqVtgKQkDpbW6/2F+CGvk8pf
c98quWsFiLyKPvTpomk9T6j8ldC1KLl1DbGBq9vrIZoZLJz9vh0u0Qy4YFJy
rk3kNYBQW70jA2joDAQxPSUMLLxYPdASY5EwgzUP2TwFSQirk/Wg+ca+G0HP
RwrMsQ9p7dypa1fb2WHcagenxpp6a2q1pvrtBzIwgWZ++xG+PCSo0tBH1D3o
g6qlv/049IBGrnKbxTP0XMPDTvXWc5lJ1Q9beCSXfvJMY99294x04bNcdMby
SHtzVVT7Sd1FiNu3TVIptX8EzGvxf82MwZYAfHZk69iT09yKqfhd1x63Rq6X
P0Ueh5DDaS9Ho1F/rQTfw2bRFdcQmlbghScxdmkRQMK6HBlmcqw1WonMqaTW
d+y0CjTNMjbz5KOGLZncYixaVuUJJ8o5+STxiYb58qlec+LY75Aj1A1Qp8Zy
KTmy9KISHzCzgp89hptcUetLkqovUKFC3XvTmMbFrmWSKSiQmPByJ+Wgwrhc
2TPz86HsofOqXGKVLIK32QocC5wcbvj4P5C5mEJs4MNzddildDmhaPROVzNP
4Tkz3ENIFlkSzzzn0gvu3oKmhfCf9E5i2sKeRMzyxZ/gbvT1Sdten2O5KL/G
zlycZT3oNmwpN6l126On4CGtEj/b8ReQQsEJ9vMS7LDuyXWWOx4PVIlplaSC
sI5JSWut1w9pelvV6EZF236Dlj5IU22rbDvpojS61apZzX+UKvtkjcNuFBD1
uRsPR5+kc5/XHxDg2we4hBE2Ldd038cyThxNjB/NCv6HpwV35QVLforNMpJa
DuzD0gE9Fo1IRYgJSCKYx096kVUrpX9ZK5UDezhjjwLTBwajLZ6usR2hS8yc
7IrDxdYGfQsQ/79BkZJGD5+YuDtrdLLbk2TRc3Og+VXwN3x90YP5Me9px+xP
6JYLzIiaYPpRZzKpLOox0PYeTRP77+SJ/UMSxb4yU+z/darYt+eK/WOSxTaz
xR5NknksS+ZkbF5NzOmuOdsz5/vm4sDsHJodzJI5em6en5iTV+bVqTk9M2fn
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
8ruolsWyYQ9a3FjHK0WIrOP9vwD0GB3ea4EAAA==

-->

</rfc>
