Digital Audio Access Protocol

Digital Audio Access Protocol (DAAP) について



Digital Audio Access Protocol(DAAP)は、Appleが開発した、ローカルネットワーク内で音楽ファイルを共有するための独自の通信プロトコルです。主にiTunesで利用されており、家庭内や小規模なネットワーク環境での音楽共有を容易にしています。DAAPの登場により、ユーザーは自身のライブラリを複数のデバイスで楽しむことができるようになりました。

DAAPの概要



DAAPは、iTunesバージョン4で初めて実装されました。Appleはプロトコルの詳細を公式には公開していませんでしたが、リバースエンジニアリングによって、iTunes以外のプラットフォームでもDAAPを利用できるようになりました。当初は広く使われていましたが、後にAppleは商用利用に対してプロトコルのライセンスを提供するようになりました。

DAAPサーバーは、特別なHTTPサーバーとして機能します。主な機能は、共有可能な音楽のリストを提供すること、そしてクライアントからのリクエストに応じて音楽ファイルを送信することです。さらに、サーバー側の変更をリアルタイムでクライアントに通知する機能も備えています。クライアントからのリクエストはURL形式で送信され、レスポンスは `application/x-dmap-tagged` というMIMEタイプのデータとして返されます。このデータは、クライアント側でXML形式に変換して解析されます。

iTunesは、Bonjourとしても知られるZeroConfサービスを利用して、ローカルサブネット上のDAAPサーバーを検出します。DAAPはデフォルトでTCPポート3689番を使用します。

関連プロトコル



DAAPは、Appleが提供するメディア共有手段の一つであり、もう一つはDigital Photo Access Protocol (DPAP)です。DPAPはiPhotoで使用されています。両方のプロトコルは、基礎となるDigital Media Access Protocol (DMAP) に依存しています。

利用制限



初期のiTunesはインターネット上での共有も可能でしたが、新しいバージョンでは同一サブネット内のコンピューターとのみ共有可能となりました。この制限は、レコードレーベルからの圧力によるものと推測されています。また、新しいバージョンでは、24時間以内に接続できるクライアントのIPアドレスが5つに制限されています。

他のメディアプレイヤーでの実装



DAAPは、Banshee、Amarok、Exaile、Songbird、Rhythmbox、WiFiTunesなど、iTunes以外の多くのメディアプレイヤーにも実装されています。これらのプレイヤーを利用することで、iTunes以外の環境でもDAAPによる音楽共有が可能です。

DAAPの認証



iTunes 4.2以降、AppleはDAAPに認証機構を追加しました。これにより、DAAPサーバーに接続できるクライアントがiTunesに限定されるようになりました。iTunes 4.5以降では、MD5ハッシュに代わり、独自のハッシュアルゴリズムが使用されるようになりました。しかし、これらの認証機構はリリース後数ヶ月以内にリバースエンジニアリングによって解読されました。

iTunes 7.0からは、サーバーに接続する際に `'Client-DAAP-Validation'` ヘッダーが必須になりました。この変更は、サードパーティのDAAPサーバーには影響を与えませんでしたが、すべてのクライアント(iTunesの旧バージョンを含む)は、7.0以降のサーバーに接続できなくなりました。iTunes 7.0の通信を解析した結果、このヘッダー内で送信されるハッシュの計算には、証明書の交換が含まれることが判明しました。

2009年9月まで、iTunes 7.0の認証機構は解読されておらず、iTunes 7.x、8.x、9.xのサーバーから音楽をストリーミングできるクライアントは存在しません。

クライアント



DAAPのクライアントには、iTunesの他、Banshee、Amarok、Exaile、Songbird、Rhythmbox、WiFiTunesなどが挙げられます。これらのクライアントは、DAAPサーバーから音楽リストを取得し、音楽をストリーミング再生する機能を備えています。

関連情報



  • - OpenDAAP forum
  • - Unofficial DAAP protocol documentation
  • - DAAP, a C++ implementation of DAAP. (開発は終了)
  • - 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). (メンテナンス終了)
  • - forked-daapd, a rewritten version of Firefly Media Server for Linux (開発中)
  • - Tangerine, C# based DAAP server which runs on Linux, Windows, and Mac OS X.
  • - iTunes 7.0 traffic analysis

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。