Skip to content

XRD document discovery using DNS SD

Mo McRoberts edited this page Aug 18, 2010 · 4 revisions

In the context of Project Baird, services provided by broadcasters are discovered using a variant of RadioDNS. In addition, can be provided on local networks and by service providers using DNS-SD -- either in conjunction with multicast DNS, or through specific browse domains. The browse domain list can be augmented by the user in order to allow for manual subscriptions to groups of services.

Parts of Project Baird rely on XRD as a service description mechanism. The expectation is that service providers will advertise XRD documents using DNS such that they can be automatically discovered.

An XRD advertisment uses the service type of xrd, and so DNS records take the form of _xrd._tcp.<domain>. The service type registration for this purpose will occur in due course.

The SRV record identifies servers which make the XRD document available, and specifies the port numbers, weights and priorities of each. The corresponding TXT record specifies the resource path and protocol (http or https), such that a complete request URL can be constructed.

The corresponding TXT record has the notional format of:

name=value[<space>name=value[<space>...]]

Each value is URI (percent)-encoded. The order of the name/value pairs is not important. Results

A parameter named txtvers must be present for the advertisement to be considered valid. It must contain the value 1.

A parameter named path must be present for the advertisement to be considered valid. Its value is the host-relative request URI as would be included in the HTTP request (that is, the portion of the absolute request URL from the first / of the path onwards). The path MUST begin with the / character, and clients may discard advertisements which do not conform to this.

A parameter named proto may optionally be included which should consist of one of the values http or https. If the proto parameter is omitted, HTTP should be assumed. If the proto value contains some other value, and it is not a protocol understood by the client, the whole advertisement should be discarded. Clients may support protocols beyond http and https.

The absolute URL which is constructed takes the form:

<proto>://<hostname>:<port><path>

The hostname is:

  • for RadioDNS/TVDNS-based discovery, the "RadioDNS Fully-Qualfied Domain Name" (that is, the domain name ending in .radiodns.org or .tvdns.net)

  • for DNS-SD based discovery, the hostname from the SRV record (consistent with the http DNS-SD service).