The DAAP protocol was originally introduced in iTunes version 4.0. 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 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. 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. 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 ==