<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-kennedy-dnssd-data-block-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="DNS-SD Data Block">DNS-SD Data Block: An Encoding for Non-IP Transports</title>
    <seriesInfo name="Internet-Draft" value="draft-kennedy-dnssd-data-block-02"/>
    <author fullname="Smith Kennedy">
      <organization>Independent</organization>
      <address>
        <email>smitty.standards@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="09"/>
    <keyword>dns-sd</keyword>
    <keyword>service discovery</keyword>
    <keyword>bluetooth low energy</keyword>
    <keyword>nfc</keyword>
    <abstract>
      <?line 92?>

<t>The DNS-SD Data Block (DDB) is a compact, Type-Length-Value (TLV) encoded container for conveying DNS-Based Service Discovery (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 Near Field Communication (NFC) Verb NFC Data Exchange Format (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 96?>

<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 that are 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 the one described in <xref target="RFC7558"/>, whose solutions extend DNS-SD beyond a single link within an IP network. DDB addresses a different case: conveying DNS-SD service information over a non-IP channel, either before IP connectivity exists or where the client and the service do not share a network over which DNS-SD operates. DDB is not a replacement for those solutions; where they are deployed, DNS-SD over IP remains the preferred mechanism (<xref target="applicability"/>).</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>Each of these ancillary discovery technologies was designed in part to carry application-layer service descriptions. Both include a field keyed by an organization identifier, whose contents are defined by the identified organization. This document defines that content for DNS-SD: a single encoding that each technology can reference, and that future ancillary discovery protocols can adopt.</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 PTR, SRV, and TXT records for the fields it encodes, in the common case of a service instance described by a single SRV record with zero priority and weight (see <xref target="ddb-to-dnssd"/>).</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).</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>Inherited Instance Name:</dt>
        <dd>
          <t>An Instance Name encoded with a Length of 0, whose value is a name conveyed by the carrying technology (<xref target="instance-name"/>).</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 type and length fields are typically of fixed size.</t>
        </dd>
      </dl>
    </section>
    <section anchor="ddb-format">
      <name>DNS-SD Data Block (DDB) Format</name>
      <section anchor="applicability">
        <name>Applicability and Directionality</name>
        <t>DDB is intended for transports over which DNS-SD itself cannot operate, such as short-range proximity and pre-association technologies. Where IP connectivity is available and DNS-SD is usable, implementations <bcp14>SHOULD</bcp14> use DNS-SD directly rather than conveying DDBs over IP. Relaying a DDB over an IP-based protocol (e.g., from a gateway or for diagnostics) is outside the scope of this specification and does not change its status as an unauthenticated discovery aid (see <xref target="security"/>).</t>
        <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.</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>MUST</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 are 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 for future extension. Values 0x09-0xEF are unassigned and available for assignment (<xref target="iana"/>). Values 0xF0-0xFE are reserved for Private Use (<xref target="RFC8126"/>) 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 required by a specific transport's framing (e.g., to pad to a fixed size). 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, which is valid only for field types whose definition explicitly permits it.</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. A decoder that encounters a TLV field whose Type value has already appeared in the same DDB <bcp14>MUST</bcp14> treat the entire DDB as malformed and discard it; see <xref target="parser-differentials"/>. This applies to all Type values, including unrecognized and Private Use values. Padding octets (Type 0x00) are not TLV fields and are not subject to this rule.</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">Required</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">Recommended</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) and exactly one Instance Name field (Type 0x02), and <bcp14>SHOULD</bcp14> include a Hostname field (Type 0x08); all other field types defined in this registry are optional. <xref target="deployment-contexts"/> describes when the recommended and optional fields are needed for a DDB to be useful.</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>Required. Length constraints follow <xref target="RFC6763"/>, Section 4.1.1. The string <bcp14>MUST NOT</bcp14> be null-terminated. The Length <bcp14>MUST</bcp14> be at least 1, except as follows. A Length of 0 encodes an Inherited Instance Name: it indicates that the Instance Name is identical to a name conveyed by the carrying technology, as identified by that technology's specification for use with DDB (for example, a device name carried in the same advertisement). An encoder <bcp14>MUST NOT</bcp14> use a Length of 0 unless the carrying technology identifies such a name and that name is octet-for-octet identical to the Instance Name. A receiver that does not have the referenced name (for example, because the carrying technology identifies none, or it was not received) <bcp14>MUST</bcp14> treat the DDB as lacking an Instance Name (<xref target="decoding-rules"/>).</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>
          <dl>
            <dt>Example:</dt>
            <dd>
              <t>If the carrying technology conveys the device name "My Color Printer" and identifies it for use with DDB, the Instance Name can instead be encoded as an Inherited Instance Name:</t>
            </dd>
          </dl>
          <artwork><![CDATA[
02 00                   ; Type=Instance Name, Length=0
                        ; (name conveyed by the carrying technology)
]]></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. The length-prefixed strings <bcp14>MUST</bcp14> exactly fill the Value. If the TXT Data field is omitted entirely, receivers <bcp14>MUST NOT</bcp14> infer any default TXT record content, other than a UUID string reconstructed from the UUID field (<xref target="ddb-to-dnssd"/>).</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">
          <name>UUID (Type 0x04)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>A 128-bit UUID in the binary representation defined in <xref target="RFC9562"/>, in network byte order. This field is a compact encoding of a "UUID" key/value pair in the service's TXT record, for service types whose TXT record conventions define such a key (e.g., IPP Everywhere <xref target="IPPEVE"/>). The meaning of the UUID value, and its relationship to other protocols, are defined by the service type and are outside the scope of this specification.</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>Length <bcp14>MUST</bcp14> be exactly 16 (0x10) octets. An encoder <bcp14>MAY</bcp14> use this field in place of a TXT string only if that string's key is "UUID" (compared case-insensitively, per <xref target="RFC6763"/>, Section 6.4), the value is the 36-character hyphenated form defined in <xref target="RFC9562"/> using lowercase hexadecimal digits, and the TXT record contains no other "UUID" key. When this field is used, that string <bcp14>MUST</bcp14> be removed from the TXT Data field. A DDB that contains both this field and a TXT string whose key is "UUID" (compared case-insensitively) is invalid (<xref target="decoding-rules"/>).</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). Encoders <bcp14>SHOULD</bcp14> omit this field when the domain is "local", and <bcp14>MUST</bcp14> include it otherwise (e.g., for Wide-Area DNS-SD per <xref target="RFC6763"/>, Section 11). Length 1 through 253 octets.</t>
            </dd>
            <dt>Example:</dt>
            <dd>
              <t>The Domain "example.com" (11 octets) encodes as:</t>
            </dd>
          </dl>
          <artwork><![CDATA[
05 0B                   ; Type=Domain, Length=11
65 78 61 6D 70 6C 65 2E ;
63 6F 6D                ; "example.com"
]]></artwork>
          <dl>
            <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>
            <dt>Note:</dt>
            <dd>
              <t>Both the Domain and Hostname (<xref target="hostname"/>) fields <bcp14>MUST</bcp14> be encoded exactly as they appear in the corresponding DNS-SD records; see <xref target="RFC6763"/>, Section 4.1.3 and <xref target="RFC6762"/>, Section 16. A receiver that needs A-label forms (e.g., for a unicast DNS query or TLS SNI) derives them per <xref target="RFC5891"/>.</t>
            </dd>
          </dl>
        </section>
        <section anchor="port">
          <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. If absent, the port is the one assigned to the Service Name in the IANA "Service Name and Transport Protocol Port Number Registry" <xref target="IANA.service-names-port-numbers"/>, established by <xref target="RFC6335"/> (e.g., port 631 for "_ipp._tcp"). Encoders <bcp14>MUST</bcp14> include this field if the service listens on any other port, or if the registry assigns no port number to the Service Name. Encoders <bcp14>MAY</bcp14> include this field when it carries the assigned port; doing so is redundant but valid. A receiver that knows of no assigned port for the Service Name <bcp14>MUST</bcp14> treat the port as unknown until DNS-SD can be queried after IP association.</t>
            </dd>
            <dt>Example:</dt>
            <dd>
              <t>Port 443 (0x01BB) encodes as follows. Because 443 is the port assigned to "_https._tcp", an encoder can omit this field for that Service Name.</t>
            </dd>
          </dl>
          <artwork><![CDATA[
06 02                   ; Type=Port, Length=2
01 BB                   ; port 443 (0x01BB)
]]></artwork>
        </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 0x06 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. The length-prefixed strings <bcp14>MUST</bcp14> exactly fill the Value.</t>
            </dd>
            <dt>Example:</dt>
            <dd>
              <t>The subtypes "_sub1" and "_sub2" (5 octets each) encode as a single Subtype List field, each label preceded by its own 1-octet length:</t>
            </dd>
          </dl>
          <artwork><![CDATA[
07 0C                   ; Type=Subtype List, Length=12
05                      ; string length 5
5F 73 75 62 31          ; "_sub1"
05                      ; string length 5
5F 73 75 62 32          ; "_sub2"
]]></artwork>
          <t>: Total Value: (1+5) + (1+5) = 12 octets.</t>
        </section>
        <section anchor="hostname">
          <name>Hostname (Type 0x08)</name>
          <dl>
            <dt>Value:</dt>
            <dd>
              <t>A UTF-8 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 exactly as it appears in the SRV target: precomposed UTF-8 for Multicast DNS (<xref target="RFC6762"/>, Section 16), or as registered in Unicast DNS. It <bcp14>MUST NOT</bcp14> include a trailing dot and <bcp14>MUST NOT</bcp14> be null-terminated. A client that uses the hostname for TLS Server Name Indication converts any non-ASCII labels to A-labels (<xref target="RFC5891"/>), as <xref target="RFC6066"/>, Section 3 requires.</t>
            </dd>
            <dt>Constraints:</dt>
            <dd>
              <t>Recommended; encoders <bcp14>SHOULD</bcp14> include this field. It is needed to reach the service where the client cannot perform DNS-SD resolution after receiving the DDB (<xref target="deployment-contexts"/>), and for TLS SNI certificate validation prior to IP-level name resolution. 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.</t>
            </dd>
            <dt>Example:</dt>
            <dd>
              <t>The Hostname "device-abc.example.com" (22 octets) encodes as:</t>
            </dd>
          </dl>
          <artwork><![CDATA[
08 16                   ; Type=Hostname, Length=22
64 65 76 69 63 65 2D 61 ;
62 63 2E 65 78 61 6D 70 ;
6C 65 2E 63 6F 6D       ; "device-abc.example.com"
]]></artwork>
          <dl>
            <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 a transport delivers a truncated DDB (see Decoding Rule 5).</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 (<xref target="RFC3629"/>) and <bcp14>MUST NOT</bcp14> be null-terminated. 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">
        <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. If the Type has already been seen in this DDB, stop and discard the DDB as malformed.  </t>
            <t>
c. Read the Length octet. If Length is 0xFF, read the next two octets as a 16-bit big-endian extended length; if that extended length is less than 255, stop and discard the DDB.  </t>
            <t>
d. Read Value octets (count given by the resolved length).  </t>
            <t>
e. If the Type is known, check the Value against the constraints in that field's definition (<xref target="field-type-registry"/>). If it violates them (for example, a UUID field whose Length is not 16, a Port field whose Length is not 2, a Hostname longer than 253 octets, or a string field that is not valid UTF-8), stop and discard the DDB. Otherwise, process the field.  </t>
            <t>
f. 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 lacks a Service Name field (Type 0x01) or an Instance Name field (Type 0x02), counting an Inherited Instance Name whose referenced name is unavailable as lacking (<xref target="instance-name"/>), 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 either 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>When a content-type identifier is needed, a DDB payload is identified by the media type "application/dnssd-ddb".</t>
      </section>
    </section>
    <section anchor="relationship-to-dns-sd">
      <name>Relationship to DNS-SD</name>
      <section anchor="ddb-to-dnssd">
        <name>Interpreting a DDB as DNS-SD Information</name>
        <t>The Service Instance Name, formed from the Instance Name (or, for an Inherited Instance Name, the name it references; see <xref target="instance-name"/>), Service Name, and Domain fields per <xref target="RFC6763"/>, Section 4.1 (with the domain defaulting to "local" if the Domain field is absent), is the identity anchor of a DDB: it is the RDATA of the PTR record that DNS-SD browsing would return for this service instance. A client can use it to perform Service Instance Resolution (<xref target="RFC6763"/>, Section 5), obtaining SRV, TXT, and address records over any network interface on which DNS-SD is reachable.</t>
        <t>A DDB can also convey SRV and TXT information directly, so that the client can use it without performing resolution:</t>
        <dl>
          <dt>SRV information:</dt>
          <dd>
            <t>The Port field (or, if absent, the registry-assigned port; see <xref target="port"/>) and the Hostname field correspond to the SRV port and target. If Hostname is absent, the SRV target is not known until DNS-SD is queried after IP association. Priority and weight (<xref target="RFC2782"/>) are not conveyed and are treated as 0, as <xref target="RFC6763"/>, Section 5 specifies for the common case of a service instance described by a single SRV record.</t>
          </dd>
          <dt>TXT information:</dt>
          <dd>
            <t>The TXT Data field is the TXT RDATA verbatim. If the UUID field is present, the client <bcp14>MUST</bcp14> reconstruct the TXT string "UUID=" followed by the 36-character lowercase hyphenated form of the UUID, and append it to the end of the TXT record. If the TXT Data field is absent, the reconstructed TXT record consists of that single string.</t>
          </dd>
          <dt>Subtypes:</dt>
          <dd>
            <t>Each label in the Subtype List field corresponds to a subtype PTR record, owned by &lt;subtype&gt;._sub.&lt;Service Name&gt;.&lt;domain&gt;, that references the Service Instance Name (<xref target="RFC6763"/>, Section 7.1).</t>
          </dd>
        </dl>
      </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 into TXT Data, optionally moving a "UUID" key/value pair into the UUID field as specified in <xref target="uuid"/>; copy Port from the SRV record (it <bcp14>MAY</bcp14> be omitted if it equals the port assigned to the Service Name; see <xref target="port"/>); copy the SRV target hostname into Hostname (Type 0x08) if pre-connection hostname knowledge is needed; copy into the Subtype List field the labels of the subtypes under which the service instance is registered (an encoder that is not the service's own advertiser can include only subtypes it has observed, since DNS-SD provides no query that enumerates an instance's subtypes); and omit Domain if it is "local".</t>
        <t>A DDB represents a single SRV record. Because SRV priority and weight affect client behavior only when multiple SRV records exist for the same Service Instance Name, they are not encoded.</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 required fields, the Service Name and the Instance Name:</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 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>
        <t>Total: 1 + (2+9) + (2+16) = 30 octets.</t>
      </section>
      <section anchor="minimal-printer-service-ddb-with-inherited-instance-name">
        <name>Minimal Printer Service DDB with Inherited Instance Name</name>
        <t>The same printer as in the previous example, where the carrying technology conveys the device name "My Color Printer" and identifies it for use with DDB, so the Instance Name is encoded as an Inherited Instance Name (<xref target="instance-name"/>):</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 00                   ; Type=Instance Name, Length=0
                        ; (name conveyed by the carrying technology)
]]></artwork>
        <t>Total: 1 + (2+9) + (2+0) = 14 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
21 B7                   ; port 8631 (0x21B7)

07 07                   ; Type=Subtype List, Length=7
06                      ; string length 6
5F 70 72 69 6E 74       ; "_print"

08 18                   ; Type=Hostname, Length=24
70 72 69 6E 74 65 72 2E ;
63 6F 72 70 2E 65 78 61 ;
6D 70 6C 65 2E 63 6F 6D ; "printer.corp.example.com"
]]></artwork>
        <t>Total: 1 + (2+9) + (2+23) + (2+44) + (2+16) + (2+2) + (2+7) + (2+24) = 140 octets.</t>
        <t>The Port field is included because this printer listens on 8631 rather than port 631, which is assigned to "_ipp._tcp"; see <xref target="port"/>.</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, which is comparable at small scale, but TLV's 2-octet overhead per field (4 octets for values longer than 254 octets) 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>
        </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>Designated experts reviewing a request should verify that the proposed field: conveys DNS-SD service information, or information directly supporting its use, that no existing field can represent; has a fully specified Value encoding, including length and character constraints, sufficient for the validation required by <xref target="decoding-rules"/>; and is optional, since decoders implementing earlier specifications will skip it (<xref target="tlv-field-structure"/>). A field that receivers must understand requires a new Version value instead. Because the code point space is small, experts should be conservative in making assignments.</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>
              <th align="left">Notes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x00</td>
              <td align="left">Padding (NOP)</td>
              <td align="left">This document</td>
              <td align="left">Single octet; no Length or Value</td>
            </tr>
            <tr>
              <td align="left">0x01</td>
              <td align="left">Service Name</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0x02</td>
              <td align="left">Instance Name</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0x03</td>
              <td align="left">TXT Data</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0x04</td>
              <td align="left">UUID</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0x05</td>
              <td align="left">Domain</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0x06</td>
              <td align="left">Port</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0x07</td>
              <td align="left">Subtype List</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0x08</td>
              <td align="left">Hostname</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0x09-0xEF</td>
              <td align="left">Unassigned</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0xF0-0xFE</td>
              <td align="left">Private Use</td>
              <td align="left">This document</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0xFF</td>
              <td align="left">Reserved</td>
              <td align="left">This document</td>
              <td align="left">Reserved for future extension (e.g., an extended Type encoding)</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-type-registration">
        <name>Media Type Registration</name>
        <t>The media type "application/dnssd-ddb", identifying the DDB payload defined in <xref target="ddb-payload-identity"/>, is intended for registration in the standards tree 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., IPP over TLS, or device attestation).</t>
      </section>
      <section anchor="hostname-and-tls-validation">
        <name>Hostname and TLS Validation</name>
        <t>The Hostname field allows a client to validate a TLS server certificate before IP-level name resolution. Validation against a Hostname taken from a DDB proves only that the server holds a certificate for that name, not that it is the device that sent the DDB: an attacker can advertise a DDB naming a host it controls and for which it holds a valid certificate. Clients <bcp14>MUST NOT</bcp14> treat successful TLS validation against a DDB-supplied Hostname as evidence that the server is the proximate device, and <bcp14>SHOULD</bcp14> present the validated name to the user, or check it against names the client already trusts, before relying on it. Device identity credentials such as IEEE 802.1AR Secure Device Identifiers <xref target="IEEE802.1AR"/> can bind a certificate to a specific device; no mechanism currently associates such a credential with a DNS-SD service advertisement, whether conveyed by a DDB or otherwise, and defining one is outside the scope of this document.</t>
      </section>
      <section anchor="relay-and-replay">
        <name>Relay and Replay</name>
        <t>Receipt of a DDB over a short-range transport does not prove that the sender is physically nearby. An attacker can relay a DDB from a distant device, or replay a previously captured one, using equipment that extends the transport's effective range. Applications <bcp14>MUST NOT</bcp14> treat receipt of a DDB as proof of proximity; where proximity matters, it needs to be established by other means.</t>
      </section>
      <section anchor="privacy">
        <name>Privacy</name>
        <t>DDB conveys the same categories of information that DNS-SD publishes, so the privacy analysis of <xref target="RFC8882"/> applies. Broadcast transports can, however, expose that information to any receiver within radio range, including parties with no access to the IP network on which the service is offered, an audience that mDNS would not reach. Senders <bcp14>SHOULD</bcp14> apply to broadcast DDBs at least the information minimization they would apply on an untrusted network. Conversely, because a DDB is received passively and carries no query (<xref target="applicability"/>), receiving one discloses nothing about the client's interest in particular services, unlike DNS-SD browsing.</t>
        <t>The UUID field carries the same value as the TXT "UUID" key it encodes, which for many service types is a stable identifier. When carried in broadcast advertising, it can be used to track a device or its owner across locations and over time. Senders concerned about tracking <bcp14>SHOULD</bcp14> omit both the UUID field and the TXT "UUID" key from broadcast DDBs, or use a value that the service type permits to be rotated.</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 the Instance Name used in proximity advertisements.</t>
        <t>Other fields can also identify a device or its owner. Hostnames often embed a device or owner name, and TXT Data can carry serial numbers, location descriptions, or administrative URLs. Senders <bcp14>SHOULD</bcp14> include in broadcast DDBs only the TXT keys a client needs to select the service.</t>
        <t>DDB provides no confidentiality of its own. Discovery schemes that protect private services by obfuscating advertised values, such as rotating Instance Names recognizable only by previously paired peers, can be carried in a DDB unchanged, provided the scheme also addresses the other fields (UUID, Hostname, TXT Data) and the identifiers of the carrying transport.</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 can 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="parser-differentials">
        <name>Parser Differentials</name>
        <t>If decoders resolved duplicate TLV fields differently (for example, one keeping the first instance and another the last), an attacker could craft a DDB that a filtering or validating component interprets one way and an end consumer interprets another, such as a Service Name or Hostname that passes inspection but is acted upon differently. Requiring decoders to discard any DDB containing duplicate Type values eliminates this ambiguity. Since conformant encoders never emit duplicates, rejection does not affect interoperability between conformant implementations.</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="RFC3629">
          <front>
            <title>UTF-8, a transformation format of ISO 10646</title>
            <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="63"/>
          <seriesInfo name="RFC" value="3629"/>
          <seriesInfo name="DOI" value="10.17487/RFC3629"/>
        </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="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="IANA.service-names-port-numbers" target="https://www.iana.org/assignments/service-names-port-numbers">
          <front>
            <title>Service Name and Transport Protocol Port Number Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </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="RFC2782">
          <front>
            <title>A DNS RR for specifying the location of services (DNS SRV)</title>
            <author fullname="A. Gulbrandsen" initials="A." surname="Gulbrandsen"/>
            <author fullname="P. Vixie" initials="P." surname="Vixie"/>
            <author fullname="L. Esibov" initials="L." surname="Esibov"/>
            <date month="February" year="2000"/>
            <abstract>
              <t>This document describes a DNS RR which specifies the location of the server(s) for a specific protocol and domain. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2782"/>
          <seriesInfo name="DOI" value="10.17487/RFC2782"/>
        </reference>
        <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="RFC6066">
          <front>
            <title>Transport Layer Security (TLS) Extensions: Extension Definitions</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <date month="January" year="2011"/>
            <abstract>
              <t>This document provides specifications for existing TLS extensions. It is a companion document for RFC 5246, "The Transport Layer Security (TLS) Protocol Version 1.2". The extensions specified are server_name, max_fragment_length, client_certificate_url, trusted_ca_keys, truncated_hmac, and status_request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6066"/>
          <seriesInfo name="DOI" value="10.17487/RFC6066"/>
        </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="RFC8882">
          <front>
            <title>DNS-Based Service Discovery (DNS-SD) Privacy and Security Requirements</title>
            <author fullname="C. Huitema" initials="C." surname="Huitema"/>
            <author fullname="D. Kaiser" initials="D." surname="Kaiser"/>
            <date month="September" year="2020"/>
            <abstract>
              <t>DNS-SD (DNS-based Service Discovery) normally discloses information about devices offering and requesting services. This information includes hostnames, network parameters, and possibly a further description of the corresponding service instance. Especially when mobile devices engage in DNS-based Service Discovery at a public hotspot, serious privacy problems arise. We analyze the requirements of a privacy-respecting discovery service.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8882"/>
          <seriesInfo name="DOI" value="10.17487/RFC8882"/>
        </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="IEEE802.1AR" target="https://1.ieee802.org/security/802-1ar">
          <front>
            <title>IEEE Standard for Local and metropolitan area networks - Secure Device Identity</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="IEEE" value="802.1AR"/>
        </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 Record Type Definition Technical Specification</title>
            <author>
              <organization>NFC Forum</organization>
            </author>
            <date year="2015" month="December" day="08"/>
          </front>
          <seriesInfo name="NFC Forum" value="RTD-Verb"/>
          <seriesInfo name="Version" value="1.0"/>
        </reference>
        <reference anchor="NFC-CH" target="https://nfc-forum.org/build/specifications/connection-handover-technical-specification/">
          <front>
            <title>Connection Handover Technical Specification</title>
            <author>
              <organization>NFC Forum</organization>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="NFC Forum" value="CH"/>
          <seriesInfo name="Version" value="1.5"/>
        </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 706?>

<section anchor="deployment-contexts">
      <name>Deployment Contexts</name>
      <t>This appendix is informative. It describes the two contexts in which DDBs are typically used, and what a DDB needs to contain to be useful in each.</t>
      <section anchor="peer-to-peer-connection-opportunities">
        <name>Peer-to-Peer Connection Opportunities</name>
        <t>In this context, a DDB advertises a service that a client can reach after establishing a direct link with the advertising device, such as a peer-to-peer Wi-Fi connection set up following an NFC tap or a Bluetooth Low Energy advertisement. Once that link exists, the client and the service share a network on which DNS-SD operates, typically via mDNS. The DDB lets the client decide, before connecting, whether the device offers a service it wants.</t>
        <t>Because the client can perform Service Instance Resolution once the link is established, the required fields (Service Name and Instance Name) are sufficient to reach the service, and TXT Data is useful for selection before connecting. The Hostname field is not needed to reach the service in this context, although it remains useful for TLS validation (see <xref target="hostname"/>). Where the carrying technology already conveys the device's name and that name is identical to the Instance Name, the sender can encode it as an Inherited Instance Name to avoid repeating it (<xref target="instance-name"/>). How the direct link itself is established is defined by the carrying technology (e.g., connection handover information accompanying the DDB), not by this document.</t>
      </section>
      <section anchor="lan-connection-opportunities">
        <name>LAN Connection Opportunities</name>
        <t>In this context, the client and the service are attached to an IP network that routes traffic between them, but DNS-SD does not reach from one to the other: for example, the network is segmented so that mDNS does not span both, and no Wide-Area DNS-SD or other multi-link solution (<xref target="RFC7558"/>) is deployed for it. The DDB, received over an ancillary technology from a physically proximate device, is then the client's only source of DNS-SD information, and the client cannot perform Service Instance Resolution afterwards.</t>
        <t>For a DDB to be useful in this context, fields that are recommended or optional in general need to be present, and their values need to be usable without mDNS:</t>
        <ul spacing="normal">
          <li>
            <t>Hostname: present, and resolvable by the client without mDNS, typically via unicast DNS. A hostname in the "local" domain is not resolvable across segments.</t>
          </li>
          <li>
            <t>Port: present, unless the registry-assigned port applies (<xref target="port"/>).</t>
          </li>
          <li>
            <t>TXT Data: present with the keys the client needs to select and use the service, since the client cannot retrieve the TXT record later.</t>
          </li>
          <li>
            <t>Domain: if the service is also registered in a unicast DNS-SD domain, including the Domain field lets the client perform Service Instance Resolution through that domain (<xref target="RFC6763"/>, Section 11), even if it has no browsing domain configured.</t>
          </li>
        </ul>
        <t>A sender typically cannot tell which context a given receiver is in. A device attached to a managed network can serve both by including these fields whenever it has a hostname resolvable via unicast DNS.</t>
        <t>Where reaching the service requires information beyond DNS-SD, such as the network to join, that information is conveyed by the carrying technology alongside the DDB (e.g., NFC Connection Handover <xref target="NFC-CH"/> or the Bluetooth LE Transport Discovery Service <xref target="BT-TDS"/>), not in the DDB itself. A carrying technology that offers a service over more than one carrier or transport can associate a separate DDB with each.</t>
      </section>
    </section>
    <section removeInRFC="true" anchor="change-log">
      <name>Change Log</name>
      <section anchor="since-draft-kennedy-dnssd-data-block-01">
        <name>Since draft-kennedy-dnssd-data-block-01</name>
        <ul spacing="normal">
          <li>
            <t>Retitled to "An Encoding for Non-IP Transports"; added a scope statement and clarified the relationship to <xref target="RFC7558"/>.</t>
          </li>
          <li>
            <t>Instance Name is now required, and the Service Instance Name is described as the identity anchor of a DDB; added the Inherited Instance Name encoding.</t>
          </li>
          <li>
            <t>Hostname is now recommended; added Appendix A describing peer-to-peer and LAN deployment contexts.</t>
          </li>
          <li>
            <t>An absent Port now means the port assigned in the IANA Service Name and Transport Protocol Port Number Registry.</t>
          </li>
          <li>
            <t>The UUID field is now a compact encoding of a TXT "UUID" key/value pair.</t>
          </li>
          <li>
            <t>Decoders now discard DDBs containing duplicate TLVs, invalid field values, or non-canonical lengths.</t>
          </li>
          <li>
            <t>Domain and Hostname are both encoded exactly as in the corresponding DNS-SD records.</t>
          </li>
          <li>
            <t>Media type moved to the standards tree as "application/dnssd-ddb".</t>
          </li>
          <li>
            <t>IANA: added guidance for designated experts and clarified the status of code points.</t>
          </li>
          <li>
            <t>Security: added Hostname and TLS validation, relay and replay, parser differentials, and an expanded Privacy subsection.</t>
          </li>
          <li>
            <t>Added and corrected examples.</t>
          </li>
        </ul>
      </section>
      <section anchor="since-draft-kennedy-dnssd-data-block-00">
        <name>Since draft-kennedy-dnssd-data-block-00</name>
        <ul spacing="normal">
          <li>
            <t>Made the abstract more concise; added discussion of <xref target="RFC7558"/>; fixed nits identified by idnits.</t>
          </li>
        </ul>
      </section>
    </section>
    <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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
6dMW/zc7aNXGSb4AAA==

-->

</rfc>
