(57)【要約】【課題】情報処理サーバがパケット中継装置（例えばNAT）を介して宅内のサービスにアクセスできるようにする。【解決手段】本発明の通信装置は、１つ以上のサービス提供サーバが存在するネットワーク上に接続される通信装置であって、前記ネットワーク上に存在するサービス提供サーバを発見するサービス発見手段と、発見した前記サービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記ネットワークにパケット中継装置を介して接続されるさらなるネットワーク上の情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部と、前記発見したサービス提供サーバが提供するサービスを識別するサービス識別情報を含むデータ部とを有する情報パケットを前記パケット中継装置に送信する送信手段と、を備える。【選択図】図１
2007208693.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のサービス提供サーバが存在するネットワーク上に接続される通信装置であって、
前記ネットワーク上に存在するサービス提供サーバを発見するサービス発見手段と、
発見した前記サービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記ネットワークにパケット中継装置を介して接続されるさらなるネットワーク上の情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部と、前記発見したサービス提供サーバが提供するサービスを識別するサービス識別情報を含むデータ部とを有する情報パケットを前記パケット中継装置に送信する送信手段と、
を備えた通信装置。
【請求項２】
前記送信手段は、前記情報パケットとして第１のパケットおよび第２のパケットを送信し、
前記第１のパケットは、前記発見したサービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部を有し、
前記第２のパケットは、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含み、自装置のアドレスと自装置が使用するポート番号とをソースアドレスおよびソースポート番号として含むヘッダ部と、前記サービス識別情報を含むデータ部とを有する、
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記送信手段は、前記第１および第２のパケットのうちまず前記第２のパケットを送信し、前記第２のパケットを受信した前記情報処理サーバから前記第１のパケットの送信を要求する送信要求パケットを受信したら、前記第１のパケットを送信することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記送信手段は、前記第１のパケットを定期的に送信し、前記情報処理サーバから前記第１のパケットの送信の停止を要求する停止要求パケットを受信した場合は、前記第１のパケットの送信を停止することを特徴とする請求項２または３に記載の通信装置。
【請求項５】
前記送信手段は、前記情報パケットを定期的に送信し、前記情報処理サーバから前記情報パケットの送信の停止を要求する停止要求パケットを受信した場合は、前記パケットの送信を停止することを特徴とする請求項１に記載の通信装置。
【請求項６】
前記送信手段は、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを問い合わせるためのパケットを、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを管理する前記ネットワークまたはさらなるネットワーク上に配置された情報管理サーバに向けて送信し、前記情報管理サーバから問い合わせの結果を含むパケットを受信することを特徴とする請求項１に記載の通信装置。
【請求項７】
前記情報処理サーバから前記サービス提供サーバを識別する識別情報のリストを含むパケットを受信する受信手段と、
受信した前記リストを表示する表示手段と、
ユーザ入力に基づき前記リストから識別情報を選択する選択手段と、をさらに備え、
前記送信手段は、選択した識別情報をもつサービス提供サーバによるサービスの提供を受けることを前記情報処理サーバに要求するサービス要求パケットを送信することを特徴とする請求項１に記載の通信装置。
【請求項８】
前記受信手段は、前記サービス要求パケットを受けた前記情報処理サーバと、前記選択した識別情報をもつサービス提供サーバとの間で行われたデータ通信の結果を含むパケットを前記情報処理サーバから受信することを特徴とする請求項７に記載の通信装置。
【請求項９】
１つ以上のサービス提供サーバが存在するネットワーク上に接続される通信装置と、前記ネットワークとパケット中継装置を介して接続されるさらなるネットワーク上に接続される情報処理サーバとを備えた通信システムであって、
前記通信装置は、
前記ネットワーク上に存在するサービス提供サーバを発見するサービス発見手段と、
発見した前記サービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部と、前記発見したサービス提供サーバが提供するサービスを識別するサービス識別情報を含むデータ部とを有する情報パケットを前記パケット中継装置に送信する送信手段と、を有し、
前記情報処理サーバは、
前記通信装置から送信された前記情報パケットを、前記パケット中継装置を介して受信する受信手段と、
前記サービス提供サーバを識別する識別情報のリストを提示する提示手段と、
前記リストにおいて選択された識別情報をもつサービス提供サーバによるサービスの提供を要求する要求パケットを前記サービス提供サーバに送信して前記サービス提供サーバとの間で前記サービスに係わるデータ通信を行う、前記要求パケットはヘッダ部において、前記サービス提供サーバのサービス識別情報を運んできた情報パケットのソースアドレスおよびソースポート番号を宛先アドレスおよび宛先ポート番号として含み、該情報パケットの宛先アドレスおよび宛先ポート番号をソースアドレスおよびソースポート番号として含む、送信手段と、を有する、
通信システム。
【請求項１０】
前記通信装置における前記送信手段は、前記情報パケットとして第１のパケットおよび第２のパケットを送信し、
前記第１のパケットは、前記発見したサービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部を有し、
前記第２のパケットは、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含み、前記通信装置のアドレスと前記通信装置が使用するポート番号とをソースアドレスおよびソースポート番号として含むヘッダ部と、前記サービス識別情報を含むデータ部とを有するパケットであり、
前記情報処理サーバにおける前記送信手段は、前記要求パケットとして、ヘッダ部において前記第１のパケットのソースアドレスおよびソースポート番号を宛先アドレスおよび宛先ポート番号として含み、前記第１のパケットの宛先アドレスおよび宛先ポート番号をソースアドレスおよびソースポート番号として含む要求パケットを送信する、
ことを特徴とする請求項９に記載の通信システム。
【請求項１１】
前記通信装置における前記送信手段は、前記第１および第２のパケットのうちまず第２のパケットを送信し、前記第２のパケットを受信した前記情報処理サーバから前記第１のパケットの送信を要求する送信要求パケットを受信したら、前記第１のパケットを送信することを特徴とする請求項１０に記載の通信システム。
【請求項１２】
前記通信装置における前記送信手段は、前記第１のパケットを定期的に送信し、前記情報処理サーバから前記第１のパケットの送信の停止を要求する停止要求パケットを受信した場合は、前記第１のパケットの送信を停止することを特徴とする請求項１０または１１に記載の通信システム。
【請求項１３】
前記通信装置における前記送信手段は、前記情報パケットを定期的に送信し、前記情報処理サーバから前記情報パケットの送信の停止を要求する停止要求パケットを受信した場合は、前記パケットの送信を停止することを特徴とする請求項９に記載の通信システム。
【請求項１４】
前記通信装置における前記送信手段は、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを問い合わせるためのパケットを、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを管理する前記ネットワークまたはさらなるネットワーク上に配置された情報管理サーバに向けて送信し、前記情報管理サーバから問い合わせの結果を含むパケットを受信することを特徴とする請求項９に記載の通信システム。
【請求項１５】
前記通信装置は、
前記情報処理サーバから前記サービス提供サーバを識別する識別情報のリストを含むパケットを受信する受信手段と、
受信した前記リストを表示する表示手段と、
ユーザ入力に基づき前記リストから識別情報を選択する選択手段と、をさらに有し、
前記通信装置における前記送信手段は、選択した識別情報をもつサービス提供サーバによるサービスの提供を受けることを前記情報処理サーバに要求するサービス要求パケットを送信することを特徴とする請求項９に記載の通信システム。
【請求項１６】
前記通信装置における前記受信手段は、前記サービス要求パケットを受けた前記情報処理サーバと、前記選択した識別情報をもつサービス提供サーバとの間で行われたデータ通信の結果を含むパケットを前記情報処理サーバから受信することを特徴とする請求項１５に記載の通信システム。
【請求項１７】
１つ以上のサービス提供サーバが存在するネットワーク上に接続される通信装置において実行する通信方法であって、
前記ネットワーク上に存在するサービス提供サーバを発見し、
発見した前記サービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記ネットワークにパケット中継装置を介して接続されるさらなるネットワーク上の情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部と、前記発見したサービス提供サーバが提供するサービスを識別するサービス識別情報を含むデータ部とを有する情報パケットを前記パケット中継装置に送信する、ことを特徴とする通信方法。
【請求項１８】
１つ以上のサービス提供サーバが存在するネットワーク上に接続される通信装置において実行する通信プログラムであって、
前記ネットワーク上に存在するサービス提供サーバを発見するステップと、
発見した前記サービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記ネットワークにパケット中継装置を介して接続されるさらなるネットワーク上の情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部と、前記発見したサービス提供サーバが提供するサービスを識別するサービス識別情報を含むデータ部とを有する情報パケットを前記パケット中継装置に送信するステップと、
を備えたことを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム、通信方法および通信プログラムに関し、例えばNAT（Network Address Translation）装置を介して複数の計算機を協調動作させる技術に関する。
【背景技術】
【０００２】
近年、遠隔にある計算機からの画面情報を手元の端末に表示し、手元端末に接続したマウスあるいはキーボードを用いて遠方計算機を操作するというリモート操作が可能となっている。例として、X.org Foundationにて開発されているX window systemや、 Microsoft社のRemote Desktopと呼ばれる機能や、VNC(Virtual Network Computing) software を挙げることができる。また、Xwindow systemのように描画コマンドを送受信することにより、手元端末に遠方計算機の画面を描画するのでなく、遠方計算機の画面をMPEG2-TSで画像符号化し、手元端末でこれを復号化し表示することにより同様のシステムを構築することも可能である。
【０００３】
また、インターネットの発達により、2点間が遠く離れていても高速な通信が
可能となってきている。
【０００４】
一般に、高速なCPUや大容量のハードディスクを持った計算機は、重く、携帯に向かない。一方、携帯に適する軽量な計算機は、CPU能力が比較的低速であり、ハードディスクの容量も少ない。
【０００５】
しかしながら、インターネット上でリモート操作方式を用いることにより、遠方計算機をあたかも手元にあるかのように操作することが可能であり、持ち歩くのは軽い手元端末でありながら、大容量のハードディスクに格納したデータにアクセスしたり、高速なCPUを用いた処理を行うことができる。
【０００６】
また、特開2003-288536公報「地図情報提供システム」(中島幸治 セイコーエプソン株式会社)では、遠方の地図データサーバから地図データを手元のカーナビゲーション端末機に転送し、カーナビゲーション端末機に表示する方法が示されている。手元のカーナビゲーション端末にて目的地を入力し、この情報が地図データサーバへ送られ、所望の場所の地図データを受信することにより、手元のカーナビゲーション端末にて所望の場所の地図を表示することができる。これにより、大容量の記憶装置をカーナビゲーション端末に具備しなくて済む。このように、遠方に配した計算機に計算処理やデータ記憶のほとんどを任せ、ユーザの手元の端末は、遠方計算機からの処理結果のユーザへの提示、あるいはユーザからのキーボードやマウス入力を受け付けるIOデバイスとして、軽い処理のみを行うというアーキテクチャが、近年のネットワークの高速化に伴いその適用領域を広げてきている。このアーキテクチャでは、殆どの処理を遠方計算機が行うため、手元端末は低処理能力のハードウエアで構成することができるという利点を持つ。また、このアーキテクチャに於いて、遠方計算機を企業のシステム部門が管理し、社員をユーザとして計算機システムを構築している場合や、ASP(アプリケーションサービスプロバイダ)が遠方計算機を管理し、ユーザに計算機資源を貸し出すようなサービスを行っている場合には、アプリケーションが高度化しより高い計算処理能力を必要としても、遠方計算機の処理能力のみを大きくすれば良く、ユーザの手元端末の処理能力を大きくしなくても良いため、ユーザにハードウエア更新の手間を省くことが可能であるという利点を持つ。
【特許文献１】特開２００３−２８８５３６公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
例えば、Microsoft社のOSであるWindows（登録商標）で使われているNetBIOSや、UPnP Forumで標準化されているUPnPのように、近くの機器やサービスを発見するために、ブロードキャストやマルチキャストを使用している。従来のリモート操作方式では、遠方端末が手元端末と同じIPサブネットに所属していない場合には、遠方端末と手元端末近くの計算機との間でブロードキャストパケットの送受信を行うことができず、遠方計算機は手元端末近くの機器やサービスを発見することが出来ないという課題があった。機器やサービス発見にマルチキャストを用いるプロトコルの場合でも、マルチキャストパケットのTTLが小さく設定されていたり、ネットワークがマルチキャストパケットの転送をサポートしていない場合が多いため、遠方計算機は手元端末近くの機器やサービスを発見することが出来ないという課題があった。このため、例えば、手元端末の近くに映像コンテンツを保持しているUPnP AVサーバがあっても、遠方計算機がこれを発見することができず、そのUPnP AVサーバ内の映像コンテンツを手元端末にて表示することができないという課題がある。
【０００８】
同様の課題は上述の特開2003-288536公報にも存在し、手元のカーナビゲーション端末の近くにある機器を、遠方の地図データサーバは発見できないため、その機器の提供するサービスを利用した情報を手元のカーナビゲーション端末に表示することができない。
【０００９】
また、手元端末近くのサービスを発見するために、手元端末と遠方計算機との間に例えばL2TPトンネルを設定し、遠方計算機を手元端末と同じサブネットに属するように模擬することも従来の技術で可能であるが、この場合、手元端末近くのサービスを遠方計算機が使用する際のデータ通信も、L2TPトンネルを通過する。このため、遠方計算機によるデータ通信のトンネル転送処理を手元端末が行わなければならないという課題が存在する。特にネットワークが高速化しデータ通信のデータ量が多い程この処理負荷は大きくなり、手元端末に具備すべきCPUパワーも増大するという課題が存在する。
【００１０】
これにより、アプリケーションの高度化により遠方計算機の行うデータ通信の量が増加すれば、ユーザが手元端末の処理能力のアップグレードを行わなければならず煩雑であるという課題が存在する。
【００１１】
また、サーバと遠方計算機との間にNAT（Network Address Translation）装置が存在すると、遠方計算機から遠方計算機がサーバにアクセスすることが不可能であるという課題が存在する。
【００１２】
この課題を解決するために、例えば、
特開2005-102316「宅内端末装置および通信システム」(根津一寛/松下電器産業株式会社)、
特開2005-130453「宅内端末装置および通信システム」(根津一寛/松下電器産業株式会社)、
特開2005-137018「宅内端末装置および通信システム」(根津一寛/松下電器産業株式会社)
がある。しかしながら、これらの方法ではサーバ自身のプログラムあるいは構成を変更する必要があり、開発コストがかかるという課題と、既に存在するサーバに適用できないという課題が存在する。
【００１３】
また、特開2003-108449「ネットワークに接続された仲介装置」(島 敏博/セイコーエプソン株式会社では、宅外ネットワークに仲介サーバを儲ける方式が存在する。しかしながら、この方式でも、これらの方法ではサーバ自身のプログラムあるいは構成を変更する必要があり、開発コストがかかるという課題と、既に存在するサーバに適用できないという課題が存在する。さらに、仲介サーバを新たに設ける必要があるため、コスト増となるという課題が存在する。
【００１４】
本発明は、本体装置（情報処理サーバ）が端末装置近くの機器やサービスを発見可能にすると同時に 情報処理サーバがパケット中継装置（例えばNAT）を介してサービスにアクセスできるようにした通信装置、通信システム、通信方法および通信プログラムを提供する。
【課題を解決するための手段】
【００１５】
本発明の一態様としての通信装置は、１つ以上のサービス提供サーバが存在するネットワーク上に接続される通信装置であって、前記ネットワーク上に存在するサービス提供サーバを発見するサービス発見手段と、発見した前記サービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記ネットワークにパケット中継装置を介して接続されるさらなるネットワーク上の情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部と、前記発見したサービス提供サーバが提供するサービスを識別するサービス識別情報を含むデータ部とを有する情報パケットを前記パケット中継装置に送信する送信手段と、を備える。
【００１６】
本発明の一態様としての通信システムは、１つ以上のサービス提供サーバが存在するネットワーク上に接続される通信装置と、前記ネットワークとパケット中継装置を介して接続されるさらなるネットワーク上に接続される情報処理サーバとを備えた通信システムであって、前記通信装置は、前記ネットワーク上に存在するサービス提供サーバを発見するサービス発見手段と、発見した前記サービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部と、前記発見したサービス提供サーバが提供するサービスを識別するサービス識別情報を含むデータ部とを有する情報パケットを前記パケット中継装置に送信する送信手段と、を有し、前記情報処理サーバは、前記通信装置から送信された前記情報パケットを、前記パケット中継装置を介して受信する受信手段と、前記サービス提供サーバを識別する識別情報のリストを提示する提示手段と、前記リストにおいて選択された識別情報をもつサービス提供サーバによるサービスの提供を要求する要求パケットを前記サービス提供サーバに送信して前記サービス提供サーバとの間で前記サービスに係わるデータ通信を行う、前記要求パケットはヘッダ部において、前記サービス提供サーバのサービス識別情報を運んできた情報パケットのソースアドレスおよびソースポート番号を宛先アドレスおよび宛先ポート番号として含み、該情報パケットの宛先アドレスおよび宛先ポート番号をソースアドレスおよびソースポート番号として含む、送信手段と、を有する。
【００１７】
本発明の一態様としての通信方法は、１つ以上のサービス提供サーバが存在するネットワーク上に接続される通信装置において実行する通信方法であって、前記ネットワーク上に存在するサービス提供サーバを発見し、発見した前記サービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記ネットワークにパケット中継装置を介して接続されるさらなるネットワーク上の情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部と、前記発見したサービス提供サーバが提供するサービスを識別するサービス識別情報を含むデータ部とを有する情報パケットを前記パケット中継装置に送信する、ことを特徴とする。
【００１８】
本発明の一態様としての通信プログラムは、１つ以上のサービス提供サーバが存在するネットワーク上に接続される通信装置において実行する通信プログラムであって、前記ネットワーク上に存在するサービス提供サーバを発見するステップと、発見した前記サービス提供サーバのアドレスと前記発見したサービス提供サーバが待ち受けるポート番号とをソースアドレスおよびソースポート番号として含み、前記ネットワークにパケット中継装置を介して接続されるさらなるネットワーク上の情報処理サーバのアドレスと前記情報処理サーバが待ち受けるポート番号とを宛先アドレスおよび宛先ポート番号として含むヘッダ部と、前記発見したサービス提供サーバが提供するサービスを識別するサービス識別情報を含むデータ部とを有する情報パケットを前記パケット中継装置に送信するステップと、を備えたことを特徴とする。
【発明の効果】
【００１９】
本発明により、情報処理サーバが端末装置近くの機器やサービスを発見可能でき かつ、パケット中継装置を介してサービスにアクセスできる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、本発明の実施の形態を説明する。
【００２１】
図１は、本発明の第１の実施の形態の典型的な構成を示す図である。
【００２２】
宅内ネットワーク（第１のネットワーク）１１と宅外ネットワーク（第２のネットワーク）１２がNAT装置（パケット中継装置）１３により接続されている。宅内ネットワーク１１にはファイルサーバ１４とマルチメディアサーバ１５とプリンタ１６とNAT（Network Address Translation）通過装置１７とが接続されており、宅外ネットワーク１２には計算機（情報処理サーバ）１８が接続されている。計算機１８はユーザにより操作される。ファイルサーバ１４とマルチメディアサーバ１５とプリンタ１６は例えばサービス提供サーバに相当する。
【００２３】
NAT装置１３は、宅内ネットワーク１１から受信したパケットのソースアドレスとソースポート番号を別の値に変換し、宅外ネットワーク１２へ送信する。このとき、
宅内ネットワーク１１からの受信パケットの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)と、宅外ネットワーク１２への送信パケットの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)を、NAT装置１３内部のNAT変換状態テーブルに記憶する。
【００２４】
図２にNAT変換状態テーブルの例を示す。
【００２５】
受信パケットの(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)の値を宅内ネットワーク側に記し、送信パケットのそれを宅外ネットワーク側に記している。図２では、一例として、宅内から
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(134.10.10.1,192.168.0.2,6.20000,10000)であるパケットを受信し、このパケットを
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(134.10.10.1,200.100.10.10,6.20000,10001)であるパケットに変換して、宅外ネットワーク１２へ送信した場合を示す。ここでパケットのソースアドレス200.100.10.10はＮＡＴ装置１３に割り当てられたアドレスであることが望ましい。
【００２６】
一方、NAT装置１３は、宅外ネットワーク１２からパケットを受信すると、そのパケットの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が、NAT変換状態テーブルにおける宅外ネットワーク側の値の
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
と一致するエントリを探し、もし一致するエントリがあれば、受信したパケットの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
を該エントリの宅内ネットワーク側の
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
の値に変換し、変換したパケットを宅内ネットワーク１１側に送信する。
【００２７】
NAT装置１３は、宅外ネットワーク１２からパケットを受信した時に、NAT変換状態テーブルに一致するエントリが無い場合には、その受信パケットを破棄する。
【００２８】
これにより、宅内ネットワーク１１に接続された機器から宅外ネットワーク１２に接続された機器へ通信を開始することは可能であるが、宅外ネットワーク１２に接続された機器から宅内ネットワーク１１に接続された機器へ通信の開始を行うことはできない。
【００２９】
また、NAT装置１３は、NAT変換状態テーブルのエントリに該当するパケットを一定時間受信しない場合には、このエントリを削除する。
【００３０】
ファイルサーバ１４は、NETBIOSを用いて自身の存在を宅内ネットワーク１１に広告している。後述のようにしてファイルサーバ１４の存在を発見した計算機１８は、CIFS(Common InternetFile System)を用いてファイルサーバ１４の提供するファイルにアクセスすることが可能となる。
【００３１】
マルチメディアサーバ１５は、UPnP(Universal Plug and Play)により、自身の存在を宅内ネットワーク１１に広告している。後述のようにしてマルチメディアサーバ１５を発見した計算機１８は、HTTPにより マルチメディアサーバ１５の提供するコンテンツ、例えば、動画ファイルにアクセスすることが可能となる。
【００３２】
プリンタ１６は、UPnPあるいは各社独自のプロトコルを用いて、自身の存在を宅内ネットワーク１１に広告している。後述のようにしてプリンタ１６を発見した計算機１８は、例えばHTTPにより印刷データをプリンタ１６に送ることができ、プリンタ１６を用いて所望のデータを印刷することが可能となる。
【００３３】
これら、ファイルサーバ１４あるいはマルチメディアサーバ１５あるいはプリンタ１６のようなサーバに共通することは、マルチキャストパケットあるいはブロードキャストパケットを用いて自身を広告する広告パケットを送信することである。この広告パケットは定期的に送信され、送信されたパケット内には以後の通信で使用するアドレスおよびポート番号、あるいはURI(Universal Resource Identifier)を含むことである。広告パケット内にこれらのデータを含まなくても、広告パケットのヘッダのソースアドレスを用いて、以後の通信を行うようにする場合もある。この場合は、送信ポート番号は予め決めておく。
【００３４】
また、ファイルサーバ１４やマルチメディアサーバ１５やプリンタ１６を、他の機器が能動的に探すために、探索パケットをマルチキャストあるいはブロードキャストする機能を備える機器も存在する。この機器（送信機器）は探索パケットを任意のタイミングで送信することができ、探索パケットを受信した受信機器は、そのパケットの探索対象が自身であると認識した場合には、その探索応答パケットを探索パケットの送信機器に対してユニキャストで送信する。
【００３５】
探索応答パケットは、マルチキャストやブロードキャストで送信することも可能である。探索応答パケット内に以後の通信で使用する使用するアドレスおよびポート番号、あるいはURI(Universal Resource Identifier)を含むことで、探索応答パケットを受信した受信機器はファイルサーバ１４へのアクセスあるいはマルチメディアサーバ１５へのアクセスあるいはプリンタ１６へのアクセスを行うことが可能となる。
【００３６】
NAT通過装置１７は、NETBIOSあるいはUPnPあるいはその他のプロトコルの広告パケットの受信を行うことにより、サービスを提供する機器を発見し広告パケット内のアドレスとポート番号を記憶する。
【００３７】
NAT通過装置１７は、予め記憶している宅外装置のアドレスおよびポート番号宛にオープンパケットを送信する。このときオープンパケットのソースアドレスとソースポート番号は、広告パケット内のアドレスおよびポート番号と同じ値とする。
【００３８】
NAT通過装置１７は、このオープンパケットを定期的に送信することにより、NAT装置１３におけるNAT変換状態テーブルからエントリが削除されないようにしてもよい。
【００３９】
宅外ネットワーク１２に配置された計算機１８は、オープンパケット（情報パケット）を受信することにより、宅内ネットワーク１１にサービス機器（サーバ）が存在することを知る。計算機１８は、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が、受信したオープンパケットの
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
であるパケットを送信することにより、所望のサーバへアクセスすることが可能となる。
【００４０】
[シーケンスの説明]
図３に、本実施形態の通信シーケンスの一例を示す。
【００４１】
NAT通過装置１７は、探索パケットとしてSSDP searchパケットを送信する（Ｓ１１）。
【００４２】
SSDP searchパケットの(宛先アドレス、宛先ポート番号、プロトコル番号)は、(239.255.255.250, 1900, 17)である。ソースアドレスはNAT通過装置１７のアドレスであり、ソースポート番号はNAT通過装置１７がその時々の状態により決める値である。
【００４３】
SSDP searchパケットは、UDPパケットとして送信される。
【００４４】
図４にUDPパケットのデータ部（データフィールド）の内容を記す。図４では、Manタグの"ssdp:discover"がsearchパケットであることを示し、STタグのupnp:rootdeviceがUPnP機器を探索していることを示す。
【００４５】
マルチメディアサーバ１５は、SSDP searchパケットを受信すると、SSDP search responseパケットをNAT通過装置１７宛に返信する（Ｓ１２）。
【００４６】
SSDP search responseパケットは、ＵＤＰパケットとして送信される。
【００４７】
図５にＵＤＰパケットのデータ部分の内容を示す。
【００４８】
図５では、LOCATIONタグの http://192.168.0.3:2869/avdesc.xmlが、Descriptionドキュメントを獲得するためのURLとなる。
【００４９】
NAT通過装置１７は、このURLに向けてHTTP GETを行う（Ｓ１３）。HTTP GETを受けたマルチメディアサーバ１５はDescriptionドキュメントを含むHTTP Responseを返答する（Ｓ１４）。
【００５０】
Descriptionドキュメントには、そのサーバの提供するサービスの種類と、そのサービスにアクセスするためのURIとが記されている。
【００５１】
図６にDescriptionドキュメントの例を示す。
【００５２】
<serviceType>タグの値からマルチメディアサーバ１５がContent Directory サービスを提供することが分かり、
<URLBase>タグの値と＜SCPDURL＞タグの値とから、http://192.168.0.3:2869/cds/cds.xmlにHTTP GETすることによりContent Directory  サービスに関するDescriptionドキュメントを取得できることがわかり、
<URLBase>タグの値と＜controlURL＞タグの値とから、http://192.168.0.3:2869/cds/controlに 制御データをHTTP Postすることにより、Content Directory サービスにアクセスすることができることがわかる。
【００５３】
NAT通過装置１７は、計算機１８宛に、例えば、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(134.10.10.1、192.168.0.3、6、10000、2869)
であるオープンパケットを送信する（Ｓ１５）。
【００５４】
ここで、
134.10.10.1は計算機１８のアドレス、
192.168.0.3はマルチメディアサーバ１５のアドレス
6はTCPを表すプロトコル番号
10000は予め定められている計算機１８のポート番号
2869はマルチメディアサーバ１５にアクセスするためのポート番号
である。
【００５５】
オープンパケットには、サービス種別と、NAT通過装置１７の認証情報と、Description情報とが記述されていることが望ましい。
【００５６】
サービス種別としては、発見したサービス機器がUPnP機器に関するものであることを示す識別子を含むことが望ましい。
【００５７】
認証情報としては、
オープンパケットのシーケンス番号と、
NAT通過装置１７の識別子と、
NAT通過装置１７のアドレスと、
シーケンス番号と、NAT通過装置１７の識別子と、NAT通過装置１７のアドレスと、Description情報とから得られるハッシュ値と、
を含むことが望ましい。
【００５８】
ハッシュ値の計算には予め定められた計算アルゴリズムと、予めNAT通過装置１７および計算機１８に共通に設定されている秘密情報とをさらに用いることが望ましい。
【００５９】
Description情報は、発見したサービスの内容をより詳細に記したものであり、UPnPの場合は、マルチメディアサーバ１５から受信したDescriptionドキュメントを記すことができる。
【００６０】
NAT装置１３は、オープンパケットを転送する際に、そのソースポートとソースアドレスの変換を行う。図２にその際のNAT変換状態テーブルの様子を記す。
【００６１】
図２において、２つ目のエントリがオープンパケットに対応するものであり、ソースアドレスがNAT装置１３の宅外ネットワーク１２側のアドレスである200.100.10.10に、ソースポートが10002に変換されたことを示す。
【００６２】
計算機１８はオープンパケットを受信すると、オープンパケットに含まれる認証情報を確認し、このオープンパケットが正しいNAT通過装置１７からのパケットであることを確認する。
【００６３】
さらに、オープンパケットに含まれる、サービス種別とDescription情報とから、オープンパケットの通知するサービスがUPnPのContent Directory サービスであることと、このサービスにアクセスするためのURLとを認識する。
【００６４】
さらに、オープンパケットのIPヘッダとTCPヘッダとから、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(200.100.10.10、134.10.10.1、6、10002、10000)
のパケットを送信すれば、そのパケットがNAT装置１３を経由してマルチメディアサーバ１５へ到達することを知る。
【００６５】
計算機１８は、例えばユーザからマウスあるいはキーボードにより、コンテンツ閲覧要求を受信すると、 UPnPのContent Directory サービス仕様に従った ブラウズ要求を乗せたHTTP POSTメッセージ（要求パケット）を
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
を(200.100.10.10、134.10.10.1、6、10002、10000)として送信する（Ｓ１６）。
【００６６】
図７にブラウズ要求の例を示す。
【００６７】
この時のHTTP POST メッセージ内の POST URLには、http://./cds/controlあるいは
http://192.168.0.3:2869/cds/control
を記述することが望ましい。
【００６８】
このHTTP POSTメッセージは、NAT装置１３を通過する際に、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(192.168.0.3、134.10.10.1、6、2869、10000)
に変換されて、マルチメディアサーバ１５に届く。
【００６９】
HTTP POSTメッセージを受信したマルチメディアサーバ１５は、受信メッセージの応答として、保持しているコンテンツの情報とそのコンテンツにアクセスするためのURLとを含んだブラウズ応答メッセージを、計算機１８に向けて送信する（Ｓ１７）。
【００７０】
図８にブラウズ応答の例を示す。図８では、
マルチメディアサーバ１５が、タイトルbirthday.mpgとsummer.mpgという二つのコンテンツを提供しており、
各々、http://192.168.0.3:2689/01_video.cgi と
http://192.168.0.3:2689/03_video.cgi 
でアクセスできることを示す。
【００７１】
計算機１８は、ブラウズ応答メッセージを受信すると、これを記憶し、これに含まれるコンテンツタイトルを、画面に表示する。例えばユーザよりキーボードあるいはマウスでコンテンツの再生要求を受信した場合には、コンテンツのアクセスURLに対してHTTP GETメッセージ（要求パケット）を送信する（Ｓ１８）。
【００７２】
ただし、このとき
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
を(200.100.10.10、134.10.10.1、6、10002、10000)とする。
【００７３】
この時のHTTP GET メッセージ内の GET URLには、ブラウズ応答で受信したURL
を記述することが望ましい。
【００７４】
このHTTP GETメッセージは、NAT装置１３を通過する際に、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(192.168.0.3、134.10.10.1、6、2869、10000)
に変換されて、マルチメディアサーバ１５に届く。
【００７５】
マルチメディアサーバ１５は、このHTTP GETメッセージを受信すると、そのGET URLに対応するコンテンツ、例えば動画データを、HTTP GET応答として計算機に向け送信する（Ｓ１９）。
【００７６】
このようにして、NAT通過装置１７によるオープンパケットにより、NAT装置１３におけるNAT変換状態テーブルにエントリを作成し、このエントリに対応するヘッダを持つパケットを計算機１８が送信することにより、計算機１８は、NAT装置１３を介して、マルチメディアサーバ１５と通信を行うことができる。よって、マルチメディアサーバ１５の提供するサービスを、NAT装置１３の宅外ネットワーク側に配置した計算機で利用することが可能となる。
【００７７】
[パーシステントコネクションの利用]
本実施形態では、計算機１８とマルチメディアサーバ１５との間の通信は、HTTPの場合には、パーシステントコネクションと呼ばれる HTTPの要求応答の度にTCPコネクションを切断しない 機能を利用することが望ましい。これにより、例えばＳ１３〜Ｓ１９の手続きを１度のTCPコネクションの確立で行うことができる。
【００７８】
[オープンパケットを２つに分ける]
また、本実施形態では、オープンパケットは、NAT変換状態テーブルにエントリを作成するという働きと、宅内ネットワーク１１で提供されているサービスに関する情報を計算機１８につたえるという働きとを持っている。この二つの働きを別々のパケットに分けることも可能である。これにより、NAT変換状態テーブルにエントリを維持するために定期的に送信するパケットのサイズを小さくでき、宅内ネットワーク１１および宅外ネットワーク１２におけるトラフィックを低減できるメリットがある。以下より詳細に説明する。
【００７９】
NAT通過装置１７は、Descriptionドキュメント取得時に、サービス通知パケット（第２のパケット）を送信しても良い。
【００８０】
サービス通知パケットには、サービス種別と、NAT通過装置１７の認証情報と、Description情報とが記述されていることが望ましい。
【００８１】
サービス種別としては、発見したサービス機器がUPnP機器に関するものであることを示す識別子を含むことが望ましい。
【００８２】
認証情報としては、
オープンパケットのシーケンス番号と、
NAT通過装置の識別子と、
NAT通過装置のアドレスと、
シーケンス番号と、NAT通過装置の識別子と、NAT通過装置のアドレスと、Description情報とから得られるハッシュ値と、
を含むことが望ましい。ハッシュ値の計算機には予め定められた計算アルゴリズムと、予めNAT通過装置１７と計算機１８に設定された秘密情報とをさらに用いることが望ましい。
【００８３】
Description情報は、発見したサービスの内容をより詳細に記したものであり、UPnPの場合は、マルチメディアサーバ１５から受信したDescriptionドキュメントを記すことができる。
【００８４】
また、NAT通過装置１７は、NAT変換状態テーブルにエントリを作成するために、NAT変換状態エントリ生成パケット（第１のパケット）を送信する。NAT変換状態エントリ生成パケットは、そのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(134.10.10.1、192.168.0.3、6、10000、2869)であるパケットを送信する。このパケットは定期的に送信しても良い。
【００８５】
NAT変換状態エントリ生成パケットのデータ部分は、そのヘッダ部（ヘッダフィールド）の値を記したフロー情報を記すことが望ましい。例えば、フロー情報として
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(134.10.10.1、192.168.0.3、6、10000、2869)を記す。
【００８６】
また、NAT変換状態エントリ生成パケットは、認証情報を含むことが望ましい。さらにＮＡＴ変換状態エントリ生成パケットは、オープンパケットとの対応をとるための情報、例えばオープンパケットに含まれるDescription情報内のＵＤＮを含むことが望ましい。
【００８７】
[NAT通過装置が計算機と別コネクションで通信]
NAT通過装置１７は、起動時に、予め記憶していた計算機１８のアドレスとポート番号に対して制御用TCPコネクションを確立し、計算機１８から通信したいアドレスとポート番号を受信した場合に、NAT変換状態エントリ生成パケットを送信しても良い。このために、ＮＡＴ通過装置は計算機18にあらかじめサービス通知パケットを送信しておくことが望ましい。
【００８８】
より詳細には、計算機１８は、制御用TCPコネクションを介して、NAT変換状態エントリ生成要求パケットをNAT通過装置１７に送信する。NAT変換状態エントリ生成要求パケットにおけるデータ部には、計算機１８が通信したい
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が記されている。例えば、
(192.168.0.3、134.10.10.1、6、2869、10000)
が記される。
【００８９】
NAT変換状態エントリ生成要求パケットを受信したNAT通過装置１７は、NAT変換状態エントリ生成パケット（オープンパケット）を計算機１８宛に送信する。そのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は
(134.10.10.1、192.168.0.3、6、10000、2869)
である。また、NAT変換状態エントリ生成パケットには、ヘッダ以外のデータフィールド中に、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が
(134.10.10.1、192.168.0.3、6、10000、2869)
であることを示すヘッダ通知情報を持つことが望ましい。
【００９０】
また、NAT変換状態エントリ生成パケットは、定期的に送信しても良い。
【００９１】
NAT変換状態エントリ生成パケットの定期的な送信は、計算機１８からNAT変換状態テーブルからエントリの削除を要求するNAT変換状態エントリ削除要求パケット（停止要求パケット）を受信するまで続けることが望ましい。
【００９２】
NAT変換状態エントリ削除要求パケットにおけるデータ部には、その計算機１８が通信不要となった
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が記される。例えば、
(192.168.0.3、134.10.10.1、6、2869、10000)
が記される。
【００９３】
また、NAT通過装置１７は、制御用TCPコネクションを通して、サービス通知パケットを送信しても良い。望ましくは、NAT通過装置１７がDescriptionドキュメントを、マルチメディアサーバ１５から受信した際にサービス通知パケットの送信を行う。
【００９４】
[サービス発見は何でも良い]
本実施形態では、サービス発見のプロトコルとしてUPnPを用いた場合を記述しているが、他のサービス発見プロトコル、例えば、NETBIOSやSLP(ServiceLoacation Protocol)を用いても本実施形態の効果を損なうものではない。
【００９５】
[計算機を別のサーバから見つける]
本実施形態では、NAT通過装置が、計算機のアドレスおよびポートとして予め設定されたものを用いる場合を記述しているが、NAT通過装置は、これとは異なる方法で計算機を発見する手段を備えることも可能である。例えば、宅外ネットワーク１２にディレクトリサーバを用意し、宅内ネットワーク１１にアクセスしたい計算機はそのディレクトリサーバに登録を行い、NAT通過装置はディレクトリサーバにアクセスすることにより計算機のアドレスおよびポートを動的に発見することも可能である。計算機のディレクトリサーバへの登録には、例えばSIPあるいはXML/SOAPあるいはダイナミックDNS等様々なプロトコルを使用可能である。
【００９６】
図９はNAT通過装置１７の構成例を示す図である。
【００９７】
NAT通過装置１７は、パケット送受信部２１とサービス発見部２２と、サービス通知バケット生成部２３と、NAT変換状態エントリ生成パケット生成部２４とを備える。
【００９８】
パケット送受信部２１はネットワークインタフェースを介してパケットの送受信を行う。
【００９９】
サービス発見部２２は、パケット送受信部２１を介してサービス発見のプロトコルを処理する。例えば、サービス発見にUPnPを用いる場合には、SSDP searchパケットを、パケット送受信部２１を介して送信する。
【０１００】
サービス発見部２２は、パケット送受信部２１を介して SSDP search responseパケットあるいは SSDP aliveパケットを受信すると、これに含まれるLOCATION:タグに記述されているURLへHTTP GET要求を送信する。
【０１０１】
サービス発見部２２は、パケット送受信部２１を介して HTTP GET応答を受信すると、これに含まれているDescriptionドキュメントを抽出し、その値をサービス通知パケット生成部２３に送信する。
【０１０２】
ここで、サービス発見部２２は、SSDP aliveパケットあるいはSSDP search responseパケットを受信する度に、LOCATIONタグに含まれているURLにアクセスしているが、そうではなく、USNタグに記されているuuidを記憶し、これによりアクセス済み機器の場合にはLOCATIONタグに含まれているURLにアクセスしないようにすることも可能である。
【０１０３】
サービス通知パケット生成部２３は、サービス発見部２２からDescriptionドキュメントを受信すると、サービス通知パケットを、予め設定されている宅外ネットワーク１２における計算機１８のアドレスおよびポート番号宛に送信する。このサービス通知パケットは、
予め定められている認証情報と、
Description情報としてサービス発見部２２から受け取ったDescriptionドキュメントと、
通知するサービスがUPnPであることを示すサービス種別と、
を含む。
【０１０４】
サービス通知パケット生成部２３は、計算機１８からNAT変換状態エントリ生成要求パケットを受け取ると、このパケットに含まれているフロー情報を抽出し、抽出したフロー情報をNAT変換状態エントリ生成パケット生成部２４にNATエントリ生成要求として渡す。
【０１０５】
フロー情報には
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が記されており、例えば、
(192.168.0.3、134.10.10.1、6、2869、10000)
が記される。
【０１０６】
また、サービス通知パケット生成部２３は、計算機１８からNAT変換状態エントリ削除要求パケットを受信すると、これに含まれているフロー情報を抽出し、抽出したフロー情報をNAT変換状態エントリ生成パケット生成部２４にNATエントリ削除要求として渡す。
【０１０７】
フロー情報には
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が記されており、例えば、
(192.168.0.3、134.10.10.1、6、2869、10000)
が記される。
【０１０８】
NAT変換状態エントリ生成パケット生成部２４は、サービス通知パケット生成部２３からNATエントリ生成要求を受け取ると、その要求に含まれるフロー情報に対応するNAT変換状態エントリ生成パケットの定期的な送信を開始する。
【０１０９】
NAT変換状態エントリ生成パケットは、ヘッダ部における
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
として、フロー情報に記されている
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
をもち、データ部にNAT通過装置の認証情報と、フロー情報とをもつ。
【０１１０】
NAT通過装置の認証情報は、
NAT変換状態エントリ生成パケットのシーケンス番号と、
NAT通過装置の識別子と、
NAT通過装置のアドレスと、
シーケンス番号と、NAT通過装置の識別子と、NAT通過装置のアドレスと、フロー情報とから得られるハッシュ値と、
を含むことが望ましい。
【０１１１】
また、NAT変換状態エントリ生成パケット生成部２４は、サービス通知パケット生成部２３からNATエントリ削除要求を受け取ると、その要求に含まれるフロー情報に対応する上記NAT変換状態エントリ生成パケットの送信を停止する。
【０１１２】
図１０は、宅外ネットワーク１２に配置された計算機１８の構成を示す図である。
【０１１３】
計算機１８は、パケット送受信部３１と、サービス処理部３２と、サービス通知パケット処理部３３と、NAT変換状態エントリ生成パケット処理部３４とを備える。
【０１１４】
パケット送受信部３１はネットワークインタフェースを介してパケットの送受信を行う。
【０１１５】
サービス通知パケット処理部３３は、パケット送受信部３１を介して、NAT通過装置１７からサービス通知パケットを受信したら、このサービス通知パケットに含まれている認証情報を確認することが望ましい。認証情報の確認は、認証情報に含まれるシーケンス番号が、認証情報に含まれる識別子を持つNAT通過装置１７からこれまで受信したシーケンス番号よりも大きいことを確認することが望ましい。さらに、
シーケンス番号とNAT通過装置１７の識別子とNAT通過装置１７のアドレスとDescription情報とからハッシュ値を求め、求めたハッシュ値が認証情報に含まれるハッシュ値と等しいことを確認することが望ましい。
【０１１６】
サービス通知パケット処理部３３は、認証情報の確認に失敗した場合には、受信したサービス通知パケットを破棄する。
【０１１７】
サービス通知パケット処理部３３は、認証情報の確認に成功した場合には、そのサービス通知パケットに含まれるDescription情報を、サービス処理部３２に渡す。
【０１１８】
また、サービス通知パケット処理部３３は、サービス処理部３２からNATエントリ生成要求を受信すると、これに含まれるフロー情報を乗せたNAT変換状態エントリ生成要求パケットを、パケット送受信部３１を介してNAT通過装置１７に送信する。
【０１１９】
このNAT変換状態エントリ生成要求パケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は、NAT通過装置１７から受信したサービス通知パケットのヘッダの
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
である。
【０１２０】
また、サービス通知パケット処理部３３は、サービス処理部３２からNATエントリ削除要求を受信すると、これに含まれるフロー情報を乗せたNAT変換状態エントリ削除パケットを、パケット送受信部３１を介して送信する。
【０１２１】
このNAT変換状態エントリ削除パケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は、NAT通過装置１７から受信したサービス通知パケットのヘッダの
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
である。
【０１２２】
NAT変換状態エントリ生成パケット処理部３４は、NAT通過装置１７からのNAT変換状態エントリ生成パケットを受信すると、これに含まれるフロー情報とNAT変換状態エントリ生成パケットのヘッダ情報とをサービス処理部３２に通知する。この際、NAT変換状態エントリ生成パケット処理部３４は、NAT変換状態エントリ生成パケットの認証情報の確認を行うことが望ましい。
【０１２３】
認証情報の確認は、認証情報に含まれるシーケンス番号が、認証情報に含まれる識別子のNAT通過装置からこれまで受信したシーケンス番号よりも大きいことを確認し、さらに、シーケンス番号とNAT通過装置の識別子とNAT通過装置のアドレスとフロー情報とからハッシュ値を求め、これが認証情報に含まれるハッシュ値と等しいことを確認することが望ましい。
【０１２４】
NAT変換状態エントリ生成パケット処理部３４は、認証情報の確認に失敗した場合には、受信したNAT変換状態エントリ生成パケットを破棄し、サービス処理部３２へフロー情報およびヘッダ情報の通知を行わないことが望ましい。
【０１２５】
サービス処理部３２は、サービス通知パケット処理部３３からDescription情報を受け取ると、これに含まれるserviceidに示されるサービスが、自身が処理すべきサービスであると認識した場合には、SCPDURLとURLBASEを基にDescriptionドキュメントの獲得手順を行う。
【０１２６】
Descriptionドキュメントの獲得手順は、まずDescriptionドキュメントを取得するためのURLを求め、さらにNATエントリ生成要求をサービス通知パケット処理部３３へ渡す。
【０１２７】
次に、サービス処理部３２は、NAT変換状態エントリ生成パケット処理部３４からフロー情報とヘッダ情報と受け取った時に、そのフロー情報がDescriptionドキュメントを取得するために送信するパケットの属するフローである場合には、Descriptionドキュメントを取得するためのURLに向けて、 HTTP GET要求を送信する。ただし、このときのIPパケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
には、受信したヘッダ情報の
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
とする。
【０１２８】
[Descriptionドキュメントの獲得手順の具体例]
例えば、サービス通知パケット処理部３３から図６のDescription情報をサービス処理部３２が受け取った場合、Descriptionドキュメントを獲得するためのURLは
http://192.168.0.3:2689/cds/cs.xmlであり、
NATエントリ生成要求に含まれるフロー情報として
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(192.168.0.3, 計算機のアドレス, 6, 2689,10000,)である。
【０１２９】
ここで10000はサービス処理部３２がDescriptionドキュメントを獲得する際に使用するポート番号である。
【０１３０】
サービス処理部３２は、Descriptionドキュメントを獲得すると、自身のディスプレイに発見したサービス機器を示すアイコンを表示する。図１１はその表示画面の例である。サービス処理部３２は例えば提示手段を含む。
【０１３１】
ユーザがキーボードあるいはマウスを用いてアイコンを選択し、サービス処理部３２は、ユーザからの選択信号を受信すると、例えばブラウズ要求を送信する。
【０１３２】
ただし、このときのIPパケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
には、受信したヘッダ情報の
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
が格納される。
【０１３３】
サービス処理部３２は、このブラウズ応答が帰ってくるとそれに含まれるコンテンツタイトルのリストを自身のディスプレイに表示することが望ましい。例えば、図８のブラウズ応答を受信した場合には、ディスプレイに birthday とsummerという文字列を含むアイコンを表示する。
【０１３４】
ユーザによりキーボードあるいはマウスにてアイコンが選択され、選択信号をサービス処理部３２が受信した場合には、ブラウズ応答の<res>タグに記されるURLへHTTP GET要求を送信する。例えば、そのHTTPヘッダには、
GET /01_video.cgi
HOST: 192.168.0.3:2689
という行を含むことが望ましい。また、パケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
には、受信したヘッダ情報の
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
が格納される。
【０１３５】
この応答として、例えばサービス処理部３２は動画データおよび音楽データを受信するので、これらのデータを計算機１８が備えるディスプレイおよびスピーカに出力する。
【０１３６】
このように、宅外ネットワーク１２に配置した計算機１８と、NAT通過装置１７とが連係動作することにより、計算機１８はNAT装置１３を介して宅内ネットワーク１１に置かれたサービス機器のサービスを利用することが可能となる。
【０１３７】
また、宅内ネットワーク１１と宅外ネットワーク１２は、NAT装置で接続された2つのネットワークという意味であり、例えば、これらのネットワーク１１、１２が企業内ネットワークとインターネットという二つのネットワークであっても、本実施形態の効果を減じるものではない。
【０１３８】
また、本実施形態において、NAT通過装置１７は、宅内ネットワーク１１から開始された通信に関しては、宅外ネットワーク１２からのパケットを通すが、そうでない場合には宅外ネットワーク１２からのパケットは通過させない機能を有しており、このような機能を有する装置であれば、例えば、ファイヤウオール装置のように、パケットのアドレスを書き換えない装置を用いてもよい。
【０１３９】
図１２は、本発明の第２の実施の形態の典型的な構成を示す図である。
【０１４０】
宅内ネットワーク４１と宅外ネットワーク４２とがNAT装置４３により接続されており、宅内ネットワーク４１にファイルサーバ４４とマルチメディアサーバ４５とプリンタ４６とディスプレイ端末（NAT通過装置）４７とが接続されており、宅外ネットワーク４２に本体装置（情報処理サーバ）４８とＳＩＰサーバ（情報管理サーバ）４９が接続されている。ディスプレイ端末４７はユーザによって操作される。
【０１４１】
NAT装置４３の動作、ファイルサーバ４４の動作、マルチメディアサーバ４５の動作、プリンタ４６の動作、サービス発見の動作は、第１の実施の形態と同じであるため詳細な説明を省略する。
【０１４２】
ディスプレイ端末４７は、例えば、起動時に予め設定されているアドレスとポート番号宛に本体装置４８と接続する。
【０１４３】
ディスプレイ端末４７は、本体装置４８から出力データを受信する。例えば画面信号と音声信号とを例えばRTPあるいはHTTPによりMPEG2ストリームとして受信する。ディスプレイ端末４７は、出力データ（例えばMPEG2ストリーム）に含まれる画像データを自身の画面に表示し、またこの出力データに含まれる音声データを自身のスピーカから出力する。
【０１４４】
また、ディスプレイ端末４７は、キーボードあるいはマウスあるいはマイクから入力された入力データを本体装置４８へ送信する。本体装置４８は、受信した入力データを処理し、それに対応した出力データをディスプレイ端末４７に送信する。
【０１４５】
ディスプレイ端末４７は、NETBIOSあるいはUPnPあるいはその他のプロトコルの広告パケットを受信することにより、サービスを提供する機器を発見し、広告パケット内のアドレスとポート番号とを記憶する。
【０１４６】
ディスプレイ端末４７は、予め記憶している本体装置４８のアドレスとポート番号宛にオープンパケットを送信する。このときオープンパケットのソースアドレスとソースポート番号は、広告パケット内のアドレスおよびポート番号と同じ値とする。ディスプレイ端末４７は、このオープンパケットを定期的に送信することにより、NAT装置４３におけるNAT変換状態テーブルからエントリが削除されないようにしてもよい。
【０１４７】
宅外ネットワーク４２に配置された本体装置４８は、オープンパケットの受信により、宅内ネットワーク４１にサービス機器が存在することを知る。
【０１４８】
本体装置４８は、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が、受信したオープンパケットの
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
であるパケットを送信することにより、所望のサーバへアクセスすることが可能である。
【０１４９】
図１３は、本実施形態の通信シーケンスの一例を示す。
【０１５０】
ディスプレイ端末４７は、本体装置４８の予め定められたアドレスとポート番号宛に、接続要求を送信する（Ｓ３１）。接続要求には、認証情報と操作種別とが含まれる。
【０１５１】
操作種別にはこのパケットが接続要求である旨を意味する値が記される。
【０１５２】
認証情報には、
接続要求のシーケンス番号と、
ディスプレイ端末の識別子と、
ディスプレイ端末のアドレスと、
ハッシュ値と、
が含まれることが望ましい。ハッシュ値の計算には
予め定められた計算アルゴリズムと、
予めディスプレイ端末と計算機とに共通に設定されている秘密情報と、
接続要求内のシーケンス番号と、
ディスプレイ端末の識別子と、
ディスプレイ端末のアドレスと、
を用いることが望ましい。
【０１５３】
本体装置４８は、接続要求を受信すると、接続要求に含まれる認証情報を確認し、認証情報が正しい場合には、接続応答を送信する（Ｓ３２）。接続応答は、操作種別を含み、接続を許可する旨の値が記される。また、本体装置４８は、認証情報を不正と判断した場合は、受信した接続要求を破棄し、接続要求がTCPにて送信されている場合には、該TCPコネクションを切断することが望ましい。
【０１５４】
認証情報の確認には、予め定められた計算アルゴリズムと、予めディスプレイ端末との間で共有する秘密情報と、接続要求内のシーケンス番号と、ディスプレイ端末の識別子と、ディスプレイ端末のアドレスとを基に計算したハッシュ値が、接続要求内のハッシュ値と等しいことを確認することが望ましい。
【０１５５】
本体装置４８は、認証情報が正しい場合には、該ディスプレイ端末４７のための計算機状態（例えばこの計算機用にあらかじめ用意した初期状態）を自身が備える記憶部からロードし、その状態に対応する画面情報および音声情報を出力データとして送信する（Ｓ３３）。この出力データの送信は、接続要求と同じTCPコネクションを用いて送信することが望ましい。
【０１５６】
ディスプレイ端末４７は、接続応答を受信すると、以後、受信した出力データの表示を行うとともに、ユーザから入力された入力データの送信を行う（Ｓ３４）。
【０１５７】
Ｓ３５〜Ｓ３９は、図３のＳ１１〜Ｓ１５と同じであるため詳細な説明を省略する。
【０１５８】
本体装置４８は、Ｓ３９において受信したオープンパケットに含まれる認証情報を確認する。
【０１５９】
さらに、本体装置４８は、オープンパケットに含まれるサービス種別とDescription情報とから、オープンパケットの通知するサービスがUPnPのContent Directory サービスであることと、このサービスにアクセスするためのURLとを認識する。
【０１６０】
さらに、本体装置４８は、オープンパケットのIPヘッダとTCPヘッダとから、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(200.100.10.10、134.10.10.1、6、10002、10000)
のパケットを送信すれば、そのパケットがNAT装置４３を経由してマルチメディアサーバ４５へ到達することを知る。
【０１６１】
本体装置４８は、オープンパケット内のDescription情報からUPnPのContent Directory サービスを知り、Content Directory サービスの出現を検知した画面データを含む出力データをディスプレイ端末４７に送信する（Ｓ４０）。
【０１６２】
ディスプレイ端末４７は、この出力データに含まれる画像データを自身のディスプレイに表示する。図１１にこの表示例を示す。図１１では、UPnPのContent Directory サービスを提供している機器として、"ひまわり"、"さくら"、"たけ"が発見されたことが示され、プリンタサービスを提供している機器として"Jupiter"が発見されたことが示される。
【０１６３】
ディスプレイ端末４７は、ユーザからキーボードあるいはマウスあるいはディスプレイへのタッチにより画面上のアイコンが選択されると、選択イベントを乗せた入力データ（サービス開始パケット）を本体装置４８へ送信する（Ｓ４１）。
【０１６４】
選択イベントを乗せた入力データを本体装置４８が受信すると、本体装置４８は、UPnPのContent Directory サービス仕様に従った ブラウズ要求を乗せたHTTP POSTメッセージ（要求パケット）を
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
を(200.100.10.10、134.10.10.1、6、10002、10000)
として送信する（Ｓ４２）。図７にブラウズ要求の例を示す。
【０１６５】
この時のHTTP POST メッセージ内の POST URLとして、http://./cds/controlあるいは
http://192.168.0.3:2869/cds/control
を記述することが望ましい。
【０１６６】
このHTTP POSTメッセージは、NAT装置４３を通過する際に、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(192.168.0.3、134.10.10.1、6、2869、10000)
に変換されて、マルチメディアサーバ４５に届く。
【０１６７】
HTTP POSTメッセージを受信したマルチメディアサーバ４５は、受信メッセージの応答として、保持しているコンテンツと、そのコンテンツにアクセスするためのURLとを含んだブラウズ応答メッセージを、本体装置４８に向けて送信する（Ｓ４３）。
【０１６８】
図８にブラウズ応答の例を示す。図８では、
タイトルbirthday.mpgとsummer.mpgという二つののコンテンツが提供されており、
各々、http://192.168.0.3:2689/01_video.cgi と
http://192.168.0.3:2689/03_video.cgi 
でアクセスできることが示される。
【０１６９】
本体装置４８は、ブラウズ応答メッセージを受信すると、これを記憶し、これに含まれるコンテンツタイトルの画面表示データを出力データとしてディスプレイ端末４７に送信する（Ｓ４４）。
【０１７０】
ディスプレイ端末４７は、受信した出力データを画面に表示する。この出力画面例を、図１４に示す。図１４では、BirthdayとSummerの2つのマルチメディアデータがマルチメディアサーバ４５上に存在することが示される。
【０１７１】
例えばユーザよりキーボードあるいはマウスあるいはタッチパネルでマルチメディアデータが選択されたイベント（サービス要求パケット）をディスプレイ端末４７が受け取ると、ディスプレイ端末４７はこれを入力データとして本体装置４８へ送信する。
【０１７２】
本体装置４８は、ディスプレイ端末４７から入力データを受信すると、選択されたコンテンツのアクセスURLに対してHTTP GETメッセージ（要求パケット）を送信する（Ｓ４６）。
【０１７３】
ただし、このとき本体装置４８は、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(200.100.10.10、134.10.10.1、6、10002、10000)のパケットを送信する。
【０１７４】
この時のHTTP GET メッセージ内の GET URLには、ブラウズ応答で受信したURL
を記述することが望ましい。
【０１７５】
このHTTP GETメッセージは、NAT装置４３を通過する際に、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(192.168.0.3、134.10.10.1、6、2869、10000)
に変換されて、マルチメディアサーバ４５に届く。
【０１７６】
マルチメディアサーバ４５は、このHTTP GETメッセージを受信すると、そのGET URLに対応するコンテンツ、例えば動画データを、HTTP GET応答として本体装置４８に向け送信する（Ｓ４７）。
【０１７７】
このようにして、ディスプレイ端末４７によるオープンパケットの送信により、NAT装置４３におけるNAT変換状態テーブルにエントリを作成し、このエントリに対応するヘッダを持つパケットを本体装置４８が送信することにより、本体装置４８は、NAT装置４３を介して、マルチメディアサーバ４５と通信を行うことができる。これによりマルチメディアサーバ４５の提供するサービスを、宅外ネットワーク４２に配置した本体装置４８で利用することが可能となる。
【０１７８】
Ｓ４７において本体装置４８がマルチメディアサーバ４５からマルチメディアコンテンツのデータを受信すると、これを復号化し、その復号化したデータを出力データとして、ディスプレイ端末４７へ送信する（Ｓ４８）。
【０１７９】
ディスプレイ端末４７はこの出力データに含まれる画像データと音声データを、そのディスプレイあるいはスピーカに出力する。
【０１８０】
このように、本体装置とディスプレイ端末とが連係動作するシステムにおいて、ディスプレイ端末により発見したサービスをディスプレイ端末が本体装置を介して使用することが可能となる。
【０１８１】
[パーシステントコネクションの利用]
本実施形態では、本体装置４８とマルチメディアサーバ４５との間の通信は、HTTPの場合には、パーシステントコネクションと呼ばれる、HTTPの要求応答の度にTCPコネクションを切断しない機能を利用することが望ましい。
【０１８２】
[オープンパケットを２つに分ける]
本実施形態では、オープンパケットは、NAT変換状態テーブルにエントリを作成するという働きと、宅内ネットワークで提供されているサービスに関する情報を本体装置４８につたえるという働きを持っている。この二つの働きを別々のパケット（サービス通知パケットおよびNAT変換状態生成エントリパケット）に分けることも可能である。より詳細には以下の通りである。
【０１８３】
ディスプレイ端末４７は、Descriptionドキュメントを取得した時に、サービス通知パケットを送信しても良い。サービス通知パケットには、
サービス種別と、
ディスプレイ端末の認証情報と、
Description情報と、
が記述されていることが望ましい。
【０１８４】
サービス種別としては、発見したサービス機器がUPnP機器に関するものであることを示す識別子を含むことが望ましい。
【０１８５】
認証情報としては、
オープンパケットのシーケンス番号と、
ディスプレイ端末の識別子と、
ディスプレイ端末のアドレスと、
シーケンス番号とディスプレイ端末の識別子とディスプレイ端末のアドレスとDescription情報とから得られるハッシュ値と、
を含むことが望ましい。ハッシュ値の計算には、予め定められた計算アルゴリズムと、予めディスプレイ端末と本体装置に共通に設定された秘密情報とを用いることが望ましい。
【０１８６】
Description情報は、発見したサービスの内容をより詳細に記したものであり、UPnPの場合は、マルチメディアサーバから受信したDescriptionドキュメントを記すことができる。
【０１８７】
また、ディスプレイ端末４７は、NAT変換状態テーブルにエントリを作成するために、NAT変換状態エントリ生成パケットを送信する。NAT変換状態エントリ生成パケットにおけるヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は(134.10.10.1、192.168.0.3、6、10000、2869)とする。
【０１８８】
このパケットは定期的に送信しても良い。
【０１８９】
NAT変換状態エントリ生成パケットのデータ部分には、該パケットのヘッダ部の値を記したフロー情報を記すことが望ましい。例えば、フロー情報として
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が(134.10.10.1、192.168.0.3、6、10000、2869)であることを記す。
【０１９０】
NAT変換状態エントリ生成パケットは、認証情報を含むことが望ましい。さらにＮＡＴ変換状態エントリ生成パケットは、オープンパケットとの対応をとるための情報、例えばオープンパケットに含まれるDescription情報内のＵＤＮを含むことが望ましい。
【０１９１】
[ディスプレイ端末が本体装置と別コネクションで通信]
ディスプレイ端末４７は、起動時に、予め記憶していた本体装置４８のアドレスとポート番号に対して制御用TCPコネクションを確立し、本体装置４８から通信したいアドレスとポート番号を受信した場合に、NAT変換状態エントリ生成パケットを送信しても良い。
【０１９２】
本体装置４８は、制御用TCPコネクションを介して、NAT変換状態エントリ生成要求パケットを送信する。NAT変換状態エントリ生成要求パケットは、本体装置４８が通信したい
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が記されている。例えば、
(192.168.0.3、134.10.10.1、6、2869、10000)
が記される。
【０１９３】
NAT変換状態エントリ生成要求パケットを受信したディスプレイ端末４７は、NAT変換状態エントリ生成パケットを本体装置４８に送信する。そのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は
(134.10.10.1、192.168.0.3、6、10000、2869)
である、また、NAT変換状態エントリ生成パケットは、データ部中に、
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が
(134.10.10.1、192.168.0.3、6、10000、2869)
であることを示すヘッダ通知情報を持つことが望ましい。
【０１９４】
また、NAT変換状態エントリ生成パケットは、定期的に送信しても良い。
【０１９５】
NAT変換状態エントリ生成パケットの定期的な送信は、本体装置４８からNAT変換状態エントリ削除要求パケットを受信するまで続けることが望ましい。
【０１９６】
NAT変換状態エントリ削除要求パケットは、その本体装置４８が通信不要となった
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が記されている。例えば、
(192.168.0.3、134.10.10.1、6、2869、10000)
が記される。
【０１９７】
また、ディスプレイ端末４７は、制御用TCPコネクションを通して、サービス通知パケットを送信しても良い。望ましくは、ディスプレイ端末４７がDescriptionドキュメントをマルチメディアサーバ４５から受信した際に、ディスプレイ端末４７はサービス通知パケットの送信を行う。
【０１９８】
[サービス発見は何でも良い]
本実施形態では、サービス発見のプロトコルとしてUPnPを用いた場合を記述しているが、他のサービス発見プロトコル、例えば、NETBIOSやSLP(ServiceLoacation Protocol)を用いても本実施形態の効果を損なうものではない。
【０１９９】
[本体装置を別のサーバから見つける]
本実施形態では、ディスプレイ端末が、本体装置のアドレスおよびポートとして予め設定されたものを用いる場合を記述しているが、ディスプレイ端末は、これとは異なる方法で本体装置を発見する手段を備えることも可能である。例えば、本体装置は、SIPのREGISTERメッセージを用いて、自身のアドレスとポート番号とSIP URIとをSIPサーバ４９（図１２参照）に登録しておき、ディスプレイ端末は本体装置のSIP URIを予め保持しておく。ディスプレイ端末は、そのSIP URIに対してINVITEメッセージを 予め定められたSIPサーバ、あるいは宅内ネットワークを管理するSIPサーバに送信することにより、本体装置のアドレスおよびポート番号を発見することが可能である。
【０２００】
この場合、本体装置はディスプレイ端末と一対一で対応する必要がなくなり、ディスプレイ端末は発見したサービス毎にSIP URIを使い分けることも可能である。また、一つのSIP URIに対しても複数の本体装置を用意しておき、ディスプレイ端末と本体装置の負荷や、経路長等のネットワーク的な状況に応じて本体装置を使い分けることも可能である。あるいは、端末装置に複数の本体装置の夫々に対応するＳＩＰ  ＵＲＩを予め記憶させておき、ユーザの選択により、接続する本体装置を使い分けることも可能である。
【０２０１】
図１５はディスプレイ端末４７の構成例を示す。
【０２０２】
ディスプレイ端末４７は、パケット送受信部５１とサービス発見部５２とサービス通知５３バケット生成部５３とNAT変換状態エントリ生成パケット生成部５４と入出力データ処理部５５とを備える。
【０２０３】
パケット送受信部５１はネットワークインタフェースを介してパケットの送受信を行う。
【０２０４】
サービス発見部５２は、パケット送受信部５１を介してサービス発見のプロトコルを処理する。例えば、サービス発見にUPnPを用いる場合には、SSDP searchパケットをパケット送受信部５１を介して送信する。
【０２０５】
サービス発見部５２は、パケット送受信部５１を介して SSDP search responseパケットあるいは SSDP aliveパケットを受信すると、これに含まれるLOCATION:タグに記述されているURLへHTTP GET要求を送信する。
【０２０６】
サービス発見部５２は、パケット送受信部５１を介して HTTP GET応答を受信すると、これに含まれているDescriptionドキュメントを抽出し、その値をサービス通知パケット生成部５３に送信する。
【０２０７】
ここで、サービス発見部５２は、SSDP aliveパケットあるいはSSDP search responseパケットを受信する度に、LOCATIONタグに含まれているURLにアクセスしているが、そうではなく、USNタグに記されているuuidを記憶し、これによりアクセス済み機器の場合には LOCATIONタグに含まれているURLにアクセスしないようにすることも可能である。
【０２０８】
サービス通知パケット生成部５３は、サービス発見部５２からDescriptionドキュメントを受け取ると、サービス通知パケットを、予め設定されている本体装置４７のアドレスおよびポート番号宛に送信する。このサービス通知パケットには、
予め定められている認証情報と、
Description情報としてサービス発見部５２から受け取ったDescriptionドキュメントと、
通知するサービスがUPnPであることを示すサービス種別と、
が含まれる。
【０２０９】
サービス通知パケット生成部５３は、本体装置４７からNAT変換状態エントリ生成要求パケットを受信すると、これに含まれているフロー情報をNAT変換状態エントリ生成パケット生成部５４にNATエントリ生成要求として渡す。
【０２１０】
フロー情報には
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が記述されており、例えば、
(192.168.0.3、134.10.10.1、6、2869、10000)
が記される。
【０２１１】
また、サービス通知パケット生成部５３は、本体装置４７からNAT変換状態エントリ削除要求パケットを受信すると、これに含まれているフロー情報をNAT変換状態エントリ生成パケット生成部にNATエントリ削除要求として渡す。
【０２１２】
フロー情報には
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
が記述されており、例えば、
(192.168.0.3、134.10.10.1、6、2869、10000)
が記される。
【０２１３】
NAT変換状態エントリ生成パケット生成部５４は、NATエントリ生成要求をサービス通知パケット生成部５３から受け取ると、そのNATエントリ生成要求に含まれるフロー情報に対応するNAT変換状態エントリ生成パケットの定期的な送信を開始する。
【０２１４】
NAT変換状態エントリ生成パケットは、ヘッダ部における
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
として、フロー情報に記されている
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
をもち、そのデータ部にディスプレイ端末の認証情報と、フロー情報とをもつ。
【０２１５】
ディスプレイ端末の認証情報は
NAT変換状態エントリ生成パケットのシーケンス番号と、
ディスプレイ端末の識別子と、
ディスプレイ端末のアドレスと、
シーケンス番号とディスプレイ端末の識別子とディスプレイ端末のアドレスとフロー情報とから得られるハッシュ値と、
を含むことが望ましい。
【０２１６】
また、NAT変換状態エントリ生成パケット生成部５４はサービス通知パケット生成部５３からNATエントリ削除要求を受け取ると、このNATエントリ削除要求に含まれるフロー情報に対応する上記NAT変換状態エントリ生成パケットの送信を停止する。
【０２１７】
入出力データ処理部５５は、例えば起動時に、予め定められた、本体装置４７のアドレスとポート番号に対して接続要求を送信する。接続要求には、認証情報と操作種別とが含まれる。
【０２１８】
操作種別にはこのパケットが接続要求である旨を意味する値が記さる。
【０２１９】
認証情報としては、
接続要求のシーケンス番号と
ディスプレイ端末の識別子と
ディスプレイ端末のアドレスと、
ハッシュ値と、
を含むことが望ましい。ハッシュ値の計算には、
予め定められた計算アルゴリズムと、予めディスプレイ端末装置と本体装置に共通に設定されている秘密情報と、接続要求内のシーケンス番号と、ディスプレイ端末の識別子と、ディスプレイ端末のアドレスを用いることが望ましい。
【０２２０】
入出力データ処理部５５は、本体装置４８から接続確認を受信すると、本体装置４８からの出力データの受信と、本体装置４８への入力データの送信を開始する。
【０２２１】
入出力データ処理部５５は、本体装置４８から出力データを受信すると、これに含まれる画像データあるいは音声データを、ディスプレイあるいはスピーカに出力する。また、キーボードあるいはマウスあるいはタッチパネルからの入力イベントを受信すると、これを入力データとして本体装置４８へ送信する。
【０２２２】
図１６は、宅外ネットワーク４２に配置された本体装置４８の構成を示す図である。
【０２２３】
本体装置４８は、パケット送受信部６１とサービス処理部６２とサービス通知パケット処理部６３とNAT変換状態エントリ生成パケット処理部６４と入出力データ処理部６５と中央処理部６６とを備える。
【０２２４】
パケット送受信部６１はネットワークインタフェースを介してパケットの送受信を行う。
【０２２５】
入出力データ処理部６５は、接続要求を受信すると、接続要求内の認証情報を確認し、認証情報が正しい場合には、接続応答を送信する。接続応答は、操作種別を含み、また、接続を許可する旨の値を含む。入出力データ処理部６５は、認証情報を不正と判断した場合には、受信した接続要求を破棄し、接続要求がTCPにて送信されている場合には、該TCPコネクションを切断することが望ましい。
【０２２６】
認証情報の確認には、予め定められた計算アルゴリズムと、予めディスプレイ端末との間で共有する秘密情報と、接続要求内のシーケンス番号と、ディスプレイ端末の識別子と、ディスプレイ端末のアドレスとを基に計算したハッシュ値が、接続要求内のハッシュ値と等しいことを確認することが望ましい。
【０２２７】
入出力データ処理部６５は、認証情報が正しい場合には、接続情報を中央処理部６６に送信する。接続情報はディスプレイ端末の識別子を含むことが望ましい。
【０２２８】
また、入出力データ処理部６５は、中央処理部６６から受信した画面データあるいは音声データを出力データとしてパケット送受信部６１を介してディスプレイ端末に送信する。この際、入出力データ処理部６５は、出力データを、適切なフォーマット例えばHTTP上でのMPEG2に変換することが望ましい。また、入出力データ処理部６５は、ディスプレイ端末からの入力データを中央処理部６６に渡す。
【０２２９】
サービス通知パケット処理部６３は、パケット送受信部６１を介して、ディスプレイ端末からサービス通知パケットを受信する。サービス通知パケット処理部６３は、このサービス通知パケットに含まれている認証情報を確認することが望ましい。認証情報の確認は、認証情報に含まれるシーケンス番号が、認証情報に含まれる識別子を持つディスプレイ端末からこれまで受信したシーケンス番号よりも大きいことを確認し、さらに、
ディスプレイ端末の識別子と、
ディスプレイ端末のアドレスと、
シーケンス番号と、
Description情報と、
からハッシュ値を求め、このハッシュ値が、認証情報に含まれるハッシュ値と等しいことを確認することが望ましい。
【０２３０】
サービス通知パケット処理部６３は、認証情報の確認に失敗した場合には、受信したサービス通知パケットを破棄する。認証情報の確認に成功した場合には、そのサービス通知パケットに含まれるDescription情報を、サービス処理部６２に渡す。
【０２３１】
また、サービス通知パケット処理部６３は、サービス処理部６２からNATエントリ生成要求を受信すると、NATエントリ生成要求に含まれるフロー情報を乗せたNAT変換状態エントリ生成要求パケットをパケット送受信部６１を介して送信する。
【０２３２】
このNAT変換状態エントリ生成要求パケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は、ディスプレイ端末から受信したサービス通知パケットのヘッダの
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
である。
【０２３３】
また、サービス通知パケット処理部６３は、サービス処理部６２からNATエントリ削除要求を受信すると、このNATエントリ削除要求に含まれるフロー情報を乗せたNAT変換状態エントリ削除要求パケットを、パケット送受信部６１を介して送信する。
【０２３４】
このNAT変換状態エントリ削除要求パケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は、ディスプレイ端末から受信したサービス通知パケットのヘッダの
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
である。
【０２３５】
NAT変換状態エントリ生成パケット処理部６４は、ディスプレイ端末からのNAT変換状態エントリ生成パケットを受信すると、これに含まれるフロー情報とNAT変換状態エントリ生成パケットのヘッダ情報とをサービス処理部６２に渡す。この際、NAT変換状態エントリ生成パケット処理部６４は、NAT変換状態エントリ生成パケットの認証情報の確認を行うことが望ましい。
【０２３６】
認証情報の確認は、
認証情報に含まれるシーケンス番号が、認証情報に含まれる識別子を持つディスプレイ端末からこれまで受信したシーケンス番号よりも大きいことを確認し、さらに
ディスプレイ端末の識別子と、
ディスプレイ端末のアドレスと、
シーケンス番号と、
フロー情報とからハッシュ値を求め、このハッシュ値が認証情報に含まれるハッシュ値と等しいことを確認することが望ましい。
【０２３７】
NAT変換状態エントリ生成パケット処理部６４は、認証情報の確認に失敗した場合には、受信したNAT変換状態エントリ生成パケットを破棄し、サービス処理部６２へ上記フロー情報およびヘッダ情報を渡さないことが望ましい。
【０２３８】
サービス処理部６２は、サービス通知パケット処理部６３からDescription情報を受け取ると、これに含まれるserviceidに示されるサービスが、自身が処理すべきサービスであると認識した場合には、SCPDURLとURLBASEを基にDescriptionドキュメントの獲得手順を行う。
【０２３９】
サービス処理部６２は、Descriptionドキュメントの獲得手順として、まず、Descriptionドキュメントを取得するためのURLを求め、また、Descriptionドキュメントを取得するために必要なNATエントリ生成要求をサービス通知パケット処理部６３へ渡す。
【０２４０】
次に、サービス処理部６２は、NAT変換状態エントリ生成パケット処理部６４からフロー情報とヘッダ情報とを受け取った時に、そのフロー情報がDescriptionドキュメントを取得するために送信するパケットの属するフローを示す場合には、Descriptionドキュメントを取得するためのURLに向けて、HTTP GET要求を送信する。ただし、このときのIPパケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は、受け取ったヘッダ情報の
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
とする。
【０２４１】
[Descriptionドキュメントの獲得手順の具体例]
例えば、サービス通知パケット処理部６３から図６のDescription情報をサービス処理部６２が受け取った場合、Descriptionドキュメントを獲得するためのURLは
http://192.168.0.3:2689/cds/cs.xmlであり、
NATエントリ生成要求に含まれるフロー情報は
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
として(192.168.0.3, 本体装置のアドレス, 6, 2689,10000)をもつ。
【０２４２】
ここで10000はサービス処理部６２がDescriptionドキュメントを獲得する際に使用するポート番号である。
【０２４３】
サービス処理部６２は、Descriptionドキュメントを獲得すると、これを中央処理部６６に渡す。また、サービス処理部６２は、中央処理部６６からブラウズ送信要求を受け取ると、ブラウズ要求パケットを送信する。
【０２４４】
ただし、このときのIPパケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は、受信したヘッダ情報の
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
とする。
【０２４５】
サービス処理部６２は、ブラウズ応答が帰ってくるとその内容を中央処理部６６に渡す。
【０２４６】
サービス処理部６２は、ブラウズ応答の<res>タグに記されるURLへHTTP GET要求を送信する。例えば、そのHTTPヘッダには、
GET /01_video.cgi
HOST: 192.168.0.3:2689
という行を含むことが望ましい。また、パケットのヘッダの
(宛先アドレス、ソースアドレス、プロトコル番号、宛先ポート番号、ソースポート番号)
は、受信したヘッダ情報の
(ソースアドレス、宛先アドレス、プロトコル番号、ソースポート番号、宛先ポート番号)
とする。
【０２４７】
この応答として、サービス処理部６２は、例えば動画データを受信するので、これを中央処理部６６に渡す。
【０２４８】
中央処理部６６は、本体装置のOSあるいはアプリケーションプログラムの動作処理を行っている。また、中央処理部６６は、入出力データ処理部６５を介して、ディスプレイ端末との間で入力データおよび出力データの受信および送信を行う。出力データはディスプレイ端末に表示すべき画像データあるいは音声データであり、入力データはディスプレイ端末のキーボードあるいはマウスあるいはタッチパネルからの入力イベントである。これによりディスプレイ端末があたかも直接本体装置に繋がっているかのように動作をすることが可能となる。
【０２４９】
中央処理部６６は、入出力データ処理部６５から前述した接続情報を受信すると、この接続情報に含まれる識別子に対応するディスプレイ端末のための計算機状態をロードし、その状態に対応する画面情報および音声情報を出力データとしてディスプレイ端末に送信することが望ましい。
【０２５０】
中央処理部６６は、サービス処理部６２からDescriptionドキュメントを受け取ると、このDescriptionドキュメントに含まれる機器のfriendlyNameと、この機器がContents Derectory Serviceを提供する機器であることを示すアイコンと、を示す画像データを作成する。ただし、これまでに既に発見した別の機器がある場合には生成する画像データには、これらの機器のアイコンも含めることが望ましい。作成した画像データは、入出力データ処理部６５を介してディスプレイ端末へ送信する。図１１はその表示画面の例である。
【０２５１】
中央処理部６６はディスプレイ端末からアイコンが選択されたことを意味する入力データを受信すると、選択されたアイコンに対応する機器へのブラウズ送信要求をサービス処理部６２へ渡す。
【０２５２】
中央処理部６６は、サービス処理部６２からブラウズ応答を受信した場合には、このブラウズ応答に含まれるコンテンツのタイトルをリスト表示した画面データを生成し、生成した画面データを入出力データ処理部６５を介してディスプレイ端末へ送信する。
【０２５３】
中央処理部６６はディスプレイ端末からコンテンツが選択されたことを意味する入力データを受信すると選択されたコンテンツに対するコンテンツ獲得要求を送信する。
【０２５４】
中央処理部６６は、サービス処理部６２からコンテンツ獲得要求に対する応答として例えば動画データを受信すると、これを復号化し、入出力データ処理部６５を介してディスプレイ端末へ送信する。
【０２５５】
このように、宅外ネットワークに配置した本体装置と、宅内ネットワークに配置したディスプレイ端末と連係動作させることにより、宅外ネットワークに配置した本体装置は、NAT装置を介して宅内ネットワークに置かれたサービス機器のサービスを利用することが可能となる。
【０２５６】
また、宅内ネットワークと宅外ネットワークは、NAT装置で接続された2つのネットワークという意味であり、例えば、これら２つのネットワークが企業内ネットワークとインターネットであっても、本実施形態の効果を減じるものではない。
【０２５７】
また、本実施形態において、NAT装置は、宅内ネットワークから開始された通信に関しては、宅外からのパケットを通すが、そうでない場合には宅外からのパケットは通過させない機能を有しており、このような機能を有する装置であれば、例えば、ファイヤウオール装置のように、パケットのアドレスを書き換えないが装置を用いてもよい。
【０２５８】
また、本実施形態では、マルチメディアサーバから動画データを取得する場合を例に動作を述べたが、サーバが動画以外、例えば静止画や音声データを提供する場合でも本実施形態は適用可能である。また、サーバがマルチメディアデータ以外のサービスを提供する場合、例えば、ファイルサーバやプリンタサーバのような場合にも本実施形態を適用する
ことが可能である．
【図面の簡単な説明】
【０２５９】
【図１】本発明の第１の実施の形態の典型的な構成を示す図。
【図２】NAT変換状態テーブルの例を示す図。
【図３】第１の実施の形態の通信シーケンスの一例を示す図。
【図４】SSDP searchパケットの内容を記す図。
【図５】SSDP search responseパケットの内容を示す図。
【図６】Descriptionドキュメントの例を示す図。
【図７】ブラウズ要求の例を示す図。
【図８】ブラウズ応答の例を示す図。
【図９】NAT通過装置の構成例を示す図。
【図１０】宅外ネットワークに配置された計算機の構成を示す図。
【図１１】発見したサービス機器を示すアイコンの表示例を示す図。
【図１２】本発明の第２の実施の形態の典型的な構成を示す図。
【図１３】第２の実施の形態の通信シーケンスの一例を示す図。
【図１４】ディスプレイ端末の画面に表示された2つのマルチメディアデータのタイトルを示す図。
【図１５】ディスプレイ端末の構成例を示す図。
【図１６】宅外ネットワークに配置された本体装置の構成を示す図。
【符号の説明】
【０２６０】
１１、４１  宅内ネットワーク
１２、４２  宅外ネットワーク
１３、４３  NAT装置
１４、４４  ファイルサーバ
１５、４５  マルチメディアサーバ
１６、４６  プリンタ
１７、４７  NAT通過装置
１８  計算機
２１、３１、５１、６１  パケット送受信部
２２、５２  サービス発見部
２３、５３  サービス通知パケット生成部
２４、５４  NAT変換状態エントリ生成パケット生成部
３２、６２  サービス処理部
３３、６３  サービス通知パケット処理部
３４、６４  NAT変換状態エントリ生成パケット処理部
４８  本体装置
５５、６５  入出力データ処理部
６６  中央処理部
【図１】
2007208693.tif 000003
【図２】
2007208693.tif 000004
【図３】
2007208693.tif 000005
【図４】
2007208693.tif 000006
【図５】
2007208693.tif 000007
【図６】
2007208693.tif 000008
【図７】
2007208693.tif 000009
【図８】
2007208693.tif 000010
【図９】
2007208693.tif 000011
【図１０】
2007208693.tif 000012
【図１１】
2007208693.tif 000013
【図１２】
2007208693.tif 000014
【図１３】
2007208693.tif 000015
【図１４】
2007208693.tif 000016
【図１５】
2007208693.tif 000017
【図１６】
2007208693.tif 000018