Протокол цифрового аудиодоступа ( DAAP ) — это фирменный протокол, представленный Apple в программном обеспечении iTunes для обмена медиафайлами по локальной сети.
DAAP решает те же проблемы для Apple, что и стандарты UPnP AV для членов Альянса цифровых сетей для жизни (DLNA).
Протокол DAAP был первоначально представлен в iTunes версии 4.0. [1] Первоначально Apple официально не публиковала описание протокола, но он был подвергнут реверс-инжинирингу в достаточной степени, чтобы сделать возможными повторные реализации протокола для платформ, отличных от iTunes.
Сервер DAAP — это специализированный HTTP- сервер, который выполняет две функции. Он отправляет список песен и транслирует запрошенные песни клиентам. Также предусмотрены возможности уведомления клиента об изменениях на сервере. Клиент отправляет запросы на сервер в виде URL-адресов и отвечает данными в mime-типе с тегом application/x-dmap , которые клиент может преобразовать в XML . iTunes использует службу zeroconf (также известную как Bonjour ) для объявления и обнаружения общих ресурсов DAAP в локальной подсети . Служба DAAP по умолчанию использует порт TCP 3689. [2]
DAAP — одна из двух схем обмена медиа, которые Apple выпустила в настоящее время. Другая, Digital Photo Access Protocol (DPAP), используется iPhoto для обмена изображениями. Они обе полагаются на базовый протокол, Digital Media Access Protocol (DMAP).
Ранние версии iTunes позволяли пользователям подключаться к общим ресурсам через Интернет, однако в последних версиях только компьютеры в одной подсети могут обмениваться музыкой ( возможны обходные пути, такие как туннелирование портов ). The Register предполагает, что Apple пошла на этот шаг в ответ на давление со стороны звукозаписывающих компаний. [3] Более поздние версии iTunes также ограничивают количество клиентов 5 уникальными IP-адресами в течение 24-часового периода.
DAAP также реализован в других медиаприложениях, не относящихся к iTunes, таких как Banshee , Amarok , Exaile (с плагином), Songbird (с плагином), Rhythmbox и WiFiTunes.
Начиная с iTunes 4.2, Apple ввела аутентификацию для обмена DAAP, что означало, что единственными клиентами, которые могли подключаться к серверам iTunes, были другие экземпляры iTunes. Это было дополнительно изменено в iTunes 4.5 для использования пользовательского алгоритма хеширования вместо стандартной функции MD5 , которая использовалась ранее. Оба метода аутентификации были успешно реверсированы в течение нескольких месяцев после выпуска. [4]
В iTunes 7.0 при подключении к серверу iTunes 7.0 требуется новый хэш заголовка «Client-DAAP-Validation». Это не влияет на сторонние серверы DAAP, и все клиенты DAAP без поддержки этой функции, включая сам iTunes до версии 7.0, не смогут подключиться к серверу iTunes 7.0, получив ошибку HTTP «403 Forbidden». Анализ трафика аутентификации iTunes 7.0 , похоже, указывает на то, что выполняется обмен сертификатами для вычисления хэша, отправленного в заголовке «Client-DAAP-Validation».