■ UPnPって何?
UPnPとは「Universal Plug & Play」の略で、UPnP Forumという組織が制定しているものです。当初はMicrosoftが提唱、これにIntel、3Com、AT&T、Compaq Computer、Dell Computer、IBMなど20社以上が加わってUPnP Forumが結成され、ここでUPnPの標準化が行なわれました。現在は749を超える組織がこのUPnP Forumに加盟しています。
UPnPの目的は、ネットワーク機器同士を簡単に接続して利用できるようにするというものです。これまで何回か説明してきましたが、例えばTCP/IPを利用して接続する場合、お互いの通信に必要なネットワークを決め、適切なIPアドレスを振り、その上で適切なプロトコルを使って通信するという面倒な手順になります。
慣れれば簡単、と言えなくもないのですが、慣れるまでが非常に大変なのは経験のある方にはおわかりでしょう。ましてや、家庭内にネットワークを導入していこうという話をしているときに、この面倒さはちょっと致命的です。
これを解決すべく、制定されたのがUPnPです。UPnPの大きな目的は以下の2つになります。
・ネットワーク機器を簡単に接続できるようにする。
・特定のネットワークに依存しない構造とする。
まず1点目ですが、例えばルータを繋げば何も設定しなくてもインターネットに接続でき、ネットワークプリンタを繋げば何も設定しなくても、プリンタ一覧にそのネットワークプリンタが出現して、すぐにプリントを開始できるといった使い勝手を実現しようというものです。
また、2点目は単にイーサネットのみならずIEEE 1394やBluetooth、あるいは今後主流になると思われるUWBやWi-Fi/WiMaxといった規格を幅広くサポートすることで、どんな形で接続されても同等の使い勝手を実現させようというものです。
■ さまざまなUPnP
こうした使い勝手のよさを実現するために、UPnPではさまざまなスペックを定めています。例えば現在スペックが定められているものとしては、以下のようなものがあります。
・Basic Device
・Internet Gateway Device
・MediaServer and MediaRenderer
・Printer Device and Print Basic Service
・Printer Enhanced
・Scanner
・HVAC
・WLAN Access Point Device
・Device Security and Security Console
・Lighting Controls
・Remote UI Client and Server
・Quality of Service
・Digital Security Camera
このうち、HVACというのはインテリジェンスエアコンで、まさしく家庭のさまざまなデバイスを接続することを考慮していることがわかります。
一方、構造という面から見れば、UPnPは3つに分けられます。デバイス・サービス・コントロールポイントという分け方で、考え方としては以下のようになります。
・UPnPに対応した機器:デバイス
・デバイスを制御するための切り口:サービス
・サービス経由でデバイスを操作する主体:コントロールポイントです。例えばリモコンでTVを操作する場合
・デバイス:TVそのもの
・サービス:TVのリモコン
・コントロールポイント:リモコンを操作する人
ちなみに動き方という面で言えば、ネットワーク上にIP割り当てや名前解決を行なってくれるサーバーがある場合(Configured)と、そうしたものが無い場合(AdHoc)で多少動き方が変わりますが、ユーザーから見る限り違いはわからないようになっています。
■ UPnPの例:Internet Gateway Device

|
図1:IGDでの接続例
|
UPnPのスペックを全部説明しているときりがないので、代表例としてIGD(Internet Gateway Device)を取り上げて簡単に動作を説明したいと思います。IGDとは要するにUPnP対応のブロードバンドルータのことです。さて、これを図1のような構成で接続したとします。
すると、まずIGDと各UPnPクライアントは、お互いにSSDP(Simple Service Discovery Protocol)と呼ばれるプロトコルを使い、各々の存在をLAN内に通知します。これを受けてお互いの存在を確認するとともに、必要ならばIPアドレスの割り当てをお互いに実施します。同時にIGDは、上位にあたるインターネットプロバイダーからWAN側のIPアドレスを取得します。これらの手順は原則として完全に自動です(図2)。
|
図2:IGDの動作その1
|

|
図3:IGDの動作その2
|
一度設定が終ったら、あとはクライアントからのインターネットアクセスは、IGD内のNATの機能を使ってインターネットにアクセスできるようになります。このあたりは別に普通のブロードバンドルータと変わりありません(図3)。
ただ、あとは完全に同じ、というわけではありません。アプリケーションの中には、グローバルIPアドレスを与えないと通信がうまくできないものがあります。ちょっと前のインスタントメッセンジャーがその代表例です。こういったソフトの場合、単にIPヘッダ部のアドレスをNATを使ってグローバルIPアドレスに変換するだけでは不十分で、アプリケーションデータの中にまでIPアドレスが含まれている関係で、各クライアントがグローバルIPアドレスを知っている必要があります。
通常こうしたケースでは、手動でグローバルIPアドレスをアプリケーションに入力するとともに、ポートフォワーディングを使って対応するのが常でしたが、UPnPでは「NAT Traversal」という機能でこれに対応できます。これはIGDがグローバルIPアドレスを必要とするクライアントに、IGD自身のグローバルIPアドレスを連絡するという仕組みで、これを使ってアプリケーションは通信を行なうことができます。また、この際ポートフォワーディングはNATで代行されるので、手動であれこれと設定する必要がありません(図4)。
|
図4:IGDの動作その3
|
■ UPnPの今後
2回目の最後でも少し触れましたが、このUPnPを使うことで、ネットワークの接続は随分楽になりました。Windows XPは標準でUPnPに対応しており、また最近のブロードバンドルータはほとんどがUPnP対応ということもあり、「買って来てケーブルを繋ぎ、電源を入れると即接続可能」という環境が現実のものになりつつあります。
デジタル家電機器の相互接続性に関する規格を審議する「DLNA(Digital Living Network Alliance)」という団体がガイドラインをリリースしていますが、このガイドラインはUPnPを前提としたものになっています。また、これとは別にDLNAに著作権保護を加えたような機能を持つ「DTCP-IP」というプロトコルもあり、次世代のDLNAガイドラインとしての採用が有力視されていますが、これもUPnPが下敷きとなっています。
そういうわけで、UPnPは今後も広く使われること自体は間違いないわけですが、逆にいえばUPnP単独ではそれほど広く使われることはない、という意味でもあります。こと狭義のコンピュータネットワークに限って言えば、複数ネットワークから構成される大規模な企業向けLANなどを正しく扱う機能は持ち合わせていませんし、すべてのクライアントがUPnPに必ずしも対応しているわけではないというあたりもちょっと厄介な点です。UPnPは引き続き家庭内でのネットワーク接続で活躍するでしょうが、今後は次第にDLNAやDTCP-IPなどに置き換わってゆくのかもしれません。
2005/06/20 10:57
槻ノ木 隆 国内某メーカーのネットワーク関係「エンジニア」から「元エンジニア」に限りなく近いところに流れてきてしまった。ここ2年ほどは、企画とか教育、営業に近いことばかりやっており、まもなく肩書きは「退役エンジニア」になると思われる。(イラスト:Mikebow) |
|