Informatika Komputer    
   
Daftar Isi
(Sebelumnya) Digital audioDigital camera (Berikutnya)

Digital Audio Access Protocol

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

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

Contents

iTunes Server

"iTunes Server" is a technical specification that some network-attached storage (NAS) drive manufacturers have included on their devices if they are DAAP enabled. This means the device allows the user to store their iTunes media folder remotely onto the NAS device, whether over a wired connection (such as USB 2.0/3.0, FireWire 400/800, Thunderbolt, etc.), or wirelessly (i.e. over a Wi-Fi connection). However, the DAAP functionality can be limited, as different device manufacturers often will not support all file formats currently supported in iTunes software, when working remotely using DAAP.

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. Recently[when?], however, Apple has begun to license the protocol specification for commercial implementations.[2]

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.[3]

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.[4] 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.[5]

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, but all current DAAP clients (including official iTunes before iTunes 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.

As of March 15, 2013, the iTunes 7.0+ DAAP authentication still hasn't been reverse engineered, so no third-party application can stream from servers running iTunes software (from 7.x, all the way up to and including version 11.x).[6]

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
AmarokWindows, Mac, Linux   Active
BansheeWindows, Mac, Linux   Active
Crossfire  Cross-platform Ajax-based Firefly client, with multiple browser support

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

 Active
DAAP Client Android  Active
FireflyClient  Independent (uses Java) Dormant
Get it together  Any Java supported platform Dormant
iTunesWindows, MaciOSApple TV Native
LimeWireWindows, Mac, Linux   Active
One2OhMyGod  Any Java supported platform Dormant
PlexWindows, Mac, LinuxiOS, Android, Windows PhoneApple TV (2nd generation) only, and some othersLG, SamsungActive
RhythmboxLinux   Active
Roku Soundbridge and Radio  Roku Dormant
WiFiTunes PocketPC  Dormant
SongbirdWindows, Mac, Linux (unsupported)   Dormant, via plugin for 1.8.0
SoundBoxWindows, Mac   Active
Silverplay  Only Silverlight required Active
Simple DAAP Client iOS  Dormant
XBMCWindows, Mac, LinuxXBMC Live iPadApple TV (2nd generation) only, and some others Active

DAAP servers

NamePlatformDevelopment status
forked-daapdLinux, FreeBSDActive
iTunesMac OS X, WindowsActive
mt-daapd/Firefly DAAP Media ServerLinux, Windows, Mac OS XDormant
TangerineLinux, Windows, Mac OS XActive
spydaap DAAP server (python) and hereLinux, Windows, Mac OS XActive
FreeNAS and NAS4FreeLinux BSDActive
NASLite M2 Server Elements HomepageLinuxActive
DIAMSAndroidActive
GiaSAndroidActive

See also

Notes and references

  1. ^ "Unofficial DAAP protocol documentation" by Daniel Garcia, retrieved December 2, 2006
  2. ^ "Open DAAP forum", retrieved December 2, 2006
  3. ^ "Well Known Port Numbers" by IANA, November 30, 2006, retrieved December 2, 2006
  4. ^ "Apple halts iTunes' Internet sharing ability" by Tony Smith, The Register, May 28, 2003, retrieved August 31, 2006
  5. ^ "iTunes 4.5 Authentication Cracked". April 29, 2004. http://apple.slashdot.org/apple/04/04 /29/1554231.shtml. Retrieved March 12, 2007.
  6. ^ "daap with iTunes 7 doesn't work correctly". Launchpad bug tracker. 2006-09-28. https://bugs.launchpad.net/banshee/+b ug/62842.

External links

  • OpenDAAP forum
  • DAAP, a C++ implementation of DAAP. (no longer developed)
  • libopendaap, a C implementation of DAAP
  • DAAPD, another implementation of DAAP on Unix.
  • Firefly DAAP Media Server, implementation of the DAAP protocol (both video and audio) for Windows, Linux, Mac OS X and Mobile OS X (iPod touch and iPhone). No longer maintained.
  • libdmapsharing, Open source GObject- and libsoup-based library that supports server- and client-side DAAP, DPAP and DACP.
  • dmapd, Open source server that supports DAAP and DPAP.
  • forked-daapd, a rewritten version of Firefly Media Server for Linux currently under development.
  • iTunes 7.0 traffic analysis
  • Tangerine is a DAAP server. It runs on Linux, Windows, and Mac OS X.
  • spydaap is a cross-platform DAAP server written in Python.
  • NASLite M2 Installation and documentation guide


(Sebelumnya) Digital audioDigital camera (Berikutnya)