What are all these tvOS services

appletvbonjourdaemonsdnsservices

I noticed Apple's tvOS broadcasting no less than 7 mDNS PTRRRs (via Bonjour, I presume):

+ Apple TV._airplay._tcp.local
+ Apple TV._mediaremotetv._tcp.local
+ Apple TV._companion-link._tcp.local
+ 1BC5121395BA@Apple TV._raop._tcp.local
+ 70-61-23-49.1Apple TV._sleep-proxy._udp.local
+ BC69B8CC-AEE6-B37E-AAB3-E2D55C4DE0AA._homekit._tcp.local
+ EC9ED9FECEDB93DFEE5A0AC02C0BA9A5CD8DDA27._touch-able._tcp.local

Note: Unique, personally identifiable values have been randomized.


It seems like a lot. At first I thought it was only the first 5 (still seems like a lot). Some are obvious, others are.. not so much. But, pull the AppleTV's ethernet cable and watch them all disappear.

Best Answer

The services are:

._airplay._tcp.local

This is a Bonjour advertisement for the network service that enables AirPlay of video content. I.e. this allows iOS devices to discover the Apple TV as a "remote display" that it can display video on.

._mediaremotetv._tcp.local

This is one of the network services that makes the Apple TV Remote work - i.e. the app or Control Center built-in feature for remote controlling Apple TV devices from iPhones and iPads. This service is advertised on the network via Bonjour to ensure that iOS devices can discover the AppleTV.

._companion-link._tcp.local

This service is seemingly not documented by Apple, but seems involved in making the AirPlay 2 system work.

._raop._tcp.local

This network service is called Remote Audio Output Protocol. It is essentially saying that the AppleTV works as an AirPlay audio receiver. This Bonjour advertisement allows iOS devices to discover the Apple TV as a "speaker" that you can send audio to.

._sleep-proxy._udp.local

This is a Bonjour Sleep Proxy. The idea is that the AppleTV can respond to various network queries for other devices that are currently in low-power mode to lower energy usage. For example it could be a Mac offering a shared iTunes library or a shared printer. The AppleTV can then answer network requests for these servers while the Mac is in sleep mode - for example allowing the user to list the shared printers available on the network. However, when the user chooses to print something, the AppleTV will wake up the Mac and transfer the request to it.

_homekit._tcp.local

This is a network service regarding HomeKit, Apple's system for communicating with and controlling devices in the home. Think controllable light bulbs, shades, door bells, whatever. The AppleTV works as a proxy in such a setting such that the user can control devices remotely (i.e. while not at home) even though the devices might be Bluetooth only and out of range. Note that ordinary HomeKit devices on the network advertise as _hap._tcp instead.

._touch-able._tcp.local

This is another of the network services that makes the Apple TV Remote work. This service concerns device authentication. I.e. if you want to for example play a Youtube video on the Apple TV, the Apple TV can require that the device is authenticated before being allowed to do so. In practice authentications work by the Apple TV displaying a PIN-code on the TV that the user enters on the iOS device. This PIN-code is transferred using the service advertised as "touch-able" to authenticate the device.