Digital Audio Access Protocol

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

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

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

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

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

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

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

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のサーバーからストリームを受信できるクライアントは存在しない。

 クライアント 
 名称 プラットフォーム 種類 AmaroK linux, mac, win 活動中 Banshee linux, mac 活動中 FireflyClient * (only JRE req) 本家 FirePlay win 活動中 Get it together ? 休止中 iTunes mac, win 本家 Rhythmbox linux 活動中 Roku Soundbridge and Radio device 活動中 Winamp DAAP Client plugin win プラグイン WifiTunes PocketPC 休止中 Songbird plugins linux, mac, win プラグイン SoundBox mac, win 活動中 Silverplay * (only Silverlight req) 活動中

 関連項目 

 外部リンク 
 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

 脚注 

Category:通信プロトコル
Category:Apple