デジタルオーディオアクセスプロトコル(DAAP)は、AppleがiTunesソフトウェアで導入した独自のプロトコルで、ローカルネットワーク上でメディアを共有するために用いられます。
DAAPは、Appleにとって、 UPnP AV規格がデジタル・リビング・ネットワーク・アライアンス(DLNA)のメンバーにとって解決するのと同じ問題に対処するものです。
DAAPプロトコルは、元々iTunesバージョン4.0で導入されました。[ 1 ]当初、Appleは公式にプロトコルの説明を公開しませんでしたが、非iTunesプラットフォーム向けにプロトコルを再実装できるほどリバースエンジニアリングされています。
DAAP サーバーは、2 つの機能を実行する特殊なHTTPサーバーです。曲のリストを送信し、要求された曲をクライアントにストリーミングします。また、サーバーの変更をクライアントに通知する機能もあります。クライアントは URL の形式でサーバーにリクエストを送信し、application/x-dmap-tagged mime タイプのデータで応答します。このデータはクライアントによってXMLに変換できます。iTunes は、ローカルサブネット上の DAAP 共有を通知および検出するためにzeroconf ( Bonjourとも呼ばれる) サービスを使用します。DAAP サービスは、デフォルトでTCPポート 3689 を使用します。[ 2 ]
DAAPは、Appleが現在リリースしている2つのメディア共有方式のうちの1つです。もう1つは、iPhotoが画像共有に使用するデジタル写真アクセスプロトコル(DPAP)です。どちらも、基盤となるプロトコルであるデジタルメディアアクセスプロトコル(DMAP)に依存しています。
iTunesの初期バージョンでは、インターネット経由で共有に接続できましたが、最近のバージョンでは、同じサブネット上のコンピュータのみが音楽を共有できます(ポートトンネルなどの回避策は可能です)。The Registerは、Appleがレコードレーベルからの圧力に応じてこの変更を行ったと推測しています。[ 3 ] iTunesのより新しいバージョンでは、 24時間以内に接続できるクライアントの数も5つの固有IPアドレスに制限されています。
DAAPは、Banshee、 Amarok、Exaile(プラグイン使用)、Songbird(プラグイン使用)、Rhythmbox、WiFiTunesなど、iTunes以外のメディアアプリケーションにも実装されています。
iTunes 4.2以降、AppleはDAAP共有に認証を導入し、iTunesサーバーに接続できるクライアントは他のiTunesインスタンスのみとなりました。これはiTunes 4.5でさらに変更され、以前使用されていた標準のMD5関数ではなく、独自のハッシュアルゴリズムを使用するようになりました。どちらの認証方法も、リリース後数か月以内にリバースエンジニアリングに成功しました。[ 4 ]
iTunes 7.0 では、iTunes 7.0 サーバーに接続する際に、新しい「Client-DAAP-Validation」ヘッダーハッシュが必要になります。これはサードパーティの DAAP サーバーには影響しません。また、バージョン 7.0 より前の iTunes 自体を含め、この機能をサポートしていないすべての DAAP クライアントは、iTunes 7.0 サーバーへの接続に失敗し、「403 Forbidden」 HTTP エラーを受け取ります。iTunes 7.0 の認証トラフィック分析によると、「Client-DAAP-Validation」ヘッダーで送信されるハッシュを計算するために証明書の交換が行われているようです。