対してDLNAは、映像・音声・画像などマルチメディアを扱う製品のみに特化したガイドラインを出しています。UPnPのマルチメディア関連ガイドライン(AV architecture)に上乗せする形で、扱うことのできるファイルフォーマットやDRM(Digital Rights Management)への対応などを独自に定めています。UPnPなしにはDLNAは成り立たないと言えます。
まずは、自宅のネットワークに存在しているUPnPノードを一覧してみましょう。UnityのDashで「gupnp-universal-cp」を検索し、「GUPnP Universal Control Poiint」を起動してください。
ウィンドウ左に、ネットワーク内にあるUPnPの各ノードが提供する機能が表示されます。ここでは、MiniDLNA、MediaTomb、Windowsオペレーティングシステムが提供するMediaServer機能と、Windows Media PlayerによるMediaRenderer機能が認識されています。筆者はUPnP/DLNA対応の家電を持っていないためこれだけしか表示されませんが、普通の家庭であればテレビやレコーダーなどが現れると思います。
Root Deviceは、ファイルサーバー機能やプリンター機能といったUPnPのサービスを提供するノードです。ひとつのIPアドレスに対応しており、ひとつのノードが複数のサービスを提供している場合もあります。先ほどの「GUPnP Universal Control Poiint」では、同一のWIndowsマシンが提供する2つのサービスが別々に見えていました。
次にUDPを使い、自分の存在と提供するサービスの概略を通知するメッセージをマルチキャストします。すでにネットワークに接続されているソフトウェアやハードウェアはこのメッセージを受け取り、自分と関係のあるものであれば応答します。この段階はUPnPでは「Discovery」と呼び、一連の手続きはSSDP(Simple Service Discovery Protocol)と名付けられており、メッセージの内容はHTTPに順じています。
ホームグループを作成したら、先ほどの「GUPnP Universal Control Point」のウィンドウを確認してみましょう。おそらく、Windowsマシンが出現したかと思います。これだけでUPnPノード間、あるいは同一のホームグループに属するWindows機同士でファイルを交換できるようになります。
ファイルを再生するMediaRendererの機能は、Windows Media Playerのバージョン11以降が提供します。設定するには操作画面の「ストリーム(R)」という部分をクリックし、リモート制御を許可するように設定を変更してください。
設定を変更すると、「GUPnP AV Control Point」に表示されて操作可能となります。「GUPnP AV Control Point」にはバグがありって再生のアクションをうまく送ることができないようですが、再生を停止させたりボリュームを遠隔操作することは可能なので試してみてください。