Digital Audio Access Protocol

Last updated

The Digital Audio Access Protocol (DAAP) is the proprietary protocol introduced by Apple in its iTunes software to share media across a local network.

Contents

DAAP addresses the same problems for Apple as the UPnP AV standards address for members of the Digital Living Network Alliance (DLNA).

Description

The DAAP protocol was originally introduced in iTunes version 4.0. [1] Initially, Apple did not officially release a protocol description, but it has been reverse-engineered to a sufficient degree that reimplementations of the protocol for non-iTunes platforms have been possible.

A DAAP server is a specialized HTTP server, which performs two functions. It sends a list of songs and it streams requested songs to clients. There are also provisions to notify the client of changes to the server. Requests are sent to the server by the client in form of URLs and are responded to with data in application/x-dmap-tagged mime-type, which can be converted to XML by the client. iTunes uses the zeroconf (also known as Bonjour) service to announce and discover DAAP shares on a local subnet. The DAAP service uses TCP port 3689 by default. [2]

DAAP is one of two media sharing schemes that Apple has currently released. The other, Digital Photo Access Protocol (DPAP), is used by iPhoto for sharing images. They both rely on an underlying protocol, Digital Media Access Protocol (DMAP).

Early versions of iTunes allowed users to connect to shares across the Internet, however, in recent versions only computers on the same subnet can share music (workarounds such as port tunneling are possible). The Register speculates that Apple made this move in response to pressure from the record labels. [3] More recent versions of iTunes also limit the number of clients to 5 unique IP addresses within a 24-hour period.

DAAP has also been implemented in other non-iTunes media applications such as Banshee, Amarok, Exaile (with a plugin), Songbird (with a plugin), Rhythmbox, and WiFiTunes.

DAAP authentication

Beginning with iTunes 4.2, Apple introduced authentication to DAAP sharing, meaning that the only clients that could connect to iTunes servers were other instances of iTunes. This was further modified in iTunes 4.5 to use a custom hashing algorithm, rather than the standard MD5 function used previously. Both authentication methods were successfully reverse engineered within months of release. [4]

With iTunes 7.0, a new 'Client-DAAP-Validation' header hash is needed when connecting to an iTunes 7.0 server. This does not affect third-party DAAP servers, and all DAAP clients without support for this feature, including iTunes itself before version 7.0, will fail to connect to an iTunes 7.0 server, receiving a '403 Forbidden' HTTP error. The iTunes 7.0 authentication traffic analysis seem to indicate that a certificate exchange is performed to calculate the hash sent in the 'Client-DAAP-Validation' header.

DAAP clients

NamePlatform: DesktopPlatform: PortablePlatform: Devices/OtherPlatform: TVsDevelopment status
iOS Music app (formerly iPod app)iOS (by setting: password on Settings, then More>Shared), since iOS 4.3 Native
Amarok Windows, Mac, LinuxActive
Banshee Windows, Mac, LinuxActive
CrossfireCross-platform Ajax-based Firefly client, with multiple browser support

Safari (inc. iOS), Nokia, Opera, IE, Chrome

Active
DAAP Client Android Dormant
DAAP Media Player Android Active
Diapente Android Dormant
FireflyClientIndependent (uses Java)Dormant
Get it togetherAny Java supported platformDormant
iTunes Windows, MaciOS Apple TV Native
LimeWire Windows, Mac, LinuxActive
One2OhMyGodAny Java supported platformDormant
Rhythmbox LinuxActive
Roku Soundbridge and Radio Roku Dormant
WiFiTunesPocketPCDormant
Songbird Windows, Mac, Linux (unsupported)Dormant, via plugin for 1.8.0
SoundBoxWindows, MacActive
SilverplayOnly Silverlight requiredActive
Simple DAAP ClientiOSDormant
Winamp with ml_daap pluginWindowsWinamp discontinued on 12/20/2013; ml_daap dormant, depends on Apple Bonjour support for Windows
XBMC Windows, Mac, Linux XBMC Live iPad Apple TV (2nd generation) only, and some othersActive

DAAP servers

NameOperating systemDevelopment status
Linux macOS Microsoft Windows Other
iTunes NoNoYesNoActive
Apple Music NoYesNoNoActive
OwnTone YesNoNo FreeBSD Active
Firefly Media Server (mt-daapd) YesYesYes FreeBSD Dormant
Tangerine YesYesYesFreeBSDDormant
spydaap DAAP server (python)YesYesYesFreeBSDDormant
FreeNAS and NAS4FreeNoNoNoFreeBSDActive
NASLite M2 YesNoNoNoActive
OpenMediaVault YesNoNoNoActive
Ampache YesYesYesFreeBSDActive
Rhythmbox YesNoNoNoActive
node-daapd YesNoNoNoDormant
Wild Media Server (UPnP, DLNA, HTTP) YesYesYesNoActive
canary YesYesNoNoActive
dmapd YesNoNoNoActive

See also

Notes and references

  1. "Unofficial DAAP protocol documentation" Archived 2012-02-22 at the Wayback Machine by Daniel Garcia, retrieved December 2, 2006
  2. "Well Known Port Numbers" by IANA , November 30, 2006, retrieved December 2, 2006
  3. "Apple halts iTunes' Internet sharing ability" by Tony Smith, The Register, May 28, 2003, retrieved August 31, 2006
  4. "iTunes 4.5 Authentication Cracked". April 29, 2004. Retrieved March 12, 2007.

Related Research Articles

The Dynamic Host Configuration Protocol (DHCP) is a network management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to devices connected to the network using a client–server architecture.

<span class="mw-page-title-main">HTTP</span> Application protocol for distributed, collaborative, hypermedia information systems

The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen in a web browser.

In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. Today, POP version 3 (POP3) is the most commonly used version. Together with IMAP, it is one of the most common protocols for email retrieval.

The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typically use SMTP only for sending messages to a mail server for relaying, and typically submit outgoing email to the mail server on port 587 or 465 per RFC 8314. For retrieving messages, IMAP is standard, but proprietary servers also often implement proprietary protocols, e.g., Exchange ActiveSync.

Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network. The protocol is widely used in applications such as email, instant messaging, and voice over IP, but its use in securing HTTPS remains the most publicly visible.

IEEE 802.1X is an IEEE Standard for port-based network access control (PNAC). It is part of the IEEE 802.1 group of networking protocols. It provides an authentication mechanism to devices wishing to attach to a LAN or WLAN.

<span class="mw-page-title-main">Virtual Network Computing</span> Graphical desktop-sharing system

Virtual Network Computing (VNC) is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse input from one computer to another, relaying the graphical-screen updates, over a network.

The Apple Filing Protocol (AFP), formerly AppleTalk Filing Protocol, is a proprietary network protocol, and part of the Apple File Service (AFS), that offers file services for macOS, classic Mac OS, and Apple II computers. In OS X 10.8 Mountain Lion and earlier, AFP was the primary protocol for file services. Starting with OS X 10.9 Mavericks, Server Message Block (SMB) was made the primary file sharing protocol, with the ability to run an AFP server removed later in macOS 11 Big Sur. AFP supports Unicode file names, POSIX and access-control list permissions, resource forks, named extended attributes, and advanced file locking.

Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft Corporation which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this purpose, while the other computer must run RDP server software.

<span class="mw-page-title-main">AirPort Express</span> Wi-Fi base station by Apple

The AirPort Express is a discontinued Wi-Fi base station product from Apple Inc., part of the AirPort product line. While more compact and in some ways simpler than another Apple Wi-Fi base station, the AirPort Extreme, the Express offers audio output capability the Extreme lacks. The AirPort Express was the first AirPlay device to receive streamed audio from a computer running iTunes on the local network. AirPort Express outperforms the stringent requirements of the ENERGY STAR Program Requirements for Small Network Equipment (SNE) Version 1.0.

strongSwan is a multiplatform IPsec implementation. The focus of the project is on authentication mechanisms using X.509 public key certificates and optional storage of private keys and certificates on smartcards through a PKCS#11 interface and on TPM 2.0.

Apple Open Directory is the LDAP directory service model implementation from Apple Inc. A directory service is software which stores and organizes information about a computer network's users and network resources and which allows network administrators to manage users' access to the resources.

In a Windows network, NT LAN Manager (NTLM) is a suite of Microsoft security protocols intended to provide authentication, integrity, and confidentiality to users. NTLM is the successor to the authentication protocol in Microsoft LAN Manager (LANMAN), an older Microsoft product. The NTLM protocol suite is implemented in a Security Support Provider, which combines the LAN Manager authentication protocol, NTLMv1, NTLMv2 and NTLM2 Session protocols in a single package. Whether these protocols are used or can be used on a system which is governed by Group Policy settings, for which different versions of Windows have different default settings.

MSN Chat was the Microsoft Network version of IRCX, which replaced Microsoft Chat, a set of Exchange-based IRCX servers first available in the Microsoft Comic Chat client, although Comic Chat was not required to connect.

In computing, Microsoft's Windows Vista and Windows Server 2008 introduced in 2007/2008 a new networking stack named Next Generation TCP/IP stack, to improve on the previous stack in several ways. The stack includes native implementation of IPv6, as well as a complete overhaul of IPv4. The new TCP/IP stack uses a new method to store configuration settings that enables more dynamic control and does not require a computer restart after a change in settings. The new stack, implemented as a dual-stack model, depends on a strong host-model and features an infrastructure to enable more modular components that one can dynamically insert and remove.

Peer-to-peer file sharing (P2P) systems like Gnutella, KaZaA, and eDonkey/eMule, have become extremely popular in recent years, with the estimated user population in the millions. An academic research paper analyzed Gnutella and eMule protocols and found weaknesses in the protocol; many of the issues found in these networks are fundamental and probably common on other P2P networks. Users of file sharing networks, such as eMule and Gnutella, are subject to monitoring of their activity. Clients may be tracked by IP address, DNS name, software version they use, files they share, queries they initiate, and queries they answer to. Clients may also share their private files to the network without notice due to inappropriate settings.

Digital Audio Control Protocol (DACP) is a protocol used by the iTunes and other audio player and server applications on Mac, Windows and Linux computers, enabling remote control by mobile devices such as iPhone and Android phones and tablet computers. By connecting the personal computer to loudspeakers the mobile device is used as a two-way remote control, allowing selection and control of music playback within a traditional listening environment such as a home or apartment.

<span class="mw-page-title-main">WebSocket</span> Computer network protocol

WebSocket is a computer communications protocol, providing simultaneous two-way communication channels over a single Transmission Control Protocol (TCP) connection. The WebSocket protocol was standardized by the IETF as RFC 6455 in 2011. The current specification allowing web applications to use this protocol is known as WebSockets. It is a living standard maintained by the WHATWG and a successor to The WebSocket API from the W3C.

<span class="mw-page-title-main">AirPlay</span> Proprietary wireless streaming protocol developed by Apple Inc.

AirPlay is a proprietary wireless communication protocol stack/suite developed by Apple Inc. that allows streaming between devices of audio, video, device screens, and photos, together with related metadata. Originally implemented only in Apple's software and devices, it was called AirTunes and used for audio only. Apple has since licensed the AirPlay protocol stack as a third-party software component technology to manufacturers that build products compatible with Apple's devices.

The Digital Media Access Protocol (DMAP) is the family of proprietary protocols introduced by Apple that are used by iTunes, iPhoto, Remote and other software to share media across a local network.