Digital Audio Access Protocol

Digital Audio Access Protocol（デジタル・オーディオ・アクセス・プロトコル、略称 : DAAP）は、ローカルネットワークで楽曲を共有するためのAppleによってiTunes上に実装されたプロプライエタリな通信プロトコルである。

概説 
DAAPプロトコルはiTunes バージョン4ではじめて実装された。 Appleは公式にはプロトコルの詳細を公開しなかったが、リバースエンジニアリングによってiTunes以外のプラットフォームでもDAAPが利用できるようになった。しかしAppleは商用の実装に対してはプロトコルの詳細をライセンスするようになった。 

DAAPサーバーは特殊なHTTPサーバーであると言え、曲の一覧を提供し、リクエストされた音楽をクライアントへ送信するという2つの機能を有する。また、サーバーにおける変更をクライアントへ通知する機能もある。クライアントによるリクエストはURLの形で送られ、レスポンスはMIMEタイプがapplication/x-dmap-tagged であるデータの形で返される。このデータはクライアント側でXMLに変換できる。iTunesはBonjourとしても知られるZeroConfサービスを用いてローカルサブネット上のDAAPのアナウンスや発見を行う。DAAPはTCPのポート番号3689番をデフォルトで使用する。

DAAPはAppleが今までにリリースしたメディアの共有手段2つのうちの1つである。もう一方のDigital Photo Access Protocol (DPAP) はiPhotoによって使用されている。双方とも基礎的なプロトコルであるDigital Media Access Protocol (DMAP) に依存している。

初期のiTunesはインターネット上で共有されたものに対しても接続できたが、新しいバージョンでは同じサブネットに存在するコンピューターとしか共有できない。しかし、依然としてポートトンネリングなどの方法は利用できる。The RegisterはAppleがこのような制限を課した理由はレーベルからの圧力にあると推測している。 さらに新しいバージョンでは24時間で5つのユニークなIPアドレスにクライアントを制限している。

DAAPはBanshee、Amarok、Exaile (要プラグイン)、Songbird (要プラグイン)、Rhythmbox、WiFiTunesなどのiTunes以外のメディアプレイヤーでも実装されている。

DAAPの認証 
iTunes 4.2から、AppleはDAAPに対して認証機構を追加した。これはiTunesに接続できるクライアントはiTunesに限られるということである。iTunes 4.5からは、以前用いられていたMD5に変わって独自のハッシュアルゴリズムを用いるようになった。両方ともリリースから数ヶ月以内にリバースエンジニアリングに成功した。

iTunes 7.0からは、7.0のサーバーに接続する際に新たに'Client-DAAP-Validation'ヘッダが必要になった。これはサードパーティーのDAAPサーバーには影響しないが、全てのクライアント(7.0以前の公式なiTunesも含む)は'403 Forbidden'エラーによって7.0サーバーに接続できなくなった。iTunes 7.0のトラフィック解析によれば、'Client-DAAP-Validation'ヘッダー内で送られたハッシュを計算するために証明書が交換されていると示されている。

2009年9月まで、iTunes 7.0の認証機構は破られていない。つまり、iTunes 7.x 8.x 9.xのサーバーからストリームを受信できるクライアントは存在しない。

クライアント

関連項目

外部リンク 
 OpenDAAP forum
 Unofficial DAAP protocol documentation
 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.
 forked-daapd, a rewritten version of Firefly Media Server for Linux currently under development.
 Tangerine, C# based DAAP server which runs on Linux, Windows, and Mac OS X.
 iTunes 7.0 traffic analysis

脚注 

通信プロトコル
Apple